OK, I can change JDK per module. Now I cannot build log4j-jmx-gui since the class com.sun.tools.jconsole.JConsolePlugin (used in our ClientGuiJConsolePlugin) doesn't seem to work with JDK 9. I tried to set that module to JDK 7, but it doesn't help.
It is not good that we break a popular IDE like IntelliJ IDEA in this way. That might scare away potential developers. On Wed, Apr 26, 2017 at 6:02 PM, Ralph Goers <ralph.go...@dslextreme.com> wrote: > Sure you can. In the project settings select the module. You can change it > there. > > Ralph > > > On Apr 26, 2017, at 7:35 AM, Mikael Ståldal <mikael.stal...@magine.com> > wrote: > > > > I don't think you can specify different JDK:s for different modules with > > IntelliJ. You can specify different source and target levels, but that > > doesn't help here. Even though I set log4j-perf to 1.7, I get that error. > > > > On Wed, Apr 26, 2017 at 4:13 PM, Ralph Goers <ralph.go...@dslextreme.com > > > > wrote: > > > >> You could compile the api module with Java 9 and the rest with Java 7. > >> Until the module-info.java files are added the api module is the only > thing > >> that has Java 9 code in it. > >> > >> Ralph > >> > >>> On Apr 26, 2017, at 6:55 AM, Mikael Ståldal <mikael.stal...@magine.com > > > >> wrote: > >>> > >>> I was able to get log4j-api to build by manually installing JDK 9 and > >>> setting JDK 9 for that module. But now it fails in log4j-perf with the > >>> error below. > >>> > >>> Maybe related to https://bugs.openjdk.java.net/browse/JDK-8152842 > >>> > >>> Error:java: Annotation generator had thrown the exception. > >>> java.lang.NoClassDefFoundError: javax/annotation/Generated > >>> at > >>> org.openjdk.jmh.generators.core.BenchmarkGenerator.generateImport( > >> BenchmarkGenerator.java:564) > >>> at > >>> org.openjdk.jmh.generators.core.BenchmarkGenerator.generateClass( > >> BenchmarkGenerator.java:522) > >>> at > >>> org.openjdk.jmh.generators.core.BenchmarkGenerator. > >> generate(BenchmarkGenerator.java:117) > >>> at > >>> org.openjdk.jmh.generators.BenchmarkProcessor.process( > >> BenchmarkProcessor.java:52) > >>> at > >>> jdk.compiler/com.sun.tools.javac.processing. > JavacProcessingEnvironment. > >> callProcessor(JavacProcessingEnvironment.java:968) > >>> at > >>> jdk.compiler/com.sun.tools.javac.processing. > JavacProcessingEnvironment. > >> discoverAndRunProcs(JavacProcessingEnvironment.java:884) > >>> at > >>> jdk.compiler/com.sun.tools.javac.processing. > JavacProcessingEnvironment. > >> access$2200(JavacProcessingEnvironment.java:108) > >>> at > >>> jdk.compiler/com.sun.tools.javac.processing. > JavacProcessingEnvironment$ > >> Round.run(JavacProcessingEnvironment.java:1206) > >>> at > >>> jdk.compiler/com.sun.tools.javac.processing. > JavacProcessingEnvironment. > >> doProcessing(JavacProcessingEnvironment.java:1315) > >>> at > >>> jdk.compiler/com.sun.tools.javac.main.JavaCompiler.processAnnotations( > >> JavaCompiler.java:1246) > >>> at > >>> jdk.compiler/com.sun.tools.javac.main.JavaCompiler. > >> compile(JavaCompiler.java:922) > >>> at > >>> jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl. > >> lambda$doCall$0(JavacTaskImpl.java:100) > >>> at > >>> jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.handleExceptions( > >> JavacTaskImpl.java:142) > >>> at > >>> jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl. > >> doCall(JavacTaskImpl.java:96) > >>> at > >>> jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.call( > >> JavacTaskImpl.java:90) > >>> at org.jetbrains.jps.javac.JavacMain.compile(JavacMain.java:185) > >>> at > >>> org.jetbrains.jps.incremental.java.JavaBuilder.compileJava( > >> JavaBuilder.java:475) > >>> at > >>> org.jetbrains.jps.incremental.java.JavaBuilder.compile( > >> JavaBuilder.java:331) > >>> at > >>> org.jetbrains.jps.incremental.java.JavaBuilder.doBuild( > >> JavaBuilder.java:249) > >>> at > >>> org.jetbrains.jps.incremental.java.JavaBuilder.build( > >> JavaBuilder.java:213) > >>> at > >>> org.jetbrains.jps.incremental.IncProjectBuilder. > runModuleLevelBuilders( > >> IncProjectBuilder.java:1263) > >>> at > >>> org.jetbrains.jps.incremental.IncProjectBuilder.runBuildersForChunk( > >> IncProjectBuilder.java:940) > >>> at > >>> org.jetbrains.jps.incremental.IncProjectBuilder.buildTargetsChunk( > >> IncProjectBuilder.java:1012) > >>> at > >>> org.jetbrains.jps.incremental.IncProjectBuilder.buildChunkIfAffected( > >> IncProjectBuilder.java:903) > >>> at > >>> org.jetbrains.jps.incremental.IncProjectBuilder.buildChunks( > >> IncProjectBuilder.java:736) > >>> at > >>> org.jetbrains.jps.incremental.IncProjectBuilder.runBuild( > >> IncProjectBuilder.java:384) > >>> at > >>> org.jetbrains.jps.incremental.IncProjectBuilder.build( > >> IncProjectBuilder.java:192) > >>> at org.jetbrains.jps.cmdline.BuildRunner.runBuild( > BuildRunner.java:138) > >>> at org.jetbrains.jps.cmdline.BuildSession.runBuild( > >> BuildSession.java:295) > >>> at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:125) > >>> at > >>> org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler. > >> lambda$channelRead0$0(BuildMain.java:236) > >>> at > >>> org.jetbrains.jps.service.impl.SharedThreadPoolImpl. > >> lambda$executeOnPooledThread$0(SharedThreadPoolImpl.java:42) > >>> at > >>> java.base/java.util.concurrent.Executors$RunnableAdapter.call( > >> Executors.java:514) > >>> at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) > >>> at > >>> java.base/java.util.concurrent.ThreadPoolExecutor. > >> runWorker(ThreadPoolExecutor.java:1161) > >>> at > >>> java.base/java.util.concurrent.ThreadPoolExecutor$ > >> Worker.run(ThreadPoolExecutor.java:635) > >>> at java.base/java.lang.Thread.run(Thread.java:844) > >>> Caused by: java.lang.ClassNotFoundException: > javax.annotation.Generated > >>> at java.base/java.net.URLClassLoader.findClass( > URLClassLoader.java:466) > >>> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:540) > >>> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:473) > >>> ... 37 more > >>> > >>> On Wed, Apr 26, 2017 at 3:03 PM, Apache <ralph.go...@dslextreme.com> > >> wrote: > >>> > >>>> You could try using java 9 > >>>> > >>>> Sent from my iPad > >>>> > >>>>> On Apr 26, 2017, at 2:20 AM, Mikael Ståldal < > mikael.stal...@magine.com > >>> > >>>> wrote: > >>>>> > >>>>> Now I cannot build the project in IntelliJ IDEA anymore. It complains > >>>> that > >>>>> lambda expressions are not supported in Java 7 in > >>>> StackWalkerStackLocator. > >>>>> > >>>>> Any suggestions? > >>>>> > >>>>> On Fri, Apr 21, 2017 at 10:59 AM, Mikael Ståldal < > >>>> mikael.stal...@magine.com> > >>>>> wrote: > >>>>> > >>>>>> Should the vendor of the Java 7, 8 and 9 toolchains be "sun"? > >> Shouldn't > >>>> it > >>>>>> be "oracle"? > >>>>>> > >>>>>>> On Fri, Apr 21, 2017 at 9:26 AM, Matt Sicker <boa...@gmail.com> > >> wrote: > >>>>>>> > >>>>>>> 🎉🎉🎉 > >>>>>>> > >>>>>>> On 21 April 2017 at 01:41, Ralph Goers <ralph.go...@dslextreme.com > > > >>>>>>> wrote: > >>>>>>> > >>>>>>>> I’ve pushed the support for Java 9 and Stackwalker. Java 9 is now > >>>>>>> required > >>>>>>>> to build Log4j in addition to Java 7. > >>>>>>>> > >>>>>>>> Ralph > >>>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> -- > >>>>>>> Matt Sicker <boa...@gmail.com> > >>>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> -- > >>>>>> [image: MagineTV] > >>>>>> > >>>>>> *Mikael Ståldal* > >>>>>> Senior software developer > >>>>>> > >>>>>> *Magine TV* > >>>>>> mikael.stal...@magine.com > >>>>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com > >>>>>> > >>>>>> Privileged and/or Confidential Information may be contained in this > >>>>>> message. If you are not the addressee indicated in this message > >>>>>> (or responsible for delivery of the message to such a person), you > may > >>>> not > >>>>>> copy or deliver this message to anyone. In such case, > >>>>>> you should destroy this message and kindly notify the sender by > reply > >>>>>> email. > >>>>>> > >>>>> > >>>>> > >>>>> > >>>>> -- > >>>>> [image: MagineTV] > >>>>> > >>>>> *Mikael Ståldal* > >>>>> Senior software developer > >>>>> > >>>>> *Magine TV* > >>>>> mikael.stal...@magine.com > >>>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com > >>>>> > >>>>> Privileged and/or Confidential Information may be contained in this > >>>>> message. If you are not the addressee indicated in this message > >>>>> (or responsible for delivery of the message to such a person), you > may > >>>> not > >>>>> copy or deliver this message to anyone. In such case, > >>>>> you should destroy this message and kindly notify the sender by reply > >>>>> email. > >>>> > >>>> > >>>> > >>> > >>> > >>> -- > >>> [image: MagineTV] > >>> > >>> *Mikael Ståldal* > >>> Senior software developer > >>> > >>> *Magine TV* > >>> mikael.stal...@magine.com > >>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com > >>> > >>> Privileged and/or Confidential Information may be contained in this > >>> message. If you are not the addressee indicated in this message > >>> (or responsible for delivery of the message to such a person), you may > >> not > >>> copy or deliver this message to anyone. In such case, > >>> you should destroy this message and kindly notify the sender by reply > >>> email. > >> > >> > >> > > > > > > -- > > [image: MagineTV] > > > > *Mikael Ståldal* > > Senior software developer > > > > *Magine TV* > > mikael.stal...@magine.com > > Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com > > > > Privileged and/or Confidential Information may be contained in this > > message. If you are not the addressee indicated in this message > > (or responsible for delivery of the message to such a person), you may > not > > copy or deliver this message to anyone. In such case, > > you should destroy this message and kindly notify the sender by reply > > email. > > > -- [image: MagineTV] *Mikael Ståldal* Senior software developer *Magine TV* mikael.stal...@magine.com Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com Privileged and/or Confidential Information may be contained in this message. If you are not the addressee indicated in this message (or responsible for delivery of the message to such a person), you may not copy or deliver this message to anyone. In such case, you should destroy this message and kindly notify the sender by reply email.