From: Tom Pantelis Date: Mon, 4 Jun 2018 00:47:43 +0000 (-0400) Subject: AbstractMdsalTestBase: remove derivation from AbstractConfigTestBase X-Git-Tag: release/fluorine~91 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=d19e003ce273e5b593bd822117b92e1c2a2a487a AbstractMdsalTestBase: remove derivation from AbstractConfigTestBase Copied the code in AbstractConfigTestBase to AbstractMdsalTestBase as AbstractConfigTestBase will be going away. Change-Id: I904fa3f60f0e0070e30b0663a1a983201a934cf8 Signed-off-by: Tom Pantelis --- diff --git a/opendaylight/md-sal/mdsal-it-base/pom.xml b/opendaylight/md-sal/mdsal-it-base/pom.xml index 38380dc59c..fa9bc03ee4 100644 --- a/opendaylight/md-sal/mdsal-it-base/pom.xml +++ b/opendaylight/md-sal/mdsal-it-base/pom.xml @@ -20,9 +20,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html mdsal-it-base 1.8.0-SNAPSHOT bundle - - 0.9.0-SNAPSHOT - + @@ -34,12 +32,12 @@ and is available at http://www.eclipse.org/legal/epl-v10.html + - org.opendaylight.controller - config-it-base - ${config.version} - compile + org.opendaylight.odlparent + opendaylight-karaf-empty + zip org.opendaylight.controller @@ -69,7 +67,6 @@ and is available at http://www.eclipse.org/legal/epl-v10.html javax.inject javax.inject - 1 compile 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 500ce8980e..d553fde041 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 @@ -8,30 +8,67 @@ package org.opendaylight.controller.mdsal.it.base; -import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.editConfigurationFilePut; import static org.ops4j.pax.exam.CoreOptions.composite; +import static org.ops4j.pax.exam.CoreOptions.maven; +import static org.ops4j.pax.exam.CoreOptions.when; +import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.configureConsole; +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; +import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.keepRuntimeFolder; +import java.io.File; import javax.inject.Inject; - import org.junit.Before; -import org.opendaylight.controller.config.it.base.AbstractConfigTestBase; 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.Option; +import org.ops4j.pax.exam.OptionUtils; +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.util.Filter; import org.osgi.framework.BundleContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public abstract class AbstractMdsalTestBase extends AbstractConfigTestBase implements BindingAwareProvider { +public abstract class AbstractMdsalTestBase implements BindingAwareProvider { private static final Logger LOG = LoggerFactory.getLogger(AbstractMdsalTestBase.class); + private static final String MAVEN_REPO_LOCAL = "maven.repo.local"; + private static final String ORG_OPS4J_PAX_URL_MVN_LOCAL_REPOSITORY = "org.ops4j.pax.url.mvn.localRepository"; + private static final String ETC_ORG_OPS4J_PAX_URL_MVN_CFG = "etc/org.ops4j.pax.url.mvn.cfg"; + private static final String ETC_ORG_OPS4J_PAX_LOGGING_CFG = "etc/org.ops4j.pax.logging.cfg"; + + private static final String PAX_EXAM_UNPACK_DIRECTORY = "target/exam"; + 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; - @Inject @Filter(timeout=60000) + + /* + * Default values for karaf distro type, groupId, and artifactId + */ + private static final String KARAF_DISTRO_TYPE = "zip"; + private static final String KARAF_DISTRO_ARTIFACTID = "opendaylight-karaf-empty"; + private static final String KARAF_DISTRO_GROUPID = "org.opendaylight.odlparent"; + + /* + * 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"; + + public static final String ORG_OPS4J_PAX_LOGGING_CFG = "etc/org.ops4j.pax.logging.cfg"; + + @Inject @Filter(timeout = 60000) private BundleContext context; - @Inject @Filter(timeout=60000) + @Inject @Filter(timeout = 60000) private BindingAwareBroker broker; private ProviderContext session = null; @@ -39,20 +76,22 @@ public abstract class AbstractMdsalTestBase extends AbstractConfigTestBase imple return session; } + public abstract MavenUrlReference getFeatureRepo(); + + public abstract String getFeatureName(); + @Override public void onSessionInitiated(ProviderContext session) { LOG.info("Session Initiated: {}",session); this.session = session; } - @Override @Before public void setup() throws Exception { - super.setup(); long start = System.nanoTime(); broker.registerProvider(this); - for(int i=0;i klazz) { + return "log4j.logger." + klazz.getPackage().getName(); + } + + public String getKarafDistro() { + String groupId = System.getProperty(KARAF_DISTRO_GROUPID_PROP, KARAF_DISTRO_GROUPID); + String artifactId = System.getProperty(KARAF_DISTRO_ARTIFACTID_PROP, KARAF_DISTRO_ARTIFACTID); + String type = System.getProperty(KARAF_DISTRO_TYPE_PROP, KARAF_DISTRO_TYPE); + + return maven().groupId(groupId).artifactId(artifactId).versionAsInProject().type(type).getURL(); + } + + protected Option mvnLocalRepoOption() { + String mvnRepoLocal = System.getProperty(MAVEN_REPO_LOCAL, ""); + LOG.info("mvnLocalRepo \"{}\"", mvnRepoLocal); + return editConfigurationFilePut(ETC_ORG_OPS4J_PAX_URL_MVN_CFG, ORG_OPS4J_PAX_URL_MVN_LOCAL_REPOSITORY, + mvnRepoLocal); + } + + @Configuration + public Option[] config() { + Option[] options = new Option[] { + when(Boolean.getBoolean(KARAF_DEBUG_PROP)) + .useOptions(KarafDistributionOption.debugConfiguration(KARAF_DEBUG_PORT, true)), + karafDistributionConfiguration().frameworkUrl(getKarafDistro()) + .unpackDirectory(new File(PAX_EXAM_UNPACK_DIRECTORY)).useDeployFolder(false), + when(Boolean.getBoolean(KEEP_UNPACK_DIRECTORY_PROP)).useOptions(keepRuntimeFolder()), + features(getFeatureRepo(), getFeatureName()), + //mavenBundle("org.apache.aries.quiesce", "org.apache.aries.quiesce.api", "1.0.0"), getLoggingOption(), + mvnLocalRepoOption(), + configureConsole().ignoreLocalConsole().ignoreRemoteShell(), + editConfigurationFilePut(ETC_ORG_OPS4J_PAX_LOGGING_CFG, "log4j2.rootLogger.level", "INFO") }; + return OptionUtils.combine(options, getAdditionalOptions()); + } } diff --git a/opendaylight/md-sal/mdsal-it-parent/pom.xml b/opendaylight/md-sal/mdsal-it-parent/pom.xml index 7f835bd9d3..571037ee0a 100644 --- a/opendaylight/md-sal/mdsal-it-parent/pom.xml +++ b/opendaylight/md-sal/mdsal-it-parent/pom.xml @@ -26,7 +26,6 @@ and is available at http://www.eclipse.org/legal/epl-v10.html 1.8.0-SNAPSHOT org.opendaylight.odlparent opendaylight-karaf-empty - 3.1.0 zip false @@ -205,7 +204,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html ${project.build.directory}/test-classes org.opendaylight.controller - mockito-core,objenesis,config-it-base,mdsal-it-base + mockito-core,objenesis,mdsal-it-base META-INF\/** false