Re: logging during multithreaded builds

2015-05-27 Thread Kristian Rosenvold
I know it's not directly related, but any general purpose algorithm that
captures to memory buffers needs an overflow to disk mechanism - every time
a ByteArrayOutputStream is used for this, some guy with a *huge* output
from his build gets an OOM.

It's nice you're looking into this issue. As for the actual question of
logger implementations, I prefer trivial problems like trying to determine
that P=NP.

Kristian


2015-05-28 8:39 GMT+02:00 Anders Hammar :

> I agree with Jason, it would be better to keep this outside of core (the
> core distro).
>
> /Anders
>
> On Thu, May 28, 2015 at 5:21 AM, Jason van Zyl  wrote:
>
> > I honestly don't think an optional feature relying on an optional
> > dependency belongs in the core itself.
> >
> > On May 27, 2015, at 10:34 PM, Igor Fedorenko 
> wrote:
> >
> > > There are three semi-related parts to my implementation
> > >
> > > 1. SLF4J MDC management, basically setting and removing project
> > > attributes in a thread-local map. Truly reliable implementation will
> > > need to be coded in all Builders. Alternatively, it should be possible
> > > to use existing lifecycle callbacks to implement mostly reliable
> lib/ext
> > > extension.
> > >
> > > 2. Install and configure System out/err and java.util.logging bridges.
> > > This can be implemented as lib/ext extension using existing callbacks
> > >
> > > 3. Custom logback appenders and configuration that provide
> "interesting"
> > > behaviour using SLF4J MDC. These too can be implemented of the core.
> > >
> > > Keeping all this in the core will allow marginally more reliable SLF4J
> > > MDC management implementation and I also think will make it more likely
> > > for other developers to help with the implementation. It will also
> serve
> > > as a working example for adding support for other logging framework.
> But
> > > I agree, this does not have to be implemented in the core so I'll try
> to
> > > rework my implementation as lib/ext extension.
> > >
> > > --
> > > Regards,
> > > Igor
> > >
> > > On Wed, May 27, 2015, at 06:40 PM, Jason van Zyl wrote:
> > >>
> > >> On May 27, 2015, at 3:55 PM, Igor Fedorenko 
> > wrote:
> > >>
> > >>> So I went ahead and implemented these changes, including working (but
> > >>> not terribly well tested) logback appenders to buffer-and-group
> project
> > >>> console log messages and create per-project build.log files.
> > >>>
> > >>
> > >> What changes were required in the core?
> > >>
> > >>> Does anyone see a problem if I check in these appenders in maven core
> > >>> source tree or you prefer me to keep them elsewhere?
> > >>>
> > >>
> > >> If it's required to alter the distribution to install logback in order
> > to
> > >> use the appenders then I think elsewhere is more appropriate. As they
> > >> won't be used by the standard version of Maven so I don't think it
> > >> belongs in core along with the other modules. Maven shared is probably
> > >> fine.
> > >>
> > >>> Just to be clear, I do not propose to "hardware" maven to logback
> and I
> > >>> do not propose to include logback support in maven distribution. I
> want
> > >>> to introduce new maven-ext-logback module, which users will be able
> to
> > >>> use to customize their maven distributions very much the same way
> they
> > >>> need to do it now to use any of the advanced logging frameworks.
> > >>>
> > >>> --
> > >>> Regards,
> > >>> Igor
> > >>>
> > >>> On Tue, May 26, 2015, at 03:38 PM, Igor Fedorenko wrote:
> >  I spent some time looking into this, and I think project-level
> logging
> >  will require several semi-related changes.
> > 
> >  * As Ralph pointed out, Maven needs to use SLF4J MDC to associate
> log
> >  messages with individual projects being built. This is required to
> >  enable any project-related logging approach and I plan to submit
> this
> >  change in next couple of days.
> > 
> >  * Another problem is use of non-slf4j logging techniques by Maven
> >  plugins. Direct use of System out/err and java.util.logging are two
> >  obvious problems and I plan to change maven to "bridge" these to
> > slf4j.
> > 
> >  * The old log4j 1.x logging and commons-logging need to be bridged
> to
> >  slf4j too. I can make this change in maven, but this is not strictly
> >  necessary because it can be done from lib/ext extension too.
> > 
> >  The rest really depends on whether we can agree on single "advanced"
> >  logging backend and if we need to support several logging
> >  configurations. I think we've found three viable project-level
> logging
> >  approaches: buffered console output, better logging pattern and my
> >  original target/build.log idea. Unless somebody really wants to
> > restart
> >  logback-vs-log4j discussion, I suggest we postpone this decision and
> >  instead implement project-level logging as out-of-core extensions.
> > 
> >  Does this make sense?
> > 
> >  --
> >  Regards

