[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[virgo-dev] Running integration tests with maven


I have finally hit the issue that I knew would cause some pain and suffering for creating a maven build.

With virgo-build there are well known locations of the artifacts and this knowledge is reflected in test.config.properties.  

Example (from org.eclipse.virgo.medic.integrationtest):

There are at least 4 issues of reusing this set-up with Maven.
1. location of repository (i.e. ivy-cache/repository vs. .m2/repository)
2. structure of repository (org.aspectj vs org/aspectj)
3. version of the artifact (and + ivy - Ripplor controlled, with Maven  -SNAPSHOT for example)
4. virgo-build generates artifacts in target/artifacts without a version, Maven does it (by default) in target with a version qualifier.

Given these issues (at least these issues) - I would like to solicit some feed back from interested parties on a way forward.

Some potential solutions:
1. Make maven copy jars in expected location
- maven build will have to not only track dependencies in ivy but also changes to test config
2. Provide some placeholders and filter test.config.properties from both systems before test run
- could be messy and introduces another set of filter files and such...
3. Modify ant virgo-build to copy dependencies to for example $module/target/dependencies directory vs. referencing from known locations
- not sure how much work that will be on potentially creating extra ivy resolvers and such...
4. Have two separate but equal files
- one for virgo-build one for virgo-maven-build
- maven will have to take care to override default one with its own

So far I like option 4 as it introduces least amount of work for everyone and results in just one extra file added to the repo.

Any other though on this topic?  Ideas?