done 2012/11/8 Anders Hammar <and...@hammar.net>: > I've sent a pull requests which, IMHO, cleans things up in the javac part. > Mainly I've focused on having the success param of CompilerResult to signal > if the compilation is successful or not, regardless of if there are any > error messages or not. The old code always added a fake error message > (which we had to do with the old CompilerError object). > > This will also require changes to the current maven-compiler-plugin logic, > as it expects there to be an error message. It doesn't pay attention to the > success param of CompilerResult. I have this fixed locally and I'll commit > as soon as there is a new snapshot of plexus-compiler deployed. > > /Anders > > > On Mon, Oct 29, 2012 at 11:09 PM, Anders Hammar <and...@hammar.net> wrote: > >> I've added comments to the pull request itself. >> >> /Anders >> >> On Sun, Oct 28, 2012 at 10:42 PM, Olivier Lamy <ol...@apache.org> wrote: >> > Hi, >> > So have a look at those changes >> > https://github.com/sonatype/plexus-compiler/pull/10. >> > This break backward comp but as it will be easier in the future to >> > improve the compiler result without breaking backward comp. >> > >> > >> > >> > >> > 2012/10/19 Olivier Lamy <ol...@apache.org>: >> >> I think this change makes sense. >> >> But I know at least one external dependency: >> >> http://groovy.codehaus.org/Groovy-Eclipse+compiler+plugin+for+Maven >> >> >> >> I don't know if Andrew is listening here ? >> >> >> >> 2012/10/19 Anders Hammar <and...@hammar.net>: >> >>>> Changing the version number to 2.0 is not good enough to make >> >>>> incompatible changes, due to the working of dependency resolution. >> >>> >> >>> Sure it is, out of a configuration management perspective. Out of a >> >>> Maven dep resolution perspective it might not be optimal. Preserving >> >>> backwards compatibility is always desirable but sometimes it might >> >>> just not be possible or might come at a high cost. Not saying it's the >> >>> case here, but just generally speaking. >> >>> >> >>>> Maven will, of course, cheerfully and silently substitute 2.0 for 1.2 >> >>>> in a dependency tree, with unhappy result. You have to, of course, >> >>>> change the G or the A, and the package names, to allow interoperation. >> >>> >> >>> Wee, that would be even worse as Maven would then treat it as two >> >>> different artifacts while they contain the same classes. So only the >> >>> first one on the classpath will be used. >> >>> >> >>> But I understand the worries and that's why I asked if it known to be >> >>> used by anything other than m-compiler-p. If it isn't, and as we >> >>> control m-compiler-p, there is no problem doing backwards incompatible >> >>> changes. >> >>> I might be remembering wrong, but I think that someone proposed moving >> >>> the code to Apache Maven space and we could do the changes then >> >>> instead. >> >>> >> >>> Just to shed some light on why I think we should do this: >> >>> In some cases there aren't an error message returned by the compiler >> >>> even though the compilation did/should fail. Such a case is IIRC if >> >>> "-Werror" is configured, where compilation fails on warnings as well. >> >>> Today the plexus-compiler handles this by adding a fake error message >> >>> so that m-compiler-p will see an error message in the returned list of >> >>> messages. And then fail the plugin execution. Just not a pretty >> >>> solution which is actually currently buggy (stopped working in v1.9.2 >> >>> of plexus-compiler e.g.). >> >>> >> >>> /Anders >> >>> >> >>> >> >>>> >> >>>> I'm not trying to convince you do to this for plexus compiler, but I >> >>>> hate to leave an email thread lying about that gives the impression >> >>>> that bumping the version number a long distance is all it takes. >> >>>> >> >>>> >> >>>>> >> >>>>> /Anders >> >>>>> >> >>>>> On Fri, Oct 19, 2012 at 12:56 PM, Arnaud Héritier < >> aherit...@gmail.com> wrote: >> >>>>>> +1 to bump the compiler to 3.0 with this change >> >>>>>> >> >>>>>> On Fri, Oct 19, 2012 at 12:30 PM, Olivier Lamy <ol...@apache.org> >> wrote: >> >>>>>> >> >>>>>>> So as no objections it's now merged. >> >>>>>>> I bumped plexus-compiler version to 2.0-SNAPSHOT. >> >>>>>>> >> >>>>>>> As maven-compiler-plugin has a lot of changes (including >> incremental >> >>>>>>> stuff) I wonder about bump version to 3.0-SNAPSHOT ? >> >>>>>>> >> >>>>>>> 2012/10/18 Olivier Lamy <ol...@apache.org>: >> >>>>>>> > just FYI I have created a branch here >> >>>>>>> > https://github.com/sonatype/plexus-compiler/tree/PLXCOMP-1 >> >>>>>>> > This supports 1.5 and javax.tools if available in the user env. >> >>>>>>> > >> >>>>>>> > I have noticed some perf degradation testing the pull request >> >>>>>>> > https://github.com/sonatype/plexus-compiler/pull/6. >> >>>>>>> > Using JavaCompiler compiler = >> ToolProvider.getSystemJavaCompiler(); >> >>>>>>> > for each compilation is very slower. >> >>>>>>> > >> >>>>>>> > So I have tried to mimic similar stuff as done with current >> Javacc >> >>>>>>> > (the reuseStrategy see >> >>>>>>> > >> >>>>>>> >> http://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#compilerReuseStrategy >> >>>>>>> > ). NOTE that's a *very* basic pool mechanism :-). >> >>>>>>> > >> >>>>>>> > As I have no idea if the compiler is threadsafe or not (it's not >> >>>>>>> > documented to be thread safe in javadoc but at least javadoc >> samples >> >>>>>>> > says it can be reused for future compilation). Tests on my env >> (osx + >> >>>>>>> > java 1.6.0_37) looks to say yes. >> >>>>>>> > >> >>>>>>> > In compiler plugin (not committed yet), I have added a flag to >> disable >> >>>>>>> > use of javax.tools usage (as it if that breaks on some os/jdk >> users >> >>>>>>> > will be able to disable it even if that's detected to be usable) >> >>>>>>> > >> >>>>>>> > WDYT ? >> >>>>>>> > >> >>>>>>> > 2012/10/1 Stephen Connolly <stephen.alan.conno...@gmail.com>: >> >>>>>>> >> On 28 September 2012 18:15, John Casey <jdca...@commonjava.org> >> wrote: >> >>>>>>> >> >> >>>>>>> >>> On 9/28/12 12:08 PM, Mark Struberg wrote: >> >>>>>>> >>> >> >>>>>>> >>>> +1 >> >>>>>>> >>>> >> >>>>>>> >>>> Imo this comes hand in hand with moving maven-core to 1.6 as >> well and >> >>>>>>> a >> >>>>>>> >>>> version bump to mvn-3.2.0 or even mvn-3.5.0 >> >>>>>>> >>>> >> >>>>>>> >>>> We might create a documentation page about "Strategies for >> targeting >> >>>>>>> >>>> older Java versions" which outlines the animal-sniffer, etc >> >>>>>>> >>>> >> >>>>>>> >>>> LieGrue, >> >>>>>>> >>>> strub >> >>>>>>> >>>> >> >>>>>>> >>> >> >>>>>>> >>> I think the plugin could be a sort of advance guard for the >> core >> >>>>>>> itself, >> >>>>>>> >>> since people can still use the core + the older version of the >> compiler >> >>>>>>> >>> plugin to run on 1.5... >> >>>>>>> >>> >> >>>>>>> >>> I wouldn't want to get mired in a discussion about when we're >> going to >> >>>>>>> >>> move the core up to 1.6, since that's a bit more work. >> >>>>>>> >>> >> >>>>>>> >>> >> >>>>>>> >> There is the Toolchains issue. >> >>>>>>> >> >> >>>>>>> >> At present, AFAIK we can use Toolchains to run Maven with Java >> 1.6 and >> >>>>>>> >> compile with Java 1.3. >> >>>>>>> >> >> >>>>>>> >> Surefire supports running tests via toolchains down to Java 1.3 >> IIRC >> >>>>>>> >> >> >>>>>>> >> If we are doing something that makes this kind of thing >> impossible *even >> >>>>>>> >> via toolchains* then my feeling is that I am -1. >> >>>>>>> >> >> >>>>>>> >> If we can find a way (more indirection please, it solves all >> problems >> >>>>>>> don't >> >>>>>>> >> you know) to allow this to work *and* retain toolchains support >> for >> >>>>>>> >> compiling with JDK 1.3 then +1. >> >>>>>>> >> >> >>>>>>> >> >> >>>>>>> >>> >> >>>>>>> >>> >> >>>>>>> >>>> >> >>>>>>> >>>> >> >>>>>>> >>>> >> >>>>>>> >>>> ----- Original Message ----- >> >>>>>>> >>>> >> >>>>>>> >>>>> From: John Casey <jdca...@commonjava.org> >> >>>>>>> >>>>> To: Maven Developers List <dev@maven.apache.org> >> >>>>>>> >>>>> Cc: >> >>>>>>> >>>>> Sent: Friday, September 28, 2012 6:53 PM >> >>>>>>> >>>>> Subject: PLXCOMP-1 and improving compiler-message parsing >> >>>>>>> >>>>> >> >>>>>>> >>>>> Hi everyone, >> >>>>>>> >>>>> >> >>>>>>> >>>>> There's a new patch to the plexus-compiler libraries which >> improves >> >>>>>>> the >> >>>>>>> >>>>> parsing of the output messages, especially for annotation >> processing. >> >>>>>>> >>>>> Previously, a lot of non-error messages caused >> plexus-compiler (and >> >>>>>>> >>>>> thereby, >> >>>>>>> >>>>> Maven) to think a compilation error had occurred. The patch >> fixes >> >>>>>>> this >> >>>>>>> >>>>> by using >> >>>>>>> >>>>> the javax.tools APIs to work with in-process compilation. >> >>>>>>> >>>>> >> >>>>>>> >>>>> The patch is here: >> >>>>>>> >>>>> >> >>>>>>> >>>>> https://github.com/sonatype/**plexus-compiler/pull/6< >> >>>>>>> https://github.com/sonatype/plexus-compiler/pull/6> >> >>>>>>> >>>>> >> >>>>>>> >>>>> >> >>>>>>> >>>>> The issue is here (it's been out there for a LONG time, as >> you can >> >>>>>>> see: >> >>>>>>> >>>>> >> >>>>>>> >>>>> http://jira.codehaus.org/**browse/PLXCOMP-1< >> >>>>>>> http://jira.codehaus.org/browse/PLXCOMP-1> >> >>>>>>> >>>>> >> >>>>>>> >>>>> >> >>>>>>> >>>>> The javax.tools APIs are JDK 1.6+ IIRC, so merging this >> patch would >> >>>>>>> >>>>> effectively >> >>>>>>> >>>>> drag the future of the maven-compiler-plugin up to requiring >> JDK 1.6. >> >>>>>>> >>>>> Personally, since JDK 1.5 has been out almost as long as >> I've been >> >>>>>>> coding >> >>>>>>> >>>>> (well, not too far), I don't see the problem. Remember, >> we're not >> >>>>>>> asking >> >>>>>>> >>>>> people to upgrade their production VM, only the build-time >> >>>>>>> version...and >> >>>>>>> >>>>> we have >> >>>>>>> >>>>> documented strategies for targeting older VM versions >> successfully. >> >>>>>>> >>>>> >> >>>>>>> >>>>> We might look at strategies for degrading gracefully in case >> someone >> >>>>>>> is >> >>>>>>> >>>>> using >> >>>>>>> >>>>> JDK 1.5, but IMO we need to be very careful about this. For >> >>>>>>> instance, I >> >>>>>>> >>>>> wouldn't want people to wind up with unexplained, random new >> errors >> >>>>>>> >>>>> because >> >>>>>>> >>>>> they accidentally set their $PATH wrong. But maybe we could >> give >> >>>>>>> them a >> >>>>>>> >>>>> large >> >>>>>>> >>>>> warning then switch over to forked-mode compilation in this >> case? >> >>>>>>> >>>>> >> >>>>>>> >>>>> I'd really hate to see this patch go unmerged because we're >> stuck >> >>>>>>> >>>>> supporting JDK 1.5...or if we do reject it on these grounds, >> maybe we >> >>>>>>> >>>>> need to >> >>>>>>> >>>>> talk about when it's reasonable to jump ship on 1.5 if not >> now? >> >>>>>>> >>>>> >> >>>>>>> >>>>> I'd LIKE to merge this patch, release plexus-compiler, and >> document >> >>>>>>> how >> >>>>>>> >>>>> to >> >>>>>>> >>>>> use it as a plugin-level dependency...then make the move to >> 1.6 for >> >>>>>>> the >> >>>>>>> >>>>> compiler >> >>>>>>> >>>>> plugin. >> >>>>>>> >>>>> >> >>>>>>> >>>>> Thoughts? >> >>>>>>> >>>>> >> >>>>>>> >>>>> -john >> >>>>>>> >>>>> >> >>>>>>> >>>>> -- John Casey >> >>>>>>> >>>>> Developer, PMC Member - Apache Maven ( >> http://maven.apache.org) >> >>>>>>> >>>>> GitHub - http://github.com/jdcasey >> >>>>>>> >>>>> >> >>>>>>> >>>>> >> ------------------------------**------------------------------** >> >>>>>>> >>>>> --------- >> >>>>>>> >>>>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.**org< >> >>>>>>> dev-unsubscr...@maven.apache.org> >> >>>>>>> >>>>> For additional commands, e-mail: dev-h...@maven.apache.org >> >>>>>>> >>>>> >> >>>>>>> >>>>> >> >>>>>>> >>>> >> >>>>>>> >> ------------------------------**------------------------------**--------- >> >>>>>>> >>>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.**org< >> >>>>>>> dev-unsubscr...@maven.apache.org> >> >>>>>>> >>>> For additional commands, e-mail: dev-h...@maven.apache.org >> >>>>>>> >>>> >> >>>>>>> >>>> >> >>>>>>> >>> >> >>>>>>> >>> -- >> >>>>>>> >>> John Casey >> >>>>>>> >>> Developer, PMC Member - Apache Maven (http://maven.apache.org) >> >>>>>>> >>> GitHub - http://github.com/jdcasey >> >>>>>>> >>> >> >>>>>>> >>> >> >>>>>>> >> ------------------------------**------------------------------**--------- >> >>>>>>> >>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.**org< >> >>>>>>> dev-unsubscr...@maven.apache.org> >> >>>>>>> >>> For additional commands, e-mail: dev-h...@maven.apache.org >> >>>>>>> >>> >> >>>>>>> >>> >> >>>>>>> > >> >>>>>>> > >> >>>>>>> > >> >>>>>>> > -- >> >>>>>>> > Olivier Lamy >> >>>>>>> > Talend: http://coders.talend.com >> >>>>>>> > http://twitter.com/olamy | http://linkedin.com/in/olamy >> >>>>>>> >> >>>>>>> >> >>>>>>> >> >>>>>>> -- >> >>>>>>> Olivier Lamy >> >>>>>>> Talend: http://coders.talend.com >> >>>>>>> http://twitter.com/olamy | http://linkedin.com/in/olamy >> >>>>>>> >> >>>>>>> >> --------------------------------------------------------------------- >> >>>>>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org >> >>>>>>> For additional commands, e-mail: dev-h...@maven.apache.org >> >>>>>>> >> >>>>>>> >> >>>>>> >> >>>>>> >> >>>>>> -- >> >>>>>> ----- >> >>>>>> Arnaud Héritier >> >>>>>> 06-89-76-64-24 >> >>>>>> http://aheritier.net >> >>>>>> Mail/GTalk: aherit...@gmail.com >> >>>>>> Twitter/Skype : aheritier >> >>>>> >> >>>>> --------------------------------------------------------------------- >> >>>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org >> >>>>> For additional commands, e-mail: dev-h...@maven.apache.org >> >>>>> >> >>>> >> >>>> --------------------------------------------------------------------- >> >>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org >> >>>> For additional commands, e-mail: dev-h...@maven.apache.org >> >>>> >> >>> >> >>> --------------------------------------------------------------------- >> >>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org >> >>> For additional commands, e-mail: dev-h...@maven.apache.org >> >>> >> >> >> >> >> >> >> >> -- >> >> Olivier Lamy >> >> Talend: http://coders.talend.com >> >> http://twitter.com/olamy | http://linkedin.com/in/olamy >> > >> > >> > >> > -- >> > Olivier Lamy >> > Talend: http://coders.talend.com >> > http://twitter.com/olamy | http://linkedin.com/in/olamy >> > >> > --------------------------------------------------------------------- >> > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org >> > For additional commands, e-mail: dev-h...@maven.apache.org >> > >>
-- Olivier Lamy Talend: http://coders.talend.com http://twitter.com/olamy | http://linkedin.com/in/olamy --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org For additional commands, e-mail: dev-h...@maven.apache.org