svendiedrichsen / jollyday

Jollyday - A holiday API
Other
186 stars 115 forks source link

Allow build on and usage with OpenJDK 11 #88

Closed krichter722 closed 5 years ago

krichter722 commented 5 years ago

Building jollyday with OpenJDK 11 fails due to

[INFO] --- jaxb2-maven-plugin:2.4:xjc (generate) @ jollyday ---
[INFO] Created EpisodePath [/mnt/data/home/software/jollyday/target/generated-sources/jaxb/META-INF/JAXB]: true
[INFO] Ignored given or default xjbSources [/mnt/data/home/software/jollyday/src/main/xjb], since it is not an existent file or directory.
[INFO] Created EpisodePath [/mnt/data/home/software/jollyday/target/generated-sources/jaxb/META-INF/JAXB]: true
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.058 s
[INFO] Finished at: 2019-01-09T21:29:49+01:00
[INFO] ------------------------------------------------------------------------
---------------------------------------------------
constituent[0]: file:/usr/share/maven/conf/logging/
constituent[1]: file:/usr/share/maven/lib/aopalliance.jar
constituent[2]: file:/usr/share/maven/lib/cdi-api.jar
constituent[3]: file:/usr/share/maven/lib/commons-cli.jar
constituent[4]: file:/usr/share/maven/lib/commons-io.jar
constituent[5]: file:/usr/share/maven/lib/commons-lang3.jar
constituent[6]: file:/usr/share/maven/lib/guava.jar
constituent[7]: file:/usr/share/maven/lib/guice.jar
constituent[8]: file:/usr/share/maven/lib/jansi.jar
constituent[9]: file:/usr/share/maven/lib/javax.inject.jar
constituent[10]: file:/usr/share/maven/lib/jcl-over-slf4j.jar
constituent[11]: file:/usr/share/maven/lib/jsr250-api.jar
constituent[12]: file:/usr/share/maven/lib/maven-artifact-3.x.jar
constituent[13]: file:/usr/share/maven/lib/maven-builder-support-3.x.jar
constituent[14]: file:/usr/share/maven/lib/maven-compat-3.x.jar
constituent[15]: file:/usr/share/maven/lib/maven-core-3.x.jar
constituent[16]: file:/usr/share/maven/lib/maven-embedder-3.x.jar
constituent[17]: file:/usr/share/maven/lib/maven-model-3.x.jar
constituent[18]: file:/usr/share/maven/lib/maven-model-builder-3.x.jar
constituent[19]: file:/usr/share/maven/lib/maven-plugin-api-3.x.jar
constituent[20]: file:/usr/share/maven/lib/maven-repository-metadata-3.x.jar
constituent[21]: file:/usr/share/maven/lib/maven-resolver-api.jar
constituent[22]: file:/usr/share/maven/lib/maven-resolver-connector-basic.jar
constituent[23]: file:/usr/share/maven/lib/maven-resolver-impl.jar
constituent[24]: file:/usr/share/maven/lib/maven-resolver-provider-3.x.jar
constituent[25]: file:/usr/share/maven/lib/maven-resolver-spi.jar
constituent[26]: file:/usr/share/maven/lib/maven-resolver-transport-wagon.jar
constituent[27]: file:/usr/share/maven/lib/maven-resolver-util.jar
constituent[28]: file:/usr/share/maven/lib/maven-settings-3.x.jar
constituent[29]: file:/usr/share/maven/lib/maven-settings-builder-3.x.jar
constituent[30]: file:/usr/share/maven/lib/maven-shared-utils.jar
constituent[31]: file:/usr/share/maven/lib/maven-slf4j-provider-3.x.jar
constituent[32]: file:/usr/share/maven/lib/plexus-cipher.jar
constituent[33]: file:/usr/share/maven/lib/plexus-component-annotations.jar
constituent[34]: file:/usr/share/maven/lib/plexus-interpolation.jar
constituent[35]: file:/usr/share/maven/lib/plexus-sec-dispatcher.jar
constituent[36]: file:/usr/share/maven/lib/plexus-utils.jar
constituent[37]: file:/usr/share/maven/lib/sisu-inject.jar
constituent[38]: file:/usr/share/maven/lib/sisu-plexus.jar
constituent[39]: file:/usr/share/maven/lib/slf4j-api.jar
constituent[40]: file:/usr/share/maven/lib/wagon-file.jar
constituent[41]: file:/usr/share/maven/lib/wagon-http-shaded.jar
constituent[42]: file:/usr/share/maven/lib/wagon-provider-api.jar
---------------------------------------------------
Exception in thread "main" java.lang.Error: java.lang.reflect.InvocationTargetException
    at com.sun.tools.xjc.reader.Ring.get(Ring.java:113)
    at com.sun.tools.xjc.reader.xmlschema.BGMBuilder.<init>(BGMBuilder.java:147)
    at com.sun.tools.xjc.reader.xmlschema.BGMBuilder.build(BGMBuilder.java:117)
    at com.sun.tools.xjc.ModelLoader.annotateXMLSchema(ModelLoader.java:407)
    at com.sun.tools.xjc.ModelLoader.load(ModelLoader.java:162)
    at com.sun.tools.xjc.ModelLoader.load(ModelLoader.java:117)
    at com.sun.tools.xjc.Driver.run(Driver.java:354)
    at org.codehaus.mojo.jaxb2.javageneration.AbstractJavaGeneratorMojo.performExecution(AbstractJavaGeneratorMojo.java:468)
    at org.codehaus.mojo.jaxb2.AbstractJaxbMojo.execute(AbstractJaxbMojo.java:315)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:954)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:192)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    at com.sun.tools.xjc.reader.Ring.get(Ring.java:102)
    ... 30 more
