I raised https://github.com/apache/activemq-artemis/pull/3186 to fix things to work forJDK8, move it to a profile to make it optional on JDK8, and enable it in CI. Still on by default in JDK11+.
Robbie On Tue, 16 Jun 2020 at 15:03, Robbie Gemmell <[email protected]> wrote: > > The additional couple minutes slowdown from forking only happens on JDK8, yes. > > The comparable couple minutes overhead from running with ErrorProne at > all happens across the board though. Given the extent I don't > personally think it's justified for every single build when it's on in > CI anyway, it seems more suited to enabling on demand. > > Robbie > > On Tue, 16 Jun 2020 at 13:46, Emmanuel Hugonnet <[email protected]> wrote: > > > > I would deactivate error-prone with JDK 8 and only 'run' it on CI via a > > proper activated profile. > > > > As far as I understand this is not an issue with JDK 11 so we should have > > it on per default on Java > = 11. > > > > Emmanuel > > > > Le 16/06/2020 à 14:34, Robbie Gemmell a écrit : > > > I have come to realise that the newer ErrorProne config for JDK8 added > > > as part of https://issues.apache.org/jira/browse/ARTEMIS-2109 doesn't > > > actually work presently, i.e it isn't running. I have prepared a > > > couple of alternative changes that do get it working again, but they > > > themselves have issues and have raised a question for me. > > > > > > One approach was to go back to the older style ErrorProne-specific > > > compiler approach when running on JDK8. The problem with that one is > > > it requires downgrading back to ErrorProne 2.3.4 as its the last that > > > supports that method. So that doesn't seem like a great idea as it > > > blocks upgrades. > > > > > > The other continues using the newer style javac plugin approach which > > > is being used for JDK11+ (and is required for 2.4.0+ generally) but > > > resolving the issues with the config for JDK8 to get it running there. > > > The concern with this one is that for the ErrorProne javac plugin to > > > be registered on JDK8 you must fork the compiler, which happens on > > > every execution of the maven plugin. This isn't speedy, and due to the > > > vast numbers of modules in the build this happens _a lot_, so it > > > really adds up. The forking appears to add nearing a couple of minutes > > > to the overall build, on top of the couple minutes running ErrorProne > > > looks to add itself. Between them the resulting build [only, with > > > skipTests] is about 2.5 times longer on JDK8 with this in place than > > > it is without ErrorProne in play at all. > > > > > > Having been through all this, I can't help wondering if it would be > > > worth setting things up with ErrorProne in a profile, activated if > > > enabled by a property. That could either be only for JDK8 (where it is > > > slowest due to all the forks), or for all the JDK versions. It would > > > still be set to always run in CI for PRs etc in any case. Thoughts? > > > > > > Robbie > > > > >
