I mentioned to Kristian that it wouldn't be hard to fix and that I would fix it before we released. Just been traveling this week. I'll fix it this weekend when I get home.
On Dec 7, 2012, at 6:04 AM, Benson Margulies <bimargul...@gmail.com> wrote: > As I see it, the vote bogged down because Kristian found problems, and > I haven't seen clear evidence that those problems are sorted out. I'd > be happy to vote +1 with respect to all the design questions for the > release 'as is'. > > On Fri, Dec 7, 2012 at 9:00 AM, Mark Struberg <strub...@yahoo.de> wrote: >> good idea, Benson. >> >> Btw, this VOTE did not get enough +1 in more than a week. And this is not >> because not enough people took care if you look at the plenty of comments in >> the thread. >> >> 1.) Do people have any technical comment on my proposal to introduce a new >> plugin-plugin flag for exposing slf4j? Is there any technical problem with >> that? >> >> Are there other proposals which might help increasing backward compatibility? >> >> >> >> 2.) what about the coloured logger with log4j2? I tried it locally and it >> worked great. What is the status? (Sorry if I missed something) >> >> >> >> LieGrue, >> strub >> >> >> >> ----- Original Message ----- >>> From: Benson Margulies <bimargul...@gmail.com> >>> To: Maven Developers List <dev@maven.apache.org> >>> Cc: >>> Sent: Friday, December 7, 2012 2:28 PM >>> Subject: Re: [VOTE] Maven 3.1.0 >>> >>> Could we please find an appropriate subject line for this debate, >>> unless you all are really discussing this design question as part of >>> the (still?) outstanding vote on 3.1.0? >>> >>> >>> On Fri, Dec 7, 2012 at 8:12 AM, Gary Gregory <garydgreg...@gmail.com> >>> wrote: >>>> Another way of looking at this is whether this kind of behavior change in >>>> appropriate for a minor release, instead of a major release. >>>> >>>> >>>> On Fri, Dec 7, 2012 at 7:57 AM, Mark Struberg <strub...@yahoo.de> >>> wrote: >>>> >>>>> Daniel, please think through these old project scenarios. Those old >>>>> projects did ship their own slf4j impl + config and parsed their own >>> logs >>>>> and extracted information. They will now just fall on their knees >>> because >>>>> the logs are no longer available for them. Instead they will be >>> somewhere >>>>> in the maven logs which could be anywhere from a plugin point of view. >>>>> >>>>> >>>>> This is not fixed, this is broken imo. >>>>> >>>>> LieGrue, >>>>> strub >>>>> >>>>> >>>>> >>>>> ----- Original Message ----- >>>>>> From: Daniel Kulp <dk...@apache.org> >>>>>> To: Maven Developers List <dev@maven.apache.org> >>>>>> Cc: >>>>>> Sent: Friday, December 7, 2012 1:49 PM >>>>>> Subject: Re: [VOTE] Maven 3.1.0 >>>>>> >>>>>> >>>>>>> >>>>>>> Again the state of affairs of 3.1.0 today: old projects and >>> plugins >>>>> which >>>>>> didnt use slf4j so far don't get any benefit from forcing >>> slf4j on them. >>>>> And >>>>>> old projects and plugins which _did_ use slf4j already are now >>> broken >>>>> with the >>>>>> current trunk. I cannot see how we can seriously release this to >>> users >>>>> right >>>>>> now. >>>>>> >>>>>> >>>>>> >>>>>> I don't consider them broken. I consider them fixed. Old >>> plugins >>>>> that >>>>>> use SLF4J now get there information properly integrated with the >>> rest of >>>>> the >>>>>> maven information. >>>>>> >>>>>> >>>>>> Dan >>>>>> >>>>>> >>>>>> >>>>>> On Dec 7, 2012, at 7:32 AM, Mark Struberg >>> <strub...@yahoo.de> wrote: >>>>>> >>>>>>>> The final proposal that I see is where we give a metadata >>> flag >>>>>>> (defaults to false) >>>>>>>> which if true sets up an isolated classloader for >>>>>>> the plugin allowing the plugin to use its own slf4j >>>>>>> >>>>>>> Stephen, this is _almost_ the same as I proposed a month ago. >>> But I'd >>>>>> do it the other way around as this would be perfectly backward >>>>> compatible. >>>>>>> >>>>>>> I'll try to explain again what I propose: >>>>>>> >>>>>>> Any plugin could e.g. use a @Slf4JLogger in it's mojo. >>> The >>>>>> plugin-plugin would transfer this to a >>> <useSlf4j>true</useSlf4j> >>>>>> inside the plugin.xml. >>>>>>> In this case, and _only_ in this case we would expose our >>> internal >>>>> SLF4J to >>>>>> the plugin. >>>>>>> >>>>>>> >>>>>>> Older plugins do not need it anyway as they do not use the >>>>> maven-provided >>>>>> slf4j yet! >>>>>>> >>>>>>> >>>>>>> This is a win-win solution imo: >>>>>>> * old integration and plugins will still work >>>>>>> * new plugins can use slf4j for logging via maven >>>>>>> >>>>>>> >>>>>>> Again the state of affairs of 3.1.0 today: old projects and >>> plugins >>>>> which >>>>>> didnt use slf4j so far don't get any benefit from forcing >>> slf4j on them. >>>>> And >>>>>> old projects and plugins which _did_ use slf4j already are now >>> broken >>>>> with the >>>>>> current trunk. I cannot see how we can seriously release this to >>> users >>>>> right >>>>>> now. >>>>>>> >>>>>>> LieGrue, >>>>>>> strub >>>>>>> >>>>>>> >>>>>>>> ________________________________ >>>>>>>> From: Stephen Connolly >>> <stephen.alan.conno...@gmail.com> >>>>>>>> To: Maven Developers List <dev@maven.apache.org>; >>> Mark Struberg >>>>>> <strub...@yahoo.de> >>>>>>>> Sent: Friday, December 7, 2012 12:48 PM >>>>>>>> Subject: Re: [VOTE] Maven 3.1.0 >>>>>>>> >>>>>>>> >>>>>>>> But not all of those *need to*. At least until now they >>> have needed >>>>> to, >>>>>> but going forward they may not need to if we are giving them an >>> slf4j >>>>> impl to >>>>>> hang their hat off. >>>>>>>> >>>>>>>> >>>>>>>> There will always be some special case plugins that have >>> a legitimate >>>>>> need to do funky logging stuff. We need a strategy for those >>> plugins. >>>>>>>> >>>>>>>> >>>>>>>> Jason's proposal for those cases was that they should >>> fork a JVM. >>>>>> That works if you don't need to channel objects back and >>> forth. For some >>>>> of >>>>>> the plugins wanting to do 'live development' style work (I >>> am thinking >>>>>> my jszip.org experiments - I have some plans and experiments that >>> I >>>>> haven't >>>>>> even pushed to there yet ;-) ) forking a JVM is a bad plan, as you >>> then >>>>> have to >>>>>> basically resort to RMI to control the forked JVM... More ports >>> and more >>>>> sockets >>>>>> and more complexity. >>>>>>>> >>>>>>>> >>>>>>>> The next step I could see is building a fresh classloader >>> up from >>>>>> scratch within the plugin. That *should* work as long as we load a >>> fresh >>>>> set of >>>>>> slf4j-api classes (ceki?) then we are initialising slf4j a second >>> time >>>>> in the >>>>>> fresh classloader and we can do as we need. Again complex though >>> one >>>>> could argue >>>>>> less complex than the RMI route. Plugin developers following this >>> route >>>>> will >>>>>> have to watch out for the dreaded CCE but at least you are not >>> having to >>>>> deal >>>>>> with object serialisation and RMI >>>>>>>> >>>>>>>> >>>>>>>> The final proposal that I see is where we give a metadata >>> flag >>>>>> (defaults to false) which if true sets up an isolated classloader >>> for >>>>> the plugin >>>>>> allowing the plugin to use its own slf4j >>>>>>>> >>>>>>>> >>>>>>>> Note that each proposal above retains the option for >>> plugin developers >>>>>> to use the previous proposal. >>>>>>>> >>>>>>>> >>>>>>>> My vote is that we need to provide a utility library that >>> makes the >>>>>> first and second proposals facile for plugin developers and we >>> should >>>>> probably >>>>>> enable the third option also. >>>>>>>> >>>>>>>> >>>>>>>> The correct respecting of tool chains support requires >>> plugin >>>>>> developers to follow the first route if a tool chain JVM is >>> applied to >>>>> their >>>>>> plugin and to use the second when no tool chain JVM is in play... >>> At >>>>> least for >>>>>> the jetty:run and tomcat:run style plugins. >>>>>>>> >>>>>>>> >>>>>>>> For the sonar style plugins, and my gut says the vast >>> majority of >>>>> these >>>>>> use cases the most they will need is the third proposal. Without >>> seeing a >>>>>> maven-fork-utils api I cannot say that we don't need the third >>> proposal, >>>>> so >>>>>> I am forced to conclude that we should support it... IOW I think >>> we need >>>>> a >>>>>> metadata flag. >>>>>>>> >>>>>>>> >>>>>>>> -Stephen >>>>>>>> >>>>>>>> On Friday, 7 December 2012, Mark Struberg wrote: >>>>>>>> >>>>>>>> basically all stuff which integrates maven does *funky >>> logging >>>>>> stuff*... >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> ----- Original Message ----- >>>>>>>>>> From: Anders Hammar <and...@hammar.net> >>>>>>>>>> To: Maven Developers List >>> <dev@maven.apache.org> >>>>>>>>>> Cc: >>>>>>>>>> Sent: Friday, December 7, 2012 7:25 AM >>>>>>>>>> Subject: Re: [VOTE] Maven 3.1.0 >>>>>>>>>> >>>>>>>>>>> I'm interested to help working on adding >>> a metadata to >>>>>> enable slf4j >>>>>>>>>>> visibility >>>>>>>>>>> from a plugin: by default, slf4j is not >>> visible, plugins >>>>>> are expected to >>>>>>>>>>> use >>>>>>>>>>> plugin-api's Log. But if the plugin >>> wants to use >>>>>> core's slf4j, he >>>>>>>>>> would be >>>>>>>>>>> able to add an annotation in the goal >>> requiring shared >>>>>> core slf4j, then the >>>>>>>>>>> plugin descriptor would enable slf4j api >>> import from core. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> *If* we go this path, I think the default should >>> be the other >>>>>> way around. >>>>>>>>>> I.e., the default would be to use core's >>> slf4j and it's >>>>>> impl. So the >>>>>>>>>> plugin >>>>>>>>>> developer needs to do an active choice to go >>> outside >>>>>> Maven's logging. Sure, >>>>>>>>>> this could imply problems with existing plugins >>> doing funky >>>>>> logging stuff >>>>>>>>>> (like the Sonar plugin), but I don't really >>> see a problem >>>>>> with those >>>>>>>>>> plugins having to release a new version. I think >>> it's more >>>>>> important that >>>>>>>>>> we get good defaults than trying to make every >>> existing plugin >>>>>> work as they >>>>>>>>>> are implemented right now. >>>>>>>>>> >>>>>>>>>> /Anders >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Stephen: is this what you have in mind? >>>>>>>>>>> >>>>>>>>>>> Regards, >>>>>>>>>>> >>>>>>>>>>> Hervé >>>>>>>>>>> >>>>>>>>>>> Le vendredi 30 novembre 2012 12:20:35 >>> Stephen Connolly a >>>>>> écrit : >>>>>>>>>>>> I tend to agree. There are two >>> use-cases I see that a >>>>>> plugin has for >>>>>>>>>>>> bundling a logging implementation: >>>>>>>>>>>> >>>>>>>>>>>> 1. They are wanting to shunt the logs >>> from the build >>>>>> tool they are >>>>>>>>>>> invoking >>>>>>>>>>>> on to the user. Typically if they are >>> being good >>>>>> plugins they just >>>>>>>>>> take >>>>>>>>>>> the >>>>>>>>>>>> logging output and shunt it onto >>>>>> org.apache.maven.plugin.Log.info() >>>>>>>>>>>> >>>>>>>>>>>> 2. They are wanting to shunt the logs >>> from the build >>>>>> tool (or more >>>>>>>>>> likely >>>>>>>>>>>> app server) to a separate file, or >>> tweak the level of >>>>>> logs higher than >>>>>>>>>>> INFO >>>>>>>>>>>> for that app server/mojo execution as >>> it will just >>>>>> drown the user. >>>>>>>>>>>> >>>>>>>>>>>> In the first use case, Jason's >>> point is correct. >>>>>> They >>>>>>>>>> shouldn't need to >>>>>>>>>>>> bundle a logging implementation any >>> more. >>>>>>>>>>>> >>>>>>>>>>>> The second case, Jason is arguing that >>> they >>>>>> shouldn't be using the >>>>>>>>>> Maven >>>>>>>>>>>> JVM for running that tool, they should >>> be running it >>>>>> in a forked JVM >>>>>>>>>> and >>>>>>>>>>>> then they can configure the logging in >>> that JVM. I >>>>>> disagree. Forking a >>>>>>>>>>> JVM >>>>>>>>>>>> for every little build tool just to >>> control its >>>>>> logging is going to >>>>>>>>>> kill >>>>>>>>>>>> the build time. >>>>>>>>>>>> >>>>>>>>>>>> My preference is for a metadata flag >>> that says: Oy! I >>>>>> know what >>>>>>>>>> I'm doing >>>>>>>>>>>> with logging, so don't pass logging >>> on to me. >>>>>>>>>>>> >>>>>>>>>>>> While it feels like a "special >>> case" the >>>>>> truth is logging is >>>>>>>>>> always, and >>>>>>>>>>>> always will be, a special case! >>>>>>>>>>>> >>>>>>>>>>>> -Stephen >>>>>>>>>>>> >>>>>>>>>>>> On 30 November 2012 12:09, Benson >>> Margulies >>>>>>>>>> <bimargul...@gmail.com> >>>>>>>>>>> wrote: >>>>>>>>>>>>> On Thu, Nov 29, 2012 at 11:05 PM, >>> Jason van Zyl >>>>>>>>>> <ja...@tesla.io> >>>>>>>>>>> wrote: >>>>>>>>>>>>>> On Nov 29, 2012, at 5:56 PM, >>> Benson >>>>>> Margulies >>>>>>>>>> <bimargul...@gmail.com >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>> Currently I'm of >>> the mind that >>>>>> if you make a >>>>>>>>>> Maven plugin that uses >>>>>>>>>>>>> >>>>>>>>>>>>> something that employs SLF4J then >>> the best >>>>>> practice is to only >>>>>>>>>> use the >>>>>>>>>>> API >>>>>>>>>>>>> and let the host choose the >>> implementation, in >>>>>> our case Maven. >>>>>>>>>> Relying >>>>>>>>>>> on >>>>>>>>>>>>> SLF4J implementation specifics in >>> a system >>>>>> you're embedded in >>>>>>>>>> is not >>>>>>>>>>> good >>>>>>>>>>>>> e.g. Logback in Sonar running in >>> Maven using >>>>>> SLF4J Simple. If y >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>> --------------------------------------------------------------------- >>>>>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org >>>>>>> For additional commands, e-mail: dev-h...@maven.apache.org >>>>>>> >>>>>> >>>>>> -- >>>>>> Daniel Kulp >>>>>> dk...@apache.org - http://dankulp.com/blog >>>>>> Talend Community Coder - http://coders.talend.com >>>>>> >>>>>> >>>>>> >>> --------------------------------------------------------------------- >>>>>> 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 >>>>> >>>>> >>>> >>>> >>>> -- >>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >>>> JUnit in Action, 2nd Ed: <http://goog_1249600977>http://bit.ly/ECvg0 >>>> Spring Batch in Action: <http://s.apache.org/HOq>http://bit.ly/bqpbCK >>>> Blog: http://garygregory.wordpress.com >>>> Home: http://garygregory.com/ >>>> Tweet! http://twitter.com/GaryGregory >>> >>> --------------------------------------------------------------------- >>> 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 > Thanks, Jason ---------------------------------------------------------- Jason van Zyl Founder & CTO, Sonatype Founder, Apache Maven http://twitter.com/jvanzyl --------------------------------------------------------- What matters is not ideas, but the people who have them. Good people can fix bad ideas, but good ideas can't save bad people. -- Paul Graham