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

Reply via email to