X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fmdsal-it-base%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmdsal%2Fit%2Fbase%2FAbstractMdsalTestBase.java;h=ad0934122dd565f200344760110b88ea4676d30c;hb=refs%2Fchanges%2F46%2F83846%2F1;hp=d553fde041ef944a1f1dbfea5294d09b65904caa;hpb=d19e003ce273e5b593bd822117b92e1c2a2a487a;p=controller.git 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 d553fde041..ad0934122d 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 @@ -20,21 +20,21 @@ import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.keepRunti import java.io.File; import javax.inject.Inject; import org.junit.Before; -import org.opendaylight.controller.sal.binding.api.BindingAwareBroker; -import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext; -import org.opendaylight.controller.sal.binding.api.BindingAwareProvider; 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; import org.slf4j.LoggerFactory; -public abstract class AbstractMdsalTestBase implements BindingAwareProvider { +public abstract class AbstractMdsalTestBase { private static final Logger LOG = LoggerFactory.getLogger(AbstractMdsalTestBase.class); private static final String MAVEN_REPO_LOCAL = "maven.repo.local"; @@ -46,7 +46,6 @@ public abstract class AbstractMdsalTestBase implements BindingAwareProvider { private static final String KARAF_DEBUG_PORT = "5005"; private static final String KARAF_DEBUG_PROP = "karaf.debug"; private static final String KEEP_UNPACK_DIRECTORY_PROP = "karaf.keep.unpack"; - private static final int REGISTRATION_TIMEOUT = 70000; /* * Default values for karaf distro type, groupId, and artifactId @@ -59,7 +58,6 @@ public abstract class AbstractMdsalTestBase implements BindingAwareProvider { * Property names to override defaults for karaf distro artifactId, groupId, * version, and type */ - private static final String KARAF_DISTRO_VERSION_PROP = "karaf.distro.version"; private static final String KARAF_DISTRO_TYPE_PROP = "karaf.distro.type"; private static final String KARAF_DISTRO_ARTIFACTID_PROP = "karaf.distro.artifactId"; private static final String KARAF_DISTRO_GROUPID_PROP = "karaf.distro.groupId"; @@ -68,40 +66,13 @@ public abstract class AbstractMdsalTestBase implements BindingAwareProvider { @Inject @Filter(timeout = 60000) private BundleContext context; - @Inject @Filter(timeout = 60000) - private BindingAwareBroker broker; - private ProviderContext session = null; - - public ProviderContext getSession() { - return session; - } public abstract MavenUrlReference getFeatureRepo(); public abstract String getFeatureName(); - @Override - public void onSessionInitiated(ProviderContext session) { - LOG.info("Session Initiated: {}",session); - this.session = session; - } - @Before public void setup() throws Exception { - long start = System.nanoTime(); - broker.registerProvider(this); - for (int i = 0; i < REGISTRATION_TIMEOUT; i++) { - if (session != null) { - long stop = System.nanoTime(); - LOG.info("Registered session {} with the MD-SAL after {} ns", - session, - stop - start); - return; - } else { - Thread.sleep(1); - } - } - throw new RuntimeException("Session not initiated after " + REGISTRATION_TIMEOUT + " ms"); } public Option getLoggingOption() { @@ -163,6 +134,38 @@ public abstract class AbstractMdsalTestBase implements BindingAwareProvider { 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()); } }