Convert toaster-it to use mdsal-it 74/36074/9
authorTom Pantelis <tpanteli@brocade.com>
Thu, 10 Mar 2016 11:48:43 +0000 (06:48 -0500)
committerGerrit Code Review <gerrit@opendaylight.org>
Sun, 13 Mar 2016 19:35:04 +0000 (19:35 +0000)
I recently added an mdsal dependency to another project and it caused
the toaster-it test to fail. There was no useful output to troubleshoot,
just that some bundles failed to resolve.

It turns out the mdsal dependency and all its dependencies would need to be
added to the hard-coded bundle configuration for the test. This will be ongoing
issue every time a new dependency is added that might affect the toaster test.

To alleviate this I converted the test from manually installing bundles to use
the mdsal-it functionality which installs features into the
opendaylight-karaf-empty distro.

I also changed AbstractConfigTestBase to override the pax logging to
append to stdout, otherwise most output goes to karaf.log. This is helpful to
troubleshoot failures.

Change-Id: I1dd9150c6e617e491458560fe4b360d37548f264
Signed-off-by: Tom Pantelis <tpanteli@brocade.com>
opendaylight/config/config-it-base/src/main/java/org/opendaylight/controller/config/it/base/AbstractConfigTestBase.java
opendaylight/md-sal/samples/toaster-it/pom.xml
opendaylight/md-sal/samples/toaster-it/src/test/java/org/opendaylight/controller/sample/toaster/it/ToasterTest.java
opendaylight/md-sal/samples/toaster-it/src/test/resources/controller.xml [deleted file]
opendaylight/md-sal/samples/toaster-it/src/test/resources/logback.xml [deleted file]

index a61867b3018c6255c2e0ef49e6125dbf77942d0e..ce38de2d3a33fdb83f383a4400526560f5e6921a 100644 (file)
@@ -14,18 +14,14 @@ import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.editConfi
 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 com.google.common.base.Stopwatch;
-
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.lang.management.ManagementFactory;
 import java.util.Properties;
 import java.util.concurrent.TimeUnit;
-
 import javax.management.ObjectName;
