You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ol...@apache.org on 2019/05/28 10:54:30 UTC

[sling-org-apache-sling-karaf-integration-tests] branch master updated: SLING-8439 Add VM Options for Java 9 and up

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

olli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-karaf-integration-tests.git


The following commit(s) were added to refs/heads/master by this push:
     new ba8bd9e  SLING-8439 Add VM Options for Java 9 and up
ba8bd9e is described below

commit ba8bd9e2657bcab5fc7b6d7c6c1a34860f25fc5a
Author: Oliver Lietz <ol...@apache.org>
AuthorDate: Tue May 28 12:54:09 2019 +0200

    SLING-8439 Add VM Options for Java 9 and up
---
 .../sling/karaf/testing/KarafTestSupport.java      | 39 +++++++++++++++++++++-
 1 file changed, 38 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/sling/karaf/testing/KarafTestSupport.java b/src/main/java/org/apache/sling/karaf/testing/KarafTestSupport.java
index 322078d..340d769 100644
--- a/src/main/java/org/apache/sling/karaf/testing/KarafTestSupport.java
+++ b/src/main/java/org/apache/sling/karaf/testing/KarafTestSupport.java
@@ -26,6 +26,8 @@ import javax.inject.Inject;
 
 import org.apache.karaf.features.BootFinished;
 import org.ops4j.pax.exam.Option;
+import org.ops4j.pax.exam.OptionUtils;
+import org.ops4j.pax.exam.karaf.container.internal.JavaVersionUtil;
 import org.ops4j.pax.exam.util.Filter;
 import org.ops4j.pax.exam.util.PathUtils;
 import org.osgi.framework.Bundle;
@@ -38,6 +40,7 @@ import static org.ops4j.pax.exam.CoreOptions.maven;
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 import static org.ops4j.pax.exam.CoreOptions.options;
 import static org.ops4j.pax.exam.CoreOptions.streamBundle;
+import static org.ops4j.pax.exam.CoreOptions.vmOption;
 import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.editConfigurationFilePut;
 import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.features;
 import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.karafDistributionConfiguration;
@@ -128,7 +131,7 @@ public abstract class KarafTestSupport {
         final int sshPort = findFreePort();
         final int httpPort = findFreePort();
         final String unpackDirectory = String.format("%s/target/paxexam/%s", PathUtils.getBaseDir(), getClass().getSimpleName());
-        return options(
+        final Option[] options = options(
             karafDistributionConfiguration()
                 .frameworkUrl(maven().groupId(karafGroupId()).artifactId(karafArtifactId()).versionAsInProject().type("tar.gz"))
                 .useDeployFolder(false)
@@ -145,6 +148,40 @@ public abstract class KarafTestSupport {
             mavenBundle().groupId("biz.aQute.bnd").artifactId("biz.aQute.bndlib").versionAsInProject(),
             karafTestSupportBundle()
         );
+        if (JavaVersionUtil.getMajorVersion() >= 9) {
+            return OptionUtils.combine(options, java9plus());
+        } else {
+            return options;
+        }
+    }
+
+    protected Option[] java9plus() {
+        return options(
+            vmOption("--add-reads=java.xml=java.logging"),
+            vmOption("--add-exports=java.base/org.apache.karaf.specs.locator=java.xml,ALL-UNNAMED"),
+            vmOption("--patch-module"),
+            vmOption("java.base=lib/endorsed/org.apache.karaf.specs.locator-" + System.getProperty("karaf.version") + ".jar"),
+            vmOption("--patch-module"),
+            vmOption("java.xml=lib/endorsed/org.apache.karaf.specs.java.xml-" + System.getProperty("karaf.version") + ".jar"),
+            vmOption("--add-opens"),
+            vmOption("java.base/java.security=ALL-UNNAMED"),
+            vmOption("--add-opens"),
+            vmOption("java.base/java.net=ALL-UNNAMED"),
+            vmOption("--add-opens"),
+            vmOption("java.base/java.lang=ALL-UNNAMED"),
+            vmOption("--add-opens"),
+            vmOption("java.base/java.util=ALL-UNNAMED"),
+            vmOption("--add-opens"),
+            vmOption("java.naming/javax.naming.spi=ALL-UNNAMED"),
+            vmOption("--add-opens"),
+            vmOption("java.rmi/sun.rmi.transport.tcp=ALL-UNNAMED"),
+            vmOption("--add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED"),
+            vmOption("--add-exports=java.base/sun.net.www.protocol.https=ALL-UNNAMED"),
+            vmOption("--add-exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED"),
+            vmOption("--add-exports=jdk.naming.rmi/com.sun.jndi.url.rmi=ALL-UNNAMED"),
+            vmOption("-classpath"),
+            vmOption("lib/jdk9plus/*" + File.pathSeparator + "lib/boot/*")
+        );
     }
 
 }