[ http://jira.codehaus.org/browse/MNG-1800?page=all ]
Matthew Beermann closed MNG-1800:
---------------------------------
Resolution: Fixed
Fix Version: (was: 2.0.3)
Turns out that this wasn't directly caused by MNG-441 or MNG-1303, but the
resolution of those allowed me to get a "real" stack trace (with chained
exceptions attached) and get to the root of the problem.
> surefire:test finds a resource inside a jar, but can't load a class inside it?
> ------------------------------------------------------------------------------
>
> Key: MNG-1800
> URL: http://jira.codehaus.org/browse/MNG-1800
> Project: Maven 2
> Type: Bug
> Components: maven-surefire-plugin
> Versions: 2.0
> Reporter: Matthew Beermann
> Priority: Critical
>
>
> We're using Java's SPI mechanism to load implementations at runtime. To be
> exact, the iface jar looks for a particular file (using
> ClassLoader.getResource) when the application starts, and reads inside of it
> to find out what the real implementation is. Then, it uses reflection
> (ClassLoader.loadClass) to actually load the class.
> This mechanism works like a dream in Eclipse, JUnit, etc, but fails
> mysteriously in Maven 2. I say mysteriously, because it locates the file in
> the impl jar, but then can't manage to load the class inside that jar!
> Snippets from my build log... sorry for the redacting, but it's not
> open-source code being built...
> [DEBUG] Test Classpath :
> ...
> [DEBUG] C:\my-implementation.jar
> -------------------------------------------------------
> T E S T S
> -------------------------------------------------------
> ServiceProviderLookupFacility: The class [BasicLoggerManager] configured in
> the service provider configuration file
> [jar:file:C:/my-implementation.jar!/META-INF/services/LoggerManager] could
> not be found and will be skipped.
> ServiceProviderLookupFacility: java.lang.ClassNotFoundException:
> BasicLoggerManager
> at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> at
> org.codehaus.surefire.IsolatedClassLoader.loadClass(IsolatedClassLoader.java:69)
> <where my code called ClassLoader.loadClass>
> Any insights into what's going on here? This seems tremendously broken...
--
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
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]