-
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.internal.AssumptionViolatedException;
@@ -44,6 +40,10 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public abstract class AbstractConfigTestBase {
+    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";
@@ -121,6 +121,13 @@ public abstract class AbstractConfigTestBase {
         return karafUrl.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[] {
@@ -131,7 +138,9 @@ public abstract class AbstractConfigTestBase {
                         .useDeployFolder(false),
                 when(Boolean.getBoolean(KEEP_UNPACK_DIRECTORY_PROP)).useOptions(keepRuntimeFolder()),
                 features(getFeatureRepo(), getFeatureName()),
-                getLoggingOption()};
+                getLoggingOption(),
+                mvnLocalRepoOption(),
+                editConfigurationFilePut(ETC_ORG_OPS4J_PAX_LOGGING_CFG, "log4j.rootLogger", "INFO, stdout, osgi:*")};
         return options;
     }
 
index 4acb6636eee264a966310202983b567d9415b27a..766e62b7371dcb19eec9e6c81752ee67d180b1c3 100644 (file)
@@ -2,21 +2,19 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <parent>
-    <groupId>org.opendaylight.controller.samples</groupId>
-    <artifactId>sal-samples</artifactId>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>mdsal-it-parent</artifactId>
     <version>1.4.0-SNAPSHOT</version>
+    <relativePath/>
   </parent>
   <artifactId>sample-toaster-it</artifactId>
 
   <dependencies>
-
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-binding-it</artifactId>
+      <artifactId>features-mdsal</artifactId>
+      <classifier>features</classifier>
+      <type>xml</type>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller.samples</groupId>
       <groupId>org.opendaylight.controller.samples</groupId>
       <artifactId>sample-toaster-consumer</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.opendaylight.mdsal.model</groupId>
-      <artifactId>yang-ext</artifactId>
-    </dependency>
-
     <dependency>
       <groupId>org.opendaylight.controller.samples</groupId>
       <artifactId>sample-toaster-provider</artifactId>
     </dependency>
-    <dependency>
-      <groupId>openexi</groupId>
-      <artifactId>nagasena</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>openexi</groupId>
-      <artifactId>nagasena-rta</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.ops4j.pax.exam</groupId>
-      <artifactId>pax-exam-junit4</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.ops4j.pax.exam</groupId>
-      <artifactId>pax-exam-container-native</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.ops4j.pax.exam</groupId>
-      <artifactId>pax-exam-link-mvn</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>commons-codec</groupId>
-      <artifactId>commons-codec</artifactId>
-      <scope>test</scope>
-    </dependency>
   </dependencies>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.ops4j.pax.exam</groupId>
-        <artifactId>maven-paxexam-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>generate-config</id>
-            <goals>
-              <goal>generate-depends-file</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-  <scm>
-    <connection>scm:git:http://git.opendaylight.org/gerrit/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-  </scm>
 </project>
index 8cc4070ce8a40ef41de01fd49a3a9167a2bca6cc..b255ad318f574e5bd18373b9384c75c7aee6c061 100644 (file)
@@ -7,84 +7,53 @@
  */
 package org.opendaylight.controller.sample.toaster.it;
 
-import org.junit.Assert;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.ops4j.pax.exam.CoreOptions.maven;
+import java.lang.management.ManagementFactory;
+import javax.inject.Inject;
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.opendaylight.controller.mdsal.it.base.AbstractMdsalTestBase;
 import org.opendaylight.controller.sample.kitchen.api.EggsType;
 import org.opendaylight.controller.sample.kitchen.api.KitchenService;
 import org.opendaylight.yang.gen.v1.http.netconfcentral.org.ns.toaster.rev091120.HashBrown;
 import org.opendaylight.yang.gen.v1.http.netconfcentral.org.ns.toaster.rev091120.WhiteBread;
-import org.ops4j.pax.exam.Configuration;
-import org.ops4j.pax.exam.Option;
 import org.ops4j.pax.exam.junit.PaxExam;
-import org.ops4j.pax.exam.options.DefaultCompositeOption;
+import org.ops4j.pax.exam.options.MavenUrlReference;
 import org.ops4j.pax.exam.util.Filter;
-import org.ops4j.pax.exam.util.PathUtils;
-
-import javax.inject.Inject;
-import javax.management.MBeanServer;
-import javax.management.ObjectName;
-
-import java.lang.management.ManagementFactory;
-
-import static org.junit.Assert.assertEquals;
-import static org.opendaylight.controller.test.sal.binding.it.TestHelper.baseModelBundles;
-import static org.opendaylight.controller.test.sal.binding.it.TestHelper.bindingAwareSalBundles;
-import static org.opendaylight.controller.test.sal.binding.it.TestHelper.configMinumumBundles;
-import static org.opendaylight.controller.test.sal.binding.it.TestHelper.junitAndMockitoBundles;
-import static org.opendaylight.controller.test.sal.binding.it.TestHelper.mdSalCoreBundles;
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.systemPackages;
-import static org.ops4j.pax.exam.CoreOptions.systemProperty;
 
 @RunWith(PaxExam.class)
-public class ToasterTest {
-
+public class ToasterTest extends AbstractMdsalTestBase {
     @Inject
     @Filter(timeout=60*1000)
     KitchenService kitchenService;
 
-    @Configuration
-    public Option[] config() {
-        return options(systemProperty("osgi.console").value("2401"), mavenBundle("org.slf4j", "slf4j-api")
-                .versionAsInProject(), //
-                          mavenBundle("org.slf4j", "log4j-over-slf4j").versionAsInProject(), //
-
-                                systemProperty("logback.configurationFile").value(
-                        "file:" + PathUtils.getBaseDir()
-                                + "/src/test/resources/logback.xml"),
-                mavenBundle("ch.qos.logback", "logback-core").versionAsInProject(), //
-                mavenBundle("ch.qos.logback", "logback-classic").versionAsInProject(), //
-                systemProperty("osgi.bundles.defaultStartLevel").value("4"),
-                systemPackages("sun.nio.ch"),
-
-                toasterBundles(),
-                mdSalCoreBundles(),
+    @Override
+    public String getModuleName() {
+        return "toaster-provider-impl";
+    }
 
-                bindingAwareSalBundles(),
-                configMinumumBundles(),
-                // BASE Models
-                baseModelBundles(),
+    @Override
+    public String getInstanceName() {
+        return "toaster-provider-impl";
+    }
 
-                // Set fail if unresolved bundle present
-                systemProperty("pax.exam.osgi.unresolved.fail").value("true"),
-                junitAndMockitoBundles());
+    @Override
+    public MavenUrlReference getFeatureRepo() {
+        return maven().groupId("org.opendaylight.controller").artifactId("features-mdsal").classifier("features")
+                .type("xml").versionAsInProject();
     }
 
-    private Option toasterBundles() {
-        return new DefaultCompositeOption(
-                mavenBundle("org.opendaylight.controller.samples", "sample-toaster-provider").versionAsInProject(),
-                mavenBundle("org.opendaylight.controller.samples", "sample-toaster-consumer").versionAsInProject(),
-                mavenBundle("org.opendaylight.controller.samples", "sample-toaster").versionAsInProject(),
-                mavenBundle("openexi", "nagasena").versionAsInProject(),
-                mavenBundle("openexi", "nagasena-rta").versionAsInProject()
-        );
+    @Override
+    public String getFeatureName() {
+        return "odl-toaster";
     }
 
     @Test
     public void testToaster() throws Exception {
-
         MBeanServer platformMBeanServer = ManagementFactory.getPlatformMBeanServer();
         ObjectName providerOn = new ObjectName("org.opendaylight.controller:instanceName=toaster-provider-impl,type=RuntimeBean,moduleFactoryName=toaster-provider-impl");
 
@@ -97,11 +66,10 @@ public class ToasterTest {
         success &= kitchenService.makeBreakfast( EggsType.SCRAMBLED, HashBrown.class, 4).get().isSuccessful();
         success &= kitchenService.makeBreakfast( EggsType.POACHED, WhiteBread.class, 8 ).get().isSuccessful();
 
-        Assert.assertTrue("Not all breakfasts succeeded", success);
+        assertTrue("Not all breakfasts succeeded", success);
 
         // Verify toasts made count on provider via JMX/config-subsystem
         toastsMade = (long) platformMBeanServer.getAttribute(providerOn, "ToastsMade");
         assertEquals(2, toastsMade);
     }
-
 }
diff --git a/opendaylight/md-sal/samples/toaster-it/src/test/resources/controller.xml b/opendaylight/md-sal/samples/toaster-it/src/test/resources/controller.xml
deleted file mode 100644 (file)
index c1f2ff2..0000000
+++ /dev/null
@@ -1,384 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set et smarttab sw=4 tabstop=4: -->
-<!--
- Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
--->
-
-<persisted-snapshots>
-    <snapshots>
-        <snapshot>
-            <configuration>
-                <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
-                    <modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
-                        <module>
-                            <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">prefix:schema-service-singleton</type>
-                            <name>yang-schema-service</name>
-                        </module>
-                        <module>
-                            <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:runtime-generated-mapping</type>
-                            <name>runtime-mapping-singleton</name>
-                        </module>
-                        <module>
-                    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-notification-adapter</type>
-                    <name>binding-notification-adapter</name>
-                    <binding-notification-adapter xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
-                        <binding-mapping-service>
-                            <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">binding:binding-dom-mapping-service</type>
-                            <name>runtime-mapping-singleton</name>
-                        </binding-mapping-service>
-                        <dom-async-broker>
-                            <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-broker-osgi-registry</type>
-                            <name>dom-broker</name>
-                        </dom-async-broker>
-                    </binding-notification-adapter>
-                </module>
-                <module>
-                    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-notification-publish-adapter</type>
-                    <name>binding-notification-publish-adapter</name>
-                    <binding-notification-publish-adapter xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
-                        <binding-mapping-service>
-                            <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">binding:binding-dom-mapping-service</type>
-                            <name>runtime-mapping-singleton</name>
-                        </binding-mapping-service>
-                        <dom-async-broker>
-                            <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-broker-osgi-registry</type>
-                            <name>dom-broker</name>
-                        </dom-async-broker>
-                    </binding-notification-publish-adapter>
-                </module>
-                <module>
-                            <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-notification-broker</type>
-                            <name>binding-notification-broker</name>
-                        </module>
-                        <module>
-                            <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-broker-impl</type>
-                            <name>binding-broker-impl</name>
-                    <binding-broker-impl xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
-                        <binding-mapping-service>
-                            <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">binding:binding-dom-mapping-service</type>
-                            <name>runtime-mapping-singleton</name>
-                        </binding-mapping-service>
-                        <dom-async-broker>
-                            <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-broker-osgi-registry</type>
-                            <name>dom-broker</name>
-                        </dom-async-broker>
-                        <notification-service>
-                                <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-notification-service</type>
-                                <name>binding-notification-broker</name>
-                            </notification-service>
-                        <data-broker>
-                                <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-data-broker</type>
-                                <name>binding-data-broker</name>
-                            </data-broker>
-                        <root-data-broker>
-                        <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-async-data-broker</type>
-                        <name>binding-data-broker</name>
-                    </root-data-broker>
-                    </binding-broker-impl>
-                </module>
-
-
-                <module>
-                    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:inmemory-datastore-provider">prefix:inmemory-config-datastore-provider</type>
-                    <name>config-store-service</name>
-                    <inmemory-config-datastore-provider xmlns="urn:opendaylight:params:xml:ns:yang:controller:inmemory-datastore-provider">
-                        <schema-service>
-                            <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:schema-service</type>
-                            <name>yang-schema-service</name>
-                        </schema-service>
-                    </inmemory-config-datastore-provider>
-                </module>
-
-                <module>
-                    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:inmemory-datastore-provider">prefix:inmemory-operational-datastore-provider</type>
-                    <name>operational-store-service</name>
-                    <inmemory-operational-datastore-provider xmlns="urn:opendaylight:params:xml:ns:yang:controller:inmemory-datastore-provider">
-                        <schema-service>
-                             <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:schema-service</type>
-                             <name>yang-schema-service</name>
-                        </schema-service>
-                    </inmemory-operational-datastore-provider>
-                </module>
-
-                <!-- PingPong broker -->
-                <!--
-                <module>
-                    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:pingpong">prefix:pingpong-data-broker</type>
-                    <name>pingpong-data-broker</name>
-                    <data-broker>
-                        <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-async-data-broker</type>
-                        <name>inmemory-data-broker</name>
-                    </data-broker>
-                </module>
-                <module>
-                    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-forwarded-data-broker</type>
-                    <name>pingpong-binding-data-broker</name>
-                    <binding-forwarded-data-broker xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
-                        <dom-async-broker>
-                            <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-async-data-broker</type>
-                            <name>pingpong-broker</name>
-                        </dom-async-broker>
-                        <schema-service>
-                            <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:schema-service</type>
-                            <name>yang-schema-service</name>
-                        </schema-service>
-                        <binding-mapping-service>
-                            <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">binding:binding-dom-mapping-service</type>
-                            <name>runtime-mapping-singleton</name>
-                        </binding-mapping-service>
-                    </binding-forwarded-data-broker>
-                        </module>
-                  -->
-                        <!--
-                             Tree-based in-memory data store. This is the data store which is currently
-                             recommended for single-node deployments.
-                        -->
-                        <module>
-                            <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">prefix:dom-inmemory-data-broker</type>
-                            <name>inmemory-data-broker</name>
-
-                            <schema-service>
-                                <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:schema-service</type>
-                                <name>yang-schema-service</name>
-                            </schema-service>
-
-                   <config-data-store>
-                        <type xmlns:config-dom-store-spi="urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:config-dom-store">config-dom-store-spi:config-dom-datastore</type>
-                        <name>config-store-service</name>
-                    </config-data-store>
-
-                    <operational-data-store>
-                        <type xmlns:operational-dom-store-spi="urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:operational-dom-store">operational-dom-store-spi:operational-dom-datastore</type>
-                        <name>operational-store-service</name>
-                    </operational-data-store>
-                        </module>
-                        <module>
-                            <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">prefix:dom-broker-impl</type>
-                            <name>inmemory-dom-broker</name>
-                            <async-data-broker>
-                                <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-async-data-broker</type>
-                                <name>inmemory-data-broker</name>
-                            </async-data-broker>
-                        </module>
-                        <module>
-                            <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-data-compatible-broker</type>
-                            <name>inmemory-binding-data-broker</name>
-                    <binding-data-compatible-broker xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
-                        <data-broker>
-                            <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-async-data-broker</type>
-                            <name>binding-data-broker</name>
-                        </data-broker>
-                    </binding-data-compatible-broker>
-                        </module>
-                        <module>
-                            <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-forwarded-data-broker</type>
-                            <name>binding-async-data-broker</name>
-                            <binding-forwarded-data-broker xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
-                                <dom-async-broker>
-                            <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-async-data-broker</type>
-                            <name>inmemory-data-broker</name>
-                                </dom-async-broker>
-                        <schema-service>
-                            <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:schema-service</type>
-                            <name>yang-schema-service</name>
-                        </schema-service>
-                                <binding-mapping-service>
-                                    <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">binding:binding-dom-mapping-service</type>
-                                    <name>runtime-mapping-singleton</name>
-                                </binding-mapping-service>
-                            </binding-forwarded-data-broker>
-                        </module>
-
-                        <!-- Toaster Congiguration -->
-                        <module>
-                            <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:toaster-provider:impl">
-                                prefix:toaster-provider-impl
-                            </type>
-                            <name>toaster-provider-impl</name>
-
-                            <rpc-registry>
-                                <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-rpc-registry</type>
-                                <name>binding-rpc-broker</name>
-                            </rpc-registry>
-
-                            <data-broker>
-                              <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-async-data-broker</type>
-                              <name>binding-data-broker</name>
-                            </data-broker>
-
-                            <notification-service>
-                                <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">
-                                    binding:binding-notification-service
-                                </type>
-                                <name>binding-notification-broker</name>
-                            </notification-service>
-                        </module>
-
-                        <!-- Kitchen Service -->
-                        <module>
-                            <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:config:kitchen-service:impl">
-                                prefix:kitchen-service-impl
-                            </type>
-                            <name>kitchen-service-impl</name>
-
-                            <rpc-registry>
-                                <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-rpc-registry</type>
-                                <name>binding-rpc-broker</name>
-                            </rpc-registry>
-
-                            <notification-service>
-                                <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">
-                                    binding:binding-notification-service
-                                </type>
-                                <name>binding-notification-broker</name>
-                            </notification-service>
-                        </module>
-                    </modules>
-                    <services xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
-                        <service>
-                            <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:schema-service</type>
-                            <instance>
-                                <name>yang-schema-service</name>
-                                <provider>/modules/module[type='schema-service-singleton'][name='yang-schema-service']</provider>
-                            </instance>
-                        </service>
-
-                <service>
-                    <type xmlns:config-dom-store-spi="urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:config-dom-store">config-dom-store-spi:config-dom-datastore</type>
-                    <instance>
-                        <name>config-store-service</name>
-                        <provider>/modules/module[type='inmemory-config-datastore-provider'][name='config-store-service']</provider>
-                    </instance>
-                </service>
-                <service>
-                    <type xmlns:operational-dom-store-spi="urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:operational-dom-store">operational-dom-store-spi:operational-dom-datastore</type>
-                    <instance>
-                        <name>operational-store-service</name>
-                        <provider>/modules/module[type='inmemory-operational-datastore-provider'][name='operational-store-service']</provider>
-                    </instance>
-                </service>
-                        <service>
-                            <type xmlns:binding-impl="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">binding-impl:binding-dom-mapping-service</type>
-                            <instance>
-                                <name>runtime-mapping-singleton</name>
-                                <provider>/modules/module[type='runtime-generated-mapping'][name='runtime-mapping-singleton']</provider>
-                            </instance>
-                        </service>
-                        <service>
-                        <type xmlns:binding-impl="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">binding-impl:binding-new-notification-service</type>
-                        <instance>
-                            <name>binding-notification-adapter</name>
-                            <provider>/modules/module[type='binding-notification-adapter'][name='binding-notification-adapter']</provider>
-                        </instance>
-                    </service>
-                    <service>
-                        <type xmlns:binding-impl="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">binding-impl:binding-new-notification-publish-service</type>
-                        <instance>
-                            <name>binding-notification-publish-adapter</name>
-                            <provider>/modules/module[type='binding-notification-publish-adapter'][name='binding-notification-publish-adapter']</provider>
-                        </instance>
-                    </service>
-                    <service>
-                            <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-notification-service</type>
-                            <instance>
-                                <name>binding-notification-broker</name>
-                                <provider>/modules/module[type='binding-notification-broker'][name='binding-notification-broker']</provider>
-                            </instance>
-                        </service>
-                        <service>
-                            <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-broker-osgi-registry</type>
-                            <instance>
-                                <name>binding-osgi-broker</name>
-                                <provider>/modules/module[type='binding-broker-impl'][name='binding-broker-impl']</provider>
-                            </instance>
-                        </service>
-                        <service>
-                            <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-rpc-registry</type>
-                            <instance>
-                                <name>binding-rpc-broker</name>
-                                <provider>/modules/module[type='binding-broker-impl'][name='binding-broker-impl']</provider>
-                            </instance>
-                        </service>
-
-                        <service>
-                            <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-broker-osgi-registry</type>
-                            <instance>
-                                <name>dom-broker</name>
-                                <provider>/modules/module[type='dom-broker-impl'][name='inmemory-dom-broker']</provider>
-                            </instance>
-                        </service>
-
-                        <service>
-                            <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-data-broker</type>
-                            <instance>
-                                <name>binding-data-broker</name>
-                                <provider>/modules/module[type='binding-data-compatible-broker'][name='inmemory-binding-data-broker']</provider>
-                            </instance>
-                        </service>
-
-                        <service>
-                            <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-async-data-broker</type>
-                            <instance>
-                                <name>binding-data-broker</name>
-                                <provider>/modules/module[type='binding-forwarded-data-broker'][name='binding-async-data-broker']</provider>
-                            </instance>
-                        <!--
-                        <instance>
-                            <name>pingpong-binding-data-broker</name>
-                            <provider>/modules/module[type='binding-forwarded-data-broker'][name='pingpong-binding-data-broker']</provider>
-                        </instance>
-                        -->
-                        </service>
-
-                        <service>
-                            <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-async-data-broker</type>
-                            <instance>
-                                <name>inmemory-data-broker</name>
-                                <provider>/modules/module[type='dom-inmemory-data-broker'][name='inmemory-data-broker']</provider>
-                            </instance>
-                            <!--
-                            <instance>
-                                <name>pingpong-broker</name>
-                                <provider>/modules/module[type='pingpong-data-broker'][name='pingpong-data-broker']</provider>
-                            </instance>
-                            -->
-                        </service>
-
-                        <!-- Toaster samples -->
-                        <service>
-                          <type xmlns:kitchen="urn:opendaylight:params:xml:ns:yang:controller:config:kitchen-service:impl">
-                            kitchen:kitchen-service
-                          </type>
-                          <instance>
-                            <name>kitchen-service</name>
-                            <provider>/modules/module[type='kitchen-service-impl'][name='kitchen-service-impl']</provider>
-                          </instance>
-                        </service>
-
-                    </services>
-                </data>
-            </configuration>
-            <required-capabilities>
-                <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding?module=opendaylight-md-sal-binding&amp;revision=2013-10-28</capability>
-                <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom?module=opendaylight-md-sal-dom&amp;revision=2013-10-28</capability>
-                <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl?module=opendaylight-sal-binding-broker-impl&amp;revision=2013-10-28</capability>
-                <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:pingpong?module=opendaylight-pingpong-broker&amp;revision=2014-11-07</capability>
-                <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl?module=opendaylight-sal-dom-broker-impl&amp;revision=2013-10-28</capability>
-                <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:common?module=opendaylight-md-sal-common&amp;revision=2013-10-28</capability>
-                <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:config-dom-store?module=opendaylight-config-dom-datastore&amp;revision=2014-06-17</capability>
-                <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:operational-dom-store?module=opendaylight-operational-dom-datastore&amp;revision=2014-06-17</capability>
-                <capability>urn:opendaylight:params:xml:ns:yang:controller:inmemory-datastore-provider?module=opendaylight-inmemory-datastore-provider&amp;revision=2014-06-17</capability>
-
-                <!-- Toaster capabilities -->
-                <capability>http://netconfcentral.org/ns/toaster?module=toaster&amp;revision=2009-11-20</capability>
-                <capability>urn:opendaylight:params:xml:ns:yang:controller:config:kitchen-service:impl?module=kitchen-service-impl&amp;revision=2014-01-31</capability>
-                <capability>urn:opendaylight:params:xml:ns:yang:controller:config:toaster-provider:impl?module=toaster-provider-impl&amp;revision=2014-01-31</capability>
-
-            </required-capabilities>
-        </snapshot>
-    </snapshots>
-</persisted-snapshots>
diff --git a/opendaylight/md-sal/samples/toaster-it/src/test/resources/logback.xml b/opendaylight/md-sal/samples/toaster-it/src/test/resources/logback.xml
deleted file mode 100644 (file)
index d76c2d3..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<configuration scan="true">
-
-  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-    <encoder>
-      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
-      </pattern>
-    </encoder>
-  </appender>
-
-
-  <logger name="org.opendaylight.yangtools.yang.parser" level="ERROR"/>
-
-  <logger name="org.opendaylight.controller.sample.toaster.provider" level="DEBUG"/>
-
-  <root level="error">
-    <appender-ref ref="STDOUT" />
-  </root>
-</configuration>