Re: [ANNOUNCEMENT] End Of Life of Maven 2.2.1 - Plugins / JDK Roadmap

2015-05-27 Thread Karl Heinz Marbaise

Hi to all,

we have accomplished the whole release line which means all plugins are 
now at minium of Maven 2.2.1 (inkl. Java 1.5) except the known exceptions...


https://builds.apache.org/view/All/job/dist-tool-plugin/site/dist-tool-prerequisites.html


Congrats to all who supported and helped here.

Kind regards
Karl Heinz marbaise


On 3/20/15 10:39 PM, Karl Heinz Marbaise wrote:

Dear Maven Users,

based on the End of Life of Maven 2.2.1 (a year ago) now the time has
come to make the final releases of Apache Maven Plugins which support
Maven 2.X.

If you continue to use Maven 2.2.1 or earlier you have to be aware of
using an completely unsupported Maven version as well as unsupported
Maven plugins for the future.

If you want to have access to new features and bug fixes it is really
necessary to update to new Maven versions.

The next Maven version which will go the same way as Maven 2.2.1
will be Maven 3.0.5.

We have documented the final releases of plugins which support Maven
2.2.1 in relationship with JDK 1.5.

The complete list can be found here:

http://maven.apache.org/maven-2.x-eol.html

The next step on our roadmap is to lift all plugin versions to 3.0.0 to
make clear those plugins will only work with Maven 3.0+ furthermore the
Java minimum requirement will be lifted to JDK 1.6 as well.

No "rule" without exceptions. Here they come:

  * maven-site-plugin (Version 3.4)
See the docs of the plugin for usage in Maven 2.X

  * maven-compiler-plugin (Version 3.2)
which works with Maven 2.2.1.

  * maven-plugin-plugin (Version 3.4)
which works with Maven 2.2.1

  * maven-pmd-plugin (Version 3.4)
which works with Maven 2.2.1 but needs JDK 1.6

The following plugins already have the Maven 3.0+ requirement:

* maven-scm-publish-plugin (Version 1.1)
* maven-shade-plugin (Version 2.3)

Currently the plan is to make those plugins which are already at 3.X
being lifted to version 3.5.0 for Maven 3.X only:

  * maven-site-plugin (Version 3.5.0)

  * maven-compiler-plugin (Version 3.5.0)

  * maven-plugin-plugin (Version 3.5.0)

  * maven-pmd-plugin (Version 3.5.0)

All other plugins will get a version 3.0.0 to identify Maven 3.X only
plugins and the JDK minimum will be 1.6.

Example:
   So to make things more clearer here is an example:

   Currently we have the maven-clean-plugin with version 2.6.1.

   This plugin supports Maven 2.2.1 and JDK 1.5 minimum.

   This plugin will get a new major release with version 3.0.0
   which has the Maven minimum 3.0 AND Java minimum 1.6.

Kind regards
- The Apache Maven Team

-
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



Re: logging during multithreaded builds

2015-05-27 Thread Anders Hammar
I agree with Jason, it would be better to keep this outside of core (the
core distro).

/Anders

On Thu, May 28, 2015 at 5:21 AM, Jason van Zyl  wrote:

