Maven profiles to support jdk 11 builds. #948#975
Conversation
Added maven profiles activated by jdk 11, wich will not break java 8 support. Bumped lombok and datanucleus enhancer as the old versions dont work with 11.
|
Does this even build on JDK11 ? |
iluwatar
left a comment
There was a problem hiding this comment.
The build seems to work when run on the project root level. However as @perwramdemark suspected, building naked-objects on the submodule level fails.
$ mvn clean install
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$1 (file:/usr/share/maven/lib/guice.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] naked-objects [pom]
[INFO] naked-objects-dom [jar]
[INFO] naked-objects-fixture [jar]
[INFO] naked-objects-integtests [jar]
[INFO] naked-objects-webapp [war]
[INFO]
[INFO] ---------------------< com.iluwatar:naked-objects >---------------------
[INFO] Building naked-objects 1.22.0-SNAPSHOT [1/5]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ naked-objects ---
[INFO] Deleting /home/ilkka/java-design-patterns/naked-objects/target
[INFO]
[INFO] --- maven-checkstyle-plugin:3.1.0:check (validate) @ naked-objects ---
[INFO] Starting audit...
Audit done.
[INFO]
[INFO] --- jacoco-maven-plugin:0.8.4:prepare-agent (prepare-agent) @ naked-objects ---
[INFO] argLine set to -javaagent:/home/ilkka/.m2/repository/org/jacoco/org.jacoco.agent/0.8.4/org.jacoco.agent-0.8.4-runtime.jar=destfile=/home/ilkka/java-design-patterns/naked-objects/target/jacoco.exec
[INFO]
[INFO] >>> maven-pmd-plugin:3.12.0:check (default) > :pmd @ naked-objects >>>
[INFO]
[INFO] --- maven-pmd-plugin:3.12.0:pmd (pmd) @ naked-objects ---
[INFO]
[INFO] <<< maven-pmd-plugin:3.12.0:check (default) < :pmd @ naked-objects <<<
[INFO]
[INFO]
[INFO] --- maven-pmd-plugin:3.12.0:check (default) @ naked-objects ---
[INFO]
[INFO] --- maven-install-plugin:2.5.1:install (default-install) @ naked-objects ---
[INFO] Installing /home/ilkka/java-design-patterns/naked-objects/pom.xml to /home/ilkka/.m2/repository/com/iluwatar/naked-objects/1.22.0-SNAPSHOT/naked-objects-1.22.0-SNAPSHOT.pom
[INFO]
[INFO] --- license-maven-plugin:3.0:format (install-format) @ naked-objects ---
[INFO] Updating license headers...
[WARNING] Unknown file extension: /home/ilkka/java-design-patterns/naked-objects/etc/naked-objects.ucls
[WARNING] Unknown file extension: /home/ilkka/java-design-patterns/naked-objects/README
[WARNING] Unknown file extension: /home/ilkka/java-design-patterns/naked-objects/.gitattributes
[WARNING] Unable to find a comment style definition for some files. You may want to add a custom mapping for the relevant file extensions.
[INFO]
[INFO] -------------------< com.iluwatar:naked-objects-dom >-------------------
[INFO] Building naked-objects-dom 1.22.0-SNAPSHOT [2/5]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ naked-objects-dom ---
[INFO] Deleting /home/ilkka/java-design-patterns/naked-objects/dom/target
[INFO]
[INFO] --- maven-checkstyle-plugin:3.1.0:check (validate) @ naked-objects-dom ---
[INFO] Starting audit...
Audit done.
[INFO]
[INFO] --- jacoco-maven-plugin:0.8.4:prepare-agent (prepare-agent) @ naked-objects-dom ---
[INFO] argLine set to -javaagent:/home/ilkka/.m2/repository/org/jacoco/org.jacoco.agent/0.8.4/org.jacoco.agent-0.8.4-runtime.jar=destfile=/home/ilkka/java-design-patterns/naked-objects/dom/target/jacoco.exec
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ naked-objects-dom ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/ilkka/java-design-patterns/naked-objects/dom/src/main/resources
[INFO] Copying 5 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ naked-objects-dom ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 4 source files to /home/ilkka/java-design-patterns/naked-objects/dom/target/classes
DataNucleus : JDO Query - domainapp.dom.modules.simple.SimpleObject -> domainapp.dom.modules.simple.QSimpleObject
[INFO] /home/ilkka/java-design-patterns/naked-objects/dom/src/main/java/domainapp/dom/modules/simple/SimpleObject.java: /home/ilkka/java-design-patterns/naked-objects/dom/src/main/java/domainapp/dom/modules/simple/SimpleObject.java uses or overrides a deprecated API.
[INFO] /home/ilkka/java-design-patterns/naked-objects/dom/src/main/java/domainapp/dom/modules/simple/SimpleObject.java: Recompile with -Xlint:deprecation for details.
[INFO] /home/ilkka/java-design-patterns/naked-objects/dom/target/generated-sources/annotations/domainapp/dom/modules/simple/QSimpleObject.java: /home/ilkka/java-design-patterns/naked-objects/dom/target/generated-sources/annotations/domainapp/dom/modules/simple/QSimpleObject.java uses unchecked or unsafe operations.
[INFO] /home/ilkka/java-design-patterns/naked-objects/dom/target/generated-sources/annotations/domainapp/dom/modules/simple/QSimpleObject.java: Recompile with -Xlint:unchecked for details.
[INFO]
[INFO] --- datanucleus-maven-plugin:5.2.1:enhance (default) @ naked-objects-dom ---
[INFO] CP: /home/ilkka/.m2/repository/org/datanucleus/datanucleus-maven-plugin/5.2.1/datanucleus-maven-plugin-5.2.1.jar
[INFO] CP: /home/ilkka/.m2/repository/org/codehaus/plexus/plexus-utils/3.0.8/plexus-utils-3.0.8.jar
[INFO] CP: /home/ilkka/.m2/repository/org/apache/maven/maven-artifact/3.0.4/maven-artifact-3.0.4.jar
[INFO] CP: /home/ilkka/.m2/repository/org/apache/maven/maven-plugin-api/3.0.4/maven-plugin-api-3.0.4.jar
[INFO] CP: /home/ilkka/.m2/repository/org/apache/maven/maven-model/3.0.4/maven-model-3.0.4.jar
[INFO] CP: /home/ilkka/.m2/repository/org/sonatype/sisu/sisu-inject-plexus/2.3.0/sisu-inject-plexus-2.3.0.jar
[INFO] CP: /home/ilkka/.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar
[INFO] CP: /home/ilkka/.m2/repository/org/sonatype/sisu/sisu-inject-bean/2.3.0/sisu-inject-bean-2.3.0.jar
[INFO] CP: /home/ilkka/.m2/repository/org/sonatype/sisu/sisu-guice/3.1.0/sisu-guice-3.1.0-no_aop.jar
[INFO] CP: /home/ilkka/.m2/repository/org/sonatype/sisu/sisu-guava/0.9.9/sisu-guava-0.9.9.jar
[INFO] CP: /home/ilkka/.m2/repository/org/codehaus/plexus/plexus-container-default/1.5.5/plexus-container-default-1.5.5.jar
[INFO] CP: /home/ilkka/.m2/repository/org/codehaus/plexus/plexus-classworlds/2.2.2/plexus-classworlds-2.2.2.jar
[INFO] CP: /home/ilkka/.m2/repository/org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.jar
[INFO] CP: /home/ilkka/.m2/repository/log4j/log4j/1.2.12/log4j-1.2.12.jar
[INFO] CP: /home/ilkka/.m2/repository/commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.jar
[INFO] CP: /home/ilkka/.m2/repository/com/google/collections/google-collections/1.0/google-collections-1.0.jar
[INFO] CP: /home/ilkka/.m2/repository/junit/junit/3.8.2/junit-3.8.2.jar
[INFO] CP: /home/ilkka/java-design-patterns/naked-objects/dom/target/classes
[INFO] CP: /home/ilkka/.m2/repository/org/apache/isis/core/isis-core-applib/1.9.0/isis-core-applib-1.9.0.jar
[INFO] CP: /home/ilkka/.m2/repository/joda-time/joda-time/2.3/joda-time-2.3.jar
[INFO] CP: /home/ilkka/.m2/repository/org/apache/geronimo/specs/geronimo-atinject_1.0_spec/1.0/geronimo-atinject_1.0_spec-1.0.jar
[INFO] CP: /home/ilkka/.m2/repository/javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar
[INFO] CP: /home/ilkka/.m2/repository/org/apache/geronimo/specs/geronimo-jcdi_1.0_spec/1.0/geronimo-jcdi_1.0_spec-1.0.jar
[INFO] CP: /home/ilkka/.m2/repository/javax/jdo/jdo-api/3.1/jdo-api-3.1.jar
[INFO] CP: /home/ilkka/.m2/repository/javax/transaction/transaction-api/1.1/transaction-api-1.1.jar
[INFO] CP: /home/ilkka/.m2/repository/org/datanucleus/datanucleus-jdo-query/4.0.4/datanucleus-jdo-query-4.0.4.jar
[INFO] CP: /home/ilkka/.m2/repository/org/reflections/reflections/0.9.9/reflections-0.9.9.jar
[INFO] CP: /home/ilkka/.m2/repository/com/google/code/findbugs/annotations/2.0.1/annotations-2.0.1.jar
[INFO] CP: /home/ilkka/.m2/repository/com/google/guava/guava/19.0/guava-19.0.jar
[INFO] CP: /home/ilkka/.m2/repository/org/hamcrest/hamcrest-library/1.3/hamcrest-library-1.3.jar
[INFO] CP: /home/ilkka/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar
[INFO] CP: /home/ilkka/.m2/repository/org/datanucleus/datanucleus-core/4.1.2/datanucleus-core-4.1.2.jar
[INFO] CP: /home/ilkka/.m2/repository/org/datanucleus/datanucleus-jodatime/4.1.0-release/datanucleus-jodatime-4.1.0-release.jar
[INFO] CP: /home/ilkka/.m2/repository/org/datanucleus/datanucleus-api-jdo/4.1.0-release/datanucleus-api-jdo-4.1.0-release.jar
[INFO] CP: /home/ilkka/.m2/repository/org/slf4j/slf4j-api/1.7.28/slf4j-api-1.7.28.jar
[INFO] CP: /home/ilkka/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar
[INFO] CP: /home/ilkka/.m2/repository/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar
[INFO] CP: /home/ilkka/.m2/repository/com/sun/xml/bind/jaxb-impl/2.3.2/jaxb-impl-2.3.2.jar
[INFO] CP: /home/ilkka/.m2/repository/javax/xml/bind/jaxb-api/2.3.1/jaxb-api-2.3.1.jar
[INFO] CP: /home/ilkka/.m2/repository/javax/activation/javax.activation-api/1.2.0/javax.activation-api-1.2.0.jar
[INFO] CP: /home/ilkka/.m2/repository/org/javassist/javassist/3.25.0-GA/javassist-3.25.0-GA.jar
[INFO] CP: /home/ilkka/.m2/repository/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar
log4j:ERROR Could not read configuration file from URL [file:/home/ilkka/java-design-patterns/naked-objects/dom/log4j.properties].
java.io.FileNotFoundException: /home/ilkka/java-design-patterns/naked-objects/dom/log4j.properties (No such file or directory)
at java.base/java.io.FileInputStream.open0(Native Method)
at java.base/java.io.FileInputStream.open(FileInputStream.java:219)
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:112)
at java.base/sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:86)
at java.base/sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:184)
at java.base/java.net.URL.openStream(URL.java:1129)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:433)
at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:468)
at org.apache.log4j.LogManager.<clinit>(LogManager.java:122)
at org.apache.log4j.Logger.getLogger(Logger.java:104)
at org.datanucleus.util.Log4JLogger.<init>(Log4JLogger.java:49)
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 org.datanucleus.util.NucleusLogger.getLoggerInstance(NucleusLogger.java:237)
at org.datanucleus.util.NucleusLogger.<clinit>(NucleusLogger.java:205)
at org.datanucleus.enhancer.DataNucleusEnhancer.<clinit>(DataNucleusEnhancer.java:75)
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.datanucleus.maven.AbstractDataNucleusMojo.executeInJvm(AbstractDataNucleusMojo.java:345)
at org.datanucleus.maven.AbstractEnhancerMojo.enhance(AbstractEnhancerMojo.java:289)
at org.datanucleus.maven.AbstractEnhancerMojo.executeDataNucleusTool(AbstractEnhancerMojo.java:81)
at org.datanucleus.maven.AbstractDataNucleusMojo.execute(AbstractDataNucleusMojo.java:126)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148)
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:956)
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)
log4j:ERROR Ignoring configuration file [file:/home/ilkka/java-design-patterns/naked-objects/dom/log4j.properties].
log4j:WARN No appenders could be found for logger (DataNucleus.General).
log4j:WARN Please initialize the log4j system properly.
DataNucleus Enhancer (version 4.1.2) for API "JDO"
DataNucleus Enhancer : Classpath
>> /usr/share/maven/boot/plexus-classworlds-2.x.jar
ENHANCED (Persistable) : domainapp.dom.modules.simple.SimpleObject
DataNucleus Enhancer completed with success for 1 classes. Timings : input=106 ms, enhance=35 ms, total=141 ms. Consult the log for full details
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ naked-objects-dom ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/ilkka/java-design-patterns/naked-objects/dom/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ naked-objects-dom ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 2 source files to /home/ilkka/java-design-patterns/naked-objects/dom/target/test-classes
[INFO]
[INFO] --- maven-surefire-plugin:3.0.0-M3:test (default-test) @ naked-objects-dom ---
[INFO]
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running domainapp.dom.modules.simple.SimpleObjectTest
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.036 s - in domainapp.dom.modules.simple.SimpleObjectTest
[INFO] Running domainapp.dom.modules.simple.SimpleObjectsTest
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.093 s - in domainapp.dom.modules.simple.SimpleObjectsTest
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ naked-objects-dom ---
[INFO] Building jar: /home/ilkka/java-design-patterns/naked-objects/dom/target/naked-objects-dom-1.22.0-SNAPSHOT.jar
[INFO]
[INFO] >>> maven-pmd-plugin:3.12.0:check (default) > :pmd @ naked-objects-dom >>>
[INFO]
[INFO] --- maven-pmd-plugin:3.12.0:pmd (pmd) @ naked-objects-dom ---
[INFO]
[INFO] <<< maven-pmd-plugin:3.12.0:check (default) < :pmd @ naked-objects-dom <<<
[INFO]
[INFO]
[INFO] --- maven-pmd-plugin:3.12.0:check (default) @ naked-objects-dom ---
[INFO] PMD Failure: domainapp.dom.modules.simple.QSimpleObject:33 Rule:UnusedFormalParameter Priority:3 Avoid unused constructor parameters such as 'depth'..
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for naked-objects 1.22.0-SNAPSHOT:
[INFO]
[INFO] naked-objects ...................................... SUCCESS [ 1.856 s]
[INFO] naked-objects-dom .................................. FAILURE [ 5.043 s]
[INFO] naked-objects-fixture .............................. SKIPPED
[INFO] naked-objects-integtests ........................... SKIPPED
[INFO] naked-objects-webapp ............................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.242 s
[INFO] Finished at: 2019-10-10T23:44:06+03:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-pmd-plugin:3.12.0:check (default) on project naked-objects-dom: You have 1 PMD violation. For more details see: /home/ilkka/java-design-patterns/naked-objects/dom/target/pmd.xml -> [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/MojoFailureException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn <goals> -rf :naked-objects-dom
|
I also saw this problem in naked-objects, the problem is from a error threshold in the pmd-plugin. I get this error when building with jdk 8 as well and figured this was an unrelated issue. Are you not seeing this issue when building with jdk 8? |
|
Added a second rules file which fixes the pmd issue. Also, improved the dependencymanagement for jdk11 where I had previously not used dependency management but dependencies. |
|
@lbroman you are right, the naked-objects problem is an already existing one |
|
Full build output here: |
|
@lbroman please merge master so we can see Travis build output on openjdk8 and 11 |
Previous dependency relaxing commit causes xml libs to go missing from some modules that actually needed them
|
I have merged master and fixed the eip modules that didn't build properly. |
|
@lbroman the builds are green 👍 |
|
I suggest merging this PR first then make a new PR with change in language level, remove the jdk 8 travis builds and move the jdk11 specific profiles to top level dependencies in the maven poms. |
|
No problem, we can proceed with that approach. @lbroman can you create the new issue with the acceptance criteria you specified? |
|
Actually I realized we can just reuse the same issue so no action needed there |

Added maven profiles activated by jdk 11, wich will not break java 8 support.
Bumped lombok and datanucleus enhancer as the old versions dont work with 11.
Pull request title
Pull request description