Bug 1043497

Summary: Drools requires Maven repository configuration even if repo resources are not used
Product: [JBoss] JBoss Fuse Service Works 6 Reporter: Jiri Pechanec <jpechane>
Component: Rules / jBPM integrationAssignee: Rob Cernich <rcernich>
Status: ON_QA --- QA Contact: Matej Melko <mmelko>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: 6.0.0CC: atangrin, ldimaggi, soa-p-jira
Target Milestone: DR1   
Target Release: 6.1.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On: 1045424    
Bug Blocks:    

Description Jiri Pechanec 2013-12-16 13:28:31 UTC
See a message during deployment of bpm-service in the server log
09:34:01,182 WARN  [org.kie.scanner.embedder.MavenSettings] (MSC service thread 1-4) Environment variable M2_HOME is not set

Also tests are not working for this QS when custom settings.xml is in place - all tests are failing

Comment 2 Jiri Pechanec 2013-12-16 15:33:22 UTC
-------------------------------------------------------------------------------
Test set: org.switchyard.quickstarts.bpm.service.ProcessOrderTest
-------------------------------------------------------------------------------
Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 3.743 sec <<< FAILURE!
orderShipped(org.switchyard.quickstarts.bpm.service.ProcessOrderTest)  Time elapsed: 4 sec  <<< ERROR!
java.lang.Exception: java.lang.ExceptionInInitializerError
	at org.switchyard.test.SwitchYardRunner.createTest(SwitchYardRunner.java:64)
	at org.junit.runners.BlockJUnit4ClassRunner$1.runReflectiveCall(BlockJUnit4ClassRunner.java:244)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:241)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
	at org.switchyard.test.SwitchYardRunner.run(SwitchYardRunner.java:85)
	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:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	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.lang.ExceptionInInitializerError
	at org.kie.scanner.embedder.MavenProjectLoader.loadMavenProject(MavenProjectLoader.java:53)
	at org.kie.scanner.Aether.<init>(Aether.java:44)
	at org.kie.scanner.Aether.<clinit>(Aether.java:35)
	at org.kie.scanner.MavenRepository.<clinit>(MavenRepository.java:30)
	at org.kie.scanner.ArtifactResolver.getMavenProjectForGAV(ArtifactResolver.java:78)
	at org.kie.scanner.ArtifactResolver.getResolverFor(ArtifactResolver.java:56)
	at org.kie.scanner.MavenClassLoaderResolver.getClassLoader(MavenClassLoaderResolver.java:48)
	at org.drools.compiler.kie.builder.impl.KieModuleKieProject.<init>(KieModuleKieProject.java:50)
	at org.drools.compiler.kie.builder.impl.KieModuleKieProject.<init>(KieModuleKieProject.java:38)
	at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildAll(KieBuilderImpl.java:184)
	at org.switchyard.component.common.knowledge.session.KnowledgeBuilderSessionFactory.newBase(KnowledgeBuilderSessionFactory.java:125)
	at org.switchyard.component.common.knowledge.session.KnowledgeBuilderSessionFactory.<init>(KnowledgeBuilderSessionFactory.java:71)
	at org.switchyard.component.common.knowledge.session.KnowledgeSessionFactory.newSessionFactory(KnowledgeSessionFactory.java:117)
	at org.switchyard.component.common.knowledge.exchange.KnowledgeExchangeHandler.doStart(KnowledgeExchangeHandler.java:204)
	at org.switchyard.component.bpm.exchange.BPMExchangeHandler.doStart(BPMExchangeHandler.java:108)
	at org.switchyard.deploy.BaseServiceHandler.start(BaseServiceHandler.java:60)
	at org.switchyard.deploy.internal.Deployment.deployImplementations(Deployment.java:574)
	at org.switchyard.deploy.internal.Deployment.start(Deployment.java:144)
	at org.switchyard.test.SwitchYardTestKit.deploy(SwitchYardTestKit.java:757)
	at org.switchyard.test.SwitchYardTestKit.start(SwitchYardTestKit.java:177)
	at org.switchyard.test.SwitchYardRunner.createTest(SwitchYardRunner.java:60)
	... 24 more
Caused by: java.lang.RuntimeException: org.apache.maven.project.ProjectBuildingException: Some problems were encountered while processing the POMs:
[FATAL] Non-resolvable parent POM for org.switchyard.quickstarts:switchyard-quickstart-parent:1.1.1-p2-redhat-1: Failure to find org.switchyard:switchyard-parent:pom:1.1.1-p2-redhat-1 in http://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced and 'parent.relativePath' points at wrong local POM @ org.switchyard.quickstarts:switchyard-quickstart-parent:1.1.1-p2-redhat-1, /home/jpechane/releases/er7/qs/jboss-eap-6.1/quickstarts/switchyard/pom.xml, line 17, column 13

	at org.kie.scanner.embedder.MavenProjectLoader.parseMavenPom(MavenProjectLoader.java:28)
	at org.kie.scanner.embedder.MavenProjectLoader$MavenProjectHolder.loadMavenProject(MavenProjectLoader.java:14)
	at org.kie.scanner.embedder.MavenProjectLoader$MavenProjectHolder.<clinit>(MavenProjectLoader.java:10)
	... 45 more