> I honestly don't think an optional feature relying on an optional
> dependency belongs in the core itself.
>
> On May 27, 2015, at 10:34 PM, Igor Fedorenko  wrote:
>
> > There are three semi-related parts to my implementation
> >
> > 1. SLF4J MDC management, basically setting and removing project
> > attributes in a thread-local map. Truly reliable implementation will
> > need to be coded in all Builders. Alternatively, it should be possible
> > to use existing lifecycle callbacks to implement mostly reliable lib/ext
> > extension.
> >
> > 2. Install and configure System out/err and java.util.logging bridges.
> > This can be implemented as lib/ext extension using existing callbacks
> >
> > 3. Custom logback appenders and configuration that provide "interesting"
> > behaviour using SLF4J MDC. These too can be implemented of the core.
> >
> > Keeping all this in the core will allow marginally more reliable SLF4J
> > MDC management implementation and I also think will make it more likely
> > for other developers to help with the implementation. It will also serve
> > as a working example for adding support for other logging framework. But
> > I agree, this does not have to be implemented in the core so I'll try to
> > rework my implementation as lib/ext extension.
> >
> > --
> > Regards,
> > Igor
> >
> > On Wed, May 27, 2015, at 06:40 PM, Jason van Zyl wrote:
> >>
> >> On May 27, 2015, at 3:55 PM, Igor Fedorenko 
> wrote:
> >>
> >>> So I went ahead and implemented these changes, including working (but
> >>> not terribly well tested) logback appenders to buffer-and-group project
> >>> console log messages and create per-project build.log files.
> >>>
> >>
> >> What changes were required in the core?
> >>
> >>> Does anyone see a problem if I check in these appenders in maven core
> >>> source tree or you prefer me to keep them elsewhere?
> >>>
> >>
> >> If it's required to alter the distribution to install logback in order
> to
> >> use the appenders then I think elsewhere is more appropriate. As they
> >> won't be used by the standard version of Maven so I don't think it
> >> belongs in core along with the other modules. Maven shared is probably
> >> fine.
> >>
> >>> Just to be clear, I do not propose to "hardware" maven to logback and I
> >>> do not propose to include logback support in maven distribution. I want
> >>> to introduce new maven-ext-logback module, which users will be able to
> >>> use to customize their maven distributions very much the same way they
> >>> need to do it now to use any of the advanced logging frameworks.
> >>>
> >>> --
> >>> Regards,
> >>> Igor
> >>>
> >>> On Tue, May 26, 2015, at 03:38 PM, Igor Fedorenko wrote:
>  I spent some time looking into this, and I think project-level logging
>  will require several semi-related changes.
> 
>  * As Ralph pointed out, Maven needs to use SLF4J MDC to associate log
>  messages with individual projects being built. This is required to
>  enable any project-related logging approach and I plan to submit this
>  change in next couple of days.
> 
>  * Another problem is use of non-slf4j logging techniques by Maven
>  plugins. Direct use of System out/err and java.util.logging are two
>  obvious problems and I plan to change maven to "bridge" these to
> slf4j.
> 
>  * The old log4j 1.x logging and commons-logging need to be bridged to
>  slf4j too. I can make this change in maven, but this is not strictly
>  necessary because it can be done from lib/ext extension too.
> 
>  The rest really depends on whether we can agree on single "advanced"
>  logging backend and if we need to support several logging
>  configurations. I think we've found three viable project-level logging
>  approaches: buffered console output, better logging pattern and my
>  original target/build.log idea. Unless somebody really wants to
> restart
>  logback-vs-log4j discussion, I suggest we postpone this decision and
>  instead implement project-level logging as out-of-core extensions.
> 
>  Does this make sense?
> 
>  --
>  Regards,
>  Igor
> 
>  On Tue, May 26, 2015, at 01:13 PM, Ralph Goers wrote:
> > If you use the SLF4J MDC - which is supported by Logback, Log4j 1.x
> and
> > 2.x - you can include anything stored in the MDC on every line of log
> > output.  Just use %X to include all MDC items or %MDC{key} to
> include the
> > specific key.  This would require storing the value(s) at the
> beginning
> > of every thread.
> >
> > If you include %t in the pattern than every log line should include
> the
> > threadId.
> >
> > If you are saying that the log lines include newlines in them that
> should
> > still be OK. The only way the lines should be mangled

Re: logging during multithreaded builds

2015-05-27 Thread Jason van Zyl
I honestly don't think an optional feature relying on an optional dependency 
belongs in the core itself.

On May 27, 2015, at 10:34 PM, Igor Fedorenko  wrote:

