Enable custom JAR and resource loading in Surefire classpath
------------------------------------------------------------
Key: SUREFIRE-545
URL: http://jira.codehaus.org/browse/SUREFIRE-545
Project: Maven Surefire
Issue Type: Improvement
Components: classloading
Affects Versions: 2.4.3
Environment: any
Reporter: Gabriele Columbro
Priority: Minor
Attachments: SurefireResourceLoading.diff
There are situations in which you would want to add to surefire classpath an
arbitrary resourceSet to have your tests running properly.
To clarify, there are cases in which maven transitive dependency management
cannot be enough for having your classpath populated properly, cases in which
not even the <additionalClasspathElement> of surefire can be enough, unless you
pollute your pom with a huge numer of <additionalClasspathElement> lines (tough
to write and maintain).
Maybe an example can clarify the situation:
if you're working with a legacy Webapp, say a WAR built with Ant, that has no
POM, but you want to use Maven features to improve testing and to provide a
standard approach to lifecycle management. You'd like be able to test in
isolation (outside of a container) against the webapp classpath, but while
WEB-INF/classes can be loaded with <additionalClasspathElement>, you'd name
each and every JAR in the WEB-INF/lib to have the classpath properly populate.
This is infact my case when trying to support Alfresco ECM [1] testing with my
maven archetypes [2].
So, after playing around with Java6 classpath wildcard loading [3] (which seems
not to be honored by surefire), I wrote this little patch which adds to
surefire a new configuration parameter:
<resources>
<resource>
....
</resource>
</resources>
which allows to load arbitrary resources in the surefire classpath, using the
usual directory/include/exclude format supported by the Maven DirectoryScanner.
This solves my problems as now I can happily load the Alfresco's
WEB-INF/lib/*.jar resourceSet.
It does not check for duplicates so it's left to the developer to check it the
maven transitive classpath clashes with the added resources (as this should be
discouraged, I think it should stay like this).
I understand this should be discouraged, but I could not find a way to work
this around (until Alfresco release his POM [4]) in the current surefire setup.
WDYT? Shall I write a test case or you think is never going to make it to the
trunk? ;)
[1] http://www.alfresco.com/
[2] http://repository.sourcesense.com/maven2-sites/maven-alfresco-archetypes
[3] http://www.javabeat.net/qna/90-adding-jars-to-the-classpath/
[4] https://issues.alfresco.com/jira/browse/ETHREEOH-1090
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira