Thanks, I've added ${hadoop.version} so it's easier to upgrade in the future, and also committed the <exclusion> of tools.jar
I think the maven-jar-maven JDK9 issue is due to https://issues.apache.org/jira/browse/MJAR-206 https://issues.apache.org/jira/browse/MJAR-205 so you would need to wait for maven-jar-plugin 3.0.0 Not sure about the JspRuntimeContext class cast exception.. jdk.internal.loader.ClassLoaders$AppClassLoader (in module: java.base) cannot be cast to java.net.URLClassLoader sounds like a bit naive casting by Jasper. Perhaps we would then also need to force a newer version - this is PRETTY old: [INFO] | +- tomcat:jasper-compiler:jar:5.5.23:test [INFO] | +- tomcat:jasper-runtime:jar:5.5.23:test (This version is also coming in as a Hadoop test dependency) Fixed in Tomcat 8.0.0 at least: https://github.com/apache/tomcat/blob/TOMCAT_8_0_0/java/org/apache/jasper/compiler/JspRuntimeContext.java#L403 On 5 May 2016 at 11:49, Jörg Schaible <joerg.schai...@gmx.de> wrote: > Hi Stian, > > Stian Soiland-Reyes wrote: > >>> [ERROR] Failed to execute goal on project commons-vfs2: Could not resolve >>> dependencies for project org.apache.commons:commons-vfs2:jar:2.1: Could >>> not find artifact jdk.tools:jdk.tools:jar:1.6 at specified path >>> /opt/oracle-jdk- bin-1.9.0.0_beta116/../lib/tools.jar -> [Help 1] >>> [ERROR] >>> [ERROR] To see the full stack trace of the errors, re-run Maven with the >>> [-e >>> switch. >>> [ERROR] Re-run Maven using the -X switch to enable full debug logging. >>> [ERROR] >>> [ERROR] For more information about the errors and possible solutions, >>> [please >>> read the following articles: >>> [ERROR] [Help 1] >>> > http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException >>> [ERROR] >>> [ERROR] After correcting the problems, you can resume the build with the >>> command >>> [ERROR] mvn <goals> -rf :commons-vfs2 >>> ========================= %< ====================== >>> >>> The reason is an invalid (transitive) system dependency on tools.jar of >>> Hadoop which is no longer present in Java 9. >> >> hadoop-common:test-jar pulls in: >> >> http://central.maven.org/maven2/org/apache/hadoop/hadoop-annotations/2.6.0/hadoop-annotations-2.6.0.pom >> >> With two different profiles, the os.linux profile activates for me as >> well, as the activation here is "Not a mac". >> >> >> The newer Hadoop 2.7.1 seems to have fixed to these activations. >> >> http://central.maven.org/maven2/org/apache/hadoop/hadoop-annotations/2.7.1/hadoop-annotations-2.7.1.pom >> >> (Hadoop 2.7 presumably no longer works on JDK6) >> >> >> Could you try changing all the Hadoop 2.6.0 dependencies in pom.xml to >> 2.7.1 and see if JDK9 is happy then? >> >> (We can always exclude it tools.jar in the test dependency, I don't >> see how it's needed for our tests) > > After finally upgrading all four (!) Hadoop versions in the parent (we > should introduce a property for the Hadoop version), Oracle JDK 8 passes > again. However, Java 9 fails still with the jar plugin (and an ignored > ClassCastExceptions in the tests caused by Jetty): > > ======================== %< ============================= > $ mvn -version > Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; > 2015-11-10T17:41:47+01:00) > Maven home: /usr/share/maven-bin-3.3 > Java version: 9-ea, vendor: Oracle Corporation > Java home: /opt/oracle-jdk-bin-1.9.0.0_beta116 > Default locale: en_US, platform encoding: UTF-8 > OS name: "linux", version: "4.4.6-gentoo", arch: "amd64", family: "unix" > ======================== %< ============================= > Tests run: 84, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 30.141 sec > - in org.apache.commons.vfs2.provider.ftps.test.FtpsProviderExplicitTestCase > Running org.apache.commons.vfs2.provider.webdav.test.WebdavProviderTestCase > 2016-05-05 12:37:16,660 [main] ERROR: unavailable > java.lang.ClassCastException: > jdk.internal.loader.ClassLoaders$AppClassLoader (in module: java.base) > cannot be cast to java.net.URLClassLoader (in module: java.base) > at > org.apache.jasper.compiler.JspRuntimeContext.<init>(JspRuntimeContext.java:174) > at org.apache.jasper.servlet.JspServlet.init(JspServlet.java:150) > at > org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:431) > at > org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:263) > at > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) > at > org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:643) > at org.mortbay.jetty.servlet.Context.startContext(Context.java:140) > at > org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1234) > at > org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) > at > org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:460) > at > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) > at > org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) > at > org.mortbay.jetty.handler.RequestLogHandler.doStart(RequestLogHandler.java:115) > at > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) > at > org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) > at org.mortbay.jetty.Server.doStart(Server.java:222) > at > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) > at > org.apache.commons.vfs2.provider.webdav.test.JackrabbitMain.run(JackrabbitMain.java:264) > at > org.apache.commons.vfs2.provider.webdav.test.WebdavProviderTestCase.startJackrabbit(WebdavProviderTestCase.java:270) > at > org.apache.commons.vfs2.provider.webdav.test.WebdavProviderTestCase.setUpClass(WebdavProviderTestCase.java:247) > at > org.apache.commons.vfs2.provider.webdav.test.WebdavProviderTestCase.access$100(WebdavProviderTestCase.java:55) > at > org.apache.commons.vfs2.provider.webdav.test.WebdavProviderTestCase$1.setUp(WebdavProviderTestCase.java:282) > at > org.apache.commons.vfs2.test.AbstractTestSuite$1.protect(AbstractTestSuite.java:148) > at junit.framework.TestResult.runProtected(TestResult.java:142) > at > org.apache.commons.vfs2.test.AbstractTestSuite.run(AbstractTestSuite.java:154) > at > org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86) > at > org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:367) > at > org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:274) > at > org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238) > at > org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:161) > at > org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:290) > at > org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:242) > at > org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:121) > VfsClassLoaderTests no layered .jar provider, skipping. > [snip] > [INFO] --- maven-jar-plugin:2.6:jar (default-jar) @ commons-vfs2 --- > [WARNING] Error injecting: org.codehaus.plexus.archiver.jar.JarArchiver > java.lang.ExceptionInInitializerError > at > jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(java.base@9- > ea/Native Method) > at > jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(java.base@9- > ea/NativeConstructorAccessorImpl.java:62) > at > jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(java.base@9- > ea/DelegatingConstructorAccessorImpl.java:45) > at java.lang.reflect.Constructor.newInstance(java.base@9- > ea/Constructor.java:453) > at > com.google.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java > [snip] > Caused by: java.lang.ArrayIndexOutOfBoundsException: 1 > at > org.codehaus.plexus.archiver.zip.AbstractZipArchiver.<clinit>(AbstractZipArchiver.java:116) > ... 89 more > ======================== %< ============================= > > BTW; I get same results if I keep the Hadoop version and simply exclude > jdk.tools:jdk.tools from the test-jar artifact of Hadoop. So it seems that > VFS 2.1 can basically run on Java 9. > > Cheers, > Jörg > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > For additional commands, e-mail: dev-h...@commons.apache.org > -- Stian Soiland-Reyes Apache Taverna (incubating), Apache Commons RDF (incubating) http://orcid.org/0000-0001-9842-9718 --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org