Mavenizing XIFF?

I’ve been talking to Mark about the idea of getting some tests running on xiff - it’s really nice looking through Tinder and all the tests and it’d be nice if XIFF was the same. Hopefully it’d mean things like a move to E4X and introduction of things like pubsub would be easier with some tests behind it.

At work I’ve set up a few builds now with Maven and it’s been on the whole great (not quite as simple in the AS3 world but getting closer). Also we’d get depedency management for free. Would anyone mind if I check in a pom that doesn’t change the package structure at all?

Just looking at XIFF:

1 - it looks like it has no build system at all and is just published from inside someone’s flash builder. Is this correct?

2 - the version of as3crypto that is checked into libs is not the 1.3 version that is on the google code site. It looks to be an older version that is no longer available for download. XIFF won’t compile against 1.3. Does anyone know more about where this version came from?

Thanks

Michael

Hey Michael,

Didn’t know you were looking for specifics on the XIFF project when you were asking about adding unit tests.

I can answer these for you:

  1. Incorrect. While there are Flash Builder-specific files (something I was actually getting ready to remove), there is a build directory with an ant script that gets run with every commit by Bamboo. This is also set to run nightly. We should be able to incorporate the unit tests into the ant script I would think.

  2. I have made changes and compiled the as3crypto lib locally to make that swc. I’ve documented the steps I have taken in JIRA: XIFF-73

I’m not sure how I feel about including the as3crypto source vs just the compiled swc. Obviously, it comes up when you want to view the changes, but does it actually belong in the src of XIFF, I don’t think so.

Perhaps I could commit the source somewhere else. We should talk about that.

I’m not too acquainted with Maven, so you’ll have to fill me in on how its better than Ant. It seems like we could add the unit tests into Ant as well.

Let me know. We can talk offline as well if you want.

Mark

Got you - missed that build folder completely (too long at this place where it’s always in the root dir!). I’m almost there now with the ant build script so I’ll try and get this in tonight. What I’ve done is made test dependent on component, and if enough people run it and give it the go ahead then maybe test could always be invoked.

Maven uses convention over configuration so you can get tetsing, coverage pmd etc with a generally smaller build file and you also get dependency management. But Ant works fine and I don’t think there’s a compelling reason to move.

Wasn’t thinking of including the source of AS3 crypto, was just wondering if there was a tagged version of it somewhere external that we could rely on. Any idea if there’s going to take your patches?

Thanks,

Michael

Unfortunately, I think as3crypto is a dead library. It hasn’t been updated since June 4, 2009, so I doubt they will ever apply those patches.

Perhaps it makes sense to commit the library with changes to a branch of XIFF. I’ll look into that.

Thanks for taking the lead on this!

It’s done! (started with one simple test from DateTimeParser). But my SVN credentials for XIFF don’t appear to work. Could anyone check my account (username ‘michaelcmccarthy’)?

Thanks

Michael,

Could you try again?

daryl

No joy I’m afraid - svn: Server sent unexpected return value (403 Forbidden) in response to MKACTIVITY request for ‘/svn/repos/!svn/act/f303bf4e-db63-4bcf-86c9-5284a8452000’

I would create a patch but there are binaries in there…

Hmmm, are you able to log into submin with your account?

https://svn.igniterealtime.org/submin/

daryl

We had a similar issue when we wanted to upload Spark patches. If I remember correctly the downloads from SVN have to use HTTP while uploads need HTTPS. We are using Tourtoise and Eclipse.

Thanks Walter - just tried with https but no joy. Would someone be able to generate a new set of login details for me? Thanks

Just an update, I’ve emailed the support desk about my SVN access so once this is sorted then I can commit.

I sent you a message via gmail, please let me know if you are still having troubles.

daryl

Thanks to Daryl this is now done. A quick overview of changes:

  1. Added the flexunit 4 swcs (went for version 4.1.0) to the libs directory and ensured they are excluded from the build of xiff.swc

  2. Added the flexUnitTasks jar to the build directory (where the ant tasks jar currently lives)

  3. Added a very basic test to DateTimeParser just to get the ball rolling

  4. Amended build to run these tests on a ‘test’ target and write the junit report out to a report dir.

You should be able to run these unit tests from IntelliJ no problems and FlashBuilder (I don’t use FDT but it is possible). If you’re using the ‘execute FlexUnit Tests’ FlashBuilder shortcut I think it tries to put it’s own bundled versions of flexunit inside a lib folder and runs against these versions.

Please let me know if any of the structure should be changed, it’s my first commit to XIFF and not sure how your coding and naming standards compare to what I’ve used elsewhere.

Michael

Thanks for all your work on this Michael!

I’ll check it out.

No problems. I’ve just done a check out in FlashBuilder and noticed you have to run using the ant build rather than the ‘Execute FlexUnit Tests’ FB4 provides. I believe this is to do with what I mentioned above and FlashBuilder adding it’s own, older swcs. Up to you - I could change the build to work against that version of FlexUnit, or we just accept we’ll have to make do with running from the build.xml. Both have pros and cons I think.