On 29 October 2010 09:04, Stephen Connolly <[email protected]>wrote:
> Stuart, you do know that the prevailing opinion is that Martin is a > bot (along the lines of ELISA) and not a real person ;-) I am sorry to hear 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] > > -- Cheers, Stuart