> There are three semi-related parts to my implementation
> 
> 1. SLF4J MDC management, basically setting and removing project
> attributes in a thread-local map. Truly reliable implementation will
> need to be coded in all Builders. Alternatively, it should be possible
> to use existing lifecycle callbacks to implement mostly reliable lib/ext
> extension.
> 
> 2. Install and configure System out/err and java.util.logging bridges.
> This can be implemented as lib/ext extension using existing callbacks
> 
> 3. Custom logback appenders and configuration that provide "interesting"
> behaviour using SLF4J MDC. These too can be implemented of the core.
> 
> Keeping all this in the core will allow marginally more reliable SLF4J
> MDC management implementation and I also think will make it more likely
> for other developers to help with the implementation. It will also serve
> as a working example for adding support for other logging framework. But
> I agree, this does not have to be implemented in the core so I'll try to
> rework my implementation as lib/ext extension.
> 
> -- 
> Regards,
> Igor
> 
> On Wed, May 27, 2015, at 06:40 PM, Jason van Zyl wrote:
>> 
>> On May 27, 2015, at 3:55 PM, Igor Fedorenko  wrote:
>> 
>>> So I went ahead and implemented these changes, including working (but
>>> not terribly well tested) logback appenders to buffer-and-group project
>>> console log messages and create per-project build.log files. 
>>> 
>> 
>> What changes were required in the core?
>> 
>>> Does anyone see a problem if I check in these appenders in maven core
>>> source tree or you prefer me to keep them elsewhere? 
>>> 
>> 
>> If it's required to alter the distribution to install logback in order to
>> use the appenders then I think elsewhere is more appropriate. As they
>> won't be used by the standard version of Maven so I don't think it
>> belongs in core along with the other modules. Maven shared is probably
>> fine.
>> 
>>> Just to be clear, I do not propose to "hardware" maven to logback and I
>>> do not propose to include logback support in maven distribution. I want
>>> to introduce new maven-ext-logback module, which users will be able to
>>> use to customize their maven distributions very much the same way they
>>> need to do it now to use any of the advanced logging frameworks.
>>> 
>>> -- 
>>> Regards,
>>> Igor
>>> 
>>> On Tue, May 26, 2015, at 03:38 PM, Igor Fedorenko wrote:
 I spent some time looking into this, and I think project-level logging
 will require several semi-related changes.
 
 * As Ralph pointed out, Maven needs to use SLF4J MDC to associate log
 messages with individual projects being built. This is required to
 enable any project-related logging approach and I plan to submit this
 change in next couple of days.
 
 * Another problem is use of non-slf4j logging techniques by Maven
 plugins. Direct use of System out/err and java.util.logging are two
 obvious problems and I plan to change maven to "bridge" these to slf4j. 
 
 * The old log4j 1.x logging and commons-logging need to be bridged to
 slf4j too. I can make this change in maven, but this is not strictly
 necessary because it can be done from lib/ext extension too.
 
 The rest really depends on whether we can agree on single "advanced"
 logging backend and if we need to support several logging
 configurations. I think we've found three viable project-level logging
 approaches: buffered console output, better logging pattern and my
 original target/build.log idea. Unless somebody really wants to restart
 logback-vs-log4j discussion, I suggest we postpone this decision and
 instead implement project-level logging as out-of-core extensions.
 
 Does this make sense?
 
 -- 
 Regards,
 Igor
 
 On Tue, May 26, 2015, at 01:13 PM, Ralph Goers wrote:
> If you use the SLF4J MDC - which is supported by Logback, Log4j 1.x and
> 2.x - you can include anything stored in the MDC on every line of log
> output.  Just use %X to include all MDC items or %MDC{key} to include the
> specific key.  This would require storing the value(s) at the beginning
> of every thread.
> 
> If you include %t in the pattern than every log line should include the
> threadId.
> 
> If you are saying that the log lines include newlines in them that should
> still be OK. The only way the lines should be mangled is if each thread
> somehow has its own instance of the logging framework and they are all
> configured to write to the same file.
> 
> Ralph
> 
> 
> 
>> On May 25, 2015, at 7:28 AM, Igor Fedorenko  wrote:
>> 
>> Yes, thread-id will help to some degree, but maven uses multiline log
>> messages quite

Re: logging during multithreaded builds

2015-05-27 Thread Igor Fedorenko
There are three semi-related parts to my implementation

1. SLF4J MDC management, basically setting and removing project
attributes in a thread-local map. Truly reliable implementation will
need to be coded in all Builders. Alternatively, it should be possible
to use existing lifecycle callbacks to implement mostly reliable lib/ext
extension.

2. Install and configure System out/err and java.util.logging bridges.
This can be implemented as lib/ext extension using existing callbacks

3. Custom logback appenders and configuration that provide "interesting"
behaviour using SLF4J MDC. These too can be implemented of the core.

Keeping all this in the core will allow marginally more reliable SLF4J
MDC management implementation and I also think will make it more likely
for other developers to help with the implementation. It will also serve
as a working example for adding support for other logging framework. But
I agree, this does not have to be implemented in the core so I'll try to
rework my implementation as lib/ext extension.

-- 
Regards,
Igor

