[jboss-jira] [JBoss JIRA] (DROOLS-1143) Guice error resolving implementation for RepositorySystem in shaded jar for kie-ci 6.3.0.Final with spark streaming (1.6.1)

Jess Evans (JIRA) issues at jboss.org
Mon Nov 14 16:34:00 EST 2016


    [ https://issues.jboss.org/browse/DROOLS-1143?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13322280#comment-13322280 ] 

Jess Evans commented on DROOLS-1143:
------------------------------------

For future reference, the proper way to resolve this problem when forced to generate an uber jar (e.g. Flink job) is to add the appropriate transformers in the Maven shade configuration so that the multitude of META-INF/** config files are not lost.  E.g.:

{quote}<transformer implementation="org.apache.maven.plugins.shade.resource.ComponentsXmlResourceTransformer"/>
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
    <resource>META-INF/sisu/javax.inject.Named</resource>
</transformer>{quote}

> Guice error resolving implementation for RepositorySystem in shaded jar for kie-ci 6.3.0.Final with spark streaming (1.6.1)
> ---------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DROOLS-1143
>                 URL: https://issues.jboss.org/browse/DROOLS-1143
>             Project: Drools
>          Issue Type: Bug
>            Reporter: Lucie Zhao
>            Assignee: Mario Fusco
>
> I'm working on a project where I'm trying to integrate drools with spark streaming.  I've seen this error on DROOLS-723 where it's reported to have been fixed in 6.2.0.Final but I'm using 6.3.0.Final and it's not working for me.  I am able to run a quick test in my eclipse work space without the spark piece and it is working for me.  
> here's the stack trace:
> {code}
> 016-04-27 10:22:32,360 WARN  [streaming-job-executor-0] Sisu (Logs.java:warn(394)) - Error injecting: org.apache.maven.execution.DefaultMavenExecutionRequestPopulator
> com.google.inject.ProvisionException: Guice provision errors:
> 1) No implementation for org.apache.maven.repository.RepositorySystem was bound.
>   while locating org.apache.maven.execution.DefaultMavenExecutionRequestPopulator
> 1 error
> 	at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:974)
> 	at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1000)
> 	at org.eclipse.sisu.space.AbstractDeferredClass.get(AbstractDeferredClass.java:48)
> 	at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:84)
> 	at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:52)
> 	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:108)
> 	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:45)
> 	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
> 	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1018)
> 	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
> 	at com.google.inject.Scopes$1$1.get(Scopes.java:59)
> 	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
> 	at com.google.inject.internal.InjectorImpl$3$1.call(InjectorImpl.java:965)
> 	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1011)
> 	at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:961)
> 	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.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:246)
> 	at org.kie.scanner.embedder.PlexusComponentProvider.lookup(PlexusComponentProvider.java:42)
> 	at org.kie.scanner.embedder.MavenEmbedder.buildMavenExecutionRequest(MavenEmbedder.java:111)
> 	at org.kie.scanner.embedder.MavenEmbedder.<init>(MavenEmbedder.java:84)
> 	at org.kie.scanner.embedder.MavenEmbedder.<init>(MavenEmbedder.java:75)
> 	at org.kie.scanner.embedder.MavenEmbedder.<init>(MavenEmbedder.java:69)
> 	at org.kie.scanner.embedder.MavenProjectLoader.parseMavenPom(MavenProjectLoader.java:55)
> 	at org.kie.scanner.embedder.MavenProjectLoader.parseMavenPom(MavenProjectLoader.java:49)
> 	at org.kie.scanner.ArtifactResolver.getResolverFor(ArtifactResolver.java:127)
> 	at org.kie.scanner.ArtifactResolver.getResolverFor(ArtifactResolver.java:90)
> 	at org.kie.scanner.KieRepositoryScannerImpl.setKieContainer(KieRepositoryScannerImpl.java:88)
> 	at org.drools.compiler.kie.builder.impl.KieServicesImpl.newKieScanner(KieServicesImpl.java:139)
> 	at com.emc.ctooil.spark.SparkKafkaDroolsConsumer$4.call(SparkKafkaDroolsConsumer.java:239)
> 	at com.emc.ctooil.spark.SparkKafkaDroolsConsumer$4.call(SparkKafkaDroolsConsumer.java:1)
> 	at org.apache.spark.streaming.api.java.JavaDStreamLike$$anonfun$foreachRDD$3.apply(JavaDStreamLike.scala:335)
> 	at org.apache.spark.streaming.api.java.JavaDStreamLike$$anonfun$foreachRDD$3.apply(JavaDStreamLike.scala:335)
> 	at org.apache.spark.streaming.dstream.DStream$$anonfun$foreachRDD$1$$anonfun$apply$mcV$sp$3.apply(DStream.scala:661)
> 	at org.apache.spark.streaming.dstream.DStream$$anonfun$foreachRDD$1$$anonfun$apply$mcV$sp$3.apply(DStream.scala:661)
> 	at org.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(ForEachDStream.scala:50)
> 	at org.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1$$anonfun$apply$mcV$sp$1.apply(ForEachDStream.scala:50)
> 	at org.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1$$anonfun$apply$mcV$sp$1.apply(ForEachDStream.scala:50)
> 	at org.apache.spark.streaming.dstream.DStream.createRDDWithLocalProperties(DStream.scala:426)
> 	at org.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1.apply$mcV$sp(ForEachDStream.scala:49)
> 	at org.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1.apply(ForEachDStream.scala:49)
> 	at org.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1.apply(ForEachDStream.scala:49)
> 	at scala.util.Try$.apply(Try.scala:161)
> 	at org.apache.spark.streaming.scheduler.Job.run(Job.scala:39)
> 	at org.apache.spark.streaming.scheduler.JobScheduler$JobHandler$$anonfun$run$1.apply$mcV$sp(JobScheduler.scala:224)
> 	at org.apache.spark.streaming.scheduler.JobScheduler$JobHandler$$anonfun$run$1.apply(JobScheduler.scala:224)
> 	at org.apache.spark.streaming.scheduler.JobScheduler$JobHandler$$anonfun$run$1.apply(JobScheduler.scala:224)
> 	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
> 	at org.apache.spark.streaming.scheduler.JobScheduler$JobHandler.run(JobScheduler.scala:223)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> 	at java.lang.Thread.run(Thread.java:745)
> java.lang.RuntimeException: org.kie.scanner.embedder.MavenEmbedderException: com.google.inject.ProvisionException: Guice provision errors:
> 1) No implementation for org.apache.maven.repository.RepositorySystem was bound.
>   while locating org.apache.maven.execution.DefaultMavenExecutionRequestPopulator
>   at ClassRealm[maven, parent: ClassRealm[maven-parent, parent: null]]
>   at ClassRealm[maven, parent: ClassRealm[maven-parent, parent: null]]
>   while locating org.apache.maven.execution.MavenExecutionRequestPopulator
> 1 error
>       role: org.apache.maven.execution.MavenExecutionRequestPopulator
>   roleHint: 
> 	at org.kie.scanner.embedder.MavenProjectLoader.parseMavenPom(MavenProjectLoader.java:57)
> 	at org.kie.scanner.embedder.MavenProjectLoader.parseMavenPom(MavenProjectLoader.java:49)
> 	at org.kie.scanner.ArtifactResolver.getResolverFor(ArtifactResolver.java:127)
> 	at org.kie.scanner.ArtifactResolver.getResolverFor(ArtifactResolver.java:90)
> 	at org.kie.scanner.KieRepositoryScannerImpl.setKieContainer(KieRepositoryScannerImpl.java:88)
> 	at org.drools.compiler.kie.builder.impl.KieServicesImpl.newKieScanner(KieServicesImpl.java:139)
> 	at com.emc.ctooil.spark.SparkKafkaDroolsConsumer$4.call(SparkKafkaDroolsConsumer.java:239)
> 	at com.emc.ctooil.spark.SparkKafkaDroolsConsumer$4.call(SparkKafkaDroolsConsumer.java:1)
> 	at org.apache.spark.streaming.api.java.JavaDStreamLike$$anonfun$foreachRDD$3.apply(JavaDStreamLike.scala:335)
> 	at org.apache.spark.streaming.api.java.JavaDStreamLike$$anonfun$foreachRDD$3.apply(JavaDStreamLike.scala:335)
> 	at org.apache.spark.streaming.dstream.DStream$$anonfun$foreachRDD$1$$anonfun$apply$mcV$sp$3.apply(DStream.scala:661)
> 	at org.apache.spark.streaming.dstream.DStream$$anonfun$foreachRDD$1$$anonfun$apply$mcV$sp$3.apply(DStream.scala:661)
> 	at org.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(ForEachDStream.scala:50)
> 	at org.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1$$anonfun$apply$mcV$sp$1.apply(ForEachDStream.scala:50)
> 	at org.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1$$anonfun$apply$mcV$sp$1.apply(ForEachDStream.scala:50)
> 	at org.apache.spark.streaming.dstream.DStream.createRDDWithLocalProperties(DStream.scala:426)
> 	at org.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1.apply$mcV$sp(ForEachDStream.scala:49)
> 	at org.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1.apply(ForEachDStream.scala:49)
> 	at org.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1.apply(ForEachDStream.scala:49)
> 	at scala.util.Try$.apply(Try.scala:161)
> 	at org.apache.spark.streaming.scheduler.Job.run(Job.scala:39)^C
> 	at org.apache.spark.streaming.scheduler.JobScheduler$JobHandler$$anonfun$run$1.apply$mcV$sp(JobScheduler.scala:224)
> 	at org.apache.spark.streaming.scheduler.JobScheduler$JobHandler$$anonfun$run$1.apply(JobScheduler.scala:224)
> 	at org.apache.spark.streaming.scheduler.JobScheduler$JobHandler$$anonfun$run$1.apply(JobScheduler.scala:224)
> 	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
> 	at org.apache.spark.streaming.scheduler.JobScheduler$JobHandler.run(JobScheduler.scala:223)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> 	at java.lang.Thread.run(Thread.java:745)
> Caused by: org.kie.scanner.embedder.MavenEmbedderException: com.google.inject.ProvisionException: Guice provision errors:
> 1) No implementation for org.apache.maven.repository.RepositorySystem was bound.
>   while locating org.apache.maven.execution.DefaultMavenExecutionRequestPopulator
>   at ClassRealm[maven, parent: ClassRealm[maven-parent, parent: null]]
>   at ClassRealm[maven, parent: ClassRealm[maven-parent, parent: null]]
>   while locating org.apache.maven.execution.MavenExecutionRequestPopulator
> 1 error
>       role: org.apache.maven.execution.MavenExecutionRequestPopulator
>   roleHint: 
> 	at org.kie.scanner.embedder.MavenEmbedder.<init>(MavenEmbedder.java:94)
> 	at org.kie.scanner.embedder.MavenEmbedder.<init>(MavenEmbedder.java:75)
> 	at org.kie.scanner.embedder.MavenEmbedder.<init>(MavenEmbedder.java:69)
> 	at org.kie.scanner.embedder.MavenProjectLoader.parseMavenPom(MavenProjectLoader.java:55)
> 	... 28 more
> Caused by: org.codehaus.plexus.component.repository.exception.ComponentLookupException: com.google.inject.ProvisionException: Guice provision errors:
> 1) No implementation for org.apache.maven.repository.RepositorySystem was bound.
>   while locating org.apache.maven.execution.DefaultMavenExecutionRequestPopulator
>   at ClassRealm[maven, parent: ClassRealm[maven-parent, parent: null]]
>   at ClassRealm[maven, parent: ClassRealm[maven-parent, parent: null]]
>   while locating org.apache.maven.execution.MavenExecutionRequestPopulator
> 1 error
>       role: org.apache.maven.execution.MavenExecutionRequestPopulator
>   roleHint: 
> 	at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:264)
> 	at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:252)
> 	at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:246)
> 	at org.kie.scanner.embedder.PlexusComponentProvider.lookup(PlexusComponentProvider.java:42)
> 	at org.kie.scanner.embedder.MavenEmbedder.buildMavenExecutionRequest(MavenEmbedder.java:111)
> 	at org.kie.scanner.embedder.MavenEmbedder.<init>(MavenEmbedder.java:84)
> 	... 31 more
> Caused by: com.google.inject.ProvisionException: Guice provision errors:
> 1) No implementation for org.apache.maven.repository.RepositorySystem was bound.
>   while locating org.apache.maven.execution.DefaultMavenExecutionRequestPopulator
>   at ClassRealm[maven, parent: ClassRealm[maven-parent, parent: null]]
>   at ClassRealm[maven, parent: ClassRealm[maven-parent, parent: null]]
>   while locating org.apache.maven.execution.MavenExecutionRequestPopulator
> 1 error
> 	at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:974)
> 	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)
> 	... 36 more
> {code}



--
This message was sent by Atlassian JIRA
(v7.2.3#72005)


More information about the jboss-jira mailing list