You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ff...@apache.org on 2018/10/12 08:12:33 UTC

[cxf] branch master updated: [CXF-7872]use JAXB2.3 with JDK 9/10/11

This is an automated email from the ASF dual-hosted git repository.

ffang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git


The following commit(s) were added to refs/heads/master by this push:
     new a95593c  [CXF-7872]use JAXB2.3 with JDK 9/10/11
a95593c is described below

commit a95593cf274215d32734ab4d328be606568820ae
Author: Freeman Fang <fr...@gmail.com>
AuthorDate: Thu Aug 23 16:49:40 2018 +0800

    [CXF-7872]use JAXB2.3 with JDK 9/10/11
---
 core/pom.xml                                       |  1 +
 .../apache/cxf/osgi/itests/CXFOSGiTestSupport.java | 52 ++++++++++++-
 .../cxf/osgi/itests/soap/JmsServiceTest.java       |  2 +-
 .../karaf/features/src/main/resources/features.xml |  9 ++-
 parent/pom.xml                                     | 20 ++---
 rt/bindings/soap/pom.xml                           |  1 +
 rt/frontend/jaxws/pom.xml                          |  1 +
 rt/ws/eventing/pom.xml                             |  1 +
 rt/ws/rm/pom.xml                                   |  1 +
 rt/ws/security/pom.xml                             |  1 +
 .../sts/itests/BasicSTSIntegrationTest.java        | 87 ++++++++++++++++++----
 .../cxf/xkms/itests/BasicIntegrationTest.java      | 32 ++++----
 systests/uncategorized/pom.xml                     |  1 +
 testutils/pom.xml                                  |  1 +
 .../java2js/processor/JavaToJSProcessorTest.java   |  4 +-
 .../generator/wsdl11/FaultBeanGeneratorTest.java   |  4 +-
 .../generator/wsdl11/WrapperBeanGeneratorTest.java |  4 +-
 .../java2wsdl/processor/JavaToProcessorTest.java   |  4 +-
 18 files changed, 174 insertions(+), 52 deletions(-)

diff --git a/core/pom.xml b/core/pom.xml
index 4e3eab4..f061c6c 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -63,6 +63,7 @@
             com.sun.xml.bind.api.impl;resolution:=optional,
             com.sun.xml.internal.bind.api;resolution:=optional,
             com.sun.xml.internal.bind.api.impl;resolution:=optional,
+            com.sun.xml.bind.v2.model.annotation;resolution:=optional,
             org.apache.aries*;version="${cxf.aries.version.range}";resolution:=optional
         </cxf.osgi.import>
         <cxf.osgi.dynamic.import>
diff --git a/osgi/itests/src/test/java/org/apache/cxf/osgi/itests/CXFOSGiTestSupport.java b/osgi/itests/src/test/java/org/apache/cxf/osgi/itests/CXFOSGiTestSupport.java
index 72a6a41..c7ea69c 100644
--- a/osgi/itests/src/test/java/org/apache/cxf/osgi/itests/CXFOSGiTestSupport.java
+++ b/osgi/itests/src/test/java/org/apache/cxf/osgi/itests/CXFOSGiTestSupport.java
@@ -39,7 +39,9 @@ import org.osgi.util.tracker.ServiceTracker;
 import org.junit.Assert;
 import org.ops4j.pax.exam.MavenUtils;
 import org.ops4j.pax.exam.Option;
+import org.ops4j.pax.exam.karaf.container.internal.JavaVersionUtil;
 import org.ops4j.pax.exam.options.MavenUrlReference;
+import org.ops4j.pax.exam.options.extra.VMOption;
 
 import static org.ops4j.pax.exam.CoreOptions.composite;
 import static org.ops4j.pax.exam.CoreOptions.maven;
