Fix SDNC service registration 81/10881/3
authorRyan Goulding <ryandgoulding@gmail.com>
Thu, 7 Sep 2017 16:10:08 +0000 (12:10 -0400)
committerRyan Goulding <ryandgoulding@gmail.com>
Thu, 7 Sep 2017 18:26:03 +0000 (14:26 -0400)
This change converts AsdcApiProvider and AsdcApiSliClient to utilize
Aries Blueprint for service instantiation instead of the ODL Config
Subsystem.

Change-Id: I5eaebe4c6e5b33fc8beb20b2cfe9acb6e8b6d808
Issue-Id: SDNC-54
Signed-off-by: Ryan Goulding <ryandgoulding@gmail.com>
13 files changed:
asdcApi/features/pom.xml
asdcApi/features/src/main/resources/features.xml
asdcApi/installer/src/assembly/assemble_mvnrepo_zip.xml
asdcApi/pom.xml
asdcApi/provider/pom.xml
asdcApi/provider/src/main/java/org/onap/ccsdk/sli/northbound/asdcapi/AsdcApiProvider.java
asdcApi/provider/src/main/java/org/onap/ccsdk/sli/northbound/asdcapi/AsdcApiSliClient.java
asdcApi/provider/src/main/java/org/opendaylight/yang/gen/v1/org/onap/ccsdk/sli/northbound/asdcapi/provider/impl/rev140523/AsdcApiProviderModule.java [deleted file]
asdcApi/provider/src/main/java/org/opendaylight/yang/gen/v1/org/onap/ccsdk/sli/northbound/asdcapi/provider/impl/rev140523/AsdcApiProviderModuleFactory.java [deleted file]
asdcApi/provider/src/main/resources/initial/asdcApi-provider.xml [deleted file]
asdcApi/provider/src/main/resources/org/opendaylight/blueprint/asdc-blueprint.xml [new file with mode: 0644]
asdcApi/provider/src/main/yang/asdcApi-provider-impl.yang [deleted file]
ueb-listener/src/main/java/org/onap/ccsdk/sli/northbound/uebclient/SdncUebCallback.java

index e6af34c..0f3a5dd 100755 (executable)
                        <artifactId>asdcApi-model</artifactId>
                        <version>${project.version}</version>
                </dependency>
-               <dependency>
-                       <groupId>org.onap.ccsdk.sli.northbound</groupId>
-                       <artifactId>asdcApi-provider</artifactId>
-                       <version>${project.version}</version>
-                       <classifier>config</classifier>
-                       <type>xml</type>
-               </dependency>
                <dependency>
                        <groupId>org.onap.ccsdk.sli.northbound</groupId>
                        <artifactId>asdcApi-provider</artifactId>
index 9006f1b..2048dc1 100644 (file)
@@ -33,7 +33,6 @@
         <bundle>mvn:org.onap.ccsdk.sli.northbound/asdcApi-provider/${project.version}</bundle>
 
         <feature version="${sdnctl.sli.version}">sdnc-sli</feature>
-        <configfile finalname="etc/opendaylight/karaf/200-asdcApi-provider.xml">mvn:org.onap.ccsdk.sli.northbound/asdcApi-provider/${project.version}/xml/config</configfile>
     </feature>
 
 </features>
index 5c24d73..21e271d 100644 (file)
                </fileSet>
        </fileSets>
 
-       <files>
-               <file>
-                       <source>../provider/src/main/resources/initial/${feature-name}-provider.xml</source>
-                       <destName>./etc/opendaylight/karaf/200-${feature-name}-provider.xml</destName>
-               </file>
-
-       </files>
-
 </assembly>
index d499061..0adc96e 100755 (executable)
                                <artifactId>asdcApi-model</artifactId>
                                <version>${project.version}</version>
                        </dependency>
