I used transformer

<transformers>
  <transformer 
implementation="org.apache.maven.plugins.shade.resource.ComponentsXmlResourceTransformer">

  </transformer>
</transformers>

which threw exception in maven-surefire-plugin runtime :


*[WARNING] Error injecting:
org.apache.maven.surefire.shade.org.apache.maven.shared.artifact.resolve.internal.DefaultArtifactResolverjava.lang.TypeNotPresentException:
Type
org.apache.maven.surefire.shade.org.apache.maven.shared.artifact.resolve.internal.DefaultArtifactResolver
not present*

*Caused by: java.lang.ClassNotFoundException:
org.apache.maven.surefire.shade.org.apache.maven.shared.artifact.resolve.internal.DefaultArtifactResolver*


After these experiences I decided to simplify something to have a progress
and removed transformer and packages reallocation.
The surefire runtime is not able to find internal class which should be
fixed first.
*java.lang.NoClassDefFoundError:
org/apache/maven/surefire/common/junit48/JUnit48TestChecker:
org.apache.maven.surefire.common.junit48.JUnit48TestChecker -> [Help 1]*

This means the transitive dependency of provider surefire-junit47  was not
propagated to the classpath of Forked JVM.
It means it's a bug in my latest commit as it seems.
After this we should make repackaging working again.

Cheers
Tibor




On Sun, Jan 17, 2016 at 6:29 PM, Robert Scholte <[email protected]>
wrote:

> Hi Tibor,
>
> I actually had the same question about the other dependencies which are
> shaded.
> Based on the exception I would expect that you need a transformer[1],
> based on the excepted I would say the PluginXmlResourceTransformer
> (otherwise ComponentsXmlResourceTransformer).
> The other option is to finetune the relocation pattern, since
> org.apache.maven.share also shades the packages of maven-artifact-transfer.
>
> thanks,
> Robert
>
> [1]
> http://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html
>
>
> Op Sun, 17 Jan 2016 17:56:44 +0100 schreef Tibor Digana <
> [email protected]>:
>
>
> Hi Robert,
>>
>> A new problem with maven-artifact-transfer.
>> Should we really shade it?
>> Not able to inject ArtifactResolver as it seems:
>>
>> [INFO] --- maven-surefire-plugin:2.19.2-SNAPSHOT:test (default-test) @
>> child ---
>> [WARNING] Error injecting: org.apache.maven.plugin.surefire.SurefirePlugin
>> com.google.inject.ProvisionException: Guice provision errors:
>>
>> 1) No implementation for
>>
>> org.apache.maven.surefire.shade.org.apache.maven.shared.artifact.resolve.ArtifactResolver
>> was bound.
>>   while locating org.apache.maven.plugin.surefire.SurefirePlugin
>>
>> 1 error
>>     at
>> com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1006)
>>     at
>>
>> com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1032)
>>     at
>>
>> org.eclipse.sisu.space.AbstractDeferredClass.get(AbstractDeferredClass.java:48)
>>     at
>>
>> com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:86)
>>     at
>>
>> com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:55)
>>     at
>>
>> com.google.inject.internal.ProviderInternalFactory$1.call(ProviderInternalFactory.java:70)
>>     at
>>
>> com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:100)
>>     at
>>
>> org.eclipse.sisu.plexus.PlexusLifecycleManager.onProvision(PlexusLifecycleManager.java:133)
>>     at
>>
>> com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:109)
>>     at
>>
>> com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:55)
>>     at
>>
>> com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:68)
>>     at
>>
>> com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:47)
>>     at
>> com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:997)
>>     at
>>
>> com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1047)
>>     at
>> com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:993)
>>     at com.google.inject.Scopes$1$1.get(Scopes.java:59)
>>     at
>> org.eclipse.sisu.inject.LazyBeanEntry.getValue(LazyBeanEntry.java:82)
>>     at
>> org.eclipse.sisu.plexus.LazyPlexusBean.getValue(LazyPlexusBean.java:51)
>>     at
>>
>> org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:260)
>>     at
>>
>> org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:252)
>>     at
>>
>> org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:462)
>>     at
>>
>> org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:120)
>>     at
>>
>> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
>>     at
>>
>> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
>>     at
>>
>> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
>>     at
>>
>> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:108)
>>     at
>>
>> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:76)
>>     at
>>
>> org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
>>     at
>>
>> org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:116)
>>     at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:361)
>>     at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
>>     at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
>>     at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:213)
>>     at org.apache.maven.cli.MavenCli.main(MavenCli.java:157)
>>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>     at
>>
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>     at
>>
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>     at java.lang.reflect.Method.invoke(Method.java:497)
>>     at
>>
>> org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
>>     at
>>
>> org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
>>     at
>>
>> org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
>>     at
>> org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
>>     at org.codehaus.classworlds.Launcher.main(Launcher.java:46)
>>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>     at
>>
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>     at
>>
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>     at java.lang.reflect.Method.invoke(Method.java:497)
>>     at
>> com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
>> [INFO]
>> ------------------------------------------------------------------------
>> [INFO] BUILD FAILURE
>> [INFO]
>> ------------------------------------------------------------------------
>> [INFO] Total time: 1.702 s
>> [INFO] Finished at: 2016-01-17T17:53:06+01:00
>> [INFO] Final Memory: 9M/155M
>> [INFO]
>> ------------------------------------------------------------------------
>> [ERROR] Failed to execute goal
>> org.apache.maven.plugins:maven-surefire-plugin:2.19.2-SNAPSHOT:test
>> (default-test) on project child: Execution default-test of goal
>> org.apache.maven.plugins:maven-surefire-plugin:2.19.2-SNAPSHOT: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.19.2-SNAPSHOT':
>> com.google.inject.ProvisionException: Guice provision errors:
>> [ERROR]
>> [ERROR] 1) No implementation for
>>
>> org.apache.maven.surefire.shade.org.apache.maven.shared.artifact.resolve.ArtifactResolver
>> was bound.
>> [ERROR] while locating org.apache.maven.plugin.surefire.SurefirePlugin
>> [ERROR] at
>>
>> ClassRealm[plugin>org.apache.maven.plugins:maven-surefire-plugin:2.19.2-SNAPSHOT,
>> parent: sun.misc.Launcher$AppClassLoader@7852e922]
>> [ERROR] while locating org.apache.maven.plugin.Mojo annotated with
>>
>> @com.google.inject.name.Named(value=org.apache.maven.plugins:maven-surefire-plugin:2.19.2-SNAPSHOT:test)
>> [ERROR]
>> [ERROR] 1 error
>> [ERROR] role: org.apache.maven.plugin.Mojo
>> [ERROR] roleHint:
>> org.apache.maven.plugins:maven-surefire-plugin:2.19.2-SNAPSHOT:test
>>
>> On Sat, Jan 9, 2016 at 1:17 PM, Robert Scholte <[email protected]>
>> wrote:
>>
>> Hi Tibor,
>>>
>>> Regarding the artifactResolver.resolveTransitively, this has been
>>> replaced
>>> with dependencyResolver. The reason is that an artifact is basically a
>>> coordinate with a file, it is not aware of dependencies.
>>>
>>> I've traced one down for you:
>>>
>>> org.apache.maven.plugin.surefire.AbstractSurefireMojo.getForkConfiguration()
>>> contains
>>> Artifact shadeFire = getPluginArtifactMap().get(
>>> "org.apache.maven.surefire:surefire-shadefire" );
>>>
>>> If you get the Plugin instead and use
>>> org.apache.maven.shared.dependency.TransferUtils.toDependencyCoordinate(
>>> plugin )
>>> , then you'll be able to get all dependencies and their artifacts for the
>>> classpath.
>>>
>>> I'll leave the fixing up to you to get some more feedback on the
>>> maven-artifact-transfer components.
>>>
>>> thanks,
>>> Robert
>>>
>>> Op Thu, 07 Jan 2016 20:33:47 +0100 schreef Tibor Digana <
>>> [email protected]>:
>>>
>>>
>>> Now I removed maven-compat completely.
>>>
>>>>
>>>> <dependency>
>>>>   <groupId>org.apache.maven.shared</groupId>
>>>>   <artifactId>maven-artifact-transfer</artifactId>
>>>>   <version>3.0-SNAPSHOT</version>
>>>> </dependency>
>>>>
>>>> It seems release version is not available.
>>>>
>>>> I should resolve compilation error after new 3.0 AtrifactResolver and
>>>> I will come back to you.
>>>>
>>>>
>>>>
>>>>
>>>> return artifactResolver.resolveTransitively( Collections.singleton(
>>>> providerArtifact ), originatingArtifact,
>>>>                                              localRepository,
>>>> remoteRepositories, artifactMetadataSource,
>>>>                                              filter );
>>>>
>>>>
>>>>
>>>>
>>>> On Thu, Jan 7, 2016 at 7:39 PM, Robert Scholte <[email protected]>
>>>> wrote:
>>>>
>>>> Hi Tibor,
>>>>
>>>>>
>>>>> Bullet 4: Remove maven-compat (or give it the test-scope if it is
>>>>> required
>>>>> by the maven-plugin-testing-harness)
>>>>>
>>>>> Now I think you're at a state where Maven2 classes must be replaced
>>>>> with
>>>>> Maven3 solutions.
>>>>>
>>>>> Robert
>>>>>
>>>>> Op Thu, 07 Jan 2016 18:54:06 +0100 schreef Tibor Digana <
>>>>> [email protected]>:
>>>>>
>>>>>
>>>>> Hi Robert,
>>>>>
>>>>>
>>>>>> I did as you said and I have new issue. Any dea?
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> testSurefireReportSingleError(org.apache.maven.plugins.surefire.report.SurefireReportMojoTest)
>>>>>> Time elapsed: 0.042 sec  <<< ERROR!
>>>>>>
>>>>>>
>>>>>>
>>>>>> org.codehaus.plexus.component.repository.exception.ComponentLookupException:
>>>>>> java.util.NoSuchElementException
>>>>>>       role: org.apache.maven.repository.RepositorySystem
>>>>>>   roleHint:
>>>>>>     at
>>>>>>
>>>>>>
>>>>>>
>>>>>> org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:253)
>>>>>>     at
>>>>>>
>>>>>>
>>>>>>
>>>>>> org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:241)
>>>>>>     at
>>>>>>
>>>>>>
>>>>>>
>>>>>> org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:235)
>>>>>>     at
>>>>>> org.codehaus.plexus.PlexusTestCase.lookup(PlexusTestCase.java:207)
>>>>>>     at
>>>>>>
>>>>>>
>>>>>>
>>>>>> org.apache.maven.plugin.testing.AbstractMojoTestCase.setUp(AbstractMojoTestCase.java:118)
>>>>>>     at
>>>>>>
>>>>>>
>>>>>>
>>>>>> org.apache.maven.plugins.surefire.report.SurefireReportMojoTest.setUp(SurefireReportMojoTest.java:56)
>>>>>>     at junit.framework.TestCase.runBare(TestCase.java:139)
>>>>>>     at junit.framework.TestResult$1.protect(TestResult.java:122)
>>>>>>     at junit.framework.TestResult.runProtected(TestResult.java:142)
>>>>>>     at junit.framework.TestResult.run(TestResult.java:125)
>>>>>>     at junit.framework.TestCase.run(TestCase.java:129)
>>>>>>     at junit.framework.TestSuite.runTest(TestSuite.java:252)
>>>>>>     at junit.framework.TestSuite.run(TestSuite.java:247)
>>>>>>     at
>>>>>>
>>>>>>
>>>>>>
>>>>>> org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86)
>>>>>>     at
>>>>>>
>>>>>>
>>>>>>
>>>>>> org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
>>>>>>     at
>>>>>>
>>>>>>
>>>>>>
>>>>>> org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
>>>>>>     at
>>>>>>
>>>>>>
>>>>>>
>>>>>> org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
>>>>>>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>     at
>>>>>>
>>>>>>
>>>>>>
>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>>>>     at
>>>>>>
>>>>>>
>>>>>>
>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>>>     at java.lang.reflect.Method.invoke(Method.java:497)
>>>>>>     at
>>>>>>
>>>>>>
>>>>>>
>>>>>> org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
>>>>>>     at
>>>>>>
>>>>>>
>>>>>>
>>>>>> org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
>>>>>>     at
>>>>>>
>>>>>>
>>>>>>
>>>>>> org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
>>>>>>     at
>>>>>>
>>>>>>
>>>>>>
>>>>>> org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
>>>>>>     at
>>>>>>
>>>>>> org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
>>>>>> Caused by: java.util.NoSuchElementException
>>>>>>     at java.util.Collections$EmptyIterator.next(Collections.java:4189)
>>>>>>     at
>>>>>>
>>>>>>
>>>>>>
>>>>>> org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:249)
>>>>>>     ... 25 more
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Thu, Jan 7, 2016 at 6:10 PM, Robert Scholte <[email protected]>
>>>>>> wrote:
>>>>>>
>>>>>> Hi Tibor,
>>>>>>
>>>>>>
>>>>>>> so this is not how it should be done.
>>>>>>> Compat contains classes which Maven2 classes which have been replaced
>>>>>>> by
>>>>>>> Maven3 or are not used anymore.
>>>>>>> Only plugins which need to stay compatible with Maven2 should include
>>>>>>> this
>>>>>>> dependency.
>>>>>>>
>>>>>>> I'll update the page, because we've decided to change the version to
>>>>>>> 3.0-SNAPSHOT
>>>>>>>
>>>>>>> And regarding your other message: see the third bullet when using
>>>>>>> maven-plugin-testing-harness. Use version 2.1 if you want to ensure
>>>>>>> that
>>>>>>> the tests are Maven 3.0 compatible.
>>>>>>>
>>>>>>> If you need help, just let me know. By now I can recognize most of
>>>>>>> the
>>>>>>> migration issues :)
>>>>>>>
>>>>>>> thanks,
>>>>>>> Robert
>>>>>>>
>>>>>>> Op Thu, 07 Jan 2016 00:50:10 +0100 schreef Tibor Digana <
>>>>>>> [email protected]>:
>>>>>>>
>>>>>>> P=NP
>>>>>>>
>>>>>>> maven-compat made the trick
>>>>>>>
>>>>>>>>
>>>>>>>> <dependency>
>>>>>>>>   <groupId>org.apache.maven</groupId>
>>>>>>>>   <artifactId>maven-compat</artifactId>
>>>>>>>> </dependency>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Thu, Jan 7, 2016 at 12:09 AM, Tibor Digana-2 [via Maven] <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>> I missing this import in MOJO after migrating plugin to 3.0
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> import org.apache.maven.shared.artifact.resolve.ArtifactResolver;
>>>>>>>>>
>>>>>>>>> The doc [1] says that maven-artifact-transfer should be used but it
>>>>>>>>> does
>>>>>>>>> not have yet a release version, or?
>>>>>>>>>
>>>>>>>>> <dependency>
>>>>>>>>>   <groupId>org.apache.maven.shared</groupId>
>>>>>>>>>   <artifactId>maven-artifact-transfer</artifactId>
>>>>>>>>>   <version>0.0.1-SNAPSHOT</version>
>>>>>>>>> </dependency>
>>>>>>>>>
>>>>>>>>> [1]
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> https://cwiki.apache.org/confluence/display/MAVEN/Plugin+migration+to+Maven3+dependencies
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Cheers
>>>>>>>>> Tibor
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> ------------------------------
>>>>>>>>> If you reply to this email, your message will be added to the
>>>>>>>>> discussion
>>>>>>>>> below:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> http://maven.40175.n5.nabble.com/migrating-Surefire-to-3-0-RC1-tp5858124.html
>>>>>>>>> To start a new topic under Maven Developers, email
>>>>>>>>> [email protected]
>>>>>>>>> To unsubscribe from Maven Developers, click here
>>>>>>>>> <
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> http://maven.40175.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=142166&code=dGlib3JkaWdhbmFAYXBhY2hlLm9yZ3wxNDIxNjZ8LTI4OTQ5MjEwMg==
>>>>>>>>> >
>>>>>>>>> .
>>>>>>>>> NAML
>>>>>>>>> <
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> http://maven.40175.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml
>>>>>>>>> >
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>> --
>>>>>>>> View this message in context:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> http://maven.40175.n5.nabble.com/migrating-Surefire-to-3-0-RC1-tp5858124p5858130.html
>>>>>>>> Sent from the Maven Developers mailing list archive at Nabble.com.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>
>>>>>>> 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]
>>>>>
>>>>>
>>>>>
>>>>>
>>>> ---------------------------------------------------------------------
>>> 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]
>
>


-- 
Cheers
Tibor

Reply via email to