From: Robert Varga Date: Tue, 1 Jan 2019 22:09:51 +0000 (+0100) Subject: Fix mdsal-it-base with JDK9+ X-Git-Tag: release/neon~24 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=1bba6142414556f799e16cf26f9b4bef5c61c903 Fix mdsal-it-base with JDK9+ With JDK9+ karaf-4.2.2+ requires additional VMOptions, make sure we pass them down so the container can boot up when run with JDK9+. Change-Id: I77760b6e48b3f4335c382a6da1e9770a912b4467 Signed-off-by: Robert Varga --- diff --git a/opendaylight/md-sal/mdsal-it-base/src/main/java/org/opendaylight/controller/mdsal/it/base/AbstractMdsalTestBase.java b/opendaylight/md-sal/mdsal-it-base/src/main/java/org/opendaylight/controller/mdsal/it/base/AbstractMdsalTestBase.java index a5fc65130b..6d31034d8f 100644 --- a/opendaylight/md-sal/mdsal-it-base/src/main/java/org/opendaylight/controller/mdsal/it/base/AbstractMdsalTestBase.java +++ b/opendaylight/md-sal/mdsal-it-base/src/main/java/org/opendaylight/controller/mdsal/it/base/AbstractMdsalTestBase.java @@ -21,11 +21,14 @@ import java.io.File; import javax.inject.Inject; import org.junit.Before; import org.ops4j.pax.exam.Configuration; +import org.ops4j.pax.exam.MavenUtils; 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.karaf.options.KarafDistributionOption; import org.ops4j.pax.exam.karaf.options.LogLevelOption.LogLevel; import org.ops4j.pax.exam.options.MavenUrlReference; +import org.ops4j.pax.exam.options.extra.VMOption; import org.ops4j.pax.exam.util.Filter; import org.osgi.framework.BundleContext; import org.slf4j.Logger; @@ -131,6 +134,38 @@ public abstract class AbstractMdsalTestBase { mvnLocalRepoOption(), configureConsole().ignoreLocalConsole().ignoreRemoteShell(), editConfigurationFilePut(ETC_ORG_OPS4J_PAX_LOGGING_CFG, "log4j2.rootLogger.level", "INFO") }; + + if (JavaVersionUtil.getMajorVersion() >= 9) { + final String karafVersion = MavenUtils.getArtifactVersion("org.apache.karaf.features", + "org.apache.karaf.features.core"); + options = OptionUtils.combine(options, new VMOption[] { + 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-" + karafVersion + ".jar"), + new VMOption("--patch-module"), + new VMOption("java.xml=lib/endorsed/org.apache.karaf.specs.java.xml-" + karafVersion + ".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/*") + }); + } + return OptionUtils.combine(options, getAdditionalOptions()); } }