Bug 4035: Extract dom-config from core-api and broker-impl
authorTony Tkacik <ttkacik@cisco.com>
Wed, 22 Jul 2015 12:59:20 +0000 (14:59 +0200)
committerGerrit Code Review <gerrit@opendaylight.org>
Tue, 18 Aug 2015 18:55:35 +0000 (18:55 +0000)
This patch introduces two new artefacts sal-dom-config
and sal-dom-broker-config which hosts all config subsystem
related MD-SAL DOM Broker implementation.

This patch is required for MD-SAL split in order to
not have cyclic dependency between controller and md-sal
project.

Change-Id: Ic93c583c07ae3e088dcf0e74cbdaaf627a8e79f6
Signed-off-by: Tony Tkacik <ttkacik@cisco.com>
17 files changed:
opendaylight/md-sal/mdsal-artifacts/pom.xml
opendaylight/md-sal/sal-dom-api/src/main/yang/opendaylight-md-sal-common.yang [deleted file]
opendaylight/md-sal/sal-dom-api/src/main/yang/opendaylight-md-sal-dom.yang [deleted file]
opendaylight/md-sal/sal-dom-broker/pom.xml
opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/DomBrokerImplModule.java [deleted file]
opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/DomBrokerImplModuleFactory.java [deleted file]
opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/DomInmemoryDataBrokerModule.java [deleted file]
opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/DomInmemoryDataBrokerModuleFactory.java [deleted file]
opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/SchemaServiceImplSingletonModule.java [deleted file]
opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/SchemaServiceImplSingletonModuleFactory.java [deleted file]
opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/pingpong/PingpongDataBrokerModule.java [deleted file]
opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/pingpong/PingpongDataBrokerModuleFactory.java [deleted file]
opendaylight/md-sal/sal-dom-broker/src/main/yang/opendaylight-dom-broker-impl.yang [deleted file]
opendaylight/md-sal/sal-dom-broker/src/main/yang/opendaylight-pingpong-broker.yang [deleted file]
opendaylight/md-sal/sal-dom-spi/src/main/yang/opendaylight-config-dom-datastore.yang [deleted file]
opendaylight/md-sal/sal-dom-spi/src/main/yang/opendaylight-operational-dom-datastore.yang [deleted file]
opendaylight/md-sal/sal-inmemory-datastore/pom.xml

index 61ba3cc1a2ad46c073f49d86e6b7205b10d41113..cfb1d2695435b129505ac2f2019367992b3d9c34 100644 (file)
             </dependency>
             <dependency>
                 <groupId>${project.groupId}</groupId>
-                <artifactId>sal-binding-config</artifactId>
+                <artifactId>sal-binding-util</artifactId>
                 <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>${project.groupId}</groupId>
-                <artifactId>sal-binding-util</artifactId>
+                <artifactId>sal-connector-api</artifactId>
                 <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>${project.groupId}</groupId>
-                <artifactId>sal-connector-api</artifactId>
+                <artifactId>sal-inmemory-datastore</artifactId>
                 <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>${project.groupId}</groupId>
-                <artifactId>sal-inmemory-datastore</artifactId>
+                <artifactId>sal-dom-config</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>sal-dom-broker-config</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>sal-binding-config</artifactId>
                 <version>${project.version}</version>
             </dependency>
             <dependency>