Caused by: org.apache.maven.project.ProjectBuildingException: Some problems were encountered while processing the POMs:
[FATAL] Non-resolvable parent POM for org.switchyard.quickstarts:switchyard-quickstart-parent:1.1.1-p2-redhat-1: Failure to find org.switchyard:switchyard-parent:pom:1.1.1-p2-redhat-1 in http://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced and 'parent.relativePath' points at wrong local POM @ org.switchyard.quickstarts:switchyard-quickstart-parent:1.1.1-p2-redhat-1, /home/jpechane/releases/er7/qs/jboss-eap-6.1/quickstarts/switchyard/pom.xml, line 17, column 13

	at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:363)
	at org.kie.scanner.embedder.MavenEmbedder.buildProjects(MavenEmbedder.java:370)
	at org.kie.scanner.embedder.MavenEmbedder.readProjects(MavenEmbedder.java:354)
	at org.kie.scanner.embedder.MavenEmbedder.readProject(MavenEmbedder.java:347)
	at org.kie.scanner.embedder.MavenProjectLoader.parseMavenPom(MavenProjectLoader.java:26)
	... 47 more

orderOnHold(org.switchyard.quickstarts.bpm.service.ProcessOrderTest)  Time elapsed: 2 sec  <<< ERROR!
java.lang.Exception: java.lang.NoClassDefFoundError: Could not initialize class org.kie.scanner.MavenRepository
	at org.switchyard.test.SwitchYardRunner.createTest(SwitchYardRunner.java:64)
	at org.junit.runners.BlockJUnit4ClassRunner$1.runReflectiveCall(BlockJUnit4ClassRunner.java:244)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:241)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
	at org.switchyard.test.SwitchYardRunner.run(SwitchYardRunner.java:85)
	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:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	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.lang.NoClassDefFoundError: Could not initialize class org.kie.scanner.MavenRepository
	at org.kie.scanner.ArtifactResolver.getMavenProjectForGAV(ArtifactResolver.java:78)
	at org.kie.scanner.ArtifactResolver.getResolverFor(ArtifactResolver.java:56)
	at org.kie.scanner.MavenClassLoaderResolver.getClassLoader(MavenClassLoaderResolver.java:48)
	at org.drools.compiler.kie.builder.impl.KieModuleKieProject.<init>(KieModuleKieProject.java:50)
	at org.drools.compiler.kie.builder.impl.KieModuleKieProject.<init>(KieModuleKieProject.java:38)
	at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildAll(KieBuilderImpl.java:184)
	at org.switchyard.component.common.knowledge.session.KnowledgeBuilderSessionFactory.newBase(KnowledgeBuilderSessionFactory.java:125)
	at org.switchyard.component.common.knowledge.session.KnowledgeBuilderSessionFactory.<init>(KnowledgeBuilderSessionFactory.java:71)
	at org.switchyard.component.common.knowledge.session.KnowledgeSessionFactory.newSessionFactory(KnowledgeSessionFactory.java:117)
	at org.switchyard.component.common.knowledge.exchange.KnowledgeExchangeHandler.doStart(KnowledgeExchangeHandler.java:204)
	at org.switchyard.component.bpm.exchange.BPMExchangeHandler.doStart(BPMExchangeHandler.java:108)
	at org.switchyard.deploy.BaseServiceHandler.start(BaseServiceHandler.java:60)
	at org.switchyard.deploy.internal.Deployment.deployImplementations(Deployment.java:574)
	at org.switchyard.deploy.internal.Deployment.start(Deployment.java:144)
	at org.switchyard.test.SwitchYardTestKit.deploy(SwitchYardTestKit.java:757)
	at org.switchyard.test.SwitchYardTestKit.start(SwitchYardTestKit.java:177)
	at org.switchyard.test.SwitchYardRunner.createTest(SwitchYardRunner.java:60)
	... 24 more


-------------------------------------------------------------------------------
Test set: org.switchyard.quickstarts.bpm.service.WebServiceTest
-------------------------------------------------------------------------------
Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 1.348 sec <<< FAILURE!
webServiceShipped(org.switchyard.quickstarts.bpm.service.WebServiceTest)  Time elapsed: 1 sec  <<< ERROR!
java.lang.Exception: java.lang.NoClassDefFoundError: Could not initialize class org.kie.scanner.MavenRepository
	at org.switchyard.test.SwitchYardRunner.createTest(SwitchYardRunner.java:64)
	at org.junit.runners.BlockJUnit4ClassRunner$1.runReflectiveCall(BlockJUnit4ClassRunner.java:244)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:241)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
	at org.switchyard.test.SwitchYardRunner.run(SwitchYardRunner.java:85)
	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:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	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.lang.NoClassDefFoundError: Could not initialize class org.kie.scanner.MavenRepository
	at org.kie.scanner.ArtifactResolver.getMavenProjectForGAV(ArtifactResolver.java:78)
	at org.kie.scanner.ArtifactResolver.getResolverFor(ArtifactResolver.java:56)
	at org.kie.scanner.MavenClassLoaderResolver.getClassLoader(MavenClassLoaderResolver.java:48)
	at org.drools.compiler.kie.builder.impl.KieModuleKieProject.<init>(KieModuleKieProject.java:50)
	at org.drools.compiler.kie.builder.impl.KieModuleKieProject.<init>(KieModuleKieProject.java:38)
	at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildAll(KieBuilderImpl.java:184)
	at org.switchyard.component.common.knowledge.session.KnowledgeBuilderSessionFactory.newBase(KnowledgeBuilderSessionFactory.java:125)
	at org.switchyard.component.common.knowledge.session.KnowledgeBuilderSessionFactory.<init>(KnowledgeBuilderSessionFactory.java:71)
	at org.switchyard.component.common.knowledge.session.KnowledgeSessionFactory.newSessionFactory(KnowledgeSessionFactory.java:117)
	at org.switchyard.component.common.knowledge.exchange.KnowledgeExchangeHandler.doStart(KnowledgeExchangeHandler.java:204)
	at org.switchyard.component.bpm.exchange.BPMExchangeHandler.doStart(BPMExchangeHandler.java:108)
	at org.switchyard.deploy.BaseServiceHandler.start(BaseServiceHandler.java:60)
	at org.switchyard.deploy.internal.Deployment.deployImplementations(Deployment.java:574)
	at org.switchyard.deploy.internal.Deployment.start(Deployment.java:144)
	at org.switchyard.test.SwitchYardTestKit.deploy(SwitchYardTestKit.java:757)
	at org.switchyard.test.SwitchYardTestKit.start(SwitchYardTestKit.java:177)
	at org.switchyard.test.SwitchYardRunner.createTest(SwitchYardRunner.java:60)
	... 24 more

Test mechanism  Time elapsed: 3 sec  <<< ERROR!
java.lang.IllegalStateException: Connection manager has been shut down
	at org.apache.http.impl.conn.BasicClientConnectionManager.assertNotShutdown(BasicClientConnectionManager.java:147)
	at org.apache.http.impl.conn.BasicClientConnectionManager.closeIdleConnections(BasicClientConnectionManager.java:247)
	at org.switchyard.component.test.mixins.http.HTTPMixIn.uninitialize(HTTPMixIn.java:458)
	at org.switchyard.test.SwitchYardTestKit.cleanupMixIns(SwitchYardTestKit.java:810)
	at org.switchyard.test.SwitchYardTestKit.cleanup(SwitchYardTestKit.java:186)
	at org.switchyard.test.SwitchYardRunner$TestLifecycleListener.testFinished(SwitchYardRunner.java:95)
	at org.junit.runner.notification.RunNotifier$7.notifyListener(RunNotifier.java:191)
	at org.junit.runner.notification.RunNotifier$SafeNotifier.run(RunNotifier.java:61)
	at org.junit.runner.notification.RunNotifier.fireTestFinished(RunNotifier.java:188)
	at org.junit.internal.runners.model.EachTestNotifier.fireTestFinished(EachTestNotifier.java:39)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:277)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
	at org.switchyard.test.SwitchYardRunner.run(SwitchYardRunner.java:85)
	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:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	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)

Comment 3 kconner 2013-12-19 01:53:17 UTC
The M2_HOME warning does not appear to impact anything, it is part of the discovery and consummation of the user's settings.xml file.

    String mavenHome = System.getenv("M2_HOME");
    if (mavenHome != null) {
      File globalSettingsFile = new File(mavenHome + "/conf/settings.xml");
      if (globalSettingsFile.exists())
        request.setGlobalSettingsFile(globalSettingsFile);
    }
    else {
      log.warn("Environment variable M2_HOME is not set");
    }

The QSes work correctly in the community project so this may be another symptom of the BRMS/BPMS modularisation.  I will retest when we get the ER8 build.

Comment 4 kconner 2013-12-19 15:21:41 UTC
There are still failures under ER8, will investigate.

Comment 5 Keith Babo 2013-12-20 14:37:06 UTC
I will look at this today.

Comment 6 Keith Babo 2013-12-20 20:01:27 UTC
There's not much we can do about that WARN message within SwitchYard.  The failure is due to the fact that Drools cannot resolve the switchyard-parent POM

[FATAL] Non-resolvable parent POM for org.switchyard.quickstarts:switchyard-quickstart-parent:1.1.1-p2-redhat-1: Failure to find org.switchyard:switchyard-parent:pom:1.1.1-p2-redhat-1 


See the following BZ for more details:
https://bugzilla.redhat.com/show_bug.cgi?id=1045424