Mojo scope is clearly the abstraction, no doubt here.
I think extension too by design as explained but guess we never discuss it.

Personally I'd rather generalize the abstraction since we reimpl slf4j -
even if fork is trivial - anyway so maybe we should finally shout something
which never matched our usage in v4. That said while it is abstracted for
"out of maven source" scope I'm more than fine with any solution.

Le ven. 22 janv. 2021 à 19:19, Slawomir Jaranowski <[email protected]>
a écrit :

> 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 <[email protected]>
> 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 <[email protected]> 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 <[email protected]>
> 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
>

Reply via email to