From b88648abe24fece00ddf5625b6140fa41fe9e4f0 Mon Sep 17 00:00:00 2001 From: Moiz Raja Date: Thu, 12 Jun 2014 15:32:09 -0700 Subject: [PATCH] Hook the Distributed Data store into the config sub-system Change-Id: Iceb93fb524a4d036466dd2d5ffa5a740e24bd435 Signed-off-by: Moiz Raja --- .../md-sal/sal-distributed-datastore/pom.xml | 37 +++++++++++++++++++ .../DistributedDataStoreProviderModule.java | 34 +++++++++++++++++ ...ributedDataStoreProviderModuleFactory.java | 13 +++++++ .../yang/distributed-datastore-provider.yang | 34 +++++++++++++++++ 4 files changed, 118 insertions(+) create mode 100644 opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/config/yang/config/distributed_datastore_provider/DistributedDataStoreProviderModule.java create mode 100644 opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/config/yang/config/distributed_datastore_provider/DistributedDataStoreProviderModuleFactory.java create mode 100644 opendaylight/md-sal/sal-distributed-datastore/src/main/yang/distributed-datastore-provider.yang diff --git a/opendaylight/md-sal/sal-distributed-datastore/pom.xml b/opendaylight/md-sal/sal-distributed-datastore/pom.xml index 7968785df2..8acebad365 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/pom.xml +++ b/opendaylight/md-sal/sal-distributed-datastore/pom.xml @@ -35,6 +35,15 @@ akka-remote_${scala.version} + + org.opendaylight.controller + config-api + + + org.opendaylight.controller + sal-binding-api + + org.opendaylight.controller @@ -118,6 +127,34 @@ + + org.opendaylight.yangtools + yang-maven-plugin + + + config + + generate-sources + + + + + org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator + ${jmxGeneratorPath} + + urn:opendaylight:params:xml:ns:yang:controller==org.opendaylight.controller.config.yang + + + + org.opendaylight.yangtools.maven.sal.api.gen.plugin.CodeGeneratorImpl + ${salGeneratorPath} + + + true + + + + diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/config/yang/config/distributed_datastore_provider/DistributedDataStoreProviderModule.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/config/yang/config/distributed_datastore_provider/DistributedDataStoreProviderModule.java new file mode 100644 index 0000000000..38bf756cfa --- /dev/null +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/config/yang/config/distributed_datastore_provider/DistributedDataStoreProviderModule.java @@ -0,0 +1,34 @@ +package org.opendaylight.controller.config.yang.config.distributed_datastore_provider; + +import org.opendaylight.controller.cluster.datastore.DOMStoreProxy; + +public class DistributedDataStoreProviderModule extends org.opendaylight.controller.config.yang.config.distributed_datastore_provider.AbstractDistributedDataStoreProviderModule { + public DistributedDataStoreProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) { + super(identifier, dependencyResolver); + } + + public DistributedDataStoreProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, org.opendaylight.controller.config.yang.config.distributed_datastore_provider.DistributedDataStoreProviderModule oldModule, java.lang.AutoCloseable oldInstance) { + super(identifier, dependencyResolver, oldModule, oldInstance); + } + + @Override + public void customValidation() { + // add custom validation form module attributes here. + } + + @Override + public java.lang.AutoCloseable createInstance() { + new DOMStoreProxy(); + + final class AutoCloseableDistributedDataStore implements AutoCloseable { + + @Override + public void close() throws Exception { + + } + } + + return new AutoCloseableDistributedDataStore(); + } + +} diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/config/yang/config/distributed_datastore_provider/DistributedDataStoreProviderModuleFactory.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/config/yang/config/distributed_datastore_provider/DistributedDataStoreProviderModuleFactory.java new file mode 100644 index 0000000000..53ef84ebf9 --- /dev/null +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/config/yang/config/distributed_datastore_provider/DistributedDataStoreProviderModuleFactory.java @@ -0,0 +1,13 @@ +/* +* Generated file +* +* Generated from: yang module name: distributed-datastore-provider yang module local name: distributed-datastore-provider +* Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator +* Generated at: Thu Jun 12 15:23:43 PDT 2014 +* +* Do not modify this file unless it is present under src/main directory +*/ +package org.opendaylight.controller.config.yang.config.distributed_datastore_provider; +public class DistributedDataStoreProviderModuleFactory extends org.opendaylight.controller.config.yang.config.distributed_datastore_provider.AbstractDistributedDataStoreProviderModuleFactory { + +} diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/yang/distributed-datastore-provider.yang b/opendaylight/md-sal/sal-distributed-datastore/src/main/yang/distributed-datastore-provider.yang new file mode 100644 index 0000000000..0471bc806e --- /dev/null +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/yang/distributed-datastore-provider.yang @@ -0,0 +1,34 @@ +// vi: set smarttab et sw=4 tabstop=4: +module distributed-datastore-provider { + + yang-version 1; + namespace "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider"; + prefix "distributed-datastore-provider"; + + import config { prefix config; revision-date 2013-04-05; } + import rpc-context { prefix rpcx; revision-date 2013-06-17; } + + description + "This module contains the base YANG definitions for + the distributed datastore provider implementation"; + + revision "2014-06-12" { + description + "Initial revision."; + } + + // This is the definition of the service implementation as a module identity. + identity distributed-datastore-provider { + base config:module-type; + + // Specifies the prefix for generated java classes. + config:java-name-prefix DistributedDataStoreProvider; + } + + // Augments the 'configuration' choice node under modules/module. + augment "/config:modules/config:module/config:configuration" { + case distributed-datastore-provider { + when "/config:modules/config:module/config:type = 'distributed-datastore-provider'"; + } + } +} -- 2.36.6