Add BP wiring for sfc-sb-rest 49/45449/3
authorRashmi Pujar <rpujar@inocybe.com>
Fri, 9 Sep 2016 21:02:06 +0000 (17:02 -0400)
committerRashmi Pujar <rpujar@inocybe.com>
Thu, 6 Oct 2016 17:56:11 +0000 (13:56 -0400)
Change-Id: I5d55db2e18842e7f915b383a2c9976fca76e980e
Signed-off-by: Rashmi Pujar <rpujar@inocybe.com>
features/pom.xml
features/src/main/features/features.xml
sfc-sb-rest/pom.xml
sfc-sb-rest/src/main/java/org/opendaylight/controller/config/yang/config/sfc_sb_rest_provider/impl/SfcSbRestProviderModule.java
sfc-sb-rest/src/main/java/org/opendaylight/controller/config/yang/config/sfc_sb_rest_provider/impl/SfcSbRestProviderModuleFactory.java [deleted file]
sfc-sb-rest/src/main/resources/configuration/initial/sfc-sb-rest-initial.xml [deleted file]
sfc-sb-rest/src/main/resources/org/opendaylight/blueprint/sfc-sb-rest.xml [new file with mode: 0644]
sfc-sb-rest/src/main/yang/sfc-sb-rest-provider-impl.yang [deleted file]

index e524dc0655f51145b41ec0cb26cb5e67dcc18873..0a1434b853f4fe89d030f52e454c530ac55b5bd1 100644 (file)
       Put dependencies for configfiles directly referenced in your features.xml file.
       For every <configfile> reference in your features.xml file, you need a corresponding dependency here.
     -->
-    <!-- odl-sfc-sb-rest config files -->
-    <dependency>
-       <groupId>${project.groupId}</groupId>
-       <artifactId>sfc-sb-rest</artifactId>
-       <version>${project.version}</version>
-       <type>xml</type>
-       <classifier>config</classifier>
-    </dependency>
     <!-- odl-sfc-genius config files -->
     <dependency>
        <groupId>${project.groupId}</groupId>
index 4bc9792c3451751b773c44359508ecbdd77b7540..b94ec92b5f0d1279753f3da88ef9498d1832d778 100644 (file)
         <bundle>mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/{{VERSION}}</bundle>
         <bundle>mvn:com.fasterxml.jackson.module/jackson-module-jaxb-annotations/{{VERSION}}</bundle>
         <bundle>mvn:org.glassfish/javax.json/{{VERSION}}</bundle>
-        <configfile finalname="etc/opendaylight/karaf/sfc-sb-rest-initial.xml">mvn:org.opendaylight.sfc/sfc-sb-rest/{{VERSION}}/xml/config</configfile>
     </feature>
 
     <feature name="odl-sfc-pot" version="${project.version}" description="OpenDaylight :: sfc-pot :: SFC Proof of Transit ">
index aefd4043e60cde57b9c34c4843c75e712810e307..fec1836f7d17a121a64c8f5fa5cbf19015cd83dc 100644 (file)
@@ -14,7 +14,6 @@
 
     <properties>
         <jmxGeneratorPath>${project.build.directory}/generated-sources/config</jmxGeneratorPath>
-        <configfile>configuration/initial/sfc-sb-rest-initial.xml</configfile>
     </properties>
 
     <dependencies>
             <plugin>
                 <groupId>org.codehaus.mojo</groupId>
                 <artifactId>build-helper-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>attach-artifacts</id>
-                        <goals>
-                            <goal>attach-artifact</goal>
-                        </goals>
-                        <phase>package</phase>
-                        <configuration>
-                            <artifacts>
-                                <artifact>
-                                    <file>${project.build.directory}/classes/${configfile}</file>
-                                    <type>xml</type>
-                                    <classifier>config</classifier>
-                                </artifact>
-                            </artifacts>
-                        </configuration>
-                    </execution>
-                </executions>
             </plugin>
         </plugins>
     </build>
