Stuart, you do know that the prevailing opinion is that Martin is a bot (along the lines of ELISA) and not a real person ;-)
On 29 October 2010 00:24, Stuart McCulloch <[email protected]> wrote: > On 28 October 2010 23:20, Martin Gainty <[email protected]> wrote: > >> >> Folks >> >> originally i was using 2.5 version of maven-surefire-plugin as seen here >> <groupId>org.apache.maven.plugins</groupId> >> <artifactId>maven-surefire-plugin</artifactId> >> <version>2.5</version> >> >> this caused massive grief by DefaultPlexusContainer lookup which >> incorrectly parsed the roleHint >> so i backed all my dependencies of maven-surefire-plugin down to v 2.4.2 to >> rid myself of the guice injector anomaly here is the debug error listing: >> note that the org.codehaus.plexus.DefaultPlexusContainer roleHint is >> incorrectly assigned >> org.apache.maven.plugins:maven-surefire-plugin:2.5:test >> it should be >> >> org.apache.maven.plugins:maven-surefire-plugin:2.5 >> >> for the lookup to work >> >> [ERROR] 1 error >> [ERROR] role: org.apache.maven.plugin.Mojo >> [ERROR] roleHint: org.apache.maven.plugins:maven-surefire-plugin:2.5:test: >> Guice provision errors: >> [ERROR] >> [ERROR] 1) No implementation for >> org.apache.maven.artifact.resolver.ArtifactResolver was bound. >> [ERROR] while locating org.apache.maven.plugin.surefire.SurefirePlugin >> [ERROR] >> [ERROR] 1 error >> [ERROR] -> [Help 1] >> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute >> goal org.apache.maven.plugins:maven-surefire-plugin:2.5:test (default-test) >> on project maven-checkstyle-plugin: Execution default-test of goal >> org.apache.maven.plugins:maven-surefire-plugin:2.5:test failed: Unable to >> load the mojo 'test' (or one of its required components) from the plugin >> 'org.apache.maven.plugins:maven-surefire-plugin:2.5' >> at >> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:211) >> at >> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148) >> at >> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:140) >> at >> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) >> at >> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) >> at >> org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) >> at >> org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) >> at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:314) >> at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:151) >> at org.apache.maven.cli.MavenCli.execute(MavenCli.java:445) >> at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:168) >> at org.apache.maven.cli.MavenCli.main(MavenCli.java:132) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >> at java.lang.reflect.Method.invoke(Method.java:597) >> at >> org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) >> at >> org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) >> at >> org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) >> at >> org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) >> Caused by: org.apache.maven.plugin.PluginExecutionException: Execution >> default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.5:test >> failed: Unable to load the mojo 'test' (or one of its required components) >> from the plugin 'org.apache.maven.plugins:maven-surefire-plugin:2.5' >> at >> org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:121) >> at >> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:195) >> ... 19 more >> Caused by: org.apache.maven.plugin.PluginContainerException: Unable to load >> the mojo 'test' (or one of its required components) from the plugin >> 'org.apache.maven.plugins:maven-surefire-plugin:2.5' >> at >> org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:426) >> at >> org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:96) >> ... 20 more >> Caused by: >> org.codehaus.plexus.component.repository.exception.ComponentLookupException: >> com.google.inject.ProvisionException: Guice provision errors: >> 1) Error injecting: org.apache.maven.plugin.surefire.SurefirePlugin >> at ClassRealm[plugin>org.apache.maven.plugins:maven-surefire-plugin:2.5, >> parent: ClassRealm[maven.api, parent: null]] >> while locating org.apache.maven.plugin.Mojo annotated with >> @com.google.inject.name.Named(value=org.apache.maven.plugins:maven-surefire-plugin:2.5:test) >> 1 error >> role: org.apache.maven.plugin.Mojo >> roleHint: org.apache.maven.plugins:maven-surefire-plugin:2.5:test >> at >> org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:253) >> at >> org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:241) >> at >> org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:393) >> ... 21 more >> Caused by: com.google.inject.ProvisionException: Guice provision errors: >> 1) Error injecting: org.apache.maven.plugin.surefire.SurefirePlugin >> at ClassRealm[plugin>org.apache.maven.plugins:maven-surefire-plugin:2.5, >> parent: ClassRealm[maven.api, parent: null]] >> while locating org.apache.maven.plugin.Mojo annotated with >> @com.google.inject.name.Named(value=org.apache.maven.plugins:maven-surefire-plugin:2.5:test) >> 1 error >> at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:957) >> at com.google.inject.Scopes$1$1.get(Scopes.java:63) >> at >> org.sonatype.guice.bean.locators.LazyQualifiedBean.getValue(LazyQualifiedBean.java:66) >> at >> org.sonatype.guice.plexus.locators.LazyPlexusBean.getValue(LazyPlexusBean.java:54) >> at >> org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:249) >> ... 23 more >> Caused by: com.google.inject.ProvisionException: Guice provision errors: >> 1) No implementation for >> org.apache.maven.artifact.resolver.ArtifactResolver was bound. >> while locating org.apache.maven.plugin.surefire.SurefirePlugin >> 1 error >> at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:957) >> at >> com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:983) >> at >> org.sonatype.guice.bean.reflect.AbstractDeferredClass.get(AbstractDeferredClass.java:48) >> at >> com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40) >> at com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:948) >> at >> com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:994) >> at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:944) >> ... 27 more >> >> /* the correct implementation is as follows */ >> <build> >> <plugins> >> <plugin> >> <groupId>org.apache.maven.plugins</groupId> >> <artifactId>maven-surefire-plugin</artifactId> >> <version>2.4.2</version> >> <inherited>false</inherited> >> <configuration> >> <childDelegation>true</childDelegation> >> <useManifestOnlyJar>true</useManifestOnlyJar> >> <useSystemClassLoader>true</useSystemClassLoader> >> <skipTests>true</skipTests> >> <forkMode>never</forkMode> >> <useFile>true</useFile> >> <trimStackTrace>false</trimStackTrace> >> <failIfNoTests>false</failIfNoTests> >> <systemProperties combine.children="append"> >> <redirectTestOutputToFile>true</redirectTestOutputToFile> >> >> <classesDirectory>${project.build.directory}/target/test-classes</classesDirectory> >> <property> >> <!-- Pass this through to the tests (if set!) to >> have them pick the right repository --> >> <name>maven.repo.local</name> >> >> <value>file://C:/DOCUME~1/NotBillGates/.m2/repository</value> >> </property> >> </systemProperties> >> </configuration> >> </plugin> >> </plugins> >> </build> >> >> I think this is perhaps what ken was alluding to about maven when bugs are >> discovered >> my suggestion is we clear the Guice Injector code out of >> maven-surefire-plugin until we can determine DefaultPlexusContainer can >> correctly parse the artifact string from >> org.apache.maven.plugins:maven-surefire-plugin:2.5:test: >> to >> org.apache.maven.plugins:maven-surefire-plugin:2.5 >> > > some comments: > > 1) there is no Guice code in the surefire plugin, it's all hidden behind a > Plexus facade that's part of the Maven distributable > - so if it works with one version of surefire, but not another, and > with the same level of Maven then it's not necessarily a > problem with the injector since the same injection code is running in > both cases > > 2) the role-hint is computed by Maven and used to distinguish between mojos > - neither Plexus or Guice assign any meaning > to the structure of a role-hint, it's just an opaque string to the > injection system - that said, the role-hint is expected to have > the goal name as the suffix, otherwise Maven can't distinguish between > different mojos in the same plugin > > 3) if you do open an issue on JIRA please attach a test project or > recreation instructions - I've done several builds involving > surefire with Maven 3 and not seen this error, so I get the feeling it > might be hard to reproduce this issue from scratch > > will file a jira >> >> thanks, >> Martin Gainty >> ______________________________________________ >> Verzicht und Vertraulichkeitanmerkung/Note de déni et de confidentialité >> >> Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene >> Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte >> Weiterleitung oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht >> dient lediglich dem Austausch von Informationen und entfaltet keine >> rechtliche Bindungswirkung. Aufgrund der leichten Manipulierbarkeit von >> E-Mails koennen wir keine Haftung fuer den Inhalt uebernehmen. >> Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le >> destinataire prévu, nous te demandons avec bonté que pour satisfaire >> informez l'expéditeur. N'importe quelle diffusion non autorisée ou la copie >> de ceci est interdite. Ce message sert à l'information seulement et n'aura >> pas n'importe quel effet légalement obligatoire. Étant donné que les email >> peuvent facilement être sujets à la manipulation, nous ne pouvons accepter >> aucune responsabilité pour le contenu fourni. >> >> >> >> >> >> >> >> From: [email protected] >> To: [email protected] >> Subject: Guice Injector appears to be version-unaware >> Date: Tue, 26 Oct 2010 11:12:12 -0400 >> >> >> >> >> Ive noticed recent introduction of Guice injector seemd to be >> version-unaware of the requested plugin >> Is there any way I can request Guice injector to inject a specific version >> of plugin (instead of the first version of the plugin the Guice injector >> sees) >> ? >> Vielen Danke/Bedankt/Merci >> Martin >> ______________________________________________ >> Jogi és Bizalmassági kinyilatkoztatás/Verzicht und >> Vertraulichkeitanmerkung/Note de déni et de confidentialité >> >> >> Ez az üzenet bizalmas. Ha nem ön az akinek szánva volt, akkor kérjük, hogy >> jelentse azt nekünk vissza. Semmiféle továbbítása vagy másolatának készítése >> nem megengedett. Ez az üzenet csak ismeret cserét szolgál és semmiféle jogi >> alkalmazhatósága sincs. Mivel az electronikus üzenetek könnyen >> megváltoztathatóak, ezért minket semmi felelöség nem terhelhet ezen üzenet >> tartalma miatt. >> >> Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene >> Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte >> Weiterleitung oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht >> dient lediglich dem Austausch von Informationen und entfaltet keine >> rechtliche Bindungswirkung. Aufgrund der leichten Manipulierbarkeit von >> E-Mails koennen wir keine Haftung fuer den Inhalt uebernehmen. >> Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le >> destinataire prévu, nous te demandons avec bonté que pour satisfaire >> informez l'expéditeur. N'importe quelle diffusion non autorisée ou la copie >> de ceci est interdite. Ce message sert à l'information seulement et n'aura >> pas n'importe quel effet légalement obligatoire. Étant donné que les email >> peuvent facilement être sujets à la manipulation, nous ne pouvons accepter >> aucune responsabilité pour le contenu fourni. >> >> >> >> > > > > -- > Cheers, Stuart > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