On Wed, May 27, 2015, at 06:40 PM, Jason van Zyl wrote:
> 
> On May 27, 2015, at 3:55 PM, Igor Fedorenko  wrote:
> 
> > So I went ahead and implemented these changes, including working (but
> > not terribly well tested) logback appenders to buffer-and-group project
> > console log messages and create per-project build.log files. 
> > 
> 
> What changes were required in the core?
> 
> > Does anyone see a problem if I check in these appenders in maven core
> > source tree or you prefer me to keep them elsewhere? 
> > 
> 
> If it's required to alter the distribution to install logback in order to
> use the appenders then I think elsewhere is more appropriate. As they
> won't be used by the standard version of Maven so I don't think it
> belongs in core along with the other modules. Maven shared is probably
> fine.
> 
> > Just to be clear, I do not propose to "hardware" maven to logback and I
> > do not propose to include logback support in maven distribution. I want
> > to introduce new maven-ext-logback module, which users will be able to
> > use to customize their maven distributions very much the same way they
> > need to do it now to use any of the advanced logging frameworks.
> > 
> > -- 
> > Regards,
> > Igor
> > 
> > On Tue, May 26, 2015, at 03:38 PM, Igor Fedorenko wrote:
> >> I spent some time looking into this, and I think project-level logging
> >> will require several semi-related changes.
> >> 
> >> * As Ralph pointed out, Maven needs to use SLF4J MDC to associate log
> >> messages with individual projects being built. This is required to
> >> enable any project-related logging approach and I plan to submit this
> >> change in next couple of days.
> >> 
> >> * Another problem is use of non-slf4j logging techniques by Maven
> >> plugins. Direct use of System out/err and java.util.logging are two
> >> obvious problems and I plan to change maven to "bridge" these to slf4j. 
> >> 
> >> * The old log4j 1.x logging and commons-logging need to be bridged to
> >> slf4j too. I can make this change in maven, but this is not strictly
> >> necessary because it can be done from lib/ext extension too.
> >> 
> >> The rest really depends on whether we can agree on single "advanced"
> >> logging backend and if we need to support several logging
> >> configurations. I think we've found three viable project-level logging
> >> approaches: buffered console output, better logging pattern and my
> >> original target/build.log idea. Unless somebody really wants to restart
> >> logback-vs-log4j discussion, I suggest we postpone this decision and
> >> instead implement project-level logging as out-of-core extensions.
> >> 
> >> Does this make sense?
> >> 
> >> -- 
> >> Regards,
> >> Igor
> >> 
> >> On Tue, May 26, 2015, at 01:13 PM, Ralph Goers wrote:
> >>> If you use the SLF4J MDC - which is supported by Logback, Log4j 1.x and
> >>> 2.x - you can include anything stored in the MDC on every line of log
> >>> output.  Just use %X to include all MDC items or %MDC{key} to include the
> >>> specific key.  This would require storing the value(s) at the beginning
> >>> of every thread.
> >>> 
> >>> If you include %t in the pattern than every log line should include the
> >>> threadId.
> >>> 
> >>> If you are saying that the log lines include newlines in them that should
> >>> still be OK. The only way the lines should be mangled is if each thread
> >>> somehow has its own instance of the logging framework and they are all
> >>> configured to write to the same file.
> >>> 
> >>> Ralph
> >>> 
> >>> 
> >>> 
>  On May 25, 2015, at 7:28 AM, Igor Fedorenko  wrote:
>  
>  Yes, thread-id will help to some degree, but maven uses multiline log
>  messages quite often and these will still be mangled and unreadable.
>  Per-project build log files is the only solution I found to preserve
>  readable logs. Also, each project build is mostly independent from the
>  rest and I

Re: logging during multithreaded builds

2015-05-27 Thread Jason van Zyl

On May 27, 2015, at 3:55 PM, Igor Fedorenko  wrote:

> So I went ahead and implemented these changes, including working (but
> not terribly well tested) logback appenders to buffer-and-group project
> console log messages and create per-project build.log files. 
> 

What changes were required in the core?

> Does anyone see a problem if I check in these appenders in maven core
> source tree or you prefer me to keep them elsewhere? 
> 

If it's required to alter the distribution to install logback in order to use 
the appenders then I think elsewhere is more appropriate. As they won't be used 
by the standard version of Maven so I don't think it belongs in core along with 
the other modules. Maven shared is probably fine.