-                       <dependency>
-                               <groupId>org.onap.ccsdk.sli.northbound</groupId>
-                               <artifactId>asdcApi-provider</artifactId>
-                               <version>${project.version}</version>
-                               <classifier>config</classifier>
-                               <type>xml</type>
-                       </dependency>
+
                        <dependency>
                                <groupId>org.onap.ccsdk.sli.northbound</groupId>
                                <artifactId>asdcApi-provider</artifactId>
index 7b7ed4b..329d6ef 100755 (executable)
                                <groupId>org.apache.felix</groupId>
                                <artifactId>maven-bundle-plugin</artifactId>
                                <extensions>true</extensions>
-                               <configuration>
-                                       <instructions>
-                                               <Export-Package>org.opendaylight.controller.config.yang.config.asdcApi_provider.impl</Export-Package>
-                                               <Import-Package>*</Import-Package>
-                                       </instructions>
-                               </configuration>
-                       </plugin>
-                       <plugin>
-                               <groupId>org.opendaylight.yangtools</groupId>
-                               <artifactId>yang-maven-plugin</artifactId>
-                               <version>${odl.yangtools.yang.maven.plugin.version}</version>
-                               <executions>
-                                       <execution>
-                                               <id>config</id>
-                                               <goals>
-                                                       <goal>generate-sources</goal>
-                                               </goals>
-                                               <configuration>
-                                                       <codeGenerators>
-                                                               <generator>
-                                                                       <codeGeneratorClass>org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator</codeGeneratorClass>
-                                                                       <outputBaseDir>${jmxGeneratorPath}</outputBaseDir>
-                                                                       <additionalConfiguration>
-                                                                               <namespaceToPackage1>urn:opendaylight:params:xml:ns:yang:controller==org.opendaylight.controller.config.yang</namespaceToPackage1>
-                                                                       </additionalConfiguration>
-                                                               </generator>
-                                                               <generator>
-                                                                       <codeGeneratorClass>org.opendaylight.mdsal.binding.maven.api.gen.plugin.CodeGeneratorImpl</codeGeneratorClass>
-                                                                       <outputBaseDir>${salGeneratorPath}</outputBaseDir>
-                                                               </generator>
-                                                       </codeGenerators>
-                                                       <inspectDependencies>true</inspectDependencies>
-                                               </configuration>
-                                       </execution>
-                               </executions>
-                               <dependencies>
-                                       <dependency>
-                                               <groupId>org.opendaylight.mdsal</groupId>
-                                               <artifactId>maven-sal-api-gen-plugin</artifactId>
-                                               <version>${odl.sal.api.gen.plugin.version}</version>
-                                               <type>jar</type>
-                                       </dependency>
-                                       <dependency>
-                                               <groupId>org.opendaylight.controller</groupId>
-                                               <artifactId>yang-jmx-generator-plugin</artifactId>
-                                               <version>${odl.yang.jmx.generator.version}</version>
-                                       </dependency>
-                               </dependencies>
-                       </plugin>
-                       <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/initial/asdcApi-provider.xml</file>
-                                                                       <type>xml</type>
-                                                                       <classifier>config</classifier>
-                                                               </artifact>
-                                                       </artifacts>
-                                               </configuration>
-                                       </execution>
-                               </executions>
                        </plugin>
                </plugins>
        </build>