Caused by: java.lang.Error: java.lang.reflect.InvocationTargetException
    at com.sun.tools.xjc.reader.Ring.get(Ring.java:113)
    at com.sun.tools.xjc.reader.xmlschema.BindingComponent.getClassSelector(BindingComponent.java:65)
    at com.sun.tools.xjc.reader.xmlschema.ColorBinder.<init>(ColorBinder.java:62)
    at com.sun.tools.xjc.reader.xmlschema.BindGreen.<init>(BindGreen.java:63)
    ... 35 more
Caused by: java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    at com.sun.tools.xjc.reader.Ring.get(Ring.java:102)
    ... 38 more
Caused by: java.lang.NoClassDefFoundError: javax/activation/MimeTypeParseException
    at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3138)
    at java.base/java.lang.Class.getConstructor0(Class.java:3343)
    at java.base/java.lang.Class.getDeclaredConstructor(Class.java:2554)
    at com.sun.tools.xjc.reader.Ring.get(Ring.java:100)
    at com.sun.tools.xjc.reader.xmlschema.DefaultClassBinder.<init>(DefaultClassBinder.java:98)
    at com.sun.tools.xjc.reader.xmlschema.ClassSelector.<init>(ClassSelector.java:214)
    ... 43 more
Caused by: java.lang.ClassNotFoundException: javax.activation.MimeTypeParseException
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
    ... 50 more

experienced with v_0_5_7-12-ge359ee2

svendiedrichsen commented 5 years ago

I have created a branch and will make this lib be buildable with Java 11. I'm not quite sure how to provide a release compatible with Java 11 without breaking Java 8 compatibility though.

svendiedrichsen commented 5 years ago

@krichter722 I have adapted the project to be buildable with java 8 and 11. Do you have any suggestion on how to have a single release being usable with both java versions?

krichter722 commented 5 years ago

Thanks. There're different stages of Java 8 to 11 migration/coexistence (note the difference between source and target):

The simplest case If you want to be able to run with Java 8 and 11, just don't use Java 11 source features (enforce source through the compiler).

svendiedrichsen commented 5 years ago

After some trial and error I found out that when building with JDK 11 you cannot build with source 1.8 if module-info.java is used. Additionally if you build with source 11 you must use target 11.

krichter722 commented 5 years ago

module-info.java has been introduced in Java > 8, so the 4th point of my explanation applies.

Lakshmi0211 commented 1 year ago

Hi @krichter722 @svendiedrichsen

We do have any update reading to this. I have been facing the same issue. While migrating from OpenJDK 8 to OpenJDK 11.

derTobsch commented 1 year ago

You can use our jollyday version, that is a fork and compatible with the api, see https://github.com/focus-shift/jollyday

Lakshmi0211 commented 1 year ago

@derTobsch Still, We are getting same error after using https://github.com/focus-shift/jollyday

