I fully agree here with Elliotte - before going to implement changes to loging we should have vision doc (maybe something smilar to other projects like Kafka KIP?). There are many aspects of this type of changes that should be described and analyzed. Having in mind that changes to that API wi affect users users but also our core plugins. We should discuss about time impact - like now few plugins still depends on API 2.0 (anyone willing to help with migration?) And only since last year we started migration to Maven api 3.1+ having migrated maybe 10 out of 100s our repos, still based on Java 7:-)) so migration path is also important, guidelines how to migrate, how to mix maven plugin logging with shared Maven components and with external libraries (that may use SLF4J, java logging or log4j). How to do troubleshooting plugin logging. And last but not least - what problem we are solving, what features and benefits we want to get after?
Sylwester pon., 25 sty 2021, 19:14 użytkownik Elliotte Rusty Harold < [email protected]> napisał: > No, an issue is too easily forgotten. We should have something on the > main web site. It needs to be consistent with or replace: > > https://maven.apache.org/maven-jsr330.html > https://maven.apache.org/maven-logging.html > > In addition the API docs of the relevant libraries need to be updated. > > Maven has a lot of technical debt, and a large part of that is both a > symptom and a cause of outdated, incomplete, and inconsistent > documentation. Long time committers routinely suggest contradictory > approaches as the way Maven does things. The only way I know to avoid > this is to have normative, maintained documentation of agreed > development practices that is in the source repo and published on the > web site. This helps flush out and resolve areas where different > committers believe different things to be true. When a conflict > arises, it can be settled by reference to the docs. If the docs don't > speak to the issue at hand, then the point can be discussed and the > resolution added to the docs. > > Issues and mailing list threads from years ago (and even if it's > current today, it will be years ago soon) are not sufficient. Relying > on this has helped us into the morass we're in now in multiple areas, > not just logging. > > On Mon, Jan 25, 2021 at 5:38 PM Matthieu Brouillard > <[email protected]> wrote: > > > > is MNG-7085 [1] suited for that ? > > Or do you propose that another (or existing) design document is written > > first covering all the logging use-cases ? > > > > [1]: https://issues.apache.org/jira/browse/MNG-7085 > > > > On Mon, Jan 25, 2021 at 6:12 PM Elliotte Rusty Harold < > [email protected]> > > wrote: > > > > > It would really help to have a complete, up-to-date design doc for > > > Maven logging first, as well as clearing lout obsolete docs. Absent > > > that there's a lot of crosstalk and conflicting updates across > > > projects. It's not obvious everyone understands the same consensus. > > > > > > On Mon, Jan 25, 2021 at 3:45 PM Matthieu Brouillard > > > <[email protected]> wrote: > > > > > > > > Issues MNG-7082 <https://issues.apache.org/jira/browse/MNG-7082>, > > > MNG-7083 > > > > <https://issues.apache.org/jira/browse/MNG-7083>, MNG-7084 > > > > <https://issues.apache.org/jira/browse/MNG-7084> and MNG-7085 > > > > <https://issues.apache.org/jira/browse/MNG-7085> created for > > > traceability. > > > > > > > > I'll push PRs for the first two. > > > > > > > > On Mon, Jan 25, 2021 at 11:57 AM Romain Manni-Bucau < > > > [email protected]> > > > > wrote: > > > > > > > > > For me only 1 and 4 are "strictly required" but this plan works > with > > > the > > > > > nice to have additions. > > > > > > > > > > Romain Manni-Bucau > > > > > @rmannibucau <https://twitter.com/rmannibucau> | Blog > > > > > <https://rmannibucau.metawerx.net/> | Old Blog > > > > > <http://rmannibucau.wordpress.com> | Github < > > > > > https://github.com/rmannibucau> | > > > > > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book > > > > > < > > > > > > > > > https://www.packtpub.com/application-development/java-ee-8-high-performance > > > > > > > > > > > > > > > > > > > > > Le lun. 25 janv. 2021 à 11:51, Matthieu Brouillard < > > > [email protected] > > > > > > > > > > > a écrit : > > > > > > > > > > > In order to go further on this topic, I'd like to create issues > for > > > each > > > > > > discussed topic in this thread and probably start working on > some: > > > > > > > > > > > > * issue-1: remove depreciation on > > > 'org.apache.maven.plugin.logging.Log' > > > > > > * issue-2: introduce lazy evaluation/message production for each > > > level in > > > > > > 'org.apache.maven.plugin.logging.Log' > > > > > > * issue-3: enable injection of > org.apache.maven.plugin.logging.Log > > > > > > + discuss further in the issue which implementation to inject > > > > > where/when > > > > > > + document (where ?) usage for extensions & non mojo injectable > > > classes > > > > > > * issue-4: update 'https://maven.apache.org/maven-logging.html' > (or > > > > > > elsewhere ?) with latest recommandations > > > > > > + use #getLog() for mojos > > > > > > + use injection for other use cases > > > > > > > > > > > > If it is ok then I'll create those issues and start working on > the 2 > > > > > first. > > > > > > Once created people will be able to provide additional context or > > > > > > information to each ticket. > > > > > > > > > > > > Matthieu > > > > > > > > > > > > On Mon, Jan 25, 2021 at 8:07 AM Guillaume Nodet < > [email protected]> > > > > > wrote: > > > > > > > > > > > > > +1 for giving the logging API a bit of love with > Supplier<String> > > > > > and/or > > > > > > > formatter-like api. > > > > > > > > > > > > > > Guillaume Nodet > > > > > > > > > > > > > > Le lun. 25 janv. 2021 à 07:41, Mark Struberg > > > <[email protected] > > > > > > > > > > > > a > > > > > > > écrit : > > > > > > > > > > > > > > > +1Technically from a pure ClassLoader point our very own > makes > > > more > > > > > > > > sense.We can probably think about Lambda to resolve the > String > > > > > > > > lazily.Insofar the SLF4J api is outdated as well. > > > > > > > > And of course internally we might still route to slf4j. But > we > > > should > > > > > > not > > > > > > > > expose those classes to the plugins if not necessary. They > just > > > > > > > > unnecessarily create classpatch clashes some times (been > there > > > done > > > > > > > that). > > > > > > > > > > > > > > > > LieGrue,strub > > > > > > > > > > > > > > > > On Saturday, 23 January 2021, 18:06:34 CET, Romain > > > Manni-Bucau < > > > > > > > > [email protected]> wrote: > > > > > > > > > > > > > > > > Hi Benjamin, > > > > > > > > > > > > > > > > Guess it was unexpectedly deprecated, let's revert that on > > > master. > > > > > > > > > > > > > > > > Romain Manni-Bucau > > > > > > > > @rmannibucau <https://twitter.com/rmannibucau> | Blog > > > > > > > > <https://rmannibucau.metawerx.net/> | Old Blog > > > > > > > > <http://rmannibucau.wordpress.com> | Github < > > > > > > > > https://github.com/rmannibucau> | > > > > > > > > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book > > > > > > > > < > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > https://www.packtpub.com/application-development/java-ee-8-high-performance > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Le sam. 23 janv. 2021 à 17:58, Benjamin Marwell < > > > [email protected] > > > > > > > > > > > > a > > > > > > > > écrit : > > > > > > > > > > > > > > > > > Robert, that's deprecated! What to use instead? Or was it > > > > > deprecated > > > > > > in > > > > > > > > > error? > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > https://github.com/apache/maven/blob/master/maven-plugin-api/src/main/java/org/apache/maven/plugin/logging/Log.java > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Sat, 23 Jan 2021, 12:10 Robert Scholte, < > > > [email protected]> > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > See > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > https://maven.apache.org/ref/3.6.3/maven-plugin-api/apidocs/org/apache/maven/plugin/AbstractMojo.html > > > > > > > > > > > > > > > > > > > > You can get the logger by calling getLog(), so don't > inject > > > the > > > > > > > logger > > > > > > > > > > here. > > > > > > > > > > > > > > > > > > > > Robert > > > > > > > > > > On 22-1-2021 19:19:47, Slawomir Jaranowski < > > > > > [email protected] > > > > > > > > > > > > > > > > wrote: > > > > > > > > > > It is not only an extension case. > > > > > > > > > > > > > > > > > > > > For example I can write Mojo like: > > > > > > > > > > > > > > > > > > > > @Mojo(name = "example") > > > > > > > > > > public class ExampleMojo extends AbstractMojo { > > > > > > > > > > > > > > > > > > > > @Inject > > > > > > > > > > private MyService myService; > > > > > > > > > > > > > > > > > > > > @Override > > > > > > > > > > public void execute() { > > > > > > > > > > } > > > > > > > > > > } > > > > > > > > > > > > > > > > > > > > and > > > > > > > > > > > > > > > > > > > > @Named > > > > > > > > > > public class MyService { > > > > > > > > > > > > > > > > > > > > @Inject > > > > > > > > > > private Logger??? logger; > > > > > > > > > > } > > > > > > > > > > > > > > > > > > > > So the question is what logger we should use in the > > > component? > > > > > > > > > > > > > > > > > > > > Another case is that components can be Singleton and > their > > > > > instance > > > > > > > > will > > > > > > > > > be > > > > > > > > > > created once. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > pt., 22 sty 2021 o 12:36 Romain Manni-Bucau > > > > > > > > > > napisał(a): > > > > > > > > > > > > > > > > > > > > > Do it means if we represent our classloading > structure, all > > > > > > loaders > > > > > > > > on > > > > > > > > > > top > > > > > > > > > > > of mojo use slf4j and others our maven abstraction. > > > > > > > > > > > Sounds ok to me except for extensions which are not in > > > maven > > > > > land > > > > > > > so > > > > > > > > > > > subject to slf4j api breaking changes and > > > undefined/ambiguous > > > > > > > > context - > > > > > > > > > > > which is never true for maven code itself since we > > > guarantee > > > > > and > > > > > > > own > > > > > > > > > it. > > > > > > > > > > > Should we promote the abstraction for extensions too? > > > > > > > > > > > > > > > > > > > > > > Le ven. 22 janv. 2021 à 11:41, Robert Scholte a > > > > > > > > > > > écrit : > > > > > > > > > > > > > > > > > > > > > > > I'm not so sure about this, it probably depends on > the > > > > > context. > > > > > > > > > > > > > > > > > > > > > > > > I think we should assume that JSR330 component are > not > > > aware > > > > > of > > > > > > > > their > > > > > > > > > > > > context. > > > > > > > > > > > > They should not require a Maven context, hence in > such > > > case > > > > > it > > > > > > > > makes > > > > > > > > > > > sense > > > > > > > > > > > > to use SLF4J API, while the application selects the > > > logger > > > > > > > > > > > implementation. > > > > > > > > > > > > Think of Maven Extensions. I'd say they should be > using > > > the > > > > > > SLF4J > > > > > > > > API > > > > > > > > > > > > because their context is not bound to 1 plugin. > > > > > > > > > > > > > > > > > > > > > > > > thanks, > > > > > > > > > > > > Robert > > > > > > > > > > > > On 18-1-2021 09:34:01, Romain Manni-Bucau wrote: > > > > > > > > > > > > Generally you want to propagate the mojo logger to > have > > > > > > > consistent > > > > > > > > > logs > > > > > > > > > > > but > > > > > > > > > > > > worse case we should promote mojo logging api as > > > injectable > > > > > at > > > > > > > > > > injection > > > > > > > > > > > > points if needed, avoids all the mess you can get in > mojo > > > > > with > > > > > > > > > loggers > > > > > > > > > > to > > > > > > > > > > > > respect that rule of dumb IMHO. > > > > > > > > > > > > > > > > > > > > > > > > Le dim. 17 janv. 2021 à 22:48, Slawomir Jaranowski > > > > > > > > > > > > a écrit : > > > > > > > > > > > > > > > > > > > > > > > > > Hi, > > > > > > > > > > > > > > > > > > > > > > > > > > We can use the JSR-330 component for developing > maven > > > > > > plugins - > > > > > > > > > > > > > https://maven.apache.org/maven-jsr330.html > > > > > > > > > > > > > > > > > > > > > > > > > > There is not clear how to access logging api from > > > JSR-330 > > > > > > > > > component. > > > > > > > > > > > As I > > > > > > > > > > > > > found out last time, maven plugins should not > directly > > > use > > > > > > > > > slf4j-api, > > > > > > > > > > > so > > > > > > > > > > > > > what is recommended in this case. > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > > > > > > Sławomir Jaranowski > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > > > Sławomir Jaranowski > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > ------------------------ > > > > > > > Guillaume Nodet > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > Elliotte Rusty Harold > > > [email protected] > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: [email protected] > > > For additional commands, e-mail: [email protected] > > > > > > > > > > -- > Elliotte Rusty Harold > [email protected] > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > >
