Platform:
debian 9.6 "stretch",
openjdk-8 8u181-b13-2~deb9u1,
maven 3.3.9,
pax exam 4.10.0
When I add some maven dependencies with <scope>provided</scope>, without
changing anything else, my karaf-based pax exam test starts failing.
Is this expected?
My initial feeling was that adding "provided" dependencies would make it
possible to compile classes with those dependencies, but should not
affect the runtime.
Some details
1. The pax exam test that worked before I added my dependencies (and
returns to working if I remove them)
https://github.com/steinarb/ukelonn/blob/master/ukelonn.tests/src/test/java/no/priv/bang/ukelonn/tests/UkelonnServiceIntegrationTest.java#L45
2. I am working on a pull request to make MockHttpServletRequest and
MockHttpServletResponse of mockrunner-servlet become available to
pax exam tests, by making mockrunner-servlet and its dependency
mockrunner-core become OSGi bundles
https://github.com/mockrunner/mockrunner/issues/56
3. My fix-branch for creating a pull request for the mockrunner
issue. Note! This branch may be squashed and rebased before making
it into a pull request
https://github.com/steinarb/mockrunner/tree/make-jars-be-osgi-bundles
4. I've added dependencies to the dependencyManagement section of the
parent POM:
<properties>
<mockrunner.version>2.0.2-SNAPSHOT</mockrunner.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.mockrunner</groupId>
<artifactId>mockrunner-core</artifactId>
<version>${mockrunner.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.mockrunner</groupId>
<artifactId>mockrunner-servlet</artifactId>
<version>${mockrunner.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
(the "test" scope is because I'm using the MockHttpServletRequest
and MockHttpServletResponse in regular unit tests)
5. I've added dependencies to the pom of the ukelonn.tests projects (no
Java code changes yet, those were to come next):
<dependencies>
<dependency>
<groupId>com.mockrunner</groupId>
<artifactId>mockrunner-core</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.mockrunner</groupId>
<artifactId>mockrunner-servlet</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
6. The test shows normal output for karaf starting up and then quiet
for a long time until the tests time out
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running no.priv.bang.ukelonn.tests.UkelonnServiceIntegrationTest
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further
details.
Dec 28, 2018 10:48:42 AM org.apache.karaf.main.Main launch
INFO: Installing and starting initial bundles
Dec 28, 2018 10:48:42 AM org.apache.karaf.main.Main launch
INFO: All initial bundles installed and set to start
Dec 28, 2018 10:48:42 AM org.apache.karaf.main.lock.SimpleFileLock lock
INFO: Trying to lock
/home/sb/workspaces/ws03/ukelonn/ukelonn.tests/target/exam/d0af686b-4731-47fa-aab1-3a1b19127934/lock
Dec 28, 2018 10:48:42 AM org.apache.karaf.main.lock.SimpleFileLock lock
INFO: Lock acquired
Dec 28, 2018 10:48:42 AM org.apache.karaf.main.Main$KarafLockCallback
lockAquired
INFO: Lock acquired. Setting startlevel to 100
[ERROR] Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed:
720.545 s <<< FAILURE! - in
no.priv.bang.ukelonn.tests.UkelonnServiceIntegrationTest
[ERROR] no.priv.bang.ukelonn.tests.UkelonnServiceIntegrationTest Time
elapsed: 720.543 s <<< ERROR!
java.lang.RuntimeException: Cannot get the remote bundle context
Caused by: java.rmi.NotBoundException: 66b548e0-d5ef-4830-b25a-7c709e11b9d5
[ERROR] no.priv.bang.ukelonn.tests.UkelonnServiceIntegrationTest Time
elapsed: 720.545 s <<< ERROR!
java.lang.RuntimeException: Container never came up
at
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
at
org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:272)
at
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:236)
at
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)
7. The karaf.log shows initial output and that it stops before loading
any features:
Dec 28, 2018 10:48:42 AM org.apache.karaf.main.Main launch
INFO: Installing and starting initial bundles
Dec 28, 2018 10:48:42 AM org.apache.karaf.main.Main launch
INFO: All initial bundles installed and set to start
Dec 28, 2018 10:48:42 AM org.apache.karaf.main.lock.SimpleFileLock lock
INFO: Trying to lock
/home/sb/workspaces/ws03/ukelonn/ukelonn.tests/target/exam/d0af686b-4731-47fa-aab1-3a1b19127934/lock
Dec 28, 2018 10:48:42 AM org.apache.karaf.main.lock.SimpleFileLock lock
INFO: Lock acquired
Dec 28, 2018 10:48:42 AM org.apache.karaf.main.Main$KarafLockCallback
lockAquired
INFO: Lock acquired. Setting startlevel to 100
8. I ran "mvn dependency:tree" to see what the introduced dependencies
looked like:
[INFO] +- com.mockrunner:mockrunner-core:jar:2.0.2-SNAPSHOT:provided
[INFO] | +- jdom:jdom:jar:1.0:provided
[INFO] | +- oro:oro:jar:2.0.8:provided
[INFO] | +- com.kirkk:jaranalyzer:jar:1.2:provided
[INFO] | | +- bcel:bcel:jar:5.1:provided
[INFO] | | | \- regexp:regexp:jar:1.2:provided
[INFO] | | +- jakarta-regexp:jakarta-regexp:jar:1.4:provided
[INFO] | | \- ant:ant:jar:1.6.5:provided
[INFO] | \- nekohtml:nekohtml:jar:0.9.5:provided
[INFO] | \- xerces:xercesImpl:jar:2.4.0:provided
[INFO] +- com.mockrunner:mockrunner-servlet:jar:2.0.2-SNAPSHOT:provided
[INFO] | +-
com.mockrunner:mockrunner-core:xml:features:2.0.2-SNAPSHOT:provided
[INFO] | +- commons-logging:commons-logging:jar:1.0.4:compile
[INFO] | +- org.apache.tomcat:servlet-api:jar:6.0.37:provided
[INFO] | \- org.apache.tomcat:jasper:jar:6.0.37:provided
[INFO] | +- org.apache.tomcat:juli:jar:6.0.37:provided
[INFO] | +- org.apache.tomcat:jsp-api:jar:6.0.37:provided
[INFO] | +- org.apache.tomcat:catalina:jar:6.0.37:provided
[INFO] | | \- org.apache.tomcat:annotations-api:jar:6.0.37:provided
[INFO] | +- org.apache.tomcat:el-api:jar:6.0.37:provided
[INFO] | +- org.eclipse.jdt.core.compiler:ecj:jar:4.2.2:provided
[INFO] | \- org.apache.tomcat:jasper-el:jar:6.0.37:provided
9. I excluded the commons-logging dependency that had scope compile
<dependencies>
<dependency>
<groupId>com.mockrunner</groupId>
<artifactId>mockrunner-servlet</artifactId>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
10. This made no difference I could see in the output from the maven
build
[INFO] --- maven-surefire-plugin:2.20:test (default-test) @ ukelonn.tests
---
[INFO]
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running no.priv.bang.ukelonn.tests.UkelonnServiceIntegrationTest
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further
details.
Dec 28, 2018 11:24:01 AM org.apache.karaf.main.Main launch
INFO: Installing and starting initial bundles
Dec 28, 2018 11:24:01 AM org.apache.karaf.main.Main launch
INFO: All initial bundles installed and set to start
Dec 28, 2018 11:24:01 AM org.apache.karaf.main.lock.SimpleFileLock lock
INFO: Trying to lock
/home/sb/workspaces/ws03/ukelonn/ukelonn.tests/target/exam/72ae121c-3e79-422e-a5a6-6985c16e8238/lock
Dec 28, 2018 11:24:01 AM org.apache.karaf.main.lock.SimpleFileLock lock
INFO: Lock acquired
Dec 28, 2018 11:24:01 AM org.apache.karaf.main.Main$KarafLockCallback
lockAquired
INFO: Lock acquired. Setting startlevel to 100
[ERROR] Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed:
720.517 s <<< FAILURE! - in
no.priv.bang.ukelonn.tests.UkelonnServiceIntegrationTest
[ERROR] no.priv.bang.ukelonn.tests.UkelonnServiceIntegrationTest Time
elapsed: 720.516 s <<< ERROR!
java.lang.RuntimeException: Cannot get the remote bundle context
Caused by: java.rmi.NotBoundException: ed2778fb-26e7-49df-8545-c51a70814011
[ERROR] no.priv.bang.ukelonn.tests.UkelonnServiceIntegrationTest Time
elapsed: 720.517 s <<< ERROR!
java.lang.RuntimeException: Container never came up
at
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
at
org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:272)
at
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:236)
at
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)
11. The karaf.log also looked the same: it stops at the point where the
working variant of the test (ie. without the mockrunner
dependencies) starts loading the features
Dec 28, 2018 11:24:01 AM org.apache.karaf.main.Main launch
INFO: Installing and starting initial bundles
Dec 28, 2018 11:24:01 AM org.apache.karaf.main.Main launch
INFO: All initial bundles installed and set to start
Dec 28, 2018 11:24:01 AM org.apache.karaf.main.lock.SimpleFileLock lock
INFO: Trying to lock
/home/sb/workspaces/ws03/ukelonn/ukelonn.tests/target/exam/72ae121c-3e79-422e-a5a6-6985c16e8238/lock
Dec 28, 2018 11:24:01 AM org.apache.karaf.main.lock.SimpleFileLock lock
INFO: Lock acquired
Dec 28, 2018 11:24:01 AM org.apache.karaf.main.Main$KarafLockCallback
lockAquired
INFO: Lock acquired. Setting startlevel to 100
Does anyone have any idea why adding these maven dependencies makes the
test fail?
Thanks!
- Steinar
--
--
------------------
OPS4J - http://www.ops4j.org - [email protected]
---
You received this message because you are subscribed to the Google Groups
"OPS4J" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.