Re: Problem with transitive Guava dep
> This problem is specific to maven-plugin-testing-harness. You can use > any version of Guava at runtime, but test classpath is flat so you need > to use single Guava version that is compatible with all components. > > Unfortunately, I don't know how to fix the problem, at least not until > Maven core is using OSGi ;-) > > You have two options in the meantime. Use Guava 14.0.1, which is > compatible with Sisu or use Verifier-based tests, which are immune to > this problem. I will check out if Guava 14.0.1 works although I cant fully test this since I am not utilizing the full dependencies yet. So it might be ending up in runtime problems once I start integrating those dependencies more... So do you have some good examples for verifier based tests of a maven plugin. E.g. we pull in a pom as a test resource and e.g. an AndroidManifest file, do some stuff and then verify the results. Can I do that easily with verifier based tests? If so maybe I should just refactor those tests although thats going to be quite a bit of work.. but better going forward. manfred > > -- > Regards, > Igor > > On 1/24/2014, 17:02, Manfred Moser wrote: >> In the Android Maven Plugin we use the maven-plugin-api, which has a >> transitive dependency to guava 10.0.1. Another dependency (android tools >> common) pulls in 13.0.1 and things are fine so far. >> >> However when I now upgrade to the latest version of the android tools I >> get 15.0. Problem is that causes my build to fail with errors related to >> sisu and guice as used by the maven-plugin-api >> >> E.g. java.lang.NoClassDefFoundError: Could not initialize class >> org.eclipse.sisu.wire.ParameterKeys >> at >> org.eclipse.sisu.wire.DependencyAnalyzer.(DependencyAnalyzer.java:92) >> at >> org.eclipse.sisu.wire.ElementAnalyzer.(ElementAnalyzer.java:87) >> at org.eclipse.sisu.wire.WireModule.configure(WireModule.java:74) >> at >> com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:229) >> at com.google.inject.spi.Elements.getElements(Elements.java:103) >> at >> com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:136) >> at >> com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104) >> at com.google.inject.Guice.createInjector(Guice.java:94) >> at com.google.inject.Guice.createInjector(Guice.java:71) >> at com.google.inject.Guice.createInjector(Guice.java:61) >> at >> org.codehaus.plexus.DefaultPlexusContainer.addPlexusInjector(DefaultPlexusContainer.java:477) >> at >> org.codehaus.plexus.DefaultPlexusContainer.(DefaultPlexusContainer.java:203) >> at >> org.apache.maven.plugin.testing.AbstractMojoTestCase.setupContainer(AbstractMojoTestCase.java:227) >> at >> org.apache.maven.plugin.testing.AbstractMojoTestCase.getContainer(AbstractMojoTestCase.java:261) >> at >> org.apache.maven.plugin.testing.AbstractMojoTestCase.setUp(AbstractMojoTestCase.java:115) >> at >> com.jayway.maven.plugins.android.standalonemojos.UnpackMojoLazyTest.setUp( >> ... >> >> All these test failing extend AbstractMojoTestCase ... >> >> Are there any plans to upgrade guava in sisu/maven? Any other ideas on >> what I can do to get this stuff to behave? >> >> manfred >> >> - >> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org >> For additional commands, e-mail: dev-h...@maven.apache.org >> > > - > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org > For additional commands, e-mail: dev-h...@maven.apache.org > - To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org For additional commands, e-mail: dev-h...@maven.apache.org
Re: Problem with transitive Guava dep
On 24 Jan 2014, at 23:49, Igor Fedorenko wrote: > This problem is specific to maven-plugin-testing-harness. You can use > any version of Guava at runtime, but test classpath is flat so you need > to use single Guava version that is compatible with all components. > > Unfortunately, I don't know how to fix the problem, at least not until > Maven core is using OSGi ;-) > > You have two options in the meantime. Use Guava 14.0.1, which is > compatible with Sisu or use Verifier-based tests, which are immune to > this problem. See also: https://code.google.com/p/google-guice/issues/detail?id=760 (migrate Guice to Guava’s new CacheBuilder API) Fixed in Guice master: https://code.google.com/p/google-guice/source/detail?r=8743a0bb0fb49f30117c846880a7df2e7b36657e and available in sisu-guice 3.1.7 and above (no change needed in Sisu itself). > -- > Regards, > Igor > > On 1/24/2014, 17:02, Manfred Moser wrote: >> In the Android Maven Plugin we use the maven-plugin-api, which has a >> transitive dependency to guava 10.0.1. Another dependency (android tools >> common) pulls in 13.0.1 and things are fine so far. >> >> However when I now upgrade to the latest version of the android tools I >> get 15.0. Problem is that causes my build to fail with errors related to >> sisu and guice as used by the maven-plugin-api >> >> E.g. java.lang.NoClassDefFoundError: Could not initialize class >> org.eclipse.sisu.wire.ParameterKeys >> at >> org.eclipse.sisu.wire.DependencyAnalyzer.(DependencyAnalyzer.java:92) >> at org.eclipse.sisu.wire.ElementAnalyzer.(ElementAnalyzer.java:87) >> at org.eclipse.sisu.wire.WireModule.configure(WireModule.java:74) >> at >> com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:229) >> at com.google.inject.spi.Elements.getElements(Elements.java:103) >> at >> com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:136) >> at >> com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104) >> at com.google.inject.Guice.createInjector(Guice.java:94) >> at com.google.inject.Guice.createInjector(Guice.java:71) >> at com.google.inject.Guice.createInjector(Guice.java:61) >> at >> org.codehaus.plexus.DefaultPlexusContainer.addPlexusInjector(DefaultPlexusContainer.java:477) >> at >> org.codehaus.plexus.DefaultPlexusContainer.(DefaultPlexusContainer.java:203) >> at >> org.apache.maven.plugin.testing.AbstractMojoTestCase.setupContainer(AbstractMojoTestCase.java:227) >> at >> org.apache.maven.plugin.testing.AbstractMojoTestCase.getContainer(AbstractMojoTestCase.java:261) >> at >> org.apache.maven.plugin.testing.AbstractMojoTestCase.setUp(AbstractMojoTestCase.java:115) >> at >> com.jayway.maven.plugins.android.standalonemojos.UnpackMojoLazyTest.setUp( >> ... >> >> All these test failing extend AbstractMojoTestCase ... >> >> Are there any plans to upgrade guava in sisu/maven? Any other ideas on >> what I can do to get this stuff to behave? >> >> manfred >> >> - >> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org >> For additional commands, e-mail: dev-h...@maven.apache.org >> > > - > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org > For additional commands, e-mail: dev-h...@maven.apache.org > - To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org For additional commands, e-mail: dev-h...@maven.apache.org
Re: Problem with transitive Guava dep
This problem is specific to maven-plugin-testing-harness. You can use any version of Guava at runtime, but test classpath is flat so you need to use single Guava version that is compatible with all components. Unfortunately, I don't know how to fix the problem, at least not until Maven core is using OSGi ;-) You have two options in the meantime. Use Guava 14.0.1, which is compatible with Sisu or use Verifier-based tests, which are immune to this problem. -- Regards, Igor On 1/24/2014, 17:02, Manfred Moser wrote: In the Android Maven Plugin we use the maven-plugin-api, which has a transitive dependency to guava 10.0.1. Another dependency (android tools common) pulls in 13.0.1 and things are fine so far. However when I now upgrade to the latest version of the android tools I get 15.0. Problem is that causes my build to fail with errors related to sisu and guice as used by the maven-plugin-api E.g. java.lang.NoClassDefFoundError: Could not initialize class org.eclipse.sisu.wire.ParameterKeys at org.eclipse.sisu.wire.DependencyAnalyzer.(DependencyAnalyzer.java:92) at org.eclipse.sisu.wire.ElementAnalyzer.(ElementAnalyzer.java:87) at org.eclipse.sisu.wire.WireModule.configure(WireModule.java:74) at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:229) at com.google.inject.spi.Elements.getElements(Elements.java:103) at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:136) at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104) at com.google.inject.Guice.createInjector(Guice.java:94) at com.google.inject.Guice.createInjector(Guice.java:71) at com.google.inject.Guice.createInjector(Guice.java:61) at org.codehaus.plexus.DefaultPlexusContainer.addPlexusInjector(DefaultPlexusContainer.java:477) at org.codehaus.plexus.DefaultPlexusContainer.(DefaultPlexusContainer.java:203) at org.apache.maven.plugin.testing.AbstractMojoTestCase.setupContainer(AbstractMojoTestCase.java:227) at org.apache.maven.plugin.testing.AbstractMojoTestCase.getContainer(AbstractMojoTestCase.java:261) at org.apache.maven.plugin.testing.AbstractMojoTestCase.setUp(AbstractMojoTestCase.java:115) at com.jayway.maven.plugins.android.standalonemojos.UnpackMojoLazyTest.setUp( ... All these test failing extend AbstractMojoTestCase ... Are there any plans to upgrade guava in sisu/maven? Any other ideas on what I can do to get this stuff to behave? manfred - To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org For additional commands, e-mail: dev-h...@maven.apache.org - To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org For additional commands, e-mail: dev-h...@maven.apache.org