index c8e6351c7ffb0b9ff720bf998744a77051914485..ad3a2a18504514a2f12ce1c77055fa91959551e4 100755 (executable)
@@ -8,78 +8,29 @@
 package org.opendaylight.controller.config.yang.config.sfc_sb_rest_provider.impl;
 
 import java.util.concurrent.ExecutionException;
+
 import org.opendaylight.sfc.provider.OpendaylightSfc;
 import org.opendaylight.sfc.sbrest.provider.keepalive.SbRestKeepAliveSocket;
-import org.opendaylight.sfc.sbrest.provider.listener.SbRestAclEntryDataListener;
-import org.opendaylight.sfc.sbrest.provider.listener.SbRestRspEntryDataListener;
-import org.opendaylight.sfc.sbrest.provider.listener.SbRestScfEntryDataListener;
-import org.opendaylight.sfc.sbrest.provider.listener.SbRestSfEntryDataListener;
-import org.opendaylight.sfc.sbrest.provider.listener.SbRestSffEntryDataListener;
-import org.opendaylight.sfc.sbrest.provider.listener.SbRestSfgEntryDataListener;
-import org.opendaylight.sfc.sbrest.provider.listener.SbRestSfstEntryDataListener;
-import org.opendaylight.sfc.sbrest.provider.listener.SbRestSfstateEntryDataListener;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 
-public class SfcSbRestProviderModule extends AbstractSfcSbRestProviderModule {
+public class SfcSbRestProviderModule implements AutoCloseable{
 
     private static final Logger LOG = LoggerFactory.getLogger(SfcSbRestProviderModule.class);
+    private static OpendaylightSfc opendaylightSfc;
 
-    public SfcSbRestProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
-        super(identifier, dependencyResolver);
-    }
-
-    public SfcSbRestProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, org.opendaylight.controller.config.yang.config.sfc_sb_rest_provider.impl.SfcSbRestProviderModule oldModule, java.lang.AutoCloseable oldInstance) {
-        super(identifier, dependencyResolver, oldModule, oldInstance);
+    public void startSbRestKeepAliveSocket() {
+        opendaylightSfc = OpendaylightSfc.getOpendaylightSfcObj();
+        opendaylightSfc.getExecutor().execute(new SbRestKeepAliveSocket());
     }
 
     @Override
-    public void customValidation() {
-        // add custom validation form module attributes here.
-    }
-
-    @Override
-    public java.lang.AutoCloseable createInstance() {
-
-        final OpendaylightSfc opendaylightSfc = OpendaylightSfc.getOpendaylightSfcObj();
-
-        final SbRestSfEntryDataListener sbRestSfEntryDataListener = new SbRestSfEntryDataListener(opendaylightSfc);
-        final SbRestSfgEntryDataListener sbRestSfgEntryDataListener = new SbRestSfgEntryDataListener(opendaylightSfc);
-        final SbRestSffEntryDataListener sbRestSffEntryDataListener = new SbRestSffEntryDataListener(opendaylightSfc);
-        final SbRestRspEntryDataListener sbRestRspEntryDataListener = new SbRestRspEntryDataListener(opendaylightSfc);
-        final SbRestAclEntryDataListener sbRestAclEntryDataListener = new SbRestAclEntryDataListener(opendaylightSfc);
-        final SbRestScfEntryDataListener sbRestScfEntryDataListener = new SbRestScfEntryDataListener(opendaylightSfc);
-        final SbRestSfstEntryDataListener sbRestSfstEntryDataListener = new SbRestSfstEntryDataListener(opendaylightSfc);
-        final SbRestSfstateEntryDataListener sbRestSfstateEntryDataListener = new SbRestSfstateEntryDataListener(opendaylightSfc);
-        final SbRestKeepAliveSocket sbRestKeepAliveSocket = new SbRestKeepAliveSocket();
-        opendaylightSfc.getExecutor().execute(sbRestKeepAliveSocket);
-
-
-        // close()
-        final class AutoCloseableSfcSbRest implements AutoCloseable {
-
-            @Override
-            public void close() {
-                sbRestSfEntryDataListener.getDataChangeListenerRegistration().close();
-                sbRestSfgEntryDataListener.getDataChangeListenerRegistration().close();
-                sbRestSffEntryDataListener.getDataChangeListenerRegistration().close();
-                sbRestRspEntryDataListener.getDataChangeListenerRegistration().close();
-                sbRestAclEntryDataListener.getDataChangeListenerRegistration().close();
-                sbRestScfEntryDataListener.getDataChangeListenerRegistration().close();
-                sbRestSfstEntryDataListener.getDataChangeListenerRegistration().close();
-                sbRestSfstateEntryDataListener.getDataChangeListenerRegistration().close();
-
-                try {
-                    opendaylightSfc.close();
-                } catch (ExecutionException | InterruptedException e) {
-                    LOG.error("\nFailed to close SfcSbRestProvider instance {} cleanly", this);
-                }
-                LOG.info("SfcSbRestProvider (instance {}) torn down", this);
-            }
+    public void close() throws Exception {
+        try {
+            opendaylightSfc.close();
+        } catch (ExecutionException | InterruptedException e) {
+            LOG.error("Failed to close OpendaylightSfc instance {} cleanly", this);
         }
-
-        return new AutoCloseableSfcSbRest();
     }
-
-}
+}
\ No newline at end of file
diff --git a/sfc-sb-rest/src/main/java/org/opendaylight/controller/config/yang/config/sfc_sb_rest_provider/impl/SfcSbRestProviderModuleFactory.java b/sfc-sb-rest/src/main/java/org/opendaylight/controller/config/yang/config/sfc_sb_rest_provider/impl/SfcSbRestProviderModuleFactory.java
deleted file mode 100755 (executable)
index 085d2db..0000000
+++ /dev/null
@@ -1,21 +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
- */
-
-/*
-* Generated file
-*
-* Generated from: yang module name: sfc-sb-rest-provider-impl yang module local name: sfc-sb-rest-provider-impl
-* Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
-* Generated at: Tue Oct 21 13:03:57 CEST 2014
-*
-* Do not modify this file unless it is present under src/main directory
-*/
-package org.opendaylight.controller.config.yang.config.sfc_sb_rest_provider.impl;
-public class SfcSbRestProviderModuleFactory extends org.opendaylight.controller.config.yang.config.sfc_sb_rest_provider.impl.AbstractSfcSbRestProviderModuleFactory {
-
-}
diff --git a/sfc-sb-rest/src/main/resources/configuration/initial/sfc-sb-rest-initial.xml b/sfc-sb-rest/src/main/resources/configuration/initial/sfc-sb-rest-initial.xml
deleted file mode 100644 (file)
index 80c8f2a..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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:sbrest="urn:opendaylight:params:xml:ns:yang:controller:config:sfc-sb-rest-provider:impl">
-                        sbrest:sfc-sb-rest-provider-impl
-                    </type>
-                    <name>sfc-sb-rest-provider-impl</name>
-
-                    <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>
-                </module>
-            </modules>
-        </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:config:sfc-provider:impl?module=sfc-provider-impl&amp;revision=2014-06-30</capability>
-        <capability>urn:opendaylight:params:xml:ns:yang:controller:config:sfc-sb-rest-provider:impl?module=sfc-sb-rest-provider-impl&amp;revision=2014-10-20</capability>
-    </required-capabilities>
-
-</snapshot>
\ No newline at end of file
diff --git a/sfc-sb-rest/src/main/resources/org/opendaylight/blueprint/sfc-sb-rest.xml b/sfc-sb-rest/src/main/resources/org/opendaylight/blueprint/sfc-sb-rest.xml
new file mode 100644 (file)
index 0000000..5af9ef3
--- /dev/null
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
+  xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0"
+  odl:use-default-for-reference-types="true">
+
+  <reference id="dataBroker"
+    interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"
+    odl:type="default" />
+
+  <bean id="opendaylightSfc"
+    class="org.opendaylight.sfc.provider.OpendaylightSfc"
+    destroy-method="close">
+    <property name="dataProvider" ref="dataBroker"/>
+  </bean>
+
+  <bean id="sbRestSfEntryDataListener"
+    class="org.opendaylight.sfc.sbrest.provider.listener.SbRestSfEntryDataListener"
+    destroy-method="closeDataChangeListener">
+    <argument ref="opendaylightSfc"/>
+  </bean>
+
+  <bean id="sbRestSfgEntryDataListener"
+    class="org.opendaylight.sfc.sbrest.provider.listener.SbRestSfgEntryDataListener"
+    destroy-method="closeDataChangeListener">
+    <argument ref="opendaylightSfc"/>
+  </bean>
+
+  <bean id="sbRestSffEntryDataListener"
+    class="org.opendaylight.sfc.sbrest.provider.listener.SbRestSffEntryDataListener"
+    destroy-method="closeDataChangeListener">
+    <argument ref="opendaylightSfc"/>
+  </bean>
+
+  <bean id="sbRestRspEntryDataListener"
+    class="org.opendaylight.sfc.sbrest.provider.listener.SbRestRspEntryDataListener"
+    destroy-method="closeDataChangeListener">
+    <argument ref="opendaylightSfc"/>
+  </bean>
+
+  <bean id="sbRestAclEntryDataListener"
+    class="org.opendaylight.sfc.sbrest.provider.listener.SbRestAclEntryDataListener"
+    destroy-method="closeDataChangeListener">
+    <argument ref="opendaylightSfc"/>
+  </bean>
+
+  <bean id="sbRestScfEntryDataListener"
+    class="org.opendaylight.sfc.sbrest.provider.listener.SbRestScfEntryDataListener"
+    destroy-method="closeDataChangeListener">
+    <argument ref="opendaylightSfc"/>
+  </bean>
+
+  <bean id="sbRestSfstEntryDataListener"
+    class="org.opendaylight.sfc.sbrest.provider.listener.SbRestSfstEntryDataListener"
+    destroy-method="closeDataChangeListener">
+    <argument ref="opendaylightSfc"/>
+  </bean>
+
+  <bean id="sbRestSfstateEntryDataListener"
+    class="org.opendaylight.sfc.sbrest.provider.listener.SbRestSfstateEntryDataListener"
+    destroy-method="closeDataChangeListener">
+    <argument ref="opendaylightSfc"/>
+  </bean>
+
+  <bean id="sfcSbRestProviderModule"
+    class="org.opendaylight.controller.config.yang.config.sfc_sb_rest_provider.impl.SfcSbRestProviderModule"
+    init-method="startSbRestKeepAliveSocket"
+    destroy-method="close"/>
+
+</blueprint>
diff --git a/sfc-sb-rest/src/main/yang/sfc-sb-rest-provider-impl.yang b/sfc-sb-rest/src/main/yang/sfc-sb-rest-provider-impl.yang
deleted file mode 100755 (executable)
index 742848a..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-module sfc-sb-rest-provider-impl {
-
-  yang-version 1;
-  namespace "urn:opendaylight:params:xml:ns:yang:controller:config:sfc-sb-rest-provider:impl";
-  prefix "sfc-sb-rest-provider-impl";
-
-  import config { prefix config; revision-date 2013-04-05; }
-  import rpc-context { prefix rpcx; revision-date 2013-06-17; }
-  import opendaylight-md-sal-binding { prefix mdsal; revision-date 2013-10-28; }
-
-
-  description
-      "This module contains the base YANG definitions for
-      sfc-sb-rest-provider implementation.";
-
-  revision "2014-10-20" {
-      description
-          "Initial revision.";
-  }
-
-  // This is the definition of the service implementation as a module identity
-  identity sfc-sb-rest-provider-impl {
-      base config:module-type;
-
-      // Specifies the prefix for generated java classes.
-      config:java-name-prefix SfcSbRestProvider;
-  }
-
-
-  // Augments the 'configuration' choice node under modules/module.
-  augment "/config:modules/config:module/config:configuration" {
-    case sfc-sb-rest-provider-impl {
-      when "/config:modules/config:module/config:type = 'sfc-sb-rest-provider-impl'";
-
-      //wires in the data-broker service
-      container data-broker {
-        uses config:service-ref {
-          refine type {
-              mandatory false;
-              config:required-identity mdsal:binding-async-data-broker;
-          }
-        }
-      }
-    }
-  }
-}