constituent[0]: file:/C:/Program%20Files/apache-maven-3.8.6/conf/logging/ constituent[1]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/commons-cli-1.4.jar constituent[2]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/commons-io-2.6.jar constituent[3]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/commons-lang3-3.8.1.jar constituent[4]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/guava-25.1-android.jar constituent[5]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/guice-4.2.2-no_aop.jar constituent[6]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/jansi-2.4.0.jar constituent[7]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/javax.annotation-api-1.2.jar constituent[8]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/javax.inject-1.jar constituent[9]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/jcl-over-slf4j-1.7.36.jar constituent[10]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/maven-artifact-3.8.6.jar constituent[11]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/maven-builder-support-3.8.6.jar constituent[12]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/maven-compat-3.8.6.jar constituent[13]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/maven-core-3.8.6.jar constituent[14]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/maven-embedder-3.8.6.jar constituent[15]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/maven-model-3.8.6.jar constituent[16]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/maven-model-builder-3.8.6.jar constituent[17]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/maven-plugin-api-3.8.6.jar constituent[18]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/maven-repository-metadata-3.8.6.jar constituent[19]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/maven-resolver-api-1.6.3.jar constituent[20]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/maven-resolver-connector-basic-1.6.3.jar constituent[21]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/maven-resolver-impl-1.6.3.jar constituent[22]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/maven-resolver-provider-3.8.6.jar constituent[23]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/maven-resolver-spi-1.6.3.jar constituent[24]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/maven-resolver-transport-wagon-1.6.3.jar constituent[25]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/maven-resolver-util-1.6.3.jar constituent[26]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/maven-settings-3.8.6.jar constituent[27]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/maven-settings-builder-3.8.6.jar constituent[28]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/maven-shared-utils-3.3.4.jar constituent[29]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/maven-slf4j-provider-3.8.6.jar constituent[30]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/org.eclipse.sisu.inject-0.3.5.jar constituent[31]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/org.eclipse.sisu.plexus-0.3.5.jar constituent[32]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/plexus-cipher-2.0.jar constituent[33]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/plexus-component-annotations-2.1.0.jar constituent[34]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/plexus-interpolation-1.26.jar constituent[35]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/plexus-sec-dispatcher-2.0.jar constituent[36]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/plexus-utils-3.3.1.jar constituent[37]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/slf4j-api-1.7.36.jar constituent[38]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/wagon-file-3.5.1.jar constituent[39]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/wagon-http-3.5.1-shaded.jar constituent[40]: file:/C:/Program%20Files/apache-maven-3.8.6/lib/wagon-provider-api-3.5.1.jar

Exception in thread "main" java.lang.Error: java.lang.reflect.InvocationTargetException at com.sun.tools.xjc.reader.Ring.get(Ring.java:113) at com.sun.tools.xjc.reader.xmlschema.BGMBuilder.(BGMBuilder.java:146) at com.sun.tools.xjc.reader.xmlschema.BGMBuilder.build(BGMBuilder.java:116) at com.sun.tools.xjc.ModelLoader.annotateXMLSchema(ModelLoader.java:426) at com.sun.tools.xjc.ModelLoader.load(ModelLoader.java:175) at com.sun.tools.xjc.ModelLoader.load(ModelLoader.java:120) at org.jvnet.mjiip.v_2_2.XJC22Mojo.loadModel(XJC22Mojo.java:49) at org.jvnet.mjiip.v_2_2.XJC22Mojo.doExecute(XJC22Mojo.java:39) at org.jvnet.mjiip.v_2_2.XJC22Mojo.doExecute(XJC22Mojo.java:26) at org.jvnet.jaxb2.maven2.RawXJC2Mojo.doExecute(RawXJC2Mojo.java:309) at org.jvnet.jaxb2.maven2.RawXJC2Mojo.execute(RawXJC2Mojo.java:153) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137) at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2(MojoExecutor.java:370) at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute(MojoExecutor.java:351) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:215) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:171) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:163) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:294) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:960) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:293) at org.apache.maven.cli.MavenCli.main(MavenCli.java:196) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347) Caused by: java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490) at com.sun.tools.xjc.reader.Ring.get(Ring.java:102) ... 34 more Caused by: java.lang.Error: java.lang.reflect.InvocationTargetException at com.sun.tools.xjc.reader.Ring.get(Ring.java:113) at com.sun.tools.xjc.reader.xmlschema.BindingComponent.getClassSelector(BindingComponent.java:65) at com.sun.tools.xjc.reader.xmlschema.ColorBinder.(ColorBinder.java:62) at com.sun.tools.xjc.reader.xmlschema.BindGreen.(BindGreen.java:63) ... 39 more Caused by: java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490) at com.sun.tools.xjc.reader.Ring.get(Ring.java:102) ... 42 more Caused by: java.lang.NoClassDefFoundError: javax/activation/MimeTypeParseException at java.base/java.lang.Class.getDeclaredConstructors0(Native Method) at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3138) at java.base/java.lang.Class.getConstructor0(Class.java:3343) at java.base/java.lang.Class.getDeclaredConstructor(Class.java:2554) at com.sun.tools.xjc.reader.Ring.get(Ring.java:100) at com.sun.tools.xjc.reader.xmlschema.DefaultClassBinder.(DefaultClassBinder.java:98) at com.sun.tools.xjc.reader.xmlschema.ClassSelector.(ClassSelector.java:214) ... 47 more Caused by: java.lang.ClassNotFoundException: javax.activation.MimeTypeParseException at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50) at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271) at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247) at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239) ... 54 more