Hi,
I have pushed a new version of my prof-of-concept
https://github.com/apache/maven-studies/compare/maven-metrics?expand=1

I am introducing a MetricsSystem interface and a DefaultMetricsSystem CDI bean.
I am new to sisu/plexsus container.
It looks like that DefaultMetricsSystem is getting instantiated in
Maven Core tests

This is my work:
https://github.com/apache/maven-studies/compare/maven-metrics?expand=1

But if I run Maven from the command line I get the error below

Maybe I missing some config/annotation

Any help is appreciated !

Enrico


eolivelli@LAPTOP-OODVV59Q apache-maven-3.7.0-SNAPSHOT]$ bin/mvn
[WARNING] Error injecting: org.apache.maven.DefaultMaven
com.google.inject.ProvisionException: Unable to provision, see the
following errors:

1) No implementation for org.apache.maven.metrics.MetricsSystem was bound.
  at ClassRealm[plexus.core, parent: null] (via modules:
org.eclipse.sisu.wire.WireModule ->
org.eclipse.sisu.plexus.PlexusBindingModule)
  while locating org.apache.maven.lifecycle.internal.LifecycleStarter
  while locating org.apache.maven.DefaultMaven

1 error
    at 
com.google.inject.internal.InternalProvisionException.toProvisionException
(InternalProvisionException.java:226)
    at com.google.inject.internal.InjectorImpl$1.get (InjectorImpl.java:1053)
    at com.google.inject.internal.InjectorImpl.getInstance
(InjectorImpl.java:1086)
    at org.eclipse.sisu.space.AbstractDeferredClass.get
(AbstractDeferredClass.java:48)
    at com.google.inject.internal.ProviderInternalFactory.provision
(ProviderInternalFactory.java:85)
    at 
com.google.inject.internal.InternalFactoryToInitializableAdapter.provision
(InternalFactoryToInitializableAdapter.java:57)
    at com.google.inject.internal.ProviderInternalFactory$1.call
(ProviderInternalFactory.java:66)
    at 
com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision
(ProvisionListenerStackCallback.java:112)
    at org.eclipse.sisu.bean.BeanScheduler$CycleActivator.onProvision
(BeanScheduler.java:230)
    at 
com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision
(ProvisionListenerStackCallback.java:120)
    at com.google.inject.internal.ProvisionListenerStackCallback.provision
(ProvisionListenerStackCallback.java:66)
    at com.google.inject.internal.ProviderInternalFactory.circularGet
(ProviderInternalFactory.java:61)
    at com.google.inject.internal.InternalFactoryToInitializableAdapter.get
(InternalFactoryToInitializableAdapter.java:47)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter.get
(ProviderToInternalFactoryAdapter.java:40)
    at com.google.inject.internal.SingletonScope$1.get (SingletonScope.java:168)
    at com.google.inject.internal.InternalFactoryToProviderAdapter.get
(InternalFactoryToProviderAdapter.java:39)
    at com.google.inject.internal.InjectorImpl$1.get (InjectorImpl.java:1050)
    at org.eclipse.sisu.inject.LazyBeanEntry.getValue (LazyBeanEntry.java:81)
    at org.eclipse.sisu.plexus.LazyPlexusBean.getValue (LazyPlexusBean.java:51)
    at org.codehaus.plexus.DefaultPlexusContainer.lookup
(DefaultPlexusContainer.java:263)
    at org.codehaus.plexus.DefaultPlexusContainer.lookup
(DefaultPlexusContainer.java:255)
    at org.codehaus.plexus.DefaultPlexusContainer.lookup
(DefaultPlexusContainer.java:249)
    at org.apache.maven.cli.MavenCli.container (MavenCli.java:696)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:284)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:195)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:564)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced
(Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch
(Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode
(Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main
(Launcher.java:347)
[ERROR] Error executing Maven.
[ERROR] com.google.inject.ProvisionException: Unable to provision, see
the following errors:

1) No implementation for org.apache.maven.metrics.MetricsSystem was bound.
  at ClassRealm[plexus.core, parent: null] (via modules:
org.eclipse.sisu.wire.WireModule ->
org.eclipse.sisu.plexus.PlexusBindingModule)
  while locating org.apache.maven.lifecycle.internal.LifecycleStarter
  while locating org.apache.maven.DefaultMaven
  at ClassRealm[plexus.core, parent: null] (via modules:
org.eclipse.sisu.wire.WireModule ->
org.eclipse.sisu.plexus.PlexusBindingModule)
  while locating org.apache.maven.Maven

1 error
      role: org.apache.maven.Maven

Il giorno mar 17 mar 2020 alle ore 08:35 Hervé BOUTEMY
<[email protected]> ha scritto:
>
> Le samedi 14 mars 2020, 15:14:17 CET Enrico Olivelli a écrit :
> > I am starting this work.
> > I have pushed a copy of current maven core master to maven-studies.
> nice
>
> [...]
> > I don't know how classloading works very well in the case of Maven/Plexus.
> your approach looks reasonable: you're adding extensions to the "core"
> classloader [1]
>
> Regards,
>
> Hervé
>
> [1] https://maven.apache.org/guides/mini/guide-maven-classloading.html
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to