index bd5f74a..13198d6 100644 (file)
@@ -95,32 +95,36 @@ import com.google.common.util.concurrent.Futures;
  */
 public class AsdcApiProvider implements AutoCloseable, ASDCAPIService {
 
+    private static final Logger LOG = LoggerFactory.getLogger(AsdcApiProvider.class);
+
     private static final String ACTIVE_VERSION = "active";
 
-    private final Logger log = LoggerFactory.getLogger( AsdcApiProvider.class );
-    private final String appName = "asdcApi";
+    private static final String APPLICATION_NAME = "asdcApi";
 
     private final ExecutorService executor;
     protected DataBroker dataBroker;
     protected NotificationProviderService notificationService;
     protected RpcProviderRegistry rpcRegistry;
+    private final AsdcApiSliClient asdcApiSliClient;
 
     protected BindingAwareBroker.RpcRegistration<ASDCAPIService> rpcRegistration;
 
-    public AsdcApiProvider(DataBroker dataBroker2,
-            NotificationProviderService notificationProviderService,
-            RpcProviderRegistry rpcProviderRegistry) {
-        this.log.info( "Creating provider for " + appName );
+    public AsdcApiProvider(final DataBroker dataBroker,
+                           final NotificationProviderService notificationProviderService,
+                           final RpcProviderRegistry rpcProviderRegistry,
+                           final AsdcApiSliClient asdcApiSliClient) {
+
+        LOG.info("Creating provider for {}", APPLICATION_NAME);
         executor = Executors.newFixedThreadPool(1);
-        dataBroker = dataBroker2;
+        this.dataBroker = dataBroker;
         notificationService = notificationProviderService;
         rpcRegistry = rpcProviderRegistry;
+        this.asdcApiSliClient= asdcApiSliClient;
         initialize();
     }
 
     public void initialize(){
-        log.info( "Initializing provider for " + appName );
-
+        LOG.info("Initializing {} for {}", this.getClass().getName(), APPLICATION_NAME);
 
         createContainers();
 
@@ -128,10 +132,9 @@ public class AsdcApiProvider implements AutoCloseable, ASDCAPIService {
             if (rpcRegistry != null) {
                 rpcRegistration = rpcRegistry.addRpcImplementation(
                         ASDCAPIService.class, this);
-                log.info("Initialization complete for " + appName);
+                LOG.info("Initialization complete for {}", APPLICATION_NAME);
             } else {
-                log.warn("Error initializing " + appName
-                        + " : rpcRegistry unset");
+                LOG.warn("Error initializing {} : rpcRegistry unset", APPLICATION_NAME);
             }
         }
     }
@@ -151,14 +154,14 @@ public class AsdcApiProvider implements AutoCloseable, ASDCAPIService {
         try {
             CheckedFuture<Void, TransactionCommitFailedException> checkedFuture = t.submit();
             checkedFuture.get();
-            log.info("Create Containers succeeded!: ");
+            LOG.info("Create Containers succeeded!: ");
 
         } catch (InterruptedException | ExecutionException e) {
-            log.error("Create Containers Failed: " + e);
+            LOG.error("Create Containers Failed: " + e);
             e.printStackTrace();
         }
         } else {
-            log.warn("createContainers : cannot find dataBroker to create containers");
+            LOG.warn("createContainers : cannot find dataBroker to create containers");
         }
     }
     protected void initializeChild() {
@@ -167,38 +170,12 @@ public class AsdcApiProvider implements AutoCloseable, ASDCAPIService {
 
     @Override
     public void close() throws Exception {
-        log.info( "Closing provider for " + appName );
+        LOG.info( "Closing provider for " + APPLICATION_NAME);
         executor.shutdown();
         rpcRegistration.close();
-        log.info( "Successfully closed provider for " + appName );
-    }
-
-    public void setDataBroker(DataBroker dataBroker) {
-        this.dataBroker = dataBroker;
-        if( log.isDebugEnabled() ){
-            log.debug( "DataBroker set to " + (dataBroker==null?"null":"non-null") + "." );
-        }
-    }
-
-    public void setNotificationService(
-            NotificationProviderService notificationService) {
-        this.notificationService = notificationService;
-        if( log.isDebugEnabled() ){
-            log.debug( "Notification Service set to " + (notificationService==null?"null":"non-null") + "." );
-        }
-    }
-
-    public void setRpcRegistry(RpcProviderRegistry rpcRegistry) {
-        this.rpcRegistry = rpcRegistry;
-
-        rpcRegistration = rpcRegistry.addRpcImplementation(ASDCAPIService.class, this);
-
-        if( log.isDebugEnabled() ){
-            log.debug( "RpcRegistry set to " + (rpcRegistry==null?"null":"non-null") + "." );
-        }
+        LOG.info( "Successfully closed provider for " + APPLICATION_NAME);
     }
 
-
     protected boolean artifactVersionExists(String aName, String aVersion) {
         InstanceIdentifier artifactInstanceId =
                 InstanceIdentifier.<Artifacts>builder(Artifacts.class)
@@ -208,7 +185,7 @@ public class AsdcApiProvider implements AutoCloseable, ASDCAPIService {
         try {
             data = (Optional<Artifact>) readTx.read(LogicalDatastoreType.CONFIGURATION, artifactInstanceId).get();
         } catch (InterruptedException | ExecutionException e) {
-            log.error("Caught Exception reading MD-SAL for ["+aName+","+ aVersion+"] " ,e);
+            LOG.error("Caught Exception reading MD-SAL for ["+aName+","+ aVersion+"] " ,e);
             return false;
 
         }
@@ -244,7 +221,7 @@ public class AsdcApiProvider implements AutoCloseable, ASDCAPIService {
                     artifact);
             tx.submit().checkedGet();
         } catch (Exception e) {
-            log.error("Caught exception trying to add artifact entry", e);
+            LOG.error("Caught exception trying to add artifact entry", e);
         }
 
     }
@@ -279,7 +256,7 @@ public class AsdcApiProvider implements AutoCloseable, ASDCAPIService {
                 version);
         tx.submit().checkedGet();
     } catch (Exception e) {
-        log.error(
+        LOG.error(
                 "Caught exception trying to save entry to MD-SAL",
                 e);
     }
@@ -307,7 +284,7 @@ public class AsdcApiProvider implements AutoCloseable, ASDCAPIService {
                 version);
         tx.submit().checkedGet();
     } catch (Exception e) {
-        log.error(
+        LOG.error(
                 "Caught exception trying to save entry to MD-SAL",
                 e);
     }
@@ -320,10 +297,10 @@ public Future<RpcResult<VfLicenseModelUpdateOutput>> vfLicenseModelUpdate(VfLice
 
     Properties parms = new Properties();
 
-    log.info( SVC_OPERATION +" called." );
+    LOG.info( SVC_OPERATION +" called." );
 
     if(input == null ) {
-        log.debug("exiting " +SVC_OPERATION+ " because of invalid input");
+        LOG.debug("exiting " +SVC_OPERATION+ " because of invalid input");
         return null;
     }
 
@@ -339,28 +316,24 @@ public Future<RpcResult<VfLicenseModelUpdateOutput>> vfLicenseModelUpdate(VfLice
         errorMessage = "Artifact version already exists";
     } else {
         // Translate input object into SLI-consumable properties
-        log.info("Adding INPUT data for "+SVC_OPERATION+" input: " + input);
+        LOG.info("Adding INPUT data for "+SVC_OPERATION+" input: " + input);
         AsdcApiUtil.toProperties(parms, input);
 
 
         // Call directed graph
-
         Properties respProps = null;
-
-
-        AsdcApiSliClient sliClient = new AsdcApiSliClient();
         try
         {
-            if (sliClient.hasGraph("ASDC-API", SVC_OPERATION , null, "sync"))
+            if (asdcApiSliClient.hasGraph("ASDC-API", SVC_OPERATION , null, "sync"))
             {
 
                 try
                 {
-                    respProps = sliClient.execute("ASDC-API", SVC_OPERATION, null, "sync", parms);
+                    respProps = asdcApiSliClient.execute("ASDC-API", SVC_OPERATION, null, "sync", parms);
                 }
                 catch (Exception e)
                 {
-                    log.error("Caught exception executing service logic for "+ SVC_OPERATION, e);
+                    LOG.error("Caught exception executing service logic for "+ SVC_OPERATION, e);
                 }
             } else {
                 errorMessage = "No service logic active for ASDC-API: '" + SVC_OPERATION + "'";
@@ -371,7 +344,7 @@ public Future<RpcResult<VfLicenseModelUpdateOutput>> vfLicenseModelUpdate(VfLice
         {
             errorCode = "500";
             errorMessage = e.getMessage();
-            log.error("Caught exception looking for service logic", e);
+            LOG.error("Caught exception looking for service logic", e);
         }
 
 
@@ -384,14 +357,14 @@ public Future<RpcResult<VfLicenseModelUpdateOutput>> vfLicenseModelUpdate(VfLice
 
 
     if ("200".equals(errorCode)) {
-        log.info("ASDC update succeeded");
+        LOG.info("ASDC update succeeded");
 
         // Update config tree
         applyVfLicenseModelUpdate(input);
         addArtifactVersion(input.getArtifactName(), input.getArtifactVersion());
 
     } else {
-        log.info("ASDC update failed ("+errorCode+" : "+errorMessage);
+        LOG.info("ASDC update failed ("+errorCode+" : "+errorMessage);
     }
 
     // Send response
index 5b268bc..51fdd70 100644 (file)
@@ -25,39 +25,22 @@ import java.util.Properties;
 
 import org.onap.ccsdk.sli.core.sli.SvcLogicException;
 import org.onap.ccsdk.sli.core.sli.provider.SvcLogicService;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.FrameworkUtil;
-import org.osgi.framework.ServiceReference;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public class AsdcApiSliClient {
 
-       private static final Logger LOG = LoggerFactory
-                       .getLogger(AsdcApiSliClient.class);
+       private static final Logger LOG = LoggerFactory.getLogger(AsdcApiSliClient.class);
 
-       private SvcLogicService svcLogic = null;
+       private final SvcLogicService svcLogicService;
 
-       public AsdcApiSliClient()
-       {
-               BundleContext bctx = FrameworkUtil.getBundle(SvcLogicService.class).getBundleContext();
-
-       // Get SvcLogicService reference
-               ServiceReference sref = bctx.getServiceReference(SvcLogicService.NAME);
-               if (sref  != null)
-               {
-                       svcLogic =  (SvcLogicService) bctx.getService(sref);
-               }
-               else
-               {
-                       LOG.warn("Cannot find service reference for "+SvcLogicService.NAME);
-
-               }
+       public AsdcApiSliClient(final SvcLogicService svcLogicService) {
+               this.svcLogicService = svcLogicService;
        }
 
        public boolean hasGraph(String module, String rpc, String version, String mode) throws SvcLogicException
        {
-               return(svcLogic.hasGraph(module, rpc, version, mode));
+               return(svcLogicService.hasGraph(module, rpc, version, mode));
        }
 
 
@@ -78,7 +61,7 @@ public class AsdcApiSliClient {
                        }
                }
 
-               Properties respProps = svcLogic.execute(module, rpc, version, mode, parms);
+               Properties respProps = svcLogicService.execute(module, rpc, version, mode, parms);
 
                if (LOG.isDebugEnabled())
                {
diff --git a/asdcApi/provider/src/main/java/org/opendaylight/yang/gen/v1/org/onap/ccsdk/sli/northbound/asdcapi/provider/impl/rev140523/AsdcApiProviderModule.java b/asdcApi/provider/src/main/java/org/opendaylight/yang/gen/v1/org/onap/ccsdk/sli/northbound/asdcapi/provider/impl/rev140523/AsdcApiProviderModule.java
deleted file mode 100644 (file)
index 26dc942..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- *                     reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.northbound.asdcapi.provider.impl.rev140523;
-
-import org.onap.ccsdk.sli.northbound.asdcapi.AsdcApiProvider;
-
-public class AsdcApiProviderModule extends org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.northbound.asdcapi.provider.impl.rev140523.AbstractAsdcApiProviderModule {
-    public AsdcApiProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
-        super(identifier, dependencyResolver);
-    }
-
-    public AsdcApiProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.northbound.asdcapi.provider.impl.rev140523.AsdcApiProviderModule 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() {
-
-
-        final AsdcApiProvider provider = new AsdcApiProvider(getDataBrokerDependency()
-                , getNotificationServiceDependency()
-                , getRpcRegistryDependency());
-
-        return new AutoCloseable() {
-
-           @Override
-           public void close() throws Exception {
-
-               provider.close();
-           }
-       };
-
-    }
-
-}
diff --git a/asdcApi/provider/src/main/java/org/opendaylight/yang/gen/v1/org/onap/ccsdk/sli/northbound/asdcapi/provider/impl/rev140523/AsdcApiProviderModuleFactory.java b/asdcApi/provider/src/main/java/org/opendaylight/yang/gen/v1/org/onap/ccsdk/sli/northbound/asdcapi/provider/impl/rev140523/AsdcApiProviderModuleFactory.java
deleted file mode 100644 (file)
index 513e61c..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- *                     reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-/*
-* Generated file
-*
-* Generated from: yang module name: asdcApi-provider-impl yang module local name: asdcApi-provider-impl
-* Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
-* Generated at: Mon Aug 14 15:34:51 EDT 2017
-*
-* Do not modify this file unless it is present under src/main directory
-*/
-package org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.northbound.asdcapi.provider.impl.rev140523;
-public class AsdcApiProviderModuleFactory extends org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.northbound.asdcapi.provider.impl.rev140523.AbstractAsdcApiProviderModuleFactory {
-
-}
diff --git a/asdcApi/provider/src/main/resources/initial/asdcApi-provider.xml b/asdcApi/provider/src/main/resources/initial/asdcApi-provider.xml
deleted file mode 100644 (file)
index aefdec2..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ============LICENSE_START=======================================================
-  openECOMP : SDN-C
-  ================================================================================
-  Copyright (C) 2017 AT&T Intellectual Property. All rights
-                       reserved.
-  ================================================================================
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-       http://www.apache.org/licenses/LICENSE-2.0
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-  ============LICENSE_END=========================================================
-  -->
-
-<!-- vi: set et smarttab sw=4 tabstop=4: -->
-<snapshot>
-    <configuration>
-        <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
-            <modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
-                <module>
-
-                    <!-- This xmlns:prefix should match the namespace in the *-provider-impl.yang file
-                         The prefix: inside type should match the prefix of the yang file. -->
-                    <type xmlns:prefix="org:onap:ccsdk:sli:northbound:asdcapi:provider:impl">
-                        prefix:asdcApi-provider-impl
-                    </type>
-                    <name>asdcApi-provider-impl</name>
-
-                    <!--  The following sections contain bindings to services defined in the
-                          *-provider-impl yang file. For example the rpc-registry is required
-                          because we have a dependency (or augmentation) named "rpc-registry"
-                          and which binds to the md-sa-binding-registry. If you remove those
-                          dependencies from the yang file then you can remove them from here. -->
-                    <rpc-registry>
-                        <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-rpc-registry</type>
-                        <name>binding-rpc-broker</name>
-                    </rpc-registry>
-
-                    <data-broker>
-                        <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-async-data-broker</type>
-                        <name>binding-data-broker</name>
-                    </data-broker>
-
-                     <notification-service>
-                        <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">
-                            binding:binding-notification-service
-                        </type>
-                        <name>binding-notification-broker</name>
-                    </notification-service>
-                </module>
-
-            </modules>
-        </data>
-
-    </configuration>
-
-    <!--  Required capabilities are basically a listing of all modules that need to be imported before
-          our service can be resolved. Capabilities for dependencies defined above are implied which is
-          why we do not have define a required capability for the data broker, for example. -->
-    <required-capabilities>
-        <capability>org:onap:ccsdk:sli:northbound:asdcapi:provider:impl?module=asdcApi-provider-impl&amp;revision=2014-05-23</capability>
-    </required-capabilities>
-
-</snapshot>
diff --git a/asdcApi/provider/src/main/resources/org/opendaylight/blueprint/asdc-blueprint.xml b/asdcApi/provider/src/main/resources/org/opendaylight/blueprint/asdc-blueprint.xml
new file mode 100644 (file)
index 0000000..6229db1
--- /dev/null
@@ -0,0 +1,32 @@
+<?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="svcLogicService"
+               interface="org.onap.ccsdk.sli.core.sli.provider.SvcLogicService" />
+
+    <bean id="client" class="org.onap.ccsdk.sli.northbound.asdcapi.AsdcApiSliClient">
+        <argument ref="svcLogicService" />
+    </bean>
+
+    <reference id="dataBroker"
+               interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"
+               odl:type="default" />
+
+    <reference id="notificationService"
+               interface="org.opendaylight.controller.sal.binding.api.NotificationProviderService"
+               odl:type="default" />
+
+    <reference id="rpcRegistry"
+               interface="org.opendaylight.controller.sal.binding.api.RpcProviderRegistry"
+               odl:type="default" />
+
+    <bean id="provider" class="org.onap.ccsdk.sli.northbound.asdcapi.AsdcApiProvider">
+        <argument ref="dataBroker" />
+        <argument ref="notificationService" />
+        <argument ref="rpcRegistry" />
+        <argument ref="client" />
+    </bean>
+
+</blueprint>
\ No newline at end of file
diff --git a/asdcApi/provider/src/main/yang/asdcApi-provider-impl.yang b/asdcApi/provider/src/main/yang/asdcApi-provider-impl.yang
deleted file mode 100755 (executable)
index 7a1876c..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-module asdcApi-provider-impl {
-
-    yang-version 1;
-    namespace "org:onap:ccsdk:sli:northbound:asdcapi:provider:impl";
-    prefix "asdcApi-provider-impl";
-
-    import config { prefix config; revision-date 2013-04-05; }
-    import opendaylight-md-sal-binding { prefix mdsal; revision-date 2013-10-28; }
-
-     description
-        "This module contains the base YANG definitions for
-        asdcApi-provider impl implementation.";
-
-    revision "2014-05-23" {
-        description
-            "Initial revision.";
-    }
-
-    // This is the definition of the service implementation as a module identity.
-    identity asdcApi-provider-impl {
-            base config:module-type;
-
-            // Specifies the prefix for generated java classes.
-            config:java-name-prefix AsdcApiProvider;
-    }
-
-    // Augments the 'configuration' choice node under modules/module.
-    // We consume the three main services, RPCs, DataStore, and Notifications
-    augment "/config:modules/config:module/config:configuration" {
-        case asdcApi-provider-impl {
-            when "/config:modules/config:module/config:type = 'asdcApi-provider-impl'";
-
-            container rpc-registry {
-                uses config:service-ref {
-                    refine type {
-                        mandatory true;
-                        config:required-identity mdsal:binding-rpc-registry;
-                    }
-                }
-            }
-
-            container notification-service {
-                uses config:service-ref {
-                    refine type {
-                        mandatory true;
-                        config:required-identity mdsal:binding-notification-service;
-                    }
-                }
-            }
-
-            container data-broker {
-                uses config:service-ref {
-                    refine type {
-                        mandatory false;
-                        config:required-identity mdsal:binding-async-data-broker;
-                    }
-                }
-            }
-        }
-    }
-}
index 1e6b19d..73e8fe5 100644 (file)
@@ -209,7 +209,7 @@ public class SdncUebCallback implements INotificationCallback {
                props.load(new FileInputStream(propFile));
 
                try {
-                       jdbcDataSource = DBResourceManager.create(props);
+                       jdbcDataSource = new DBResourceManager(props);
                } catch(Throwable exc) {
                        LOG.error("", exc);
                }