</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>
+++ /dev/null
-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
+++ /dev/null
-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
<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>
+++ /dev/null
-/*
- * 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;
- }
-}
+++ /dev/null
-/*
- * 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 {
-
-}
+++ /dev/null
-/*
- * 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;
- }
-}
+++ /dev/null
-/*
- * 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
-{
-
-
-}
+++ /dev/null
-/*
- * 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;
- }
-
- }
-}
+++ /dev/null
-/*
- * 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;
- }
-}
+++ /dev/null
-/*
- * 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());
- }
-}
+++ /dev/null
-/*
- * 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 {
-
-}
+++ /dev/null
-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;
- }
- }
- }
-}
+++ /dev/null
-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;
- }
- }
- }
- }
- }
-}
+++ /dev/null
-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
+++ /dev/null
-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
<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>