[ 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]