@@ -85,7 +87,8 @@ public class CXFOSGiTestSupport {
         .artifactId("activemq-karaf").type("xml").classifier("features").versionAsInProject();
         String localRepo = System.getProperty("localRepository");
         Object urp = System.getProperty("cxf.useRandomFirstPort");
-        return composite(karafDistributionConfiguration()
+        if (JavaVersionUtil.getMajorVersion() >= 9) {
+            return composite(karafDistributionConfiguration()
                              .frameworkUrl(karafUrl)
                              .karafVersion(getKarafVersion())
                              .name("Apache Karaf")
@@ -102,7 +105,54 @@ public class CXFOSGiTestSupport {
                              .useOptions(editConfigurationFilePut("etc/org.ops4j.pax.url.mvn.cfg",
                                                                   "org.ops4j.pax.url.mvn.localRepository",
                                                                   localRepo)),
+                             new VMOption("--add-reads=java.xml=java.logging"),
+                             new VMOption("--add-exports=java.base/"
+                                 + "org.apache.karaf.specs.locator=java.xml,ALL-UNNAMED"),
+                             new VMOption("--patch-module"),
+                             new VMOption("java.base=lib/endorsed/org.apache.karaf.specs.locator-" 
+                             + System.getProperty("karaf.version", "4.2.2-SNAPSHOT") + ".jar"),
+                             new VMOption("--patch-module"),
+                             new VMOption("java.xml=lib/endorsed/org.apache.karaf.specs.java.xml-" 
+                             + System.getProperty("karaf.version", "4.2.2-SNAPSHOT") + ".jar"),
+                             new VMOption("--add-opens"),
+                             new VMOption("java.base/java.security=ALL-UNNAMED"),
+                             new VMOption("--add-opens"),
+                             new VMOption("java.base/java.net=ALL-UNNAMED"),
+                             new VMOption("--add-opens"),
+                             new VMOption("java.base/java.lang=ALL-UNNAMED"),
+                             new VMOption("--add-opens"),
+                             new VMOption("java.base/java.util=ALL-UNNAMED"),
+                             new VMOption("--add-opens"),
+                             new VMOption("java.naming/javax.naming.spi=ALL-UNNAMED"),
+                             new VMOption("--add-opens"),
+                             new VMOption("java.rmi/sun.rmi.transport.tcp=ALL-UNNAMED"),
+                             new VMOption("--add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED"),
+                             new VMOption("--add-exports=java.base/sun.net.www.protocol.https=ALL-UNNAMED"),
+                             new VMOption("--add-exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED"),
+                             new VMOption("--add-exports=jdk.naming.rmi/com.sun.jndi.url.rmi=ALL-UNNAMED"),
+                             new VMOption("-classpath"),
+                             new VMOption("lib/jdk9plus/*" + File.pathSeparator + "lib/boot/*"),
                          when(urp != null).useOptions(systemProperty("cxf.useRandomFirstPort").value("true")));
+        } else {
+            return composite(karafDistributionConfiguration()
+                             .frameworkUrl(karafUrl)
+                             .karafVersion(getKarafVersion())
+                             .name("Apache Karaf")
+                             .useDeployFolder(false)
+                             .unpackDirectory(new File("target/paxexam/")),
+                         //DO NOT COMMIT WITH THIS LINE ENABLED!!!
+                         //KarafDistributionOption.keepRuntimeFolder(),
+                         //debugConfiguration(), // nor this
+                         systemProperty("pax.exam.osgi.unresolved.fail").value("true"),
+                         systemProperty("java.awt.headless").value("true"),
+                         replaceConfigurationFile("etc/org.ops4j.pax.logging.cfg",
+                                                  new File("src/test/resources/etc/org.ops4j.pax.logging.cfg")),
+                         when(localRepo != null)
+                             .useOptions(editConfigurationFilePut("etc/org.ops4j.pax.url.mvn.cfg",
+                                                                  "org.ops4j.pax.url.mvn.localRepository",
+                                                                  localRepo)),
+                         when(urp != null).useOptions(systemProperty("cxf.useRandomFirstPort").value("true")));
+        }
     }
 
     protected Option testUtils() {
diff --git a/osgi/itests/src/test/java/org/apache/cxf/osgi/itests/soap/JmsServiceTest.java b/osgi/itests/src/test/java/org/apache/cxf/osgi/itests/soap/JmsServiceTest.java
index d163546..f098de6 100644
--- a/osgi/itests/src/test/java/org/apache/cxf/osgi/itests/soap/JmsServiceTest.java
+++ b/osgi/itests/src/test/java/org/apache/cxf/osgi/itests/soap/JmsServiceTest.java
@@ -75,7 +75,7 @@ public class JmsServiceTest extends CXFOSGiTestSupport {
         return new Option[] {
             cxfBaseConfig(),
             testUtils(),
-            features(karafUrl, "spring"),
+            //features(karafUrl, "spring"),
             features(cxfUrl, "cxf-core", "cxf-jaxws", "cxf-transports-jms"),
             features(amqUrl, "aries-blueprint", "shell-compat", "activemq-broker-noweb"),
             provision(serviceBundle())
diff --git a/osgi/karaf/features/src/main/resources/features.xml b/osgi/karaf/features/src/main/resources/features.xml
index f51cafc..d368d59 100644
--- a/osgi/karaf/features/src/main/resources/features.xml
+++ b/osgi/karaf/features/src/main/resources/features.xml
@@ -33,14 +33,15 @@
         <bundle start-level="10" dependency="true">mvn:javax.mail/mail/${cxf.javax.mail.version}</bundle>
         <bundle start-level="20">mvn:org.codehaus.woodstox/stax2-api/${cxf.woodstox.stax2-api.version}</bundle>
         <bundle start-level="20">mvn:com.fasterxml.woodstox/woodstox-core/${cxf.woodstox.core.version}</bundle>
-        <bundle start-level="20">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-impl/${cxf.jaxb.bundle.version}</bundle>
-        <bundle start-level="20">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-xjc/${cxf.jaxb.bundle.version}</bundle>
+        <bundle start-level="20">mvn:com.sun.xml.bind/jaxb-impl/${cxf.jaxb.bundle.version}</bundle>
+        <bundle start-level="20">mvn:com.sun.xml.bind/jaxb-xjc/${cxf.jaxb.bundle.version}</bundle>
+        <bundle start-level="20">mvn:com.sun.xml.bind/jaxb-core/${cxf.jaxb.bundle.version}</bundle>
     </feature>
     <feature name="cxf-jaxb" version="${project.version}">
         <feature version="${project.version}">cxf-specs</feature>
         <feature version="${project.version}">cxf-wsdl</feature>
-        <bundle start-level="20">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-impl/${cxf.jaxb.bundle.version}</bundle>
-        <bundle start-level="20">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-xjc/${cxf.jaxb.bundle.version}</bundle>
+        <bundle start-level="20">mvn:com.sun.xml.bind/jaxb-impl/${cxf.jaxb.bundle.version}</bundle>        
+        <bundle start-level="20">mvn:com.sun.xml.bind/jaxb-xjc/${cxf.jaxb.bundle.version}</bundle>
     </feature>
     <!-- Current the abdera bundle is not working as we expect -->
     <feature name="cxf-abdera" version="${project.version}">
diff --git a/parent/pom.xml b/parent/pom.xml
index d3f1237..5c51b88 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -198,7 +198,7 @@
         <cxf.aries.parser.version>1.3.1</cxf.aries.parser.version> 
         <cxf.aries.version.range>[1.0,2)</cxf.aries.version.range>
         <cxf.osgi.version>5.0.0</cxf.osgi.version>
-        <cxf.karaf.version>4.1.6</cxf.karaf.version>
+        <cxf.karaf.version>4.2.1</cxf.karaf.version>
         <cxf.pax.logging.version>1.6.0</cxf.pax.logging.version>
         <cxf.pax.exam.version>4.12.0</cxf.pax.exam.version>
         <cxf.felix.configadmin.version>1.2.4</cxf.felix.configadmin.version>
@@ -209,8 +209,9 @@
         <cxf.servicemix.specs.version>2.9.0</cxf.servicemix.specs.version>
         <cxf.servicemix.jaxrs.specs.version>2.9.1</cxf.servicemix.jaxrs.specs.version>
         <cxf.javax.mail.version>1.4.4</cxf.javax.mail.version>
-        <cxf.jaxb.bundle.version>2.2.11_1</cxf.jaxb.bundle.version>
+        <cxf.jaxb.bundle.version>2.3.0</cxf.jaxb.bundle.version>
         <cxf.saaj-impl.bundle.version>1.3.23_2</cxf.saaj-impl.bundle.version>
+        <cxf.osgi.saaj.version>[1.3,2)</cxf.osgi.saaj.version>
         <cxf.stax-ex.version>1.7.6</cxf.stax-ex.version>
         <cxf.wsdl4j.bundle.version>1.6.3_1</cxf.wsdl4j.bundle.version>
         <cxf.xmlsec.bundle.version>2.1.2</cxf.xmlsec.bundle.version>
@@ -2877,10 +2878,11 @@
 	    <id>java9-plus</id>
 	    <properties>
                 <cxf.xjc-utils.version>3.2.3-SNAPSHOT</cxf.xjc-utils.version>
+                <cxf.jaxb.version>2.3.0</cxf.jaxb.version>
                 <cxf.asm.version>6.2</cxf.asm.version>
                 <cxf.easymock.version>3.6</cxf.easymock.version>
-                <cxf.karaf.version>4.2.1</cxf.karaf.version>
-                <cxf.pax.exam.version>4.12.0</cxf.pax.exam.version>
+                <cxf.karaf.version>4.2.2-SNAPSHOT</cxf.karaf.version>
+                <cxf.pax.exam.version>4.13.0-SNAPSHOT</cxf.pax.exam.version>
                 <cxf.server.launcher.vmargs>-ea --add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED --add-exports=java.base/java.io=ALL-UNNAMED --add-opens java.rmi/sun.rmi.transport=ALL-UNNAMED --add-opens java.base/java.nio=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/java.security=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.ba [...]
                 <cxf.surefire.fork.vmargs>-ea --add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED --add-exports=java.base/java.io=ALL-UNNAMED --add-opens java.rmi/sun.rmi.transport=ALL-UNNAMED --add-opens java.base/java.nio=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/java.security=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base [...]
                 <org.apache.cxf.transport.websocket.atmosphere.disabled>true</org.apache.cxf.transport.websocket.atmosphere.disabled>
@@ -2917,7 +2919,7 @@
                 <dependency>
                     <groupId>javax.xml.bind</groupId>
                     <artifactId>jaxb-api</artifactId>
-                    <version>2.2.11</version>
+                    <version>${cxf.jaxb.version}</version>
                 </dependency>
                 <dependency>
                     <groupId>javax.annotation</groupId>
@@ -2927,12 +2929,12 @@
                 <dependency>
                     <groupId>javax.xml.ws</groupId>
                     <artifactId>jaxws-api</artifactId>
-                    <version>2.2.9</version>
-                    </dependency>
+                    <version>2.3.0</version>
+                </dependency>
                 <dependency>
                     <groupId>javax.activation</groupId>
-                    <artifactId>activation</artifactId>
-                    <version>1.1.1</version>
+                    <artifactId>javax.activation-api</artifactId>
+                    <version>1.2.0</version>
                 </dependency>
                 <dependency>
                     <groupId>org.apache.geronimo.specs</groupId>
diff --git a/rt/bindings/soap/pom.xml b/rt/bindings/soap/pom.xml
index e409f9f..7d4335e 100644
--- a/rt/bindings/soap/pom.xml
+++ b/rt/bindings/soap/pom.xml
@@ -33,6 +33,7 @@
     <properties>
         <cxf.module.name>org.apache.cxf.binding.soap</cxf.module.name>
         <cxf.osgi.import>
+            javax.xml.soap;version="${cxf.osgi.saaj.version}",
             org.apache.aries*;version="${cxf.aries.version.range}";resolution:=optional,
             org.springframework*;resolution:="optional";version="${cxf.osgi.spring.version}"
         </cxf.osgi.import>
diff --git a/rt/frontend/jaxws/pom.xml b/rt/frontend/jaxws/pom.xml
index 3e54c6e..46667a9 100644
--- a/rt/frontend/jaxws/pom.xml
+++ b/rt/frontend/jaxws/pom.xml
@@ -33,6 +33,7 @@
     <properties>
         <cxf.module.name>org.apache.cxf.frontend.jaxws</cxf.module.name>
         <cxf.osgi.import>
+            javax.xml.soap;version="${cxf.osgi.saaj.version}",
             javax.servlet*;version="${cxf.osgi.javax.servlet.version}",
             org.apache.aries*;version="${cxf.aries.version.range}";resolution:=optional,
             javax.xml.ws.spi.http;version="${cxf.osgi.javax.xml.ws.version}";resolution:="optional",
diff --git a/rt/ws/eventing/pom.xml b/rt/ws/eventing/pom.xml
index ac9a755..696273a 100644
--- a/rt/ws/eventing/pom.xml
+++ b/rt/ws/eventing/pom.xml
@@ -15,6 +15,7 @@
     <properties>
         <cxf.module.name>org.apache.cxf.ws.eventing</cxf.module.name>
         <cxf.osgi.import>
+            javax.xml.soap;version="${cxf.osgi.saaj.version}",
             javax.xml.ws*;version="${cxf.osgi.javax.xml.ws.version}",
         </cxf.osgi.import>
     </properties>
diff --git a/rt/ws/rm/pom.xml b/rt/ws/rm/pom.xml
index 251e881..9f89bf6 100644
--- a/rt/ws/rm/pom.xml
+++ b/rt/ws/rm/pom.xml
@@ -34,6 +34,7 @@
         <cxf.module.name>org.apache.cxf.ws.rm</cxf.module.name>
         <cxf.bundle.activator>org.apache.cxf.ws.rm.blueprint.Activator</cxf.bundle.activator>
         <cxf.osgi.import>
+            javax.xml.soap;version="${cxf.osgi.saaj.version}",
             org.apache.aries*;version="${cxf.aries.version.range}";resolution:=optional,
             org.springframework*;resolution:="optional";version="${cxf.osgi.spring.version}"
         </cxf.osgi.import>
diff --git a/rt/ws/security/pom.xml b/rt/ws/security/pom.xml
index 866f4df..7bb6215 100644
--- a/rt/ws/security/pom.xml
+++ b/rt/ws/security/pom.xml
@@ -33,6 +33,7 @@
     <properties>
         <cxf.module.name>org.apache.cxf.ws.security</cxf.module.name>
         <cxf.osgi.import>
+            javax.xml.soap;version="${cxf.osgi.saaj.version}",
             net.sf.ehcache*;resolution:=optional;version="[2.5, 3.0.0)",
             org.opensaml*;version="${cxf.opensaml.osgi.version.range}",
             javax.xml.ws*;version="${cxf.osgi.javax.xml.ws.version}"
diff --git a/services/sts/systests/sts-itests/src/test/java/org/apache/cxf/systest/sts/itests/BasicSTSIntegrationTest.java b/services/sts/systests/sts-itests/src/test/java/org/apache/cxf/systest/sts/itests/BasicSTSIntegrationTest.java
index c9c1c21..7c31747 100644
--- a/services/sts/systests/sts-itests/src/test/java/org/apache/cxf/systest/sts/itests/BasicSTSIntegrationTest.java
+++ b/services/sts/systests/sts-itests/src/test/java/org/apache/cxf/systest/sts/itests/BasicSTSIntegrationTest.java
@@ -24,7 +24,9 @@ import org.apache.cxf.testutil.common.TestUtil;
 
 import org.ops4j.pax.exam.Configuration;
 import org.ops4j.pax.exam.Option;
+import org.ops4j.pax.exam.karaf.container.internal.JavaVersionUtil;
 import org.ops4j.pax.exam.options.MavenArtifactUrlReference;
+import org.ops4j.pax.exam.options.extra.VMOption;
 import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
 import org.ops4j.pax.exam.spi.reactors.PerClass;
 
@@ -58,24 +60,77 @@ public class BasicSTSIntegrationTest {
             .artifactId("cxf-services-sts-systests-features") //
             .versionAsInProject() //
             .type("xml");
+        
+        if (JavaVersionUtil.getMajorVersion() >= 9) {
+            return new Option[] {
+                                 karafDistributionConfiguration().frameworkUrl(karafUrl)
+                                     .karafVersion(karafVersion)
+                                     .unpackDirectory(new File("target/paxexam/unpack/"))
+                                     .useDeployFolder(false),
+                                 systemProperty("java.awt.headless").value("true"),
+                                 systemProperty("BasicSTSIntegrationTest.PORT").value(port),
+
+                copy("clientKeystore.properties"), copy("clientstore.jks"),
+                                 copy("etc/org.ops4j.pax.logging.cfg"),
+                                 editConfigurationFilePut("etc/org.ops4j.pax.web.cfg",
+                                                          "org.osgi.service.http.port", port),
+                                 when(localRepository != null)
+                                     .useOptions(editConfigurationFilePut("etc/org.ops4j.pax.url.mvn.cfg",
+                                                                          "org.ops4j.pax.url.mvn.localRepository",
+                                                                          localRepository)),
+                                 features(stsFeatures, "cxf-sts-service"),
+                                 configureConsole().ignoreLocalConsole().ignoreRemoteShell(),
+            new VMOption("--add-reads=java.xml=java.logging"),
+            new VMOption("--add-exports=java.base/"
+                + "org.apache.karaf.specs.locator=java.xml,ALL-UNNAMED"),
+            new VMOption("--patch-module"),
+            new VMOption("java.base=lib/endorsed/org.apache.karaf.specs.locator-"
+                + System.getProperty("karaf.version", "4.2.2-SNAPSHOT")
+                + ".jar"),
+            new VMOption("--patch-module"),
+            new VMOption("java.xml=lib/endorsed/org.apache.karaf.specs.java.xml-"
+                + System.getProperty("karaf.version", "4.2.2-SNAPSHOT")
+                + ".jar"),
+            new VMOption("--add-opens"),
+            new VMOption("java.base/java.security=ALL-UNNAMED"),
+            new VMOption("--add-opens"), new VMOption("java.base/java.net=ALL-UNNAMED"),
+            new VMOption("--add-opens"), new VMOption("java.base/java.lang=ALL-UNNAMED"),
+            new VMOption("--add-opens"), new VMOption("java.base/java.util=ALL-UNNAMED"),
+            new VMOption("--add-opens"),
+            new VMOption("java.naming/javax.naming.spi=ALL-UNNAMED"),
+            new VMOption("--add-opens"),
+            new VMOption("java.rmi/sun.rmi.transport.tcp=ALL-UNNAMED"),
+            new VMOption("--add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED"),
+            new VMOption("--add-exports=java.base/sun.net.www.protocol.https=ALL-UNNAMED"),
+            new VMOption("--add-exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED"),
+            new VMOption("--add-exports=jdk.naming.rmi/com.sun.jndi.url.rmi=ALL-UNNAMED"),
+            new VMOption("-classpath"),
+            new VMOption("lib/jdk9plus/*" + File.pathSeparator + "lib/boot/*"),
+
+            };
+        } else {
+
+            return new Option[] {
+                                 karafDistributionConfiguration().frameworkUrl(karafUrl)
+                                     .karafVersion(karafVersion)
+                                     .unpackDirectory(new File("target/paxexam/unpack/"))
+                                     .useDeployFolder(false),
+                                 systemProperty("java.awt.headless").value("true"),
+                                 systemProperty("BasicSTSIntegrationTest.PORT").value(port),
 
-        return new Option[] {
-            karafDistributionConfiguration().frameworkUrl(karafUrl).karafVersion(karafVersion)
-                .unpackDirectory(new File("target/paxexam/unpack/")).useDeployFolder(false),
-            systemProperty("java.awt.headless").value("true"),
-            systemProperty("BasicSTSIntegrationTest.PORT").value(port),
+                copy("clientKeystore.properties"), copy("clientstore.jks"),
+                                 copy("etc/org.ops4j.pax.logging.cfg"),
+                                 editConfigurationFilePut("etc/org.ops4j.pax.web.cfg",
+                                                          "org.osgi.service.http.port", port),
+                                 when(localRepository != null)
+                                     .useOptions(editConfigurationFilePut("etc/org.ops4j.pax.url.mvn.cfg",
+                                                                          "org.ops4j.pax.url.mvn.localRepository",
+                                                                          localRepository)),
+                                 features(stsFeatures, "cxf-sts-service"),
+                                 configureConsole().ignoreLocalConsole().ignoreRemoteShell(),
 
-            copy("clientKeystore.properties"),
-            copy("clientstore.jks"),
-            copy("etc/org.ops4j.pax.logging.cfg"),
-            editConfigurationFilePut("etc/org.ops4j.pax.web.cfg", "org.osgi.service.http.port", port),
-            when(localRepository != null)
-                .useOptions(editConfigurationFilePut("etc/org.ops4j.pax.url.mvn.cfg",
-                            "org.ops4j.pax.url.mvn.localRepository",
-                            localRepository)),
-            features(stsFeatures, "cxf-sts-service"),
-            configureConsole().ignoreLocalConsole().ignoreRemoteShell(),
-        };
+            };
+        }
     }
 
     protected Option copy(String path) {
diff --git a/services/xkms/xkms-itests/src/test/java/org/apache/cxf/xkms/itests/BasicIntegrationTest.java b/services/xkms/xkms-itests/src/test/java/org/apache/cxf/xkms/itests/BasicIntegrationTest.java
index 56a62ff..3bfd05c 100644
--- a/services/xkms/xkms-itests/src/test/java/org/apache/cxf/xkms/itests/BasicIntegrationTest.java
+++ b/services/xkms/xkms-itests/src/test/java/org/apache/cxf/xkms/itests/BasicIntegrationTest.java
@@ -113,19 +113,25 @@ public class BasicIntegrationTest {
                                                           + "cxf-xkms-service,cxf-xkms-client,"
                                                           + "cxf-xkms-ldap,exam,test-dependencies"),
                                  configureConsole().ignoreLocalConsole(), 
-                new VMOption("--add-opens"),
-                new VMOption("java.base/java.security=ALL-UNNAMED"),
-                new VMOption("--add-opens"), new VMOption("java.base/java.net=ALL-UNNAMED"),
-                new VMOption("--add-opens"), new VMOption("java.base/java.lang=ALL-UNNAMED"),
-                new VMOption("--add-opens"), new VMOption("java.base/java.util=ALL-UNNAMED"),
-                new VMOption("--add-opens"),
-                new VMOption("java.naming/javax.naming.spi=ALL-UNNAMED"),
-                new VMOption("--add-opens"),
-                new VMOption("java.rmi/sun.rmi.transport.tcp=ALL-UNNAMED"),
-                new VMOption("--add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED"),
-                new VMOption("--add-exports=java.base/sun.net.www.protocol.https=ALL-UNNAMED"),
-                new VMOption("--add-exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED"),
-                new VMOption("--add-exports=jdk.naming.rmi/com.sun.jndi.url.rmi=ALL-UNNAMED")
+            new VMOption("--patch-module"),
+            new VMOption("java.xml=lib/endorsed/org.apache.karaf.specs.java.xml-"
+                + System.getProperty("karaf.version", "4.2.2-SNAPSHOT")
+                + ".jar"),
+            new VMOption("--add-opens"),
+            new VMOption("java.base/java.security=ALL-UNNAMED"),
+            new VMOption("--add-opens"), new VMOption("java.base/java.net=ALL-UNNAMED"),
+            new VMOption("--add-opens"), new VMOption("java.base/java.lang=ALL-UNNAMED"),
+            new VMOption("--add-opens"), new VMOption("java.base/java.util=ALL-UNNAMED"),
+            new VMOption("--add-opens"),
+            new VMOption("java.naming/javax.naming.spi=ALL-UNNAMED"),
+            new VMOption("--add-opens"),
+            new VMOption("java.rmi/sun.rmi.transport.tcp=ALL-UNNAMED"),
+            new VMOption("--add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED"),
+            new VMOption("--add-exports=java.base/sun.net.www.protocol.https=ALL-UNNAMED"),
+            new VMOption("--add-exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED"),
+            new VMOption("--add-exports=jdk.naming.rmi/com.sun.jndi.url.rmi=ALL-UNNAMED"),
+            new VMOption("-classpath"),
+            new VMOption("lib/jdk9plus/*" + File.pathSeparator + "lib/boot/*"),
             };
 
         } else {
diff --git a/systests/uncategorized/pom.xml b/systests/uncategorized/pom.xml
index fc92b5b..8d0c36d 100644
--- a/systests/uncategorized/pom.xml
+++ b/systests/uncategorized/pom.xml
@@ -449,6 +449,7 @@
                                 <exclude>**/*CORBADocLitClientTypeTest.java</exclude>
                                 <exclude>**/*CorbaTest.java</exclude>
                                 <exclude>**/*CorbaTimeoutTest.java</exclude>
+                                <exclude>**/*ValidationClientServerTest.java</exclude>
                             </excludes>
                         </configuration>
                     </plugin>
diff --git a/testutils/pom.xml b/testutils/pom.xml
index 8964da8..97a73fa 100644
--- a/testutils/pom.xml
+++ b/testutils/pom.xml
@@ -33,6 +33,7 @@
     <properties>
         <cxf.module.name>org.apache.cxf.testutils</cxf.module.name>
         <cxf.osgi.import>
+            javax.xml.soap;version="${cxf.osgi.saaj.version}",
             javax.xml.ws*;version="${cxf.osgi.javax.xml.ws.version}",
         </cxf.osgi.import>
     </properties>
diff --git a/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2js/processor/JavaToJSProcessorTest.java b/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2js/processor/JavaToJSProcessorTest.java
index 0328ac6..472fb5d 100755
--- a/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2js/processor/JavaToJSProcessorTest.java
+++ b/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2js/processor/JavaToJSProcessorTest.java
@@ -74,8 +74,8 @@ public class JavaToJSProcessorTest extends ProcessorTestBase {
         classFile.mkdir();
         String java9PlusFolder = output.getParent() + "/java9";
         System.setProperty("java.class.path", getClassPath() + classFile.getCanonicalPath()
-                           + File.separatorChar + ":" + java9PlusFolder + "/jaxb-api-2.2.11.jar"
-                           + ":" + java9PlusFolder + "/jaxws-api-2.2.9.jar"
+                           + File.separatorChar + ":" + java9PlusFolder + "/jaxb-api-2.3.0.jar"
+                           + ":" + java9PlusFolder + "/jaxws-api-2.3.0.jar"
                            + ":" + java9PlusFolder + "/geronimo-ws-metadata_2.0_spec-1.1.3.jar");
         
 
diff --git a/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2wsdl/generator/wsdl11/FaultBeanGeneratorTest.java b/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2wsdl/generator/wsdl11/FaultBeanGeneratorTest.java
index c942e77..836d3e4 100644
--- a/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2wsdl/generator/wsdl11/FaultBeanGeneratorTest.java
+++ b/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2wsdl/generator/wsdl11/FaultBeanGeneratorTest.java
@@ -47,8 +47,8 @@ public class FaultBeanGeneratorTest extends ProcessorTestBase {
             System.setProperty("org.apache.cxf.common.util.Compiler-fork", "true");
             String java9PlusFolder = output.getParent() + "/java9";
             System.setProperty("java.class.path", System.getProperty("java.class.path") 
-                               + ":" + java9PlusFolder + "/jaxb-api-2.2.11.jar"
-                               + ":" + java9PlusFolder + "/jaxws-api-2.2.9.jar"
+                               + ":" + java9PlusFolder + "/jaxb-api-2.3.0.jar"
+                               + ":" + java9PlusFolder + "/jaxws-api-2.3.0.jar"
                                + ":" + java9PlusFolder + "/geronimo-ws-metadata_2.0_spec-1.1.3.jar");
         }
         processor.setEnvironment(env);
diff --git a/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2wsdl/generator/wsdl11/WrapperBeanGeneratorTest.java b/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2wsdl/generator/wsdl11/WrapperBeanGeneratorTest.java
index abd3719..f61e2d8 100644
--- a/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2wsdl/generator/wsdl11/WrapperBeanGeneratorTest.java
+++ b/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2wsdl/generator/wsdl11/WrapperBeanGeneratorTest.java
@@ -139,8 +139,8 @@ public class WrapperBeanGeneratorTest extends ProcessorTestBase {
         if (JavaUtils.isJava9Compatible()) {
             String java9PlusFolder = output.getParent() + "/java9";
             System.setProperty("java.class.path", System.getProperty("java.class.path") 
-                               + ":" + java9PlusFolder + "/jaxb-api-2.2.11.jar"
-                               + ":" + java9PlusFolder + "/jaxws-api-2.2.9.jar"
+                               + ":" + java9PlusFolder + "/jaxb-api-2.3.0.jar"
+                               + ":" + java9PlusFolder + "/jaxws-api-2.3.0.jar"
                                + ":" + java9PlusFolder + "/geronimo-ws-metadata_2.0_spec-1.1.3.jar");
         }
 
diff --git a/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2wsdl/processor/JavaToProcessorTest.java b/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2wsdl/processor/JavaToProcessorTest.java
index ca58702..a227885 100644
--- a/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2wsdl/processor/JavaToProcessorTest.java
+++ b/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2wsdl/processor/JavaToProcessorTest.java
@@ -165,8 +165,8 @@ public class JavaToProcessorTest extends ProcessorTestBase {
 
         String java9PlusFolder = output.getParent() + "/java9";
         System.setProperty("java.class.path", getClassPath() + classFile.getCanonicalPath()
-            + File.separatorChar + ":" + java9PlusFolder + "/jaxb-api-2.2.11.jar"
-            + ":" + java9PlusFolder + "/jaxws-api-2.2.9.jar"
+            + File.separatorChar + ":" + java9PlusFolder + "/jaxb-api-2.3.0.jar"
+            + ":" + java9PlusFolder + "/jaxws-api-2.3.0.jar"
             + ":" + java9PlusFolder + "/geronimo-ws-metadata_2.0_spec-1.1.3.jar");
 
         env.put(ToolConstants.CFG_COMPILE, ToolConstants.CFG_COMPILE);