> Just to be clear, I do not propose to "hardware" maven to logback and I
> do not propose to include logback support in maven distribution. I want
> to introduce new maven-ext-logback module, which users will be able to
> use to customize their maven distributions very much the same way they
> need to do it now to use any of the advanced logging frameworks.
> 
> -- 
> Regards,
> Igor
> 
> On Tue, May 26, 2015, at 03:38 PM, Igor Fedorenko wrote:
>> I spent some time looking into this, and I think project-level logging
>> will require several semi-related changes.
>> 
>> * As Ralph pointed out, Maven needs to use SLF4J MDC to associate log
>> messages with individual projects being built. This is required to
>> enable any project-related logging approach and I plan to submit this
>> change in next couple of days.
>> 
>> * Another problem is use of non-slf4j logging techniques by Maven
>> plugins. Direct use of System out/err and java.util.logging are two
>> obvious problems and I plan to change maven to "bridge" these to slf4j. 
>> 
>> * The old log4j 1.x logging and commons-logging need to be bridged to
>> slf4j too. I can make this change in maven, but this is not strictly
>> necessary because it can be done from lib/ext extension too.
>> 
>> The rest really depends on whether we can agree on single "advanced"
>> logging backend and if we need to support several logging
>> configurations. I think we've found three viable project-level logging
>> approaches: buffered console output, better logging pattern and my
>> original target/build.log idea. Unless somebody really wants to restart
>> logback-vs-log4j discussion, I suggest we postpone this decision and
>> instead implement project-level logging as out-of-core extensions.
>> 
>> Does this make sense?
>> 
>> -- 
>> Regards,
>> Igor
>> 
>> On Tue, May 26, 2015, at 01:13 PM, Ralph Goers wrote:
>>> If you use the SLF4J MDC - which is supported by Logback, Log4j 1.x and
>>> 2.x - you can include anything stored in the MDC on every line of log
>>> output.  Just use %X to include all MDC items or %MDC{key} to include the
>>> specific key.  This would require storing the value(s) at the beginning
>>> of every thread.
>>> 
>>> If you include %t in the pattern than every log line should include the
>>> threadId.
>>> 
>>> If you are saying that the log lines include newlines in them that should
>>> still be OK. The only way the lines should be mangled is if each thread
>>> somehow has its own instance of the logging framework and they are all
>>> configured to write to the same file.
>>> 
>>> Ralph
>>> 
>>> 
>>> 
 On May 25, 2015, at 7:28 AM, Igor Fedorenko  wrote:
 
 Yes, thread-id will help to some degree, but maven uses multiline log
 messages quite often and these will still be mangled and unreadable.
 Per-project build log files is the only solution I found to preserve
 readable logs. Also, each project build is mostly independent from the
 rest and I find reading self-contain per-project log files much easier.
 
 -- 
 Regards,
 Igor
 
 On Mon, May 25, 2015, at 10:21 AM, Sean Busbey wrote:
> In multithreaded builds we could add a thread ID to each output line.
> That
> would make it easier to read and filter in different files in post
> processing.
> 
> -- 
> Sean
> On May 25, 2015 6:30 AM, "Igor Fedorenko"  wrote:
> 
>> I had to troubleshoot a large multithreaded build last week and that
>> proved to be rather difficult mostly because build log was a jumble of
>> messages produced by concurrently running threads. It was not possible
>> to tell which message came from which thread, which made the build log
>> more or less useless.
>> 
>> What I ended up doing was to write per-module log message to individual
>> ${project.build.directory}/build.log log files.
>> 
>> That was kinda tricky to implement because log files were opened very
>> early during module build and were subsequently deleted by
>> maven-clean-plugin (I tried on Linux and OSX, and I assume the build
>> will fail on Windows). I had to modify maven-clean-plugin configuration
>> in the project pom.xml to retain ${project.build.directory

[ANN] Apache Maven Eclipse Plugin 2.10 Released

2015-05-27 Thread Andreas Gudian
The Apache Maven team is pleased to announce the release of the Apache
Maven Eclipse Plugin, version 2.10

This plugin is used to generate Eclipse IDE files (*.classpath, *.project,
*.wtpmodules and the .settings folder) for use with a project - if the M2E
Eclipse-Plugin does not fit you.

This release is the last one supporting Maven 2.

http://maven.apache.org/plugins/maven-eclipse-plugin/

You should specify the version in your project's plugin configuration:


  org.apache.maven.plugins
  maven-eclipse-plugin
  2.10


Release Notes - Maven Eclipse Plugin - Version 2.10

** Bug
* [MECLIPSE-731] - eclipse:clean not deleting ./settings folder that it
creates
* [MECLIPSE-738] - NullPointerException in LinkedResource if
 is present in .project

** Improvement
* [MECLIPSE-697] - Delete deprecated code
* [MECLIPSE-721] - Improve documentation to explain why Eclipse
sometimes does not import projects with correct project names.
* [MECLIPSE-754] - UPdate plexus-archiver to 2.9,plexus-utils to 3.0.18
and maven-archiver to 2.5
* [MECLIPSE-756] - Fix RAT Report
* [MECLIPSE-757] - Add proper classpath entry names for Java 7 / 8
* [MECLIPSE-758] - Use mojo annotations

** New Feature
* [MECLIPSE-759] - Add goal to resolve dependencies in .classpath files
of a workspace


Enjoy,

-The Apache Maven team


[RESULT] [VOTE] Release Apache Maven Eclipse Plugin version 2.10

2015-05-27 Thread Andreas Gudian
Hi,

The vote has passed with the following result:

+1 (binding): Karl Heinz Marbaise, Jason van Zyl, Hervé Boutemy
+1 (non binding): Andreas Gudian

Thank you guys for the votes!

I will promote the artifacts to the central repo.


2015-05-27 21:44 GMT+02:00 Andreas Gudian :

> Here's my own +1.
>
> 2015-05-26 23:10 GMT+02:00 Hervé BOUTEMY :
>
>> +1
>>
>> Regards,
>>
>> Hervé
>>
>> Le dimanche 24 mai 2015 22:04:52 Andreas Gudian a écrit :
>> > Hi,
>> >
>> > this will be the last Maven 2 compatible release of this plugin.
>> >
>> > We solved 9 issues:
>> >
>> https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12317423&ve
>> > rsion=12330751
>> >
>> > There are still a couple of issues left in JIRA:
>> >
>> https://issues.apache.org/jira/issues/?jql=project%20%3D%20MECLIPSE%20AND%20
>> > status%20%3D%20Open%20ORDER%20BY%20key%20DESC%2C%20priority%20DESC
>> >
>> > Staging repo:
>> > https://repository.apache.org/content/repositories/maven-1187/
>> >
>> https://repository.apache.org/content/repositories/maven-1187/org/apache/mav
>> >
>> en/plugins/maven-eclipse-plugin/2.10/maven-eclipse-plugin-2.10-source-releas
>> > e.zip
>> >
>> > Source release checksum(s):
>> > maven-eclipse-plugin-2.10-source-release.zip sha1:
>> > 691ad83cb0b731c8c0ab5a6c5f105a25cd34f73b
>> >
>> > Staging site:
>> > http://maven.apache.org/plugins-archives/maven-eclipse-plugin-LATEST/
>> >
>> > Guide to testing staged releases:
>> > http://maven.apache.org/guides/development/guide-testing-releases.html
>> >
>> > Vote open for 72 hours.
>> >
>> > [ ] +1
>> > [ ] +0
>> > [ ] -1
>>
>>
>> -
>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
>> For additional commands, e-mail: dev-h...@maven.apache.org
>>
>>
>


Re: logging during multithreaded builds

2015-05-27 Thread Igor Fedorenko
So I went ahead and implemented these changes, including working (but
not terribly well tested) logback appenders to buffer-and-group project
console log messages and create per-project build.log files. 

Does anyone see a problem if I check in these appenders in maven core
source tree or you prefer me to keep them elsewhere? 

Just to be clear, I do not propose to "hardware" maven to logback and I
do not propose to include logback support in maven distribution. I want
to introduce new maven-ext-logback module, which users will be able to
use to customize their maven distributions very much the same way they
need to do it now to use any of the advanced logging frameworks.

-- 
Regards,
Igor

On Tue, May 26, 2015, at 03:38 PM, Igor Fedorenko wrote:
> I spent some time looking into this, and I think project-level logging
> will require several semi-related changes.
> 
> * As Ralph pointed out, Maven needs to use SLF4J MDC to associate log
> messages with individual projects being built. This is required to
> enable any project-related logging approach and I plan to submit this
> change in next couple of days.
> 
> * Another problem is use of non-slf4j logging techniques by Maven
> plugins. Direct use of System out/err and java.util.logging are two
> obvious problems and I plan to change maven to "bridge" these to slf4j. 
> 
> * The old log4j 1.x logging and commons-logging need to be bridged to
> slf4j too. I can make this change in maven, but this is not strictly
> necessary because it can be done from lib/ext extension too.
> 
> The rest really depends on whether we can agree on single "advanced"
> logging backend and if we need to support several logging
> configurations. I think we've found three viable project-level logging
> approaches: buffered console output, better logging pattern and my
> original target/build.log idea. Unless somebody really wants to restart
> logback-vs-log4j discussion, I suggest we postpone this decision and
> instead implement project-level logging as out-of-core extensions.
> 
> Does this make sense?
> 
> -- 
> Regards,
> Igor
> 
> On Tue, May 26, 2015, at 01:13 PM, Ralph Goers wrote:
> > If you use the SLF4J MDC - which is supported by Logback, Log4j 1.x and
> > 2.x - you can include anything stored in the MDC on every line of log
> > output.  Just use %X to include all MDC items or %MDC{key} to include the
> > specific key.  This would require storing the value(s) at the beginning
> > of every thread.
> > 
> > If you include %t in the pattern than every log line should include the
> > threadId.
> > 
> > If you are saying that the log lines include newlines in them that should
> > still be OK. The only way the lines should be mangled is if each thread
> > somehow has its own instance of the logging framework and they are all
> > configured to write to the same file.
> > 
> > Ralph
> > 
> > 
> > 
> > > On May 25, 2015, at 7:28 AM, Igor Fedorenko  wrote:
> > > 
> > > Yes, thread-id will help to some degree, but maven uses multiline log
> > > messages quite often and these will still be mangled and unreadable.
> > > Per-project build log files is the only solution I found to preserve
> > > readable logs. Also, each project build is mostly independent from the
> > > rest and I find reading self-contain per-project log files much easier.
> > > 
> > > -- 
> > > Regards,
> > > Igor
> > > 
> > > On Mon, May 25, 2015, at 10:21 AM, Sean Busbey wrote:
> > >> In multithreaded builds we could add a thread ID to each output line.
> > >> That
> > >> would make it easier to read and filter in different files in post
> > >> processing.
> > >> 
> > >> -- 
> > >> Sean
> > >> On May 25, 2015 6:30 AM, "Igor Fedorenko"  wrote:
> > >> 
> > >>> I had to troubleshoot a large multithreaded build last week and that
> > >>> proved to be rather difficult mostly because build log was a jumble of
> > >>> messages produced by concurrently running threads. It was not possible
> > >>> to tell which message came from which thread, which made the build log
> > >>> more or less useless.
> > >>> 
> > >>> What I ended up doing was to write per-module log message to individual
> > >>> ${project.build.directory}/build.log log files.
> > >>> 
> > >>> That was kinda tricky to implement because log files were opened very
> > >>> early during module build and were subsequently deleted by
> > >>> maven-clean-plugin (I tried on Linux and OSX, and I assume the build
> > >>> will fail on Windows). I had to modify maven-clean-plugin configuration
> > >>> in the project pom.xml to retain ${project.build.directory}/build.log
> > >>> files.
> > >>> 
> > >>> I felt my solution required too my effort and I wonder what others do to
> > >>> capture logs during multithreaded builds. Can we come up with a
> > >>> "recommended" way of doing this?
> > >>> 
> > >>> --
> > >>> Regards,
> > >>> Igor
> > >>> 
> > >>> -
> > >>> To unsubscribe, e-mail: dev-unsubscr...@maven

Re: [VOTE] Release Apache Maven Eclipse Plugin version 2.10

2015-05-27 Thread Andreas Gudian
Here's my own +1.

2015-05-26 23:10 GMT+02:00 Hervé BOUTEMY :

> +1
>
> Regards,
>
> Hervé
>
> Le dimanche 24 mai 2015 22:04:52 Andreas Gudian a écrit :
> > Hi,
> >
> > this will be the last Maven 2 compatible release of this plugin.
> >
> > We solved 9 issues:
> >
> https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12317423&ve
> > rsion=12330751
> >
> > There are still a couple of issues left in JIRA:
> >
> https://issues.apache.org/jira/issues/?jql=project%20%3D%20MECLIPSE%20AND%20
> > status%20%3D%20Open%20ORDER%20BY%20key%20DESC%2C%20priority%20DESC
> >
> > Staging repo:
> > https://repository.apache.org/content/repositories/maven-1187/
> >
> https://repository.apache.org/content/repositories/maven-1187/org/apache/mav
> >
> en/plugins/maven-eclipse-plugin/2.10/maven-eclipse-plugin-2.10-source-releas
> > e.zip
> >
> > Source release checksum(s):
> > maven-eclipse-plugin-2.10-source-release.zip sha1:
> > 691ad83cb0b731c8c0ab5a6c5f105a25cd34f73b
> >
> > Staging site:
> > http://maven.apache.org/plugins-archives/maven-eclipse-plugin-LATEST/
> >
> > Guide to testing staged releases:
> > http://maven.apache.org/guides/development/guide-testing-releases.html
> >
> > Vote open for 72 hours.
> >
> > [ ] +1
> > [ ] +0
> > [ ] -1
>
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> For additional commands, e-mail: dev-h...@maven.apache.org
>
>