diff --git a/opendaylight/md-sal/sal-dom-api/src/main/yang/opendaylight-md-sal-common.yang b/opendaylight/md-sal/sal-dom-api/src/main/yang/opendaylight-md-sal-common.yang
deleted file mode 100644 (file)
index b7a0bc0..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-module opendaylight-md-sal-common {\r
-       yang-version 1;\r
-    namespace "urn:opendaylight:params:xml:ns:yang:controller:md:sal:common";\r
-    prefix "md-sal-common";\r
-    \r
-    description\r
-        "Common definition for MD-SAL.";\r
\r
-    revision "2013-10-28" {\r
-        description\r
-            "Initial revision";\r
-    }\r
-    \r
-    grouping rpc-routing-table {\r
-        \r
-        leaf routing-context {\r
-            type string;\r
-        }\r
-        list routes {\r
-            leaf path {\r
-                type string;\r
-            }\r
-            leaf destination {\r
-                type string;\r
-            }\r
-        }\r
-    \r
-    }\r
-\r
-    grouping rpc-router {\r
-        leaf module {\r
-            type string;\r
-        }\r
-        container routing-tables {\r
-            list routing-table {\r
-                uses rpc-routing-table;\r
-            }\r
-        }\r
-    }\r
-\r
-    grouping rpc-state {\r
-        list rpc-router {\r
-            uses rpc-router;\r
-        }\r
-    }\r
-    \r
-    grouping notification-state {\r
-        container notifications {\r
-            leaf published {\r
-                type uint32;\r
-            }\r
-        }\r
-    }\r
-    \r
-    grouping data-state {\r
-        container transactions {\r
-            leaf created {\r
-                type uint32;\r
-            }\r
-            leaf submitted {\r
-                type uint32;\r
-            }\r
-            leaf successful {\r
-                type uint32;\r
-            }\r
-            leaf failed {\r
-                type uint32;\r
-            }\r
-        }\r
-    }\r
-}
\ No newline at end of file
diff --git a/opendaylight/md-sal/sal-dom-api/src/main/yang/opendaylight-md-sal-dom.yang b/opendaylight/md-sal/sal-dom-api/src/main/yang/opendaylight-md-sal-dom.yang
deleted file mode 100644 (file)
index a926cc6..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-module opendaylight-md-sal-dom {
-       yang-version 1;
-    namespace "urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom";
-    prefix "md-sal-dom";
-
-    import config { prefix config; revision-date 2013-04-05; }
-    description
-        "Service definition for Binding Aware MD-SAL.";
-    revision "2013-10-28" {
-        description
-            "Initial revision";
-    }
-
-    identity dom-broker-osgi-registry {
-        base "config:service-type";
-        config:java-class "org.opendaylight.controller.sal.core.api.Broker";
-    }
-
-    identity dom-async-data-broker {
-        base "config:service-type";
-        config:java-class "org.opendaylight.controller.md.sal.dom.api.DOMDataBroker";
-    }
-
-    identity schema-service {
-        base "config:service-type";
-        config:java-class "org.opendaylight.controller.sal.core.api.model.SchemaService";
-    }
-}
\ No newline at end of file
index 84e19042f652ce0dcb977ecc0876a29870d12360..17d45ff64814c936623d0bbff8bae30a26320439 100644 (file)
       <groupId>com.lmax</groupId>
       <artifactId>disruptor</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>config-api</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
       <artifactId>sal-common-impl</artifactId>
           <instructions>
             <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
             <Bundle-Activator>org.opendaylight.controller.sal.dom.broker.osgi.SchemaServiceActivator</Bundle-Activator>
-            <Export-Package>org.opendaylight.controller.sal.dom.broker.spi,
-                            <!--sal.broker.impl is exported for sal-netconf-connector to use SchemaAwareRpcRegistry.-->
-                            <!-- TODO Remove sal.broker.impl from export when SchemaAwareRpcRegistry is not used in connector anymore -->
+            <Export-Package>
+                            <!--  Legacy code -->
+                            org.opendaylight.controller.sal.dom.broker,
                             org.opendaylight.controller.sal.dom.broker.impl,
-                            org.opendaylight.controller.sal.dom.broker.impl.*,
-
-                            <!-- Temporary until we move abstract classes out into SPI -->
-                            org.opendaylight.controller.md.sal.dom.broker.impl,
-                            org.opendaylight.controller.md.sal.dom.broker.impl.jmx,
-                            org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.dom.impl.rev131028.*,
-            </Export-Package>
-            <Private-Package>org.opendaylight.controller.sal.dom.broker,
                             org.opendaylight.controller.sal.dom.broker.osgi,
                             org.opendaylight.controller.sal.dom.broker.util,
-                            org.opendaylight.controller.config.yang.md.sal.dom.impl,
-                            org.opendaylight.controller.config.yang.md.sal.dom.pingpong,
-                            org.opendaylight.controller.config.yang.md.sal.dom.statistics,\
+                            org.opendaylight.controller.sal.dom.broker.spi,
+                            <!--sal.broker.impl is exported for sal-netconf-connector to use SchemaAwareRpcRegistry.-->
+                            <!-- TODO Remove sal.broker.impl from export when SchemaAwareRpcRegistry is not used in connector anymore -->
                             org.opendaylight.controller.md.sal.dom.broker.impl,
                             org.opendaylight.controller.md.sal.dom.broker.impl.*,
-                            org.opendaylight.yangtools.yang.util,
-                            org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.dom.pingpong.rev141107.*
-            </Private-Package>
+            </Export-Package>
             <Import-Package>*</Import-Package>
           </instructions>
         </configuration>
diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/DomBrokerImplModule.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/DomBrokerImplModule.java
deleted file mode 100644 (file)
index fbae80b..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (c) 2014 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
- */
-package org.opendaylight.controller.config.yang.md.sal.dom.impl;
-
-import com.google.common.base.Preconditions;
-import com.google.common.collect.ClassToInstanceMap;
-import com.google.common.collect.MutableClassToInstanceMap;
-import java.util.concurrent.TimeUnit;
-import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker;
-import org.opendaylight.controller.md.sal.dom.api.DOMMountPointService;
-import org.opendaylight.controller.md.sal.dom.api.DOMNotificationPublishService;
-import org.opendaylight.controller.md.sal.dom.api.DOMNotificationService;
-import org.opendaylight.controller.md.sal.dom.api.DOMRpcProviderService;
-import org.opendaylight.controller.md.sal.dom.api.DOMRpcService;
-import org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouter;
-import org.opendaylight.controller.md.sal.dom.broker.impl.DOMRpcRouter;
-import org.opendaylight.controller.md.sal.dom.broker.impl.mount.DOMMountPointServiceImpl;
-import org.opendaylight.controller.sal.core.api.BrokerService;
-import org.opendaylight.controller.sal.core.api.model.SchemaService;
-import org.opendaylight.controller.sal.dom.broker.BrokerImpl;
-import org.opendaylight.controller.sal.dom.broker.GlobalBundleScanningSchemaServiceImpl;
-
-public final class DomBrokerImplModule extends org.opendaylight.controller.config.yang.md.sal.dom.impl.AbstractDomBrokerImplModule
-{
-
-    public DomBrokerImplModule(final org.opendaylight.controller.config.api.ModuleIdentifier identifier, final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
-        super(identifier, dependencyResolver);
-    }
-
-    public DomBrokerImplModule(final org.opendaylight.controller.config.api.ModuleIdentifier identifier, final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, final DomBrokerImplModule oldModule, final java.lang.AutoCloseable oldInstance) {
-        super(identifier, dependencyResolver, oldModule, oldInstance);
-    }
-
-    @Override
-    public void validate() {
-        super.validate();
-        final long depth = getNotificationQueueDepth().getValue();
-        Preconditions.checkArgument(Long.lowestOneBit(depth) == Long.highestOneBit(depth), "Queue depth %s is not power-of-two", depth);
-    }
-
-    @Override
-    public java.lang.AutoCloseable createInstance() {
-        final DOMDataBroker asyncBroker= getAsyncDataBrokerDependency();
-
-        final ClassToInstanceMap<BrokerService> services = MutableClassToInstanceMap.create();
-
-        final DOMNotificationRouter domNotificationRouter = DOMNotificationRouter.create(getNotificationQueueDepth().getValue().intValue(),
-            getNotificationQueueSpin().longValue(), getNotificationQueuePark().longValue(), TimeUnit.MILLISECONDS);
-        services.putInstance(DOMNotificationService.class, domNotificationRouter);
-        services.putInstance(DOMNotificationPublishService.class, domNotificationRouter);
-
-        final SchemaService schemaService = getSchemaServiceImpl();
-        services.putInstance(SchemaService.class, schemaService);
-
-        services.putInstance(DOMDataBroker.class, asyncBroker);
-
-        final DOMRpcRouter rpcRouter = new DOMRpcRouter();
-        schemaService.registerSchemaContextListener(rpcRouter);
-        services.putInstance(DOMRpcService.class, rpcRouter);
-        services.putInstance(DOMRpcProviderService.class, rpcRouter);
-
-        final DOMMountPointService mountService = new DOMMountPointServiceImpl();
-        services.putInstance(DOMMountPointService.class, mountService);
-
-        return new BrokerImpl(rpcRouter, services);
-    }
-
-    private SchemaService getSchemaServiceImpl() {
-        final SchemaService schemaService;
-        if(getRootSchemaService() != null) {
-            schemaService = getRootSchemaServiceDependency();
-        } else {
-            schemaService = GlobalBundleScanningSchemaServiceImpl.getInstance();
-        }
-        return schemaService;
-    }
-}
diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/DomBrokerImplModuleFactory.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/DomBrokerImplModuleFactory.java
deleted file mode 100644 (file)
index f1fcb49..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright (c) 2014 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
- */
-package org.opendaylight.controller.config.yang.md.sal.dom.impl;
-
-
-/**
-*
-*/
-public class DomBrokerImplModuleFactory extends
-        org.opendaylight.controller.config.yang.md.sal.dom.impl.AbstractDomBrokerImplModuleFactory {
-
-}
diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/DomInmemoryDataBrokerModule.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/DomInmemoryDataBrokerModule.java
deleted file mode 100644 (file)
index fffee73..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright (c) 2014 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
- */
-package org.opendaylight.controller.config.yang.md.sal.dom.impl;
-
-import com.google.common.collect.Lists;
-import java.util.EnumMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ExecutorService;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitDeadlockException;
-import org.opendaylight.controller.md.sal.common.util.jmx.AbstractMXBean;
-import org.opendaylight.controller.md.sal.common.util.jmx.ThreadExecutorStatsMXBeanImpl;
-import org.opendaylight.controller.md.sal.dom.broker.impl.SerializedDOMDataBroker;
-import org.opendaylight.controller.md.sal.dom.broker.impl.jmx.CommitStatsMXBeanImpl;
-import org.opendaylight.controller.md.sal.dom.store.impl.InMemoryDOMDataStoreFactory;
-import org.opendaylight.controller.sal.core.spi.data.DOMStore;
-import org.opendaylight.yangtools.util.DurationStatisticsTracker;
-import org.opendaylight.yangtools.util.concurrent.DeadlockDetectingListeningExecutorService;
-import org.opendaylight.yangtools.util.concurrent.SpecialExecutors;
-
-/**
-*
-*/
-public final class DomInmemoryDataBrokerModule extends
-        org.opendaylight.controller.config.yang.md.sal.dom.impl.AbstractDomInmemoryDataBrokerModule {
-
-    private static final String JMX_BEAN_TYPE = "DOMDataBroker";
-
-    public DomInmemoryDataBrokerModule(final org.opendaylight.controller.config.api.ModuleIdentifier identifier,
-            final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
-        super(identifier, dependencyResolver);
-    }
-
-    public DomInmemoryDataBrokerModule(final org.opendaylight.controller.config.api.ModuleIdentifier identifier,
-            final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver,
-            final DomInmemoryDataBrokerModule oldModule, final java.lang.AutoCloseable oldInstance) {
-
-        super(identifier, dependencyResolver, oldModule, oldInstance);
-    }
-
-    @Override
-    protected void customValidation() {
-        // Add custom validation for module attributes here.
-    }
-
-    @Override
-    public java.lang.AutoCloseable createInstance() {
-        //Initializing Operational DOM DataStore defaulting to InMemoryDOMDataStore if one is not configured
-        DOMStore operStore =  getOperationalDataStoreDependency();
-        if(operStore == null){
-           //we will default to InMemoryDOMDataStore creation
-          operStore = InMemoryDOMDataStoreFactory.create("DOM-OPER", getSchemaServiceDependency());
-        }
-
-        DOMStore configStore = getConfigDataStoreDependency();
-        if(configStore == null){
-           //we will default to InMemoryDOMDataStore creation
-           configStore = InMemoryDOMDataStoreFactory.create("DOM-CFG", getSchemaServiceDependency());
-        }
-
-        final Map<LogicalDatastoreType, DOMStore> datastores = new EnumMap<>(LogicalDatastoreType.class);
-        datastores.put(LogicalDatastoreType.OPERATIONAL, operStore);
-        datastores.put(LogicalDatastoreType.CONFIGURATION, configStore);
-
-        /*
-         * We use an executor for commit ListenableFuture callbacks that favors reusing available
-         * threads over creating new threads at the expense of execution time. The assumption is
-         * that most ListenableFuture callbacks won't execute a lot of business logic where we want
-         * it to run quicker - many callbacks will likely just handle error conditions and do
-         * nothing on success. The executor queue capacity is bounded and, if the capacity is
-         * reached, subsequent submitted tasks will block the caller.
-         */
-        ExecutorService listenableFutureExecutor = SpecialExecutors.newBlockingBoundedCachedThreadPool(
-                getMaxDataBrokerFutureCallbackPoolSize(), getMaxDataBrokerFutureCallbackQueueSize(),
-                "CommitFutures");
-
-        final List<AbstractMXBean> mBeans = Lists.newArrayList();
-        final DurationStatisticsTracker commitStatsTracker;
-
-        /*
-         * We use a single-threaded executor for commits with a bounded queue capacity. If the
-         * queue capacity is reached, subsequent commit tasks will be rejected and the commits will
-         * fail. This is done to relieve back pressure. This should be an extreme scenario - either
-         * there's deadlock(s) somewhere and the controller is unstable or some rogue component is
-         * continuously hammering commits too fast or the controller is just over-capacity for the
-         * system it's running on.
-         */
-        ExecutorService commitExecutor = SpecialExecutors.newBoundedSingleThreadExecutor(
-            getMaxDataBrokerCommitQueueSize(), "WriteTxCommit");
-
-        SerializedDOMDataBroker sdb = new SerializedDOMDataBroker(datastores,
-            new DeadlockDetectingListeningExecutorService(commitExecutor,
-                TransactionCommitDeadlockException.DEADLOCK_EXCEPTION_SUPPLIER,
-                listenableFutureExecutor));
-        commitStatsTracker = sdb.getCommitStatsTracker();
-
-        final AbstractMXBean commitExecutorStatsMXBean =
-                ThreadExecutorStatsMXBeanImpl.create(commitExecutor, "CommitExecutorStats",
-                    JMX_BEAN_TYPE, null);
-        if(commitExecutorStatsMXBean != null) {
-            mBeans.add(commitExecutorStatsMXBean);
-        }
-
-        if(commitStatsTracker != null) {
-            final CommitStatsMXBeanImpl commitStatsMXBean = new CommitStatsMXBeanImpl(
-                    commitStatsTracker, JMX_BEAN_TYPE);
-            commitStatsMXBean.registerMBean();
-            mBeans.add(commitStatsMXBean);
-        }
-
-        final AbstractMXBean commitFutureStatsMXBean =
-                ThreadExecutorStatsMXBeanImpl.create(listenableFutureExecutor,
-                        "CommitFutureExecutorStats", JMX_BEAN_TYPE, null);
-        if(commitFutureStatsMXBean != null) {
-            mBeans.add(commitFutureStatsMXBean);
-        }
-
-        sdb.setCloseable(new AutoCloseable() {
-            @Override
-            public void close() {
-                for(AbstractMXBean mBean: mBeans) {
-                    mBean.unregisterMBean();
-                }
-            }
-        });
-
-        return sdb;
-    }
-}
diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/DomInmemoryDataBrokerModuleFactory.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/DomInmemoryDataBrokerModuleFactory.java
deleted file mode 100644 (file)
index 56a51ed..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Copyright (c) 2014 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
- */
-package org.opendaylight.controller.config.yang.md.sal.dom.impl;
-
-
-/**
-*
-*/
-public class DomInmemoryDataBrokerModuleFactory extends org.opendaylight.controller.config.yang.md.sal.dom.impl.AbstractDomInmemoryDataBrokerModuleFactory
-{
-
-
-}
diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/SchemaServiceImplSingletonModule.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/SchemaServiceImplSingletonModule.java
deleted file mode 100644 (file)
index 62b0264..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright (c) 2014 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
- */
-package org.opendaylight.controller.config.yang.md.sal.dom.impl;
-
-import org.opendaylight.controller.sal.core.api.model.SchemaService;
-import org.opendaylight.controller.sal.dom.broker.GlobalBundleScanningSchemaServiceImpl;
-import org.opendaylight.yangtools.concepts.Delegator;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
-import org.opendaylight.yangtools.yang.model.api.Module;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.api.SchemaContextListener;
-import org.osgi.framework.BundleContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public final class SchemaServiceImplSingletonModule extends
-org.opendaylight.controller.config.yang.md.sal.dom.impl.AbstractSchemaServiceImplSingletonModule {
-
-    private static final Logger LOG = LoggerFactory.getLogger(SchemaServiceImplSingletonModule.class);
-
-    BundleContext bundleContext;
-
-    public SchemaServiceImplSingletonModule(final org.opendaylight.controller.config.api.ModuleIdentifier identifier,
-            final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
-        super(identifier, dependencyResolver);
-    }
-
-    public SchemaServiceImplSingletonModule(final org.opendaylight.controller.config.api.ModuleIdentifier identifier,
-            final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver,
-            final SchemaServiceImplSingletonModule oldModule, final java.lang.AutoCloseable oldInstance) {
-        super(identifier, dependencyResolver, oldModule, oldInstance);
-    }
-
-    @Override
-    public boolean canReuseInstance(final AbstractSchemaServiceImplSingletonModule oldModule) {
-        return true;
-    }
-
-    public BundleContext getBundleContext() {
-        return bundleContext;
-    }
-
-    public void setBundleContext(final BundleContext bundleContext) {
-        this.bundleContext = bundleContext;
-    }
-
-    @Override
-    public void validate() {
-        super.validate();
-    }
-
-    @Override
-    public java.lang.AutoCloseable createInstance() {
-        return GlobalBundleScanningSchemaServiceImpl.getInstance();
-    }
-
-    public class GlobalSchemaServiceProxy implements AutoCloseable, SchemaService, Delegator<SchemaService> {
-
-        private SchemaService delegate;
-
-        public GlobalSchemaServiceProxy() {
-            this.delegate = GlobalBundleScanningSchemaServiceImpl.getInstance();
-        }
-
-        @Override
-        public void close() throws Exception {
-            if (delegate != null) {
-                delegate = null;
-            }
-        }
-
-        @Override
-        public void addModule(final Module arg0) {
-            delegate.addModule(arg0);
-        }
-
-        @Override
-        public SchemaContext getGlobalContext() {
-            return delegate.getGlobalContext();
-        }
-
-        @Override
-        public SchemaContext getSessionContext() {
-            return delegate.getSessionContext();
-        }
-
-        @Override
-        public ListenerRegistration<SchemaContextListener> registerSchemaContextListener(final SchemaContextListener arg0) {
-            return delegate.registerSchemaContextListener(arg0);
-        }
-
-        @Override
-        public void removeModule(final Module arg0) {
-            delegate.removeModule(arg0);
-        }
-
-        @Override
-        public SchemaService getDelegate() {
-            return delegate;
-        }
-
-    }
-}
diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/SchemaServiceImplSingletonModuleFactory.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/SchemaServiceImplSingletonModuleFactory.java
deleted file mode 100644 (file)
index 0908fe5..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2014 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
- */
-package org.opendaylight.controller.config.yang.md.sal.dom.impl;
-
-import org.opendaylight.controller.config.api.DependencyResolver;
-import org.osgi.framework.BundleContext;
-
-import static com.google.common.base.Preconditions.checkArgument;
-
-public class SchemaServiceImplSingletonModuleFactory extends
-        org.opendaylight.controller.config.yang.md.sal.dom.impl.AbstractSchemaServiceImplSingletonModuleFactory {
-
-    public static final String SINGLETON_NAME = "yang-schema-service";
-
-    @Override
-    public SchemaServiceImplSingletonModule  instantiateModule(String instanceName, DependencyResolver dependencyResolver, SchemaServiceImplSingletonModule  oldModule, AutoCloseable oldInstance, BundleContext bundleContext) {
-        checkArgument(SINGLETON_NAME.equals(instanceName),"Illegal instance name '" + instanceName + "', only allowed name is " + SINGLETON_NAME);
-        SchemaServiceImplSingletonModule module = super.instantiateModule(instanceName, dependencyResolver, oldModule, oldInstance, bundleContext);
-        // FIXME bundle context should not be passed around
-        module.setBundleContext(bundleContext);
-        return module;
-    }
-
-    @Override
-    public SchemaServiceImplSingletonModule  instantiateModule(String instanceName, DependencyResolver dependencyResolver, BundleContext bundleContext) {
-        checkArgument(SINGLETON_NAME.equals(instanceName),"Illegal instance name '" + instanceName + "', only allowed name is " + SINGLETON_NAME);
-        SchemaServiceImplSingletonModule module = super.instantiateModule(instanceName, dependencyResolver, bundleContext);
-        // FIXME bundle context should not be passed around
-        module.setBundleContext(bundleContext);
-        return module;
-    }
-}
diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/pingpong/PingpongDataBrokerModule.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/pingpong/PingpongDataBrokerModule.java
deleted file mode 100644 (file)
index 1664a37..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (c) 2014 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
- */
-package org.opendaylight.controller.config.yang.md.sal.dom.pingpong;
-
-import org.opendaylight.controller.config.api.DependencyResolver;
-import org.opendaylight.controller.config.api.ModuleIdentifier;
-import org.opendaylight.controller.md.sal.dom.broker.impl.PingPongDataBroker;
-
-public class PingpongDataBrokerModule extends AbstractPingpongDataBrokerModule {
-    public PingpongDataBrokerModule(final ModuleIdentifier identifier, final DependencyResolver dependencyResolver) {
-        super(identifier, dependencyResolver);
-    }
-
-    public PingpongDataBrokerModule(final ModuleIdentifier identifier, final DependencyResolver dependencyResolver, final PingpongDataBrokerModule oldModule, final java.lang.AutoCloseable oldInstance) {
-        super(identifier, dependencyResolver, oldModule, oldInstance);
-    }
-
-    @Override
-    public java.lang.AutoCloseable createInstance() {
-        return new PingPongDataBroker(getDataBrokerDependency());
-    }
-}
diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/pingpong/PingpongDataBrokerModuleFactory.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/pingpong/PingpongDataBrokerModuleFactory.java
deleted file mode 100644 (file)
index 8ec17fd..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * Copyright (c) 2014 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
- */
-package org.opendaylight.controller.config.yang.md.sal.dom.pingpong;
-
-public class PingpongDataBrokerModuleFactory extends AbstractPingpongDataBrokerModuleFactory {
-
-}
diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/yang/opendaylight-dom-broker-impl.yang b/opendaylight/md-sal/sal-dom-broker/src/main/yang/opendaylight-dom-broker-impl.yang
deleted file mode 100644 (file)
index 7655a92..0000000
+++ /dev/null
@@ -1,214 +0,0 @@
-module opendaylight-sal-dom-broker-impl {
-    yang-version 1;
-    namespace "urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl";
-    prefix "broker";
-
-    import config { prefix config; revision-date 2013-04-05; }
-    import ietf-yang-types { prefix yang; }
-    import opendaylight-md-sal-dom {prefix sal;}
-    import opendaylight-md-sal-common {prefix common;}
-    import opendaylight-config-dom-datastore {prefix config-dom-store-spi;}
-    import opendaylight-operational-dom-datastore {prefix operational-dom-store-spi;}
-    import rpc-context { prefix rpcx; revision-date 2013-06-17; }
-
-    description
-        "Service definition for Binding Aware MD-SAL.
-        Note: The dom-inmemory-data-broker utilizes configurable config-dom-datastore
-        and operation-dom-datastore. If configuration is not done for this stores
-        then it defaults to InMemoryDOMDataStore";
-
-    revision "2013-10-28" {
-        description
-            "Initial revision";
-    }
-
-    identity dom-broker-impl {
-        base config:module-type;
-        config:provided-service sal:dom-broker-osgi-registry;
-        config:java-name-prefix DomBrokerImpl;
-    }
-
-
-    identity dom-inmemory-data-broker {
-        base config:module-type;
-        config:provided-service sal:dom-async-data-broker;
-    }
-
-    identity schema-service-singleton {
-        base config:module-type;
-        config:provided-service sal:schema-service;
-        config:java-name-prefix SchemaServiceImplSingleton;
-    }
-
-    typedef max-queue-depth {
-        type uint32 {
-            range 1..1073741824;
-        }
-    }
-
-    augment "/config:modules/config:module/config:configuration" {
-        case dom-broker-impl {
-            when "/config:modules/config:module/config:type = 'dom-broker-impl'";
-
-            container async-data-broker {
-                uses config:service-ref {
-                    refine type {
-                        mandatory false;
-                        config:required-identity sal:dom-async-data-broker;
-                    }
-                }
-            }
-
-            container root-schema-service {
-                uses config:service-ref {
-                    refine type {
-                        mandatory false;
-                        config:required-identity sal:schema-service;
-                    }
-                }
-            }
-
-            leaf notification-queue-depth {
-                description "Maximum number of elements in the notification queue, must be power-of-two.";
-                type max-queue-depth;
-                default 65536;
-            }
-            leaf notification-queue-spin {
-                description "Number of milliseconds notification queue should spin for new requests before parking.";
-                type uint16;
-                units milliseconds;
-                default 1;
-            }
-            leaf notification-queue-park {
-                description "Number of milliseconds notification queue should park for new requests before blocking.";
-                type uint16;
-                units milliseconds;
-                default 30;
-            }
-        }
-    }
-
-    grouping dom-broker-config {
-        container schema-service {
-            uses config:service-ref {
-                refine type {
-                    mandatory false;
-                    config:required-identity sal:schema-service;
-                }
-            }
-        }
-
-        container config-data-store {
-             uses config:service-ref {
-                 refine type {
-                     mandatory false;
-                     config:required-identity config-dom-store-spi:config-dom-datastore;
-                 }
-             }
-        }
-
-        container operational-data-store {
-              uses config:service-ref {
-                   refine type {
-                       mandatory false;
-                       config:required-identity operational-dom-store-spi:operational-dom-datastore;
-                   }
-               }
-        }
-
-        leaf max-data-broker-future-callback-queue-size {
-            default 1000;
-            type uint16;
-            description "The maximum queue size for the data broker's commit future callback executor.";
-        }
-
-        leaf max-data-broker-future-callback-pool-size {
-            default 20;
-            type uint16;
-            description "The maximum thread pool size for the data broker's commit future callback executor.";
-        }
-
-        leaf max-data-broker-commit-queue-size {
-            default 5000;
-            type uint16;
-            description "The maximum queue size for the data broker's commit executor.";
-        }
-    }
-
-    grouping dom-broker-operational {
-        leaf total-commits {
-            type uint64;
-        }
-
-        leaf average-commit {
-            type uint64;
-            units ns;
-        }
-
-        leaf longest-commit-duration {
-            type uint64;
-            units ns;
-        }
-
-        leaf longest-commit-timestamp {
-            type yang:date-and-time;
-        }
-
-        leaf shortest-commit-duration {
-            type uint64;
-            units ns;
-        }
-
-        leaf shortest-commit-timestamp {
-            type yang:date-and-time;
-        }
-
-        rpcx:rpc-context-instance dom-broker-rpc-ctx;
-    }
-
-    identity dom-broker-rpc-ctx;
-
-    rpc reset-statistics {
-        description
-          "JMX call to clear the toasts-made counter.";
-
-        input {
-            uses rpcx:rpc-context-ref {
-                refine context-instance {
-                    rpcx:rpc-context-instance dom-broker-rpc-ctx;
-                }
-            }
-        }
-    }
-
-    augment "/config:modules/config:module/config:configuration" {
-        case dom-inmemory-data-broker {
-            when "/config:modules/config:module/config:type = 'dom-inmemory-data-broker'";
-
-            uses dom-broker-config;
-        }
-    }
-
-    augment "/config:modules/config:module/config:state" {
-        case dom-inmemory-data-broker {
-            when "/config:modules/config:module/config:type = 'dom-inmemory-data-broker'";
-
-            uses dom-broker-operational;
-        }
-    }
-
-    augment "/config:modules/config:module/config:state" {
-        case schema-service-singleton {
-            when "/config:modules/config:module/config:type = 'schema-service-singleton'";
-        }
-    }
-
-    augment "/config:modules/config:module/config:state" {
-        case dom-broker-impl {
-            when "/config:modules/config:module/config:type = 'dom-broker-impl'";
-            container data {
-                uses common:data-state;
-            }
-        }
-    }
-}
diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/yang/opendaylight-pingpong-broker.yang b/opendaylight/md-sal/sal-dom-broker/src/main/yang/opendaylight-pingpong-broker.yang
deleted file mode 100644 (file)
index 0ed1bbd..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-module opendaylight-pingpong-broker {
-    yang-version 1;
-    namespace "urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:pingpong";
-    prefix "pingpong";
-
-    import config { prefix config; revision-date 2013-04-05; }
-    import opendaylight-md-sal-dom {prefix sal;}
-    import opendaylight-md-sal-common {prefix common;}
-    import opendaylight-config-dom-datastore {prefix config-dom-store-spi;}
-    import opendaylight-operational-dom-datastore {prefix operational-dom-store-spi;}
-
-    description
-        "Service definition for Ping-Pong DOM broker";
-
-    revision "2014-11-07" {
-        description
-            "Initial revision";
-    }
-
-    identity pingpong-data-broker {
-        base config:module-type;
-        config:provided-service sal:dom-async-data-broker;
-    }
-
-    augment "/config:modules/config:module/config:configuration" {
-        case pingpong-data-broker {
-            when "/config:modules/config:module/config:type = 'pingpong-data-broker'";
-
-            container data-broker {
-                uses config:service-ref {
-                    refine type {
-                        mandatory true;
-                        config:required-identity sal:dom-async-data-broker;
-                    }
-                }
-            }
-        }
-    }
-}
diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/yang/opendaylight-config-dom-datastore.yang b/opendaylight/md-sal/sal-dom-spi/src/main/yang/opendaylight-config-dom-datastore.yang
deleted file mode 100644 (file)
index 9a3ab18..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-module opendaylight-config-dom-datastore {
-       yang-version 1;
-    namespace "urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:config-dom-store";
-    prefix "config-dom-store-spi";
-
-       import config { prefix config; revision-date 2013-04-05; }
-
-        description
-            "DOM Service Provider Interface definition for MD-SAL config store";
-
-     revision "2014-06-17" {
-             description
-                 "Initial revision";
-         }
-
-     identity config-dom-datastore {
-             base "config:service-type";
-             config:java-class  "org.opendaylight.controller.sal.core.spi.data.DOMStore";
-
-     }
-
-}
\ No newline at end of file
diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/yang/opendaylight-operational-dom-datastore.yang b/opendaylight/md-sal/sal-dom-spi/src/main/yang/opendaylight-operational-dom-datastore.yang
deleted file mode 100644 (file)
index fd40884..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-module opendaylight-operational-dom-datastore {
-       yang-version 1;
-    namespace "urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:operational-dom-store";
-    prefix "operational-dom-store-spi";
-
-       import config { prefix config; revision-date 2013-04-05; }
-
-        description
-            "DOM Service Provider Interface definition for MD-SAL operational store";
-
-     revision "2014-06-17" {
-             description
-                 "Initial revision";
-         }
-
-     identity operational-dom-datastore {
-             base "config:service-type";
-             config:java-class  "org.opendaylight.controller.sal.core.spi.data.DOMStore";
-
-     }
-
-}
\ No newline at end of file
index a152de96f9711860a86e20f49187041574c35e69..a1ba2ecdd6d2cae66d0e60c99b8e8fd67104f6f3 100644 (file)
       <artifactId>yang-parser-impl</artifactId>
     </dependency>
 
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-dom-config</artifactId>
+    </dependency>
+
     <dependency>
       <groupId>org.osgi</groupId>
       <artifactId>org.osgi.core</artifactId>