Adapt SDNR northbound to Aluminium 24/117424/4
authorRavi Pendurty <ravi.pendurty@highstreet-technologies.com>
Wed, 3 Feb 2021 13:09:25 +0000 (14:09 +0100)
committerDan Timoney <dtimoney@att.com>
Fri, 5 Feb 2021 22:55:34 +0000 (22:55 +0000)
Adapt SDNR northbound to Aluminium

Issue-ID: CCSDK-3128
Signed-off-by: Ravi Pendurty <ravi.pendurty@highstreet-technologies.com>
Change-Id: Id2dc38d4f2573d5c6aeedfb42349433f22aa86f5
Signed-off-by: Ravi Pendurty <ravi.pendurty@highstreet-technologies.com>
45 files changed:
sdnr/northbound/CMNotify/feature/pom.xml
sdnr/northbound/CMNotify/installer/pom.xml
sdnr/northbound/CMNotify/model/pom.xml
sdnr/northbound/CMNotify/pom.xml
sdnr/northbound/CMNotify/provider/pom.xml
sdnr/northbound/CMNotify/provider/src/main/java/org/onap/ccsdk/features/sdnr/northbound/cmnotify/CMNotifyProvider.java
sdnr/northbound/CMNotify/provider/src/main/resources/OSGI-INF/blueprint/impl-blueprint.xml [deleted file]
sdnr/northbound/CMNotify/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml
sdnr/northbound/CMNotify/provider/src/test/java/org/onap/ccsdk/features/sdnr/northbound/cmnotify/TestCMNotify.java
sdnr/northbound/energysavings/features/pom.xml
sdnr/northbound/energysavings/installer/pom.xml
sdnr/northbound/energysavings/model/pom.xml
sdnr/northbound/energysavings/pom.xml
sdnr/northbound/energysavings/provider/pom.xml
sdnr/northbound/features/ccsdk-features-sdnr-northbound-all/pom.xml
sdnr/northbound/features/installer/pom.xml
sdnr/northbound/features/pom.xml
sdnr/northbound/oofpcipoc/consumer/pom.xml
sdnr/northbound/oofpcipoc/consumer/src/main/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/OofpcipocHandleNotif.java
sdnr/northbound/oofpcipoc/consumer/src/main/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/handlenotif/pojos/CellConfig.java
sdnr/northbound/oofpcipoc/consumer/src/main/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/handlenotif/pojos/NeighborListInUse.java
sdnr/northbound/oofpcipoc/consumer/src/main/resources/OSGI-INF/blueprint/impl-blueprint.xml [deleted file]
sdnr/northbound/oofpcipoc/consumer/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml
sdnr/northbound/oofpcipoc/feature/pom.xml
sdnr/northbound/oofpcipoc/installer/pom.xml
sdnr/northbound/oofpcipoc/model/pom.xml
sdnr/northbound/oofpcipoc/pom.xml
sdnr/northbound/oofpcipoc/provider/pom.xml
sdnr/northbound/oofpcipoc/provider/src/main/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/OofpcipocProvider.java
sdnr/northbound/oofpcipoc/provider/src/main/resources/OSGI-INF/blueprint/impl-blueprint.xml [deleted file]
sdnr/northbound/oofpcipoc/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml
sdnr/northbound/oofpcipoc/provider/src/test/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/TestOofpcipoc.java
sdnr/northbound/pom.xml
sdnr/northbound/ranSlice/feature/pom.xml
sdnr/northbound/ranSlice/installer/pom.xml
sdnr/northbound/ranSlice/model/pom.xml
sdnr/northbound/ranSlice/pom.xml
sdnr/northbound/ranSlice/provider/pom.xml
sdnr/northbound/ranSlice/provider/src/main/java/org/onap/ccsdk/features/sdnr/northbound/ranSlice/RANSliceClient.java
sdnr/northbound/ranSlice/provider/src/main/java/org/onap/ccsdk/features/sdnr/northbound/ranSlice/RANSliceProvider.java
sdnr/northbound/ranSlice/provider/src/main/java/org/onap/ccsdk/features/sdnr/northbound/ranSlice/RANSliceResponseCode.java
sdnr/northbound/ranSlice/provider/src/main/java/org/onap/ccsdk/features/sdnr/northbound/ranSlice/RANSliceRpcInvocationException.java
sdnr/northbound/ranSlice/provider/src/main/resources/OSGI-INF/blueprint/impl-blueprint.xml [deleted file]
sdnr/northbound/ranSlice/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml
sdnr/northbound/ranSlice/provider/src/test/java/org/onap/ccsdk/features/sdnr/northbound/ranSlice/RANSliceProviderTest.java

index 3c7cb72..90fe746 100644 (file)
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>2.1.0</version>
+        <version>2.1.1-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
index 20e551f..b540ea7 100644 (file)
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.1.0</version>
+        <version>2.1.1-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
index 43dcecf..3af4c66 100644 (file)
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.1.0</version>
+        <version>2.1.1-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
index a930edb..54db602 100644 (file)
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.1.0</version>
+        <version>2.1.1-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
index c434790..f964d63 100644 (file)
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.1.0</version>
+        <version>2.1.1-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
 
     <dependencyManagement>
         <dependencies>
-            <!--
-              <dependency>
-                  <groupId>org.opendaylight.controller</groupId>
-                  <artifactId>mdsal-artifacts</artifactId>
-                  <version>1.6.1</version>
-                  <type>pom</type>
-                  <scope>import</scope>
-              </dependency>
-            -->
-
             <dependency>
                 <groupId>org.onap.ccsdk.sli.core</groupId>
                 <artifactId>sli-core-artifacts</artifactId>
             <artifactId>CMNotify-model</artifactId>
             <version>${project.version}</version>
         </dependency>
-        <!--
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>sal-binding-config</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-common-util</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-core-api</artifactId>
-        </dependency>
         <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>yang-data-impl</artifactId>
+            <groupId>org.opendaylight.mdsal</groupId>
+            <artifactId>mdsal-binding-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-core</artifactId>
-            <scope>test</scope>
+            <groupId>org.opendaylight.mdsal</groupId>
+            <artifactId>mdsal-dom-api</artifactId>
         </dependency>
         <dependency>
             <groupId>org.onap.ccsdk.sli.core</groupId>
             <scope>provided</scope>
         </dependency>
         <dependency>
-            <groupId>org.onap.ccsdk.sli.core</groupId>
-            <artifactId>utils-provider</artifactId>
-            <version>${sdnctl.sli.version}</version>
-        </dependency>
-        -->
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.onap.ccsdk.sli.core</groupId>
-            <artifactId>sli-common</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.onap.ccsdk.sli.core</groupId>
-            <artifactId>sli-provider</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-test-model</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-broker-impl</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-broker-impl</artifactId>
-            <type>test-jar</type>
-            <classifier>tests</classifier>
+            <groupId>org.opendaylight.mdsal</groupId>
+            <artifactId>mdsal-binding-test-model</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>sal-common-util</artifactId>
         </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-core-api</artifactId>
-        </dependency>
         <dependency>
             <groupId>org.opendaylight.yangtools</groupId>
             <artifactId>yang-data-impl</artifactId>
index 7317ac4..452741b 100644 (file)
@@ -28,149 +28,162 @@ import java.util.Properties;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import org.onap.ccsdk.sli.core.sli.provider.MdsalHelper;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
-import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.binding.api.NotificationPublishService;
+import org.opendaylight.mdsal.binding.api.RpcProviderService;
 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev200224.CMNOTIFYAPIService;
 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev200224.NbrlistChangeNotificationInput;
 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev200224.NbrlistChangeNotificationInputBuilder;
 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev200224.NbrlistChangeNotificationOutput;
 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev200224.NbrlistChangeNotificationOutputBuilder;
-
 import org.opendaylight.yangtools.concepts.Builder;
+import org.opendaylight.yangtools.concepts.ObjectRegistration;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- * Defines a base implementation for your provider. This class extends from a helper class which
- * provides storage for the most commonly used components of the MD-SAL. Additionally the base class
- * provides some basic logging and initialization / clean up methods.
+ * Defines a base implementation for your provider. This class extends from a
+ * helper class which provides storage for the most commonly used components of
+ * the MD-SAL. Additionally the base class provides some basic logging and
+ * initialization / clean up methods.
  *
  */
 public class CMNotifyProvider implements AutoCloseable, CMNOTIFYAPIService {
 
-    private static final Logger LOG = LoggerFactory.getLogger(CMNotifyProvider.class);
-
-    private static final String APPLICATION_NAME = "CMNotify-api";
-    private static final String NBRLIST_CHANGE_NOTIFICATION = "nbrlist-change-notification";
-
-
-    private final ExecutorService executor;
-    protected DataBroker dataBroker;
-    protected NotificationPublishService notificationService;
-    protected RpcProviderRegistry rpcRegistry;
-    protected BindingAwareBroker.RpcRegistration<CMNOTIFYAPIService> rpcRegistration;
-    private final CMNotifyClient CMNotifyClient;
-
-    public CMNotifyProvider(final DataBroker dataBroker, final NotificationPublishService notificationPublishService,
-            final RpcProviderRegistry rpcProviderRegistry, final CMNotifyClient CMNotifyClient) {
-
-        LOG.info("Creating provider for {}", APPLICATION_NAME);
-        executor = Executors.newFixedThreadPool(1);
-        this.dataBroker = dataBroker;
-        this.notificationService = notificationPublishService;
-        this.rpcRegistry = rpcProviderRegistry;
-        this.CMNotifyClient = CMNotifyClient;
-        initialize();
-    }
-
-    public void initialize() {
-        LOG.info("Initializing provider for {}", APPLICATION_NAME);
-        rpcRegistration = rpcRegistry.addRpcImplementation(CMNOTIFYAPIService.class, this);
-        LOG.info("Initialization complete for {}", APPLICATION_NAME);
-    }
-
-    protected void initializeChild() {
-        // Override if you have custom initialization intelligence
-    }
-
-    @Override
-    public void close() throws Exception {
-        LOG.info("Closing provider for {}", APPLICATION_NAME);
-        executor.shutdown();
-        rpcRegistration.close();
-        LOG.info("Successfully closed provider for {}", APPLICATION_NAME);
-    }
-
-      // RPC nbrlist-change-notification
-
-    @Override
-    public ListenableFuture<RpcResult<NbrlistChangeNotificationOutput>> nbrlistChangeNotification(NbrlistChangeNotificationInput input) {
-        final String svcOperation = "nbrlist-change-notification";
-
-        Properties parms = new Properties();
-        NbrlistChangeNotificationOutputBuilder serviceDataBuilder = (NbrlistChangeNotificationOutputBuilder) getServiceData(NBRLIST_CHANGE_NOTIFICATION);
-
-        LOG.info("Reached RPC nbrlist-change-notification");
-
-        LOG.info(svcOperation + " called.");
-
-        if (input == null) {
-            LOG.debug("exiting " + svcOperation + " because of invalid input");
-            serviceDataBuilder.setResponseCode("Input is null");
-            RpcResult<NbrlistChangeNotificationOutput> rpcResult =
-                    RpcResultBuilder.<NbrlistChangeNotificationOutput>status(true).withResult(serviceDataBuilder.build()).build();
-            return Futures.immediateFuture(rpcResult);
-        }
-
-        // add input to parms
-        LOG.info("Adding INPUT data for " + svcOperation + " input: " + input);
-        NbrlistChangeNotificationInputBuilder inputBuilder = new NbrlistChangeNotificationInputBuilder(input);
-        MdsalHelper.toProperties(parms, inputBuilder.build());
-
-        LOG.info("Printing SLI parameters to be passed");
-
-        // iterate properties file to get key-value pairs
-        for (String key : parms.stringPropertyNames()) {
-            String value = parms.getProperty(key);
-            LOG.info("The SLI parameter in " + key + " is: " + value);
-        }
-
-        // Call SLI sync method
-        try {
-            if (CMNotifyClient.hasGraph("CM-NOTIFY-API", svcOperation, null, "sync")) {
-                LOG.info("CMNotifyClient has a Directed Graph for '" + svcOperation + "'");
-                try {
-                    CMNotifyClient.execute("CM-NOTIFY-API", svcOperation, null, "sync", serviceDataBuilder, parms);
-                } catch (Exception e) {
-                    LOG.error("Caught exception executing service logic for " + svcOperation, e);
-                    serviceDataBuilder.setResponseCode("500");
-                }
-            } else {
-                LOG.error("No service logic active for CMNotify: '" + svcOperation + "'");
-                serviceDataBuilder.setResponseCode("503");
-            }
-        } catch (Exception e) {
-            LOG.error("Caught exception looking for service logic", e);
-            serviceDataBuilder.setResponseCode("500");
-        }
-
-        String errorCode = serviceDataBuilder.getResponseCode();
-
-        if (!("0".equals(errorCode) || "200".equals(errorCode))) {
-            LOG.error("Returned FAILED for " + svcOperation + " error code: '" + errorCode + "'");
-        } else {
-            LOG.info("Returned SUCCESS for " + svcOperation + " ");
-            serviceDataBuilder.setResponseMessage("CM Notification Executed and RuntimeDB Updated. ");
-        }
-
-        RpcResult<NbrlistChangeNotificationOutput> rpcResult =
-                RpcResultBuilder.<NbrlistChangeNotificationOutput>status(true).withResult(serviceDataBuilder.build()).build();
-
-        LOG.info("Successful exit from nbrlist-change-notification ");
-
-        return Futures.immediateFuture(rpcResult);
-    }
-
-
-    protected Builder<?> getServiceData(String svcOperation) {
-        switch (svcOperation) {
-            case NBRLIST_CHANGE_NOTIFICATION:
-                return new NbrlistChangeNotificationOutputBuilder();
-        }
-        return null;
-    }
+       private static final Logger LOG = LoggerFactory.getLogger(CMNotifyProvider.class);
+
+       private static final String APPLICATION_NAME = "CMNotify-api";
+       private static final String NBRLIST_CHANGE_NOTIFICATION = "nbrlist-change-notification";
+
+       private final ExecutorService executor;
+       protected DataBroker dataBroker;
+       protected RpcProviderService rpcProviderRegistry;
+       protected NotificationPublishService notificationService;
+       private ObjectRegistration<CMNotifyProvider> rpcReg;
+       private CMNotifyClient CMNotifyClient;
+
+       public CMNotifyProvider() {
+
+               LOG.info("Creating provider for {}", APPLICATION_NAME);
+               executor = Executors.newFixedThreadPool(1);
+               
+               this.dataBroker = null; 
+               this.notificationService = null; 
+               this.rpcProviderRegistry = null;
+               this.CMNotifyClient = null;
+                
+       }
+
+       public void setDataBroker(DataBroker dataBroker) {
+               this.dataBroker = dataBroker;
+       }
+
+       public void setRpcProviderRegistry(RpcProviderService rpcProviderRegistry) {
+               this.rpcProviderRegistry = rpcProviderRegistry;
+       }
+
+       public void setNotificationPublishService(NotificationPublishService notificationPublishService) {
+               this.notificationService = notificationPublishService;
+       }
+
+       public void setClient(CMNotifyClient client) {
+               this.CMNotifyClient = client;
+       }
+
+       public void init() {
+               LOG.info("Initializing provider for {}", APPLICATION_NAME);
+               rpcReg = rpcProviderRegistry.registerRpcImplementation(CMNOTIFYAPIService.class, this);
+               LOG.info("Initialization complete for {}", APPLICATION_NAME);
+       }
+
+       @Override
+       public void close() throws Exception {
+               LOG.info("Closing provider for {}", APPLICATION_NAME);
+               executor.shutdown();
+               if (rpcReg != null)
+                       rpcReg.close();
+               LOG.info("Successfully closed provider for {}", APPLICATION_NAME);
+       }
+
+       // RPC nbrlist-change-notification
+
+       @Override
+       public ListenableFuture<RpcResult<NbrlistChangeNotificationOutput>> nbrlistChangeNotification(
+                       NbrlistChangeNotificationInput input) {
+               final String svcOperation = "nbrlist-change-notification";
+
+               Properties parms = new Properties();
+               NbrlistChangeNotificationOutputBuilder serviceDataBuilder = (NbrlistChangeNotificationOutputBuilder) getServiceData(
+                               NBRLIST_CHANGE_NOTIFICATION);
+
+               LOG.info("Reached RPC nbrlist-change-notification");
+
+               LOG.info(svcOperation + " called.");
+
+               if (input == null) {
+                       LOG.debug("exiting " + svcOperation + " because of invalid input");
+                       serviceDataBuilder.setResponseCode("Input is null");
+                       RpcResult<NbrlistChangeNotificationOutput> rpcResult = RpcResultBuilder
+                                       .<NbrlistChangeNotificationOutput>status(true).withResult(serviceDataBuilder.build()).build();
+                       return Futures.immediateFuture(rpcResult);
+               }
+
+               // add input to parms
+               LOG.info("Adding INPUT data for " + svcOperation + " input: " + input);
+               NbrlistChangeNotificationInputBuilder inputBuilder = new NbrlistChangeNotificationInputBuilder(input);
+               MdsalHelper.toProperties(parms, inputBuilder.build());
+
+               LOG.info("Printing SLI parameters to be passed");
+
+               // iterate properties file to get key-value pairs
+               for (String key : parms.stringPropertyNames()) {
+                       String value = parms.getProperty(key);
+                       LOG.info("The SLI parameter in " + key + " is: " + value);
+               }
+
+               // Call SLI sync method
+               try {
+                       if (CMNotifyClient.hasGraph("CM-NOTIFY-API", svcOperation, null, "sync")) {
+                               LOG.info("CMNotifyClient has a Directed Graph for '" + svcOperation + "'");
+                               try {
+                                       CMNotifyClient.execute("CM-NOTIFY-API", svcOperation, null, "sync", serviceDataBuilder, parms);
+                               } catch (Exception e) {
+                                       LOG.error("Caught exception executing service logic for " + svcOperation, e);
+                                       serviceDataBuilder.setResponseCode("500");
+                               }
+                       } else {
+                               LOG.error("No service logic active for CMNotify: '" + svcOperation + "'");
+                               serviceDataBuilder.setResponseCode("503");
+                       }
+               } catch (Exception e) {
+                       LOG.error("Caught exception looking for service logic", e);
+                       serviceDataBuilder.setResponseCode("500");
+               }
+
+               String errorCode = serviceDataBuilder.getResponseCode();
+
+               if (!("0".equals(errorCode) || "200".equals(errorCode))) {
+                       LOG.error("Returned FAILED for " + svcOperation + " error code: '" + errorCode + "'");
+               } else {
+                       LOG.info("Returned SUCCESS for " + svcOperation + " ");
+                       serviceDataBuilder.setResponseMessage("CM Notification Executed and RuntimeDB Updated. ");
+               }
+
+               RpcResult<NbrlistChangeNotificationOutput> rpcResult = RpcResultBuilder
+                               .<NbrlistChangeNotificationOutput>status(true).withResult(serviceDataBuilder.build()).build();
+
+               LOG.info("Successful exit from nbrlist-change-notification ");
+
+               return Futures.immediateFuture(rpcResult);
+       }
+
+       protected Builder<?> getServiceData(String svcOperation) {
+               switch (svcOperation) {
+               case NBRLIST_CHANGE_NOTIFICATION:
+                       return new NbrlistChangeNotificationOutputBuilder();
+               }
+               return null;
+       }
 }
diff --git a/sdnr/northbound/CMNotify/provider/src/main/resources/OSGI-INF/blueprint/impl-blueprint.xml b/sdnr/northbound/CMNotify/provider/src/main/resources/OSGI-INF/blueprint/impl-blueprint.xml
deleted file mode 100644 (file)
index fd036bb..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ ============LICENSE_START=======================================================
-  ~ ONAP : ccsdk features
-  ~ ================================================================================
-  ~ Copyright (C) 2020 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=======================================================
-  ~
-  -->
-
-<blueprint xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0"
-           xmlns="http://www.osgi.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.features.sdnr.northbound.cmnotify.CMNotifyClient">
-        <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.md.sal.binding.api.NotificationPublishService"
-               odl:type="default"/>
-
-    <reference id="rpcRegistry" interface="org.opendaylight.controller.sal.binding.api.RpcProviderRegistry"
-               odl:type="default"/>
-
-    <bean id="provider" class="org.onap.ccsdk.features.sdnr.northbound.cmnotify.CMNotifyProvider">
-        <argument ref="dataBroker"/>
-        <argument ref="rpcRegistry"/>
-        <argument ref="notificationService"/>
-        <argument ref="client"/>
-    </bean>
-
-</blueprint>
index fd036bb..3eb5312 100644 (file)
         <argument ref="svcLogicService"/>
     </bean>
 
-    <reference id="dataBroker" interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"
+    <reference id="dataBroker"
+               interface="org.opendaylight.mdsal.binding.api.DataBroker"
                odl:type="default"/>
-
-    <reference id="notificationService"
-               interface="org.opendaylight.controller.md.sal.binding.api.NotificationPublishService"
-               odl:type="default"/>
-
-    <reference id="rpcRegistry" interface="org.opendaylight.controller.sal.binding.api.RpcProviderRegistry"
-               odl:type="default"/>
-
-    <bean id="provider" class="org.onap.ccsdk.features.sdnr.northbound.cmnotify.CMNotifyProvider">
-        <argument ref="dataBroker"/>
-        <argument ref="rpcRegistry"/>
-        <argument ref="notificationService"/>
-        <argument ref="client"/>
+               
+    <reference id="notificationPublishService"
+               interface="org.opendaylight.mdsal.binding.api.NotificationPublishService" />
+
+    <reference id="rpcProviderRegistry"
+               interface="org.opendaylight.mdsal.binding.api.RpcProviderService" />
+
+    <bean id="provider" class="org.onap.ccsdk.features.sdnr.northbound.cmnotify.CMNotifyProvider" 
+               init-method="init" destroy-method="close">
+        <property name="dataBroker"  ref="dataBroker"/>
+        <property name="rpcProviderRegistry" ref="rpcProviderRegistry"/>
+        <property name="notificationPublishService" ref="notificationPublishService"/>
+        <property name="client" ref="client"/>
     </bean>
 
 </blueprint>
index 36218eb..f062e51 100644 (file)
@@ -24,14 +24,9 @@ package org.onap.ccsdk.features.sdnr.northbound.cmnotify;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.onap.ccsdk.features.sdnr.northbound.cmnotify.CMNotifyClient;
-import org.onap.ccsdk.features.sdnr.northbound.cmnotify.CMNotifyProvider;
-
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService;
-import org.opendaylight.controller.md.sal.binding.test.AbstractConcurrentDataBrokerTest;
-import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
-
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.binding.api.NotificationPublishService;
+import org.opendaylight.mdsal.binding.api.RpcProviderService;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -41,16 +36,14 @@ import static org.mockito.Mockito.mock;
 
 import java.math.*;
 
-import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev200224.NbrlistChangeNotificationInput;
 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev200224.NbrlistChangeNotificationInputBuilder;
 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev200224.NbrlistChangeNotificationOutput;
-import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev200224.NbrlistChangeNotificationOutputBuilder;
 
 import com.google.common.util.concurrent.ListenableFuture;
 
 
 
-public class TestCMNotify extends AbstractConcurrentDataBrokerTest {
+public class TestCMNotify {
 
     private CMNotifyProvider cMNotifyProvider;
     private static final Logger LOG = LoggerFactory.getLogger(CMNotifyProvider.class);
@@ -58,11 +51,15 @@ public class TestCMNotify extends AbstractConcurrentDataBrokerTest {
     @Before
     public void setUp() throws Exception {
         if (null == cMNotifyProvider) {
-            DataBroker dataBroker = getDataBroker();
+            DataBroker dataBroker = mock(DataBroker.class);
             NotificationPublishService mockNotification = mock(NotificationPublishService.class);
-            RpcProviderRegistry mockRpcRegistry = mock(RpcProviderRegistry.class);
+            RpcProviderService mockRpcRegistry = mock(RpcProviderService.class);
             CMNotifyClient mockSliClient = mock(CMNotifyClient.class);
-            cMNotifyProvider = new CMNotifyProvider(dataBroker, mockNotification, mockRpcRegistry, mockSliClient);
+            cMNotifyProvider = new CMNotifyProvider();
+            cMNotifyProvider.setDataBroker(dataBroker);
+            cMNotifyProvider.setNotificationPublishService(mockNotification);
+            cMNotifyProvider.setRpcProviderRegistry(mockRpcRegistry);
+            cMNotifyProvider.setClient(mockSliClient);
         }
     }
 
index 76258d0..dd1a6b0 100644 (file)
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>feature-repo-parent</artifactId>
-        <version>2.1.0</version>
+        <version>2.1.1-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
index d60c28e..06cc3ab 100755 (executable)
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.1.0</version>
+        <version>2.1.1-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
index 297dfbd..ae400f5 100644 (file)
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.1.0</version>
+        <version>2.1.1-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
index f62dca2..5878df7 100644 (file)
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.1.0</version>
+        <version>2.1.1-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
index 264c089..507823e 100644 (file)
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.1.0</version>
+        <version>2.1.1-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
index 71a091f..f5fabcb 100644 (file)
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>2.1.0</version>
+        <version>2.1.1-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
index fba580b..1809fdf 100644 (file)
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.1.0</version>
+        <version>2.1.1-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
index 0a9821d..7af67f0 100644 (file)
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.1.0</version>
+        <version>2.1.1-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
index b05464d..950ee35 100644 (file)
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.1.0</version>
+        <version>2.1.1-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
             <artifactId>oofpcipoc-provider</artifactId>
             <version>${project.version}</version>
         </dependency>
-        <!-- <dependency> <groupId>org.opendaylight.controller</groupId> <artifactId>sal-binding-config</artifactId>
-            </dependency> -->
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-common-util</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-core-api</artifactId>
-        </dependency>
         <dependency>
             <groupId>org.opendaylight.yangtools</groupId>
             <artifactId>yang-data-impl</artifactId>
index 98b16f5..dd1ca70 100644 (file)
@@ -25,8 +25,8 @@ import java.io.Writer;
 import java.io.StringWriter;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 import java.io.IOException;
-import java.util.Properties;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
@@ -41,32 +41,23 @@ import org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.handlenotif.pojos.Paylo
 import org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.handlenotif.pojos.RAN;
 import org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.handlenotif.pojos.RadioAccess;
 import org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.handlenotif.pojos.X0005b9Lte;
-import org.onap.ccsdk.sli.core.sli.provider.MdsalHelper;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
-import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev190308.*;
+
+import org.opendaylight.mdsal.binding.api.DataBroker;
 
 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.rev190308.OofpcipocListener;
-import org.opendaylight.yang.gen.v1.org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.rev190308.Payload;
 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.rev190308.NbrlistChangeNotification;
 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.rev190308.NetconfConfigChange;
 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.rev190308.nbrlist.change.notification.*;
 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.rev190308.nbrlist.change.notification.fap.service.*;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 
-import com.google.common.base.Preconditions;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.json.JSONArray;
 import org.json.JSONObject;
 
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.MoreExecutors;
 
 /**
  * Defines a base implementation for your listener. This class extends from a
@@ -92,25 +83,28 @@ public class OofpcipocHandleNotif implements AutoCloseable, OofpcipocListener {
 
        protected DataBroker dataBroker;
 
-       private final OofpcipocClient OofpcipocClient;
+       private OofpcipocClient OofpcipocClient;
 
-       public OofpcipocHandleNotif(final DataBroker dataBroker, final OofpcipocClient OofpcipocClient) {
+       public OofpcipocHandleNotif() {
 
                this.LOG.info("Creating listener for {}", APPLICATION_NAME);
                executor = Executors.newFixedThreadPool(1);
+               this.dataBroker = null;
+               this.OofpcipocClient = null;
+       }
+       
+       public void setDataBroker(DataBroker dataBroker) {
                this.dataBroker = dataBroker;
+       }
+       
+       public void setClient(OofpcipocClient OofpcipocClient) {
                this.OofpcipocClient = OofpcipocClient;
-               initialize();
        }
 
-       public void initialize() {
+       public void init() {
                LOG.info("Placeholder: Initializing listener  for {}", APPLICATION_NAME);
        }
 
-       protected void initializeChild() {
-               // Override if you have custom initialization intelligence
-       }
-
        @Override
        public void close() throws Exception {
                LOG.info("Closing listener for {}", APPLICATION_NAME);
@@ -134,18 +128,20 @@ public class OofpcipocHandleNotif implements AutoCloseable, OofpcipocListener {
                List<FAPServiceList> fAPServiceList = new ArrayList<>();
 
                radioAccess.setFAPServiceNumberOfEntries(notification.getFapServiceNumberOfEntriesChanged().toString());
+               Map<FapServiceKey, FapService> fapSvcs = notification.getFapService();
 
-               for (FapService fapSvc : notification.getFapService()) {
+               for (Map.Entry<FapServiceKey,FapService> entry : fapSvcs.entrySet() ) {
 
+                       FapService fapSvc = entry.getValue();
                        FAPServiceList fapServiceElement = new FAPServiceList();
 
                        fapServiceElement.setAlias(fapSvc.getAlias());
                        fapServiceElement.setX0005b9Lte(new X0005b9Lte(fapSvc.getPhyCellIdInUse().toString(), fapSvc.getPnfName()));
 
                        List<LTENeighborListInUseLTECell> lTENeighborListInUseLTECell = new ArrayList<>();
-
-                       for (LteRanNeighborListInUseLteCellChanged lteRanElement : fapSvc
-                                       .getLteRanNeighborListInUseLteCellChanged()) {
+                       Map<LteRanNeighborListInUseLteCellChangedKey, LteRanNeighborListInUseLteCellChanged> lteRanElements = fapSvc.getLteRanNeighborListInUseLteCellChanged();
+                       for (Map.Entry<LteRanNeighborListInUseLteCellChangedKey, LteRanNeighborListInUseLteCellChanged> lteRanEntry : lteRanElements.entrySet()) {
+                               LteRanNeighborListInUseLteCellChanged lteRanElement = lteRanEntry.getValue(); 
                                LTENeighborListInUseLTECell lTENeighborListInUseLTECellElement = new LTENeighborListInUseLTECell();
                                lTENeighborListInUseLTECellElement.setAlias(lteRanElement.getCid());
                                lTENeighborListInUseLTECellElement.setBlacklisted(lteRanElement.isBlacklisted().toString());
index def38a3..36c0ce6 100644 (file)
@@ -1,3 +1,23 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * openECOMP : SDN-C
+ * ================================================================================
+ * Copyright (C) 2020 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.onap.ccsdk.features.sdnr.northbound.oofpcipoc.handlenotif.pojos;
 
index 39cc222..634d970 100644 (file)
@@ -1,3 +1,23 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * openECOMP : SDN-C
+ * ================================================================================
+ * Copyright (C) 2020 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.onap.ccsdk.features.sdnr.northbound.oofpcipoc.handlenotif.pojos;
 
diff --git a/sdnr/northbound/oofpcipoc/consumer/src/main/resources/OSGI-INF/blueprint/impl-blueprint.xml b/sdnr/northbound/oofpcipoc/consumer/src/main/resources/OSGI-INF/blueprint/impl-blueprint.xml
deleted file mode 100644 (file)
index 90ae11a..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ ============LICENSE_START=======================================================
-  ~ ONAP : ccsdk features
-  ~ ================================================================================
-  ~ Copyright (C) 2020 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=======================================================
-  ~
-  -->
-
-<blueprint xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0"
-           xmlns="http://www.osgi.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.features.sdnr.northbound.oofpcipoc.OofpcipocClient">
-        <argument ref="svcLogicService"/>
-    </bean>
-
-    <reference id="dataBroker" interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"
-               odl:type="default"/>
-
-    <!-- Register the OofpcipocListener to receive yang notifications -->
-
-    <odl:notification-listener ref="listener"/>
-
-    <bean id="listener" class="org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.OofpcipocHandleNotif">
-        <argument ref="dataBroker"/>
-        <argument ref="client"/>
-    </bean>
-
-</blueprint>
index 90ae11a..33d4142 100644 (file)
@@ -30,7 +30,7 @@
         <argument ref="svcLogicService"/>
     </bean>
 
-    <reference id="dataBroker" interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"
+    <reference id="dataBroker" interface="org.opendaylight.mdsal.binding.api.DataBroker"
                odl:type="default"/>
 
     <!-- Register the OofpcipocListener to receive yang notifications -->
index 9c5eb74..1af7262 100644 (file)
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>2.1.0</version>
+        <version>2.1.1-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
 
     <name>ccsdk-features :: sdnr-northbound :: ${project.artifactId}</name>
 
-    <!--
-      <dependencyManagement>
-        <dependencies>
-          <dependency>
-            <groupId>org.opendaylight.mdsal.model</groupId>
-            <artifactId>mdsal-model-artifacts</artifactId>
-            <version>${odl.mdsal.model.version}</version>
-            <type>pom</type>
-            <scope>import</scope>
-          </dependency>
-          <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>mdsal-artifacts</artifactId>
-            <version>${odl.mdsal.version}</version>
-            <type>pom</type>
-            <scope>import</scope>
-          </dependency>
-        </dependencies>
-      </dependencyManagement>
-    -->
     <dependencies>
         <dependency>
             <groupId>${project.groupId}</groupId>
index af2ec0a..14bca54 100644 (file)
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.1.0</version>
+        <version>2.1.1-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
index 6c46b7f..ac9e6c3 100644 (file)
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.1.0</version>
+        <version>2.1.1-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
index c7de814..a0e1e62 100644 (file)
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.1.0</version>
+        <version>2.1.1-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
index bee1837..34892f2 100644 (file)
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.1.0</version>
+        <version>2.1.1-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
             <version>${project.version}</version>
         </dependency>
         <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-api</artifactId>
+            <groupId>org.opendaylight.mdsal</groupId>
+            <artifactId>mdsal-binding-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.mdsal</groupId>
+            <artifactId>mdsal-dom-api</artifactId>
         </dependency>
         <dependency>
             <groupId>org.onap.ccsdk.sli.core</groupId>
             <scope>provided</scope>
         </dependency>
         <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-test-model</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-broker-impl</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-broker-impl</artifactId>
-            <type>test-jar</type>
-            <classifier>tests</classifier>
+            <groupId>org.opendaylight.mdsal</groupId>
+            <artifactId>mdsal-binding-test-model</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
             <artifactId>testng</artifactId>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-common-util</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-core-api</artifactId>
-        </dependency>
         <dependency>
             <groupId>org.opendaylight.yangtools</groupId>
             <artifactId>yang-data-impl</artifactId>
index f0749fb..6bfa74e 100644 (file)
  * ============LICENSE_END=========================================================
  */
 
- package org.onap.ccsdk.features.sdnr.northbound.oofpcipoc;
+package org.onap.ccsdk.features.sdnr.northbound.oofpcipoc;
 
 import java.util.Properties;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
 import org.onap.ccsdk.sli.core.sli.provider.MdsalHelper;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
-import org.opendaylight.controller.sal.binding.api.NotificationProviderService;
-import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.RpcRegistration;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.binding.api.NotificationPublishService;
+import org.opendaylight.mdsal.binding.api.RpcProviderService;
 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev190308.*;
-
-import com.google.common.base.Preconditions;
+import org.opendaylight.yangtools.concepts.ObjectRegistration;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Preconditions;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
 
 /**
- * Defines a base implementation for your provider. This class extends from a helper class
- * which provides storage for the most commonly used components of the MD-SAL. Additionally the
- * base class provides some basic logging and initialization / clean up methods.
+ * Defines a base implementation for your provider. This class extends from a
+ * helper class which provides storage for the most commonly used components of
+ * the MD-SAL. Additionally the base class provides some basic logging and
+ * initialization / clean up methods.
  *
  */
 public class OofpcipocProvider implements AutoCloseable, OofpcipocApiService {
 
-    private static final Logger LOG = LoggerFactory.getLogger(OofpcipocProvider.class);
+       private static final Logger LOG = LoggerFactory.getLogger(OofpcipocProvider.class);
+
+       private static final String APPLICATION_NAME = "oofpcipoc-api";
 
-    private static final String APPLICATION_NAME = "oofpcipoc-api";
+       private final ExecutorService executor;
 
-    private final ExecutorService executor;
+       private DataBroker dataBroker;
+       private NotificationPublishService notificationService;
+       private RpcProviderService rpcProviderService;
+       private ObjectRegistration<OofpcipocProvider> rpcRegistration;
+       private OofpcipocClient OofpcipocClient;
 
-    protected DataBroker dataBroker;
-    protected NotificationPublishService notificationService;
-    protected RpcProviderRegistry rpcRegistry;
-    protected BindingAwareBroker.RpcRegistration<OofpcipocApiService> rpcRegistration;
-    private final OofpcipocClient OofpcipocClient;
+       public OofpcipocProvider() {
 
+               LOG.info("Creating provider for {}", APPLICATION_NAME);
+               executor = Executors.newFixedThreadPool(1);
+               this.dataBroker = null;
+               this.notificationService = null;
+               this.rpcProviderService = null;
+               this.OofpcipocClient = null;
+       }
+
+       public void setDataBroker(DataBroker dataBroker) {
+               this.dataBroker = dataBroker;
+       }
 
-    public OofpcipocProvider(final DataBroker dataBroker,
-                                                         final NotificationPublishService notificationPublishService,
-                                                         final RpcProviderRegistry rpcProviderRegistry,
-                                                         final OofpcipocClient OofpcipocClient) {
+       public void setRpcProviderService(RpcProviderService rpcProviderRegistry) {
+               this.rpcProviderService = rpcProviderRegistry;
+       }
 
-        this.LOG.info( "Creating provider for {}", APPLICATION_NAME);
-        executor = Executors.newFixedThreadPool(1);
-               this.dataBroker = dataBroker;
-               this.notificationService = notificationPublishService;
-               this.rpcRegistry = rpcProviderRegistry;
-               this.OofpcipocClient = OofpcipocClient;
-               initialize();
-    }
+       public void setNotificationPublishService(NotificationPublishService notificationPublishService) {
+               this.notificationService = notificationPublishService;
+       }
 
-    public void initialize(){
-        LOG.info( "Initializing provider for {}", APPLICATION_NAME);
-        rpcRegistration = rpcRegistry.addRpcImplementation(OofpcipocApiService.class, this);
-        LOG.info( "Initialization complete for {}", APPLICATION_NAME);
-    }
+       public void setClient(OofpcipocClient client) {
+               this.OofpcipocClient = client;
+       }
 
-    protected void initializeChild() {
-        //Override if you have custom initialization intelligence
-    }
+       public void init() {
+               LOG.info("Initializing provider for {}", APPLICATION_NAME);
+               rpcRegistration = rpcProviderService.registerRpcImplementation(OofpcipocApiService.class, this);
+               LOG.info("Initialization complete for {}", APPLICATION_NAME);
+       }
 
-    @Override
-    public void close() throws Exception {
-        LOG.info( "Closing provider for {}", APPLICATION_NAME);
-           executor.shutdown();
-           rpcRegistration.close();
-        LOG.info( "Successfully closed provider for {}", APPLICATION_NAME);
-    }
+       @Override
+       public void close() throws Exception {
+               LOG.info("Closing provider for {}", APPLICATION_NAME);
+               executor.shutdown();
+               if (rpcRegistration != null)
+                       rpcRegistration.close();
+               LOG.info("Successfully closed provider for {}", APPLICATION_NAME);
+       }
 
        @Override
-       public ListenableFuture<RpcResult<GreetingOutput>> greeting(
-                       GreetingInput input) {
+       public ListenableFuture<RpcResult<GreetingOutput>> greeting(GreetingInput input) {
                final String svcOperation = "greeting";
 
                Properties parms = new Properties();
                GreetingOutputBuilder serviceDataBuilder = new GreetingOutputBuilder();
 
-    LOG.info( "Reached RPC greeting");
+               LOG.info("Reached RPC greeting");
 
-               LOG.info( svcOperation +" called." );
+               LOG.info(svcOperation + " called.");
 
-               if(input == null ) {
-                       LOG.debug("exiting " +svcOperation+ " because of invalid input");
+               if (input == null) {
+                       LOG.debug("exiting " + svcOperation + " because of invalid input");
                        serviceDataBuilder.setResponse("Input is null");
-                       RpcResult<GreetingOutput> rpcResult =
-                               RpcResultBuilder.<GreetingOutput> status(true).withResult(serviceDataBuilder.build()).build();
+                       RpcResult<GreetingOutput> rpcResult = RpcResultBuilder.<GreetingOutput>status(true)
+                                       .withResult(serviceDataBuilder.build()).build();
                        return Futures.immediateFuture(rpcResult);
                }
 
                // add input to parms
-               LOG.info("Adding INPUT data for "+svcOperation+" input: " + input);
+               LOG.info("Adding INPUT data for " + svcOperation + " input: " + input);
                GreetingInputBuilder inputBuilder = new GreetingInputBuilder(input);
                MdsalHelper.toProperties(parms, inputBuilder.build());
 
                // Call SLI sync method
-               try
-               {
-                       if (OofpcipocClient.hasGraph("oofpcipoc-api", svcOperation , null, "sync"))
-                       {
-        LOG.info( "OofpcipocClient has a Directed Graph for '" + svcOperation + "'");
-                               try
-                               {
-          OofpcipocClient.execute("oofpcipoc-api", svcOperation, null, "sync", serviceDataBuilder, parms);
-                               }
-                               catch (Exception e)
-                               {
-                                       LOG.error("Caught exception executing service logic for "+ svcOperation, e);
+               try {
+                       if (OofpcipocClient.hasGraph("oofpcipoc-api", svcOperation, null, "sync")) {
+                               LOG.info("OofpcipocClient has a Directed Graph for '" + svcOperation + "'");
+                               try {
+                                       OofpcipocClient.execute("oofpcipoc-api", svcOperation, null, "sync", serviceDataBuilder, parms);
+                               } catch (Exception e) {
+                                       LOG.error("Caught exception executing service logic for " + svcOperation, e);
                                        serviceDataBuilder.setResponse("500");
                                }
                        } else {
                                LOG.error("No service logic active for Oofpcipoc: '" + svcOperation + "'");
                                serviceDataBuilder.setResponse("503");
                        }
-               }
-               catch (Exception e)
-               {
+               } catch (Exception e) {
                        LOG.error("Caught exception looking for service logic", e);
                        serviceDataBuilder.setResponse("500");
                }
@@ -151,22 +147,22 @@ public class OofpcipocProvider implements AutoCloseable, OofpcipocApiService {
                String errorCode = serviceDataBuilder.getResponse();
 
                if (!("0".equals(errorCode) || "200".equals(errorCode))) {
-                       LOG.error("Returned FAILED for "+svcOperation+" error code: '" + errorCode + "'");
+                       LOG.error("Returned FAILED for " + svcOperation + " error code: '" + errorCode + "'");
                } else {
-                       LOG.info("Returned SUCCESS for "+svcOperation+" ");
-      serviceDataBuilder.setResponse("Welcome OOF POC " + input.getSalutation());
+                       LOG.info("Returned SUCCESS for " + svcOperation + " ");
+                       serviceDataBuilder.setResponse("Welcome OOF POC " + input.getSalutation());
                }
 
-               RpcResult<GreetingOutput> rpcResult =
-                               RpcResultBuilder.<GreetingOutput> status(true).withResult(serviceDataBuilder.build()).build();
+               RpcResult<GreetingOutput> rpcResult = RpcResultBuilder.<GreetingOutput>status(true)
+                               .withResult(serviceDataBuilder.build()).build();
 
-    LOG.info("Successful exit from greeting ");
+               LOG.info("Successful exit from greeting ");
 
                return Futures.immediateFuture(rpcResult);
        }
 
 // RPC configuration-phy-cell-id
-  @Override
+       @Override
        public ListenableFuture<RpcResult<ConfigurationPhyCellIdOutput>> configurationPhyCellId(
                        ConfigurationPhyCellIdInput input) {
                final String svcOperation = "configuration-phy-cell-id";
@@ -174,47 +170,164 @@ public class OofpcipocProvider implements AutoCloseable, OofpcipocApiService {
                Properties parms = new Properties();
                ConfigurationPhyCellIdOutputBuilder serviceDataBuilder = new ConfigurationPhyCellIdOutputBuilder();
 
-    LOG.info( "Reached RPC configurationPhyCellId");
+               LOG.info("Reached RPC configurationPhyCellId");
 
-               LOG.info( svcOperation +" called." );
+               LOG.info(svcOperation + " called.");
 
-               if(input == null ) {
-                       LOG.debug("exiting " +svcOperation+ " because of invalid input");
+               if (input == null) {
+                       LOG.debug("exiting " + svcOperation + " because of invalid input");
                        serviceDataBuilder.setResponseCode("Input is null");
-                       RpcResult<ConfigurationPhyCellIdOutput> rpcResult =
-                               RpcResultBuilder.<ConfigurationPhyCellIdOutput> status(true).withResult(serviceDataBuilder.build()).build();
+                       RpcResult<ConfigurationPhyCellIdOutput> rpcResult = RpcResultBuilder
+                                       .<ConfigurationPhyCellIdOutput>status(true).withResult(serviceDataBuilder.build()).build();
                        return Futures.immediateFuture(rpcResult);
                }
 
                // add input to parms
-               LOG.info("Adding INPUT data for "+svcOperation+" input: " + input);
+               LOG.info("Adding INPUT data for " + svcOperation + " input: " + input);
                ConfigurationPhyCellIdInputBuilder inputBuilder = new ConfigurationPhyCellIdInputBuilder(input);
                MdsalHelper.toProperties(parms, inputBuilder.build());
 
                // Call SLI sync method
-               try
-               {
+               try {
 
-                       if (OofpcipocClient.hasGraph("oofpcipoc-api", svcOperation , null, "sync"))
-                       {
-        LOG.info( "OofpcipocClient has a Directed Graph for '" + svcOperation + "'");
+                       if (OofpcipocClient.hasGraph("oofpcipoc-api", svcOperation, null, "sync")) {
+                               LOG.info("OofpcipocClient has a Directed Graph for '" + svcOperation + "'");
 
-                               try
-                               {
+                               try {
                                        OofpcipocClient.execute("oofpcipoc-api", svcOperation, null, "sync", serviceDataBuilder, parms);
+                               } catch (Exception e) {
+                                       LOG.error("Caught exception executing service logic for " + svcOperation, e);
+                                       serviceDataBuilder.setResponseCode("500");
                                }
-                               catch (Exception e)
-                               {
-                                       LOG.error("Caught exception executing service logic for "+ svcOperation, e);
+                       } else {
+                               LOG.error("No service logic active for Oofpcipoc: '" + svcOperation + "'");
+                               serviceDataBuilder.setResponseCode("503");
+                       }
+               } catch (Exception e) {
+                       LOG.error("Caught exception looking for service logic", e);
+                       serviceDataBuilder.setResponseCode("500");
+               }
+
+               String errorCode = serviceDataBuilder.getResponseCode();
+
+               if (!("0".equals(errorCode) || "200".equals(errorCode))) {
+                       LOG.error("Returned FAILED for " + svcOperation + " error code: '" + errorCode + "'");
+               } else {
+                       LOG.info("Returned SUCCESS for " + svcOperation + " ");
+                       serviceDataBuilder
+                                       .setResponseCode("Welcome OOF POC. Number of FAP entries " + input.getFapServiceNumberOfEntries());
+               }
+
+               RpcResult<ConfigurationPhyCellIdOutput> rpcResult = RpcResultBuilder.<ConfigurationPhyCellIdOutput>status(true)
+                               .withResult(serviceDataBuilder.build()).build();
+
+               return Futures.immediateFuture(rpcResult);
+       }
+
+       // RPC add-neighbor
+       @Override
+       public ListenableFuture<RpcResult<AddNeighborOutput>> addNeighbor(AddNeighborInput input) {
+               final String svcOperation = "add-neighbor";
+
+               Properties parms = new Properties();
+               AddNeighborOutputBuilder serviceDataBuilder = new AddNeighborOutputBuilder();
+
+               LOG.info("Reached RPC addNeighbor");
+
+               LOG.info(svcOperation + " called.");
+
+               if (input == null) {
+                       LOG.debug("exiting " + svcOperation + " because of invalid input");
+                       serviceDataBuilder.setResponseCode("Input is null");
+                       RpcResult<AddNeighborOutput> rpcResult = RpcResultBuilder.<AddNeighborOutput>status(true)
+                                       .withResult(serviceDataBuilder.build()).build();
+                       return Futures.immediateFuture(rpcResult);
+               }
+
+               // add input to parms
+               LOG.info("Adding INPUT data for " + svcOperation + " input: " + input);
+               AddNeighborInputBuilder inputBuilder = new AddNeighborInputBuilder(input);
+               MdsalHelper.toProperties(parms, inputBuilder.build());
+
+               // Call SLI sync method
+               try {
+
+                       if (OofpcipocClient.hasGraph("oofpcipoc-api", svcOperation, null, "sync")) {
+                               LOG.info("OofpcipocClient has a Directed Graph for '" + svcOperation + "'");
+
+                               try {
+                                       OofpcipocClient.execute("oofpcipoc-api", svcOperation, null, "sync", serviceDataBuilder, parms);
+                               } catch (Exception e) {
+                                       LOG.error("Caught exception executing service logic for " + svcOperation, e);
                                        serviceDataBuilder.setResponseCode("500");
                                }
                        } else {
                                LOG.error("No service logic active for Oofpcipoc: '" + svcOperation + "'");
                                serviceDataBuilder.setResponseCode("503");
                        }
+               } catch (Exception e) {
+                       LOG.error("Caught exception looking for service logic", e);
+                       serviceDataBuilder.setResponseCode("500");
+               }
+
+               String errorCode = serviceDataBuilder.getResponseCode();
+
+               if (!("0".equals(errorCode) || "200".equals(errorCode))) {
+                       LOG.error("Returned FAILED for " + svcOperation + " error code: '" + errorCode + "'");
+               } else {
+                       LOG.info("Returned SUCCESS for " + svcOperation + " ");
+                       serviceDataBuilder.setResponseCode(
+                                       "Welcome OOF POC. Number of Neighbor entries to be added " + input.getLteCellNumberOfEntries());
+               }
+
+               RpcResult<AddNeighborOutput> rpcResult = RpcResultBuilder.<AddNeighborOutput>status(true)
+                               .withResult(serviceDataBuilder.build()).build();
+
+               return Futures.immediateFuture(rpcResult);
+       }
+
+       // RPC delete-neighbor
+       @Override
+       public ListenableFuture<RpcResult<DeleteNeighborOutput>> deleteNeighbor(DeleteNeighborInput input) {
+               final String svcOperation = "delete-neighbor";
+
+               Properties parms = new Properties();
+               DeleteNeighborOutputBuilder serviceDataBuilder = new DeleteNeighborOutputBuilder();
+
+               LOG.info("Reached RPC deleteNeighbor");
+
+               LOG.info(svcOperation + " called.");
+
+               if (input == null) {
+                       LOG.debug("exiting " + svcOperation + " because of invalid input");
+                       serviceDataBuilder.setResponseCode("Input is null");
+                       RpcResult<DeleteNeighborOutput> rpcResult = RpcResultBuilder.<DeleteNeighborOutput>status(true)
+                                       .withResult(serviceDataBuilder.build()).build();
+                       return Futures.immediateFuture(rpcResult);
                }
-               catch (Exception e)
-               {
+
+               // add input to parms
+               LOG.info("Adding INPUT data for " + svcOperation + " input: " + input);
+               DeleteNeighborInputBuilder inputBuilder = new DeleteNeighborInputBuilder(input);
+               MdsalHelper.toProperties(parms, inputBuilder.build());
+
+               // Call SLI sync method
+               try {
+
+                       if (OofpcipocClient.hasGraph("oofpcipoc-api", svcOperation, null, "sync")) {
+                               LOG.info("OofpcipocClient has a Directed Graph for '" + svcOperation + "'");
+
+                               try {
+                                       OofpcipocClient.execute("oofpcipoc-api", svcOperation, null, "sync", serviceDataBuilder, parms);
+                               } catch (Exception e) {
+                                       LOG.error("Caught exception executing service logic for " + svcOperation, e);
+                                       serviceDataBuilder.setResponseCode("500");
+                               }
+                       } else {
+                               LOG.error("No service logic active for Oofpcipoc: '" + svcOperation + "'");
+                               serviceDataBuilder.setResponseCode("503");
+                       }
+               } catch (Exception e) {
                        LOG.error("Caught exception looking for service logic", e);
                        serviceDataBuilder.setResponseCode("500");
                }
@@ -222,292 +335,143 @@ public class OofpcipocProvider implements AutoCloseable, OofpcipocApiService {
                String errorCode = serviceDataBuilder.getResponseCode();
 
                if (!("0".equals(errorCode) || "200".equals(errorCode))) {
-                       LOG.error("Returned FAILED for "+svcOperation+" error code: '" + errorCode + "'");
+                       LOG.error("Returned FAILED for " + svcOperation + " error code: '" + errorCode + "'");
                } else {
-                       LOG.info("Returned SUCCESS for "+svcOperation+" ");
-      serviceDataBuilder.setResponseCode("Welcome OOF POC. Number of FAP entries " + input.getFapServiceNumberOfEntries());
+                       LOG.info("Returned SUCCESS for " + svcOperation + " ");
+                       serviceDataBuilder.setResponseCode(
+                                       "Welcome OOF POC. Number of Neighbor entries to be deleted " + input.getLteCellNumberOfEntries());
                }
 
-               RpcResult<ConfigurationPhyCellIdOutput> rpcResult =
-                               RpcResultBuilder.<ConfigurationPhyCellIdOutput> status(true).withResult(serviceDataBuilder.build()).build();
+               RpcResult<DeleteNeighborOutput> rpcResult = RpcResultBuilder.<DeleteNeighborOutput>status(true)
+                               .withResult(serviceDataBuilder.build()).build();
 
                return Futures.immediateFuture(rpcResult);
        }
 
-  // RPC add-neighbor
-    @Override
-       public ListenableFuture<RpcResult<AddNeighborOutput>> addNeighbor(
-                       AddNeighborInput input) {
-               final String svcOperation = "add-neighbor";
-
-               Properties parms = new Properties();
-               AddNeighborOutputBuilder serviceDataBuilder = new AddNeighborOutputBuilder();
-
-      LOG.info( "Reached RPC addNeighbor");
-
-               LOG.info( svcOperation +" called." );
-
-               if(input == null ) {
-                       LOG.debug("exiting " +svcOperation+ " because of invalid input");
-                       serviceDataBuilder.setResponseCode("Input is null");
-                       RpcResult<AddNeighborOutput> rpcResult =
-                               RpcResultBuilder.<AddNeighborOutput> status(true).withResult(serviceDataBuilder.build()).build();
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               // add input to parms
-               LOG.info("Adding INPUT data for "+svcOperation+" input: " + input);
-               AddNeighborInputBuilder inputBuilder = new AddNeighborInputBuilder(input);
-               MdsalHelper.toProperties(parms, inputBuilder.build());
-
-               // Call SLI sync method
-               try
-               {
-
-                       if (OofpcipocClient.hasGraph("oofpcipoc-api", svcOperation , null, "sync"))
-                       {
-          LOG.info( "OofpcipocClient has a Directed Graph for '" + svcOperation + "'");
-
-                               try
-                               {
-                                       OofpcipocClient.execute("oofpcipoc-api", svcOperation, null, "sync", serviceDataBuilder, parms);
-                               }
-                               catch (Exception e)
-                               {
-                                       LOG.error("Caught exception executing service logic for "+ svcOperation, e);
-                                       serviceDataBuilder.setResponseCode("500");
-                               }
-                       } else {
-                               LOG.error("No service logic active for Oofpcipoc: '" + svcOperation + "'");
-                               serviceDataBuilder.setResponseCode("503");
-                       }
-               }
-               catch (Exception e)
-               {
-                       LOG.error("Caught exception looking for service logic", e);
-                       serviceDataBuilder.setResponseCode("500");
-               }
-
-               String errorCode = serviceDataBuilder.getResponseCode();
-
-               if (!("0".equals(errorCode) || "200".equals(errorCode))) {
-                       LOG.error("Returned FAILED for "+svcOperation+" error code: '" + errorCode + "'");
-               } else {
-                       LOG.info("Returned SUCCESS for "+svcOperation+" ");
-        serviceDataBuilder.setResponseCode("Welcome OOF POC. Number of Neighbor entries to be added " + input.getLteCellNumberOfEntries());
-               }
-
-               RpcResult<AddNeighborOutput> rpcResult =
-                               RpcResultBuilder.<AddNeighborOutput> status(true).withResult(serviceDataBuilder.build()).build();
-
-               return Futures.immediateFuture(rpcResult);
-       }
-
-    // RPC delete-neighbor
-      @Override
-       public ListenableFuture<RpcResult<DeleteNeighborOutput>> deleteNeighbor(
-                       DeleteNeighborInput input) {
-               final String svcOperation = "delete-neighbor";
-
-               Properties parms = new Properties();
-               DeleteNeighborOutputBuilder serviceDataBuilder = new DeleteNeighborOutputBuilder();
-
-        LOG.info( "Reached RPC deleteNeighbor");
-
-               LOG.info( svcOperation +" called." );
-
-               if(input == null ) {
-                       LOG.debug("exiting " +svcOperation+ " because of invalid input");
-                       serviceDataBuilder.setResponseCode("Input is null");
-                       RpcResult<DeleteNeighborOutput> rpcResult =
-                               RpcResultBuilder.<DeleteNeighborOutput> status(true).withResult(serviceDataBuilder.build()).build();
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               // add input to parms
-               LOG.info("Adding INPUT data for "+svcOperation+" input: " + input);
-               DeleteNeighborInputBuilder inputBuilder = new DeleteNeighborInputBuilder(input);
-               MdsalHelper.toProperties(parms, inputBuilder.build());
-
-               // Call SLI sync method
-               try
-               {
-
-                       if (OofpcipocClient.hasGraph("oofpcipoc-api", svcOperation , null, "sync"))
-                       {
-            LOG.info( "OofpcipocClient has a Directed Graph for '" + svcOperation + "'");
-
-                               try
-                               {
-                                       OofpcipocClient.execute("oofpcipoc-api", svcOperation, null, "sync", serviceDataBuilder, parms);
-                               }
-                               catch (Exception e)
-                               {
-                                       LOG.error("Caught exception executing service logic for "+ svcOperation, e);
-                                       serviceDataBuilder.setResponseCode("500");
-                               }
-                       } else {
-                               LOG.error("No service logic active for Oofpcipoc: '" + svcOperation + "'");
-                               serviceDataBuilder.setResponseCode("503");
-                       }
-               }
-               catch (Exception e)
-               {
-                       LOG.error("Caught exception looking for service logic", e);
-                       serviceDataBuilder.setResponseCode("500");
-               }
-
-               String errorCode = serviceDataBuilder.getResponseCode();
-
-               if (!("0".equals(errorCode) || "200".equals(errorCode))) {
-                       LOG.error("Returned FAILED for "+svcOperation+" error code: '" + errorCode + "'");
-               } else {
-                       LOG.info("Returned SUCCESS for "+svcOperation+" ");
-          serviceDataBuilder.setResponseCode("Welcome OOF POC. Number of Neighbor entries to be deleted " + input.getLteCellNumberOfEntries());
-               }
-
-               RpcResult<DeleteNeighborOutput> rpcResult =
-                               RpcResultBuilder.<DeleteNeighborOutput> status(true).withResult(serviceDataBuilder.build()).build();
-
-               return Futures.immediateFuture(rpcResult);
-       }
-
-      // RPC generic-neighbor-configuration
-        @Override
-       public ListenableFuture<RpcResult<GenericNeighborConfigurationOutput>> genericNeighborConfiguration(
-                       GenericNeighborConfigurationInput input) {
-               final String svcOperation = "generic-neighbor-configuration";
-
-               Properties parms = new Properties();
-               GenericNeighborConfigurationOutputBuilder serviceDataBuilder = new GenericNeighborConfigurationOutputBuilder();
-
-          LOG.info( "Reached RPC genericNeighborConfiguration");
-
-               LOG.info( svcOperation +" called." );
-
-               if(input == null ) {
-                       LOG.debug("exiting " +svcOperation+ " because of invalid input");
-                       serviceDataBuilder.setResponseCode("Input is null");
-                       RpcResult<GenericNeighborConfigurationOutput> rpcResult =
-                               RpcResultBuilder.<GenericNeighborConfigurationOutput> status(true).withResult(serviceDataBuilder.build()).build();
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               // add input to parms
-               LOG.info("Adding INPUT data for "+svcOperation+" input: " + input);
-               GenericNeighborConfigurationInputBuilder inputBuilder = new GenericNeighborConfigurationInputBuilder(input);
-               MdsalHelper.toProperties(parms, inputBuilder.build());
-
-               // Call SLI sync method
-               try
-               {
-
-                       if (OofpcipocClient.hasGraph("oofpcipoc-api", svcOperation , null, "sync"))
-                       {
-              LOG.info( "OofpcipocClient has a Directed Graph for '" + svcOperation + "'");
-
-                               try
-                               {
-                                       OofpcipocClient.execute("oofpcipoc-api", svcOperation, null, "sync", serviceDataBuilder, parms);
-                               }
-                               catch (Exception e)
-                               {
-                                       LOG.error("Caught exception executing service logic for "+ svcOperation, e);
-                                       serviceDataBuilder.setResponseCode("500");
-                               }
-                       } else {
-                               LOG.error("No service logic active for Oofpcipoc: '" + svcOperation + "'");
-                               serviceDataBuilder.setResponseCode("503");
-                       }
-               }
-               catch (Exception e)
-               {
-                       LOG.error("Caught exception looking for service logic", e);
-                       serviceDataBuilder.setResponseCode("500");
-               }
-
-               String errorCode = serviceDataBuilder.getResponseCode();
-
-               if (!("0".equals(errorCode) || "200".equals(errorCode))) {
-                       LOG.error("Returned FAILED for "+svcOperation+" error code: '" + errorCode + "'");
-               } else {
-                       LOG.info("Returned SUCCESS for "+svcOperation+" ");
-            serviceDataBuilder.setResponseCode("Welcome OOF POC. Number of Neighbor entries to be configured " + input.getLteCellNumberOfEntries());
-               }
-
-               RpcResult<GenericNeighborConfigurationOutput> rpcResult =
-                               RpcResultBuilder.<GenericNeighborConfigurationOutput> status(true).withResult(serviceDataBuilder.build()).build();
-
-               return Futures.immediateFuture(rpcResult);
-       }
-
-    // RPC handle-nbrlist-change-notif
-        @Override
-       public ListenableFuture<RpcResult<HandleNbrlistChangeNotifOutput>> handleNbrlistChangeNotif(
-                       HandleNbrlistChangeNotifInput input) {
-               final String svcOperation = "handle-nbrlist-change-notif";
-
-               Properties parms = new Properties();
-               HandleNbrlistChangeNotifOutputBuilder serviceDataBuilder = new HandleNbrlistChangeNotifOutputBuilder();
-
-          LOG.info( "Reached RPC handle-nbrlist-change-notif");
-
-               LOG.info( svcOperation +" called." );
-
-               if(input == null ) {
-                       LOG.debug("exiting " +svcOperation+ " because of invalid input");
-                       serviceDataBuilder.setResponseCode("Input is null");
-                       RpcResult<HandleNbrlistChangeNotifOutput> rpcResult =
-                               RpcResultBuilder.<HandleNbrlistChangeNotifOutput> status(true).withResult(serviceDataBuilder.build()).build();
-                       return Futures.immediateFuture(rpcResult);
-               }
-
-               // add input to parms
-               LOG.info("Adding INPUT data for "+svcOperation+" input: " + input);
-               HandleNbrlistChangeNotifInputBuilder inputBuilder = new HandleNbrlistChangeNotifInputBuilder(input);
-               MdsalHelper.toProperties(parms, inputBuilder.build());
-
-               // Call SLI sync method
-               try
-               {
-                       if (OofpcipocClient.hasGraph("oofpcipoc-api", svcOperation , null, "sync"))
-                       {
-              LOG.info( "OofpcipocClient has a Directed Graph for '" + svcOperation + "'");
-                               try
-                               {
-                OofpcipocClient.execute("oofpcipoc-api", svcOperation, null, "sync", serviceDataBuilder, parms);
-                               }
-                               catch (Exception e)
-                               {
-                                       LOG.error("Caught exception executing service logic for "+ svcOperation, e);
-                                       serviceDataBuilder.setResponseCode("500");
-                               }
-                       } else {
-                               LOG.error("No service logic active for Oofpcipoc: '" + svcOperation + "'");
-                               serviceDataBuilder.setResponseCode("503");
-                       }
-               }
-               catch (Exception e)
-               {
-                       LOG.error("Caught exception looking for service logic", e);
-                       serviceDataBuilder.setResponseCode("500");
-               }
-
-               String errorCode = serviceDataBuilder.getResponseCode();
-
-               if (!("0".equals(errorCode) || "200".equals(errorCode))) {
-                       LOG.error("Returned FAILED for "+svcOperation+" error code: '" + errorCode + "'");
-               } else {
-                       LOG.info("Returned SUCCESS for "+svcOperation+" ");
-            serviceDataBuilder.setResponseCode("Welcome OOF POC. Number of FAP services changed = " + input.getFapServiceNumberOfEntriesChanged());
-               }
-
-               RpcResult<HandleNbrlistChangeNotifOutput> rpcResult =
-                               RpcResultBuilder.<HandleNbrlistChangeNotifOutput> status(true).withResult(serviceDataBuilder.build()).build();
-
-          LOG.info("Successful exit from handle-nbrlist-change-notif ");
-
-               return Futures.immediateFuture(rpcResult);
-       }
+       // RPC generic-neighbor-configuration
+       @Override
+       public ListenableFuture<RpcResult<GenericNeighborConfigurationOutput>> genericNeighborConfiguration(
+                       GenericNeighborConfigurationInput input) {
+               final String svcOperation = "generic-neighbor-configuration";
+
+               Properties parms = new Properties();
+               GenericNeighborConfigurationOutputBuilder serviceDataBuilder = new GenericNeighborConfigurationOutputBuilder();
+
+               LOG.info("Reached RPC genericNeighborConfiguration");
+
+               LOG.info(svcOperation + " called.");
+
+               if (input == null) {
+                       LOG.debug("exiting " + svcOperation + " because of invalid input");
+                       serviceDataBuilder.setResponseCode("Input is null");
+                       RpcResult<GenericNeighborConfigurationOutput> rpcResult = RpcResultBuilder
+                                       .<GenericNeighborConfigurationOutput>status(true).withResult(serviceDataBuilder.build()).build();
+                       return Futures.immediateFuture(rpcResult);
+               }
+
+               // add input to parms
+               LOG.info("Adding INPUT data for " + svcOperation + " input: " + input);
+               GenericNeighborConfigurationInputBuilder inputBuilder = new GenericNeighborConfigurationInputBuilder(input);
+               MdsalHelper.toProperties(parms, inputBuilder.build());
+
+               // Call SLI sync method
+               try {
+
+                       if (OofpcipocClient.hasGraph("oofpcipoc-api", svcOperation, null, "sync")) {
+                               LOG.info("OofpcipocClient has a Directed Graph for '" + svcOperation + "'");
+
+                               try {
+                                       OofpcipocClient.execute("oofpcipoc-api", svcOperation, null, "sync", serviceDataBuilder, parms);
+                               } catch (Exception e) {
+                                       LOG.error("Caught exception executing service logic for " + svcOperation, e);
+                                       serviceDataBuilder.setResponseCode("500");
+                               }
+                       } else {
+                               LOG.error("No service logic active for Oofpcipoc: '" + svcOperation + "'");
+                               serviceDataBuilder.setResponseCode("503");
+                       }
+               } catch (Exception e) {
+                       LOG.error("Caught exception looking for service logic", e);
+                       serviceDataBuilder.setResponseCode("500");
+               }
+
+               String errorCode = serviceDataBuilder.getResponseCode();
+
+               if (!("0".equals(errorCode) || "200".equals(errorCode))) {
+                       LOG.error("Returned FAILED for " + svcOperation + " error code: '" + errorCode + "'");
+               } else {
+                       LOG.info("Returned SUCCESS for " + svcOperation + " ");
+                       serviceDataBuilder.setResponseCode("Welcome OOF POC. Number of Neighbor entries to be configured "
+                                       + input.getLteCellNumberOfEntries());
+               }
+
+               RpcResult<GenericNeighborConfigurationOutput> rpcResult = RpcResultBuilder
+                               .<GenericNeighborConfigurationOutput>status(true).withResult(serviceDataBuilder.build()).build();
+
+               return Futures.immediateFuture(rpcResult);
+       }
+
+       // RPC handle-nbrlist-change-notif
+       @Override
+       public ListenableFuture<RpcResult<HandleNbrlistChangeNotifOutput>> handleNbrlistChangeNotif(
+                       HandleNbrlistChangeNotifInput input) {
+               final String svcOperation = "handle-nbrlist-change-notif";
+
+               Properties parms = new Properties();
+               HandleNbrlistChangeNotifOutputBuilder serviceDataBuilder = new HandleNbrlistChangeNotifOutputBuilder();
+
+               LOG.info("Reached RPC handle-nbrlist-change-notif");
+
+               LOG.info(svcOperation + " called.");
+
+               if (input == null) {
+                       LOG.debug("exiting " + svcOperation + " because of invalid input");
+                       serviceDataBuilder.setResponseCode("Input is null");
+                       RpcResult<HandleNbrlistChangeNotifOutput> rpcResult = RpcResultBuilder
+                                       .<HandleNbrlistChangeNotifOutput>status(true).withResult(serviceDataBuilder.build()).build();
+                       return Futures.immediateFuture(rpcResult);
+               }
+
+               // add input to parms
+               LOG.info("Adding INPUT data for " + svcOperation + " input: " + input);
+               HandleNbrlistChangeNotifInputBuilder inputBuilder = new HandleNbrlistChangeNotifInputBuilder(input);
+               MdsalHelper.toProperties(parms, inputBuilder.build());
+
+               // Call SLI sync method
+               try {
+                       if (OofpcipocClient.hasGraph("oofpcipoc-api", svcOperation, null, "sync")) {
+                               LOG.info("OofpcipocClient has a Directed Graph for '" + svcOperation + "'");
+                               try {
+                                       OofpcipocClient.execute("oofpcipoc-api", svcOperation, null, "sync", serviceDataBuilder, parms);
+                               } catch (Exception e) {
+                                       LOG.error("Caught exception executing service logic for " + svcOperation, e);
+                                       serviceDataBuilder.setResponseCode("500");
+                               }
+                       } else {
+                               LOG.error("No service logic active for Oofpcipoc: '" + svcOperation + "'");
+                               serviceDataBuilder.setResponseCode("503");
+                       }
+               } catch (Exception e) {
+                       LOG.error("Caught exception looking for service logic", e);
+                       serviceDataBuilder.setResponseCode("500");
+               }
+
+               String errorCode = serviceDataBuilder.getResponseCode();
+
+               if (!("0".equals(errorCode) || "200".equals(errorCode))) {
+                       LOG.error("Returned FAILED for " + svcOperation + " error code: '" + errorCode + "'");
+               } else {
+                       LOG.info("Returned SUCCESS for " + svcOperation + " ");
+                       serviceDataBuilder.setResponseCode(
+                                       "Welcome OOF POC. Number of FAP services changed = " + input.getFapServiceNumberOfEntriesChanged());
+               }
+
+               RpcResult<HandleNbrlistChangeNotifOutput> rpcResult = RpcResultBuilder
+                               .<HandleNbrlistChangeNotifOutput>status(true).withResult(serviceDataBuilder.build()).build();
+
+               LOG.info("Successful exit from handle-nbrlist-change-notif ");
+
+               return Futures.immediateFuture(rpcResult);
+       }
 
 }
diff --git a/sdnr/northbound/oofpcipoc/provider/src/main/resources/OSGI-INF/blueprint/impl-blueprint.xml b/sdnr/northbound/oofpcipoc/provider/src/main/resources/OSGI-INF/blueprint/impl-blueprint.xml
deleted file mode 100644 (file)
index d62c2f7..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ ============LICENSE_START=======================================================
-  ~ ONAP : ccsdk features
-  ~ ================================================================================
-  ~ Copyright (C) 2020 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=======================================================
-  ~
-  -->
-
-<blueprint xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0"
-           xmlns="http://www.osgi.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.features.sdnr.northbound.oofpcipoc.OofpcipocClient">
-        <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.md.sal.binding.api.NotificationPublishService"
-               odl:type="default"/>
-
-    <reference id="rpcRegistry" interface="org.opendaylight.controller.sal.binding.api.RpcProviderRegistry"
-               odl:type="default"/>
-
-    <bean id="provider" class="org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.OofpcipocProvider">
-        <argument ref="dataBroker"/>
-        <argument ref="rpcRegistry"/>
-        <argument ref="notificationService"/>
-        <argument ref="client"/>
-    </bean>
-
-</blueprint>
index d62c2f7..a02e4a4 100644 (file)
@@ -1,50 +1,46 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ ============LICENSE_START=======================================================
-  ~ ONAP : ccsdk features
-  ~ ================================================================================
-  ~ Copyright (C) 2020 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=======================================================
-  ~
-  -->
-
-<blueprint xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0"
-           xmlns="http://www.osgi.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.features.sdnr.northbound.oofpcipoc.OofpcipocClient">
-        <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.md.sal.binding.api.NotificationPublishService"
-               odl:type="default"/>
-
-    <reference id="rpcRegistry" interface="org.opendaylight.controller.sal.binding.api.RpcProviderRegistry"
-               odl:type="default"/>
-
-    <bean id="provider" class="org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.OofpcipocProvider">
-        <argument ref="dataBroker"/>
-        <argument ref="rpcRegistry"/>
-        <argument ref="notificationService"/>
-        <argument ref="client"/>
-    </bean>
+<!-- ~ ============LICENSE_START======================================================= 
+       ~ ONAP : ccsdk features ~ ================================================================================ 
+       ~ Copyright (C) 2020 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======================================================= 
+       ~ -->
+
+<blueprint
+       xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0"
+       xmlns="http://www.osgi.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.features.sdnr.northbound.oofpcipoc.OofpcipocClient">
+               <argument ref="svcLogicService" />
+       </bean>
+
+       <reference id="dataBroker"
+               interface="org.opendaylight.mdsal.binding.api.DataBroker"/>
+
+       <reference id="rpcProviderService"
+               interface="org.opendaylight.mdsal.binding.api.RpcProviderService" />
+
+       <reference id="notificationPublishService"
+               interface="org.opendaylight.mdsal.binding.api.NotificationPublishService" />
+
+       <bean id="provider"
+               class="org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.OofpcipocProvider"
+               init-method="init" destroy-method="close">
+               <property name="dataBroker" ref="dataBroker" />
+               <property name="rpcProviderService" ref="rpcProviderService" />
+               <property name="notificationPublishService" ref="notificationPublishService" />
+               <property name="client" ref="client" />
+       </bean>
 
 </blueprint>
index daa210e..597c75c 100644 (file)
@@ -24,14 +24,6 @@ package org.onap.ccsdk.features.sdnr.northbound.oofpcipoc;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.OofpcipocClient;
-import org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.OofpcipocProvider;
-
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService;
-import org.opendaylight.controller.md.sal.binding.test.AbstractConcurrentDataBrokerTest;
-import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
-
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -41,15 +33,18 @@ import static org.mockito.Mockito.mock;
 
 import java.math.*;
 
-import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev190308.ConfigurationPhyCellIdInput;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.binding.api.NotificationPublishService;
+import org.opendaylight.mdsal.binding.api.RpcProviderService;
+
 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev190308.ConfigurationPhyCellIdInputBuilder;
 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev190308.ConfigurationPhyCellIdOutput;
-import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev190308.ConfigurationPhyCellIdOutputBuilder;
+
 import com.google.common.util.concurrent.ListenableFuture;
 
 
 
-public class TestOofpcipoc extends AbstractConcurrentDataBrokerTest {
+public class TestOofpcipoc {
 
     private OofpcipocProvider oofpcipocProvider;
     private static final Logger LOG = LoggerFactory.getLogger(OofpcipocProvider.class);
@@ -57,11 +52,15 @@ public class TestOofpcipoc extends AbstractConcurrentDataBrokerTest {
     @Before
     public void setUp() throws Exception {
         if (null == oofpcipocProvider) {
-            DataBroker dataBroker = getDataBroker();
+            DataBroker dataBroker = mock(DataBroker.class);
             NotificationPublishService mockNotification = mock(NotificationPublishService.class);
-            RpcProviderRegistry mockRpcRegistry = mock(RpcProviderRegistry.class);
+            RpcProviderService mockRpcRegistry = mock(RpcProviderService.class);
             OofpcipocClient mockSliClient = mock(OofpcipocClient.class);
-            oofpcipocProvider = new OofpcipocProvider(dataBroker, mockNotification, mockRpcRegistry, mockSliClient);
+            oofpcipocProvider = new OofpcipocProvider();
+            oofpcipocProvider.setDataBroker(dataBroker);
+            oofpcipocProvider.setNotificationPublishService(mockNotification);
+            oofpcipocProvider.setRpcProviderService(mockRpcRegistry);
+            oofpcipocProvider.setClient(mockSliClient);
         }
     }
 
index 071b5ca..fa94a96 100644 (file)
@@ -29,7 +29,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.1.0</version>
+        <version>2.1.1-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
index 4ee6e41..c390455 100644 (file)
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>2.1.0</version>
+        <version>2.1.1-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
index 1fe6d10..d84c7c5 100644 (file)
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.1.0</version>
+        <version>2.1.1-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
index 8de8531..924e4ee 100644 (file)
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.1.0</version>
+        <version>2.1.1-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
index 1507141..5c44356 100644 (file)
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>2.1.0</version>
+        <version>2.1.1-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
index 03563b9..a4e0680 100644 (file)
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.onap.ccsdk.parent</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>2.1.0</version>
+        <version>2.1.1-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
 
     <dependencyManagement>
         <dependencies>
-            <dependency>
-                <groupId>org.opendaylight.controller</groupId>
-                <artifactId>mdsal-artifacts</artifactId>
-                <version>1.6.1</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-            <dependency>
+             <dependency>
                 <groupId>org.onap.ccsdk.sli.core</groupId>
                 <artifactId>sli-core-artifacts</artifactId>
                 <version>${ccsdk.sli.core.version}</version>
             <artifactId>ranSlice-model</artifactId>
             <version>${project.version}</version>
         </dependency>
-        <!--
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>sal-binding-config</artifactId>
-        </dependency>
-        -->
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-common-util</artifactId>
-        </dependency>
         <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-core-api</artifactId>
+            <groupId>org.opendaylight.mdsal</groupId>
+            <artifactId>mdsal-binding-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-broker-impl</artifactId>
+            <groupId>org.opendaylight.mdsal</groupId>
+            <artifactId>mdsal-dom-api</artifactId>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.yangtools</groupId>
index f3d2a7d..0b1d8c5 100644 (file)
@@ -27,7 +27,7 @@ import java.util.Properties;
 
 import org.onap.ccsdk.sli.core.sli.SvcLogicException;
 import org.onap.ccsdk.sli.core.sli.provider.SvcLogicService;
-import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker;
+import org.opendaylight.mdsal.dom.api.DOMDataBroker;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
index a88595b..fbaab93 100644 (file)
@@ -27,17 +27,15 @@ import java.util.Date;
 import java.util.Properties;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
 import org.onap.ccsdk.sli.core.sli.provider.MdsalHelper;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService;
-import org.opendaylight.controller.md.sal.binding.impl.AbstractForwardedDataBroker;
-import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
-import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.binding.api.NotificationPublishService;
+import org.opendaylight.mdsal.binding.api.RpcProviderService;
+import org.opendaylight.mdsal.dom.api.DOMDataBroker;
 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev200806.*;
 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev200806.common.header.CommonHeaderBuilder;
 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev200806.status.StatusBuilder;
+import org.opendaylight.yangtools.concepts.ObjectRegistration;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
 import org.slf4j.Logger;
@@ -46,8 +44,6 @@ import org.slf4j.LoggerFactory;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
 
-import org.onap.ccsdk.features.sdnr.northbound.ranSlice.RANSliceResponseCode.*;
-
 /**
  * Defines a base implementation for your provider. This class extends from a
  * helper class which provides storage for the most commonly used components of
@@ -97,43 +93,56 @@ public class RANSliceProvider implements AutoCloseable, RanSliceApiService {
        protected DataBroker dataBroker;
        protected DOMDataBroker domDataBroker;
        protected NotificationPublishService notificationService;
-       protected RpcProviderRegistry rpcRegistry;
-       private final RANSliceClient RANSliceClient;
+       protected RpcProviderService rpcProviderRegistry;
+       private  RANSliceClient RANSliceClient;
 
-       protected BindingAwareBroker.RpcRegistration<RanSliceApiService> rpcRegistration;
+       private ObjectRegistration<RanSliceApiService> rpcRegistration;
 
-       public RANSliceProvider(final DataBroker dataBroker, final NotificationPublishService notificationPublishService,
-                       final RpcProviderRegistry rpcProviderRegistry, final RANSliceClient rANSliceClient) {
+       public RANSliceProvider() {
 
                LOG.info("Creating provider for {}", APPLICATION_NAME);
                executor = Executors.newFixedThreadPool(1);
+               this.dataBroker = null;
+               this.domDataBroker = null;
+               this.notificationService = null;
+               this.rpcProviderRegistry = null;
+               this.rpcRegistration = null;
+               this.RANSliceClient = null;
+       }
+
+       public void setDataBroker(DataBroker dataBroker) {
                this.dataBroker = dataBroker;
-               if (dataBroker instanceof AbstractForwardedDataBroker) {
-                       domDataBroker = ((AbstractForwardedDataBroker) dataBroker).getDelegate();
-               }
-               notificationService = notificationPublishService;
-               rpcRegistry = rpcProviderRegistry;
-               this.RANSliceClient = rANSliceClient;
-               initialize();
        }
 
-       public void initialize() {
-               LOG.info("Initializing {} for {}", this.getClass().getName(), APPLICATION_NAME);
+       public void setDomDataBroker(DOMDataBroker domDataBroker) {
+               this.domDataBroker = domDataBroker;
+       }
+       
+       public void setRpcProviderRegistry(RpcProviderService rpcProviderRegistry) {
+               this.rpcProviderRegistry = rpcProviderRegistry;
+       }
 
+       public void setNotificationPublishService(NotificationPublishService notificationPublishService) {
+               this.notificationService = notificationPublishService;
+       }
+
+       public void setClient(RANSliceClient client) {
+               this.RANSliceClient = client;
+       }
+       
+       public void init() {
+               LOG.info("Initializing {} for {}", this.getClass().getName(), APPLICATION_NAME);
+               
                if (rpcRegistration == null) {
-                       if (rpcRegistry != null) {
-                               rpcRegistration = rpcRegistry.addRpcImplementation(RanSliceApiService.class, this);
+                       if (rpcProviderRegistry != null) {
+                               rpcRegistration = rpcProviderRegistry.registerRpcImplementation(RanSliceApiService.class, this);
                                LOG.info("Initialization complete for {}", APPLICATION_NAME);
                        } else {
                                LOG.warn("Error initializing {} : rpcRegistry unset", APPLICATION_NAME);
                        }
                }
        }
-
-       protected void initializeChild() {
-               // Override if you have custom initialization intelligence
-       }
-
+       
        @Override
        public void close() throws Exception {
                LOG.info("Closing provider for " + APPLICATION_NAME);
index 814b27e..77c09d1 100644 (file)
@@ -1,3 +1,24 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * openECOMP : SDN-C
+ * ================================================================================
+ * Copyright (C) 2020 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.onap.ccsdk.features.sdnr.northbound.ranSlice;
 
 public enum RANSliceResponseCode {
index 18b6631..3e6fcb4 100644 (file)
@@ -1,3 +1,24 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * openECOMP : SDN-C
+ * ================================================================================
+ * Copyright (C) 2020 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.onap.ccsdk.features.sdnr.northbound.ranSlice;
 
 import org.onap.ccsdk.sli.core.sli.SvcLogicException;
diff --git a/sdnr/northbound/ranSlice/provider/src/main/resources/OSGI-INF/blueprint/impl-blueprint.xml b/sdnr/northbound/ranSlice/provider/src/main/resources/OSGI-INF/blueprint/impl-blueprint.xml
deleted file mode 100644 (file)
index 57ebfbf..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ ============LICENSE_START=======================================================
-  ~ ONAP : ccsdk features
-  ~ ================================================================================
-  ~ Copyright (C) 2020 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=======================================================
-  ~
-  -->
-
-<blueprint xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0"
-           xmlns="http://www.osgi.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.features.sdnr.northbound.ranSlice.RANSliceClient">
-        <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.md.sal.binding.api.NotificationPublishService"
-               odl:type="default"/>
-
-    <reference id="rpcRegistry" interface="org.opendaylight.controller.sal.binding.api.RpcProviderRegistry"
-               odl:type="default"/>
-
-    <bean id="provider" class="org.onap.ccsdk.features.sdnr.northbound.ranSlice.RANSliceProvider">
-        <argument ref="dataBroker"/>
-        <argument ref="rpcRegistry"/>
-        <argument ref="notificationService"/>
-        <argument ref="client"/>
-    </bean>
-
-    <odl:rpc-implementation ref="provider"/>
-
-</blueprint>
index 57ebfbf..896c057 100644 (file)
         <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.md.sal.binding.api.NotificationPublishService"
-               odl:type="default"/>
-
-    <reference id="rpcRegistry" interface="org.opendaylight.controller.sal.binding.api.RpcProviderRegistry"
-               odl:type="default"/>
-
-    <bean id="provider" class="org.onap.ccsdk.features.sdnr.northbound.ranSlice.RANSliceProvider">
-        <argument ref="dataBroker"/>
-        <argument ref="rpcRegistry"/>
-        <argument ref="notificationService"/>
-        <argument ref="client"/>
+    <reference id="dataBroker"
+               interface="org.opendaylight.mdsal.binding.api.DataBroker"/>
+               
+    <reference id="domDataBroker"
+               interface="org.opendaylight.mdsal.dom.api.DOMDataBroker"/>
+               
+    <reference id="notificationPublishService"
+               interface="org.opendaylight.mdsal.binding.api.NotificationPublishService" />
+
+    <reference id="rpcProviderRegistry"
+               interface="org.opendaylight.mdsal.binding.api.RpcProviderService" />
+
+    <bean id="provider" class="org.onap.ccsdk.features.sdnr.northbound.ranSlice.RANSliceProvider"
+       init-method="init" destroy-method="close">
+        <property name="dataBroker"  ref="dataBroker"/>
+        <property name="domDataBroker" ref="domDataBroker"/>
+        <property name="rpcProviderRegistry" ref="rpcProviderRegistry"/>
+        <property name="notificationPublishService" ref="notificationPublishService"/>
+        <property name="client" ref="client"/>
     </bean>
 
     <odl:rpc-implementation ref="provider"/>
index f1e1524..4bd3e50 100644 (file)
@@ -42,13 +42,17 @@ import org.onap.ccsdk.sli.core.sli.SvcLogicStoreFactory;
 import org.onap.ccsdk.sli.core.sli.provider.SvcLogicClassResolver;
 import org.onap.ccsdk.sli.core.sli.provider.SvcLogicPropertiesProviderImpl;
 import org.onap.ccsdk.sli.core.sli.provider.SvcLogicServiceImpl;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.binding.api.NotificationPublishService;
+import org.opendaylight.mdsal.binding.api.RpcProviderService;
+import org.opendaylight.mdsal.dom.api.DOMDataBroker;
+/*import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService;
 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
 import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
-import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev200806.*;
+*/import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev200806.*;
 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev200806.common.header.CommonHeaderBuilder;
-
+import org.opendaylight.yangtools.concepts.ObjectRegistration;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -63,10 +67,12 @@ public class RANSliceProviderTest {
       @Before
       public void setUp() throws Exception {
           DataBroker dataBroker = mock(DataBroker.class);
+          DOMDataBroker domDataBroker = mock(DOMDataBroker.class);
           NotificationPublishService notifyService = mock(NotificationPublishService.class);
-          RpcProviderRegistry rpcRegistry = mock(RpcProviderRegistry.class);
-          BindingAwareBroker.RpcRegistration<RanSliceApiService> rpcRegistration = (BindingAwareBroker.RpcRegistration<RanSliceApiService>) mock(BindingAwareBroker.RpcRegistration.class);
-          when(rpcRegistry.addRpcImplementation(any(Class.class), any(RanSliceApiService.class))).thenReturn(rpcRegistration);
+          //RpcProviderRegistry rpcRegistry = mock(RpcProviderRegistry.class);
+          RpcProviderService rpcRegistry = mock(RpcProviderService.class);
+          ObjectRegistration<RanSliceApiService> rpcRegistration = mock(ObjectRegistration.class);
+          when(rpcRegistry.registerRpcImplementation(any(Class.class), any(RanSliceApiService.class))).thenReturn(rpcRegistration);
 
 
           // Load svclogic.properties and get a SvcLogicStore
@@ -95,7 +101,14 @@ public class RANSliceProviderTest {
 
           // Finally ready to create sliapiProvider
           RANSliceClient client = new RANSliceClient(svc);
-          provider = new RANSliceProvider(dataBroker, notifyService, rpcRegistry, client);
+                       provider = new RANSliceProvider();
+                       provider.setDataBroker(dataBroker);
+                       provider.setDomDataBroker(domDataBroker);
+                       provider.setNotificationPublishService(notifyService);
+                       provider.setClient(client);
+                       provider.init();
+                       
+
       }
 
       /**
@@ -103,7 +116,7 @@ public class RANSliceProviderTest {
        */
       @After
       public void tearDown() throws Exception {
-          provider.close();
+          //provider.close();
       }
 
 
@@ -124,7 +137,7 @@ public class RANSliceProviderTest {
                try {
                        ConfigureNearRTRICOutput results = provider.configureNearRTRIC(builder.build()).get().getResult();
                        LOG.info("configureNearRTRIC returned status {} : {}", results.getStatus().getCode(), results.getStatus().getMessage());
-                       assert(results.getStatus().getCode() == 400);
+                       assert(results.getStatus().getCode().intValue() == 400);
                } catch (InterruptedException | ExecutionException e) {
                        LOG.error("Caught exception", e);
                        fail("configureNearRTRIC threw exception");
@@ -150,7 +163,7 @@ public class RANSliceProviderTest {
                try {
                        InstantiateRANSliceOutput results = provider.instantiateRANSlice(builder.build()).get().getResult();
                        LOG.info("instantiateRANSlice returned status {} : {}", results.getStatus().getCode(), results.getStatus().getMessage());
-                       assert(results.getStatus().getCode() == 400);
+                       assert(results.getStatus().getCode().intValue() == 400);
                } catch (InterruptedException | ExecutionException e) {
                        LOG.error("Caught exception", e);
                        fail("instantiateRANSlice threw exception");
@@ -176,7 +189,7 @@ public class RANSliceProviderTest {
                try {
                        ConfigureRANSliceInstanceOutput results = provider.configureRANSliceInstance(builder.build()).get().getResult();
                        LOG.info("configureRANSliceInstance returned status {} : {}", results.getStatus().getCode(), results.getStatus().getMessage());
-                       assert(results.getStatus().getCode() == 400);
+                       assert(results.getStatus().getCode().intValue() == 400);
                } catch (InterruptedException | ExecutionException e) {
                        LOG.error("Caught exception", e);
                        fail("configureRANSliceInstance threw exception");
@@ -201,7 +214,7 @@ public class RANSliceProviderTest {
                try {
                        ConfigureCUOutput results = provider.configureCU(builder.build()).get().getResult();
                        LOG.info("configureCU returned status {} : {}", results.getStatus().getCode(), results.getStatus().getMessage());
-                       assert(results.getStatus().getCode() == 400);
+                       assert(results.getStatus().getCode().intValue() == 400);
                } catch (InterruptedException | ExecutionException e) {
                        LOG.error("Caught exception", e);
                        fail("configureCU threw exception");
@@ -227,7 +240,7 @@ public class RANSliceProviderTest {
                try {
                        ConfigureDUOutput results = provider.configureDU(builder.build()).get().getResult();
                        LOG.info("configureDU returned status {} : {}", results.getStatus().getCode(), results.getStatus().getMessage());
-                       assert(results.getStatus().getCode() == 400);
+                       assert(results.getStatus().getCode().intValue() == 400);
                } catch (InterruptedException | ExecutionException e) {
                        LOG.error("Caught exception", e);
                        fail("configureDU threw exception");
@@ -252,7 +265,7 @@ public class RANSliceProviderTest {
                try {
                        ActivateRANSliceInstanceOutput results = provider.activateRANSliceInstance(builder.build()).get().getResult();
                        LOG.info("activateRANSliceInstance returned status {} : {}", results.getStatus().getCode(), results.getStatus().getMessage());
-                       assert(results.getStatus().getCode() == 400);
+                       assert(results.getStatus().getCode().intValue() == 400);
                } catch (InterruptedException | ExecutionException e) {
                        LOG.error("Caught exception", e);
                        fail("activateRANSliceInstance threw exception");
@@ -278,7 +291,7 @@ public class RANSliceProviderTest {
                try {
                        DeactivateRANSliceInstanceOutput results = provider.deactivateRANSliceInstance(builder.build()).get().getResult();
                        LOG.info("deactivateRANSliceInstance returned status {} : {}", results.getStatus().getCode(), results.getStatus().getMessage());
-                       assert(results.getStatus().getCode() == 400);
+                       assert(results.getStatus().getCode().intValue() == 400);
                } catch (InterruptedException | ExecutionException e) {
                        LOG.error("Caught exception", e);
                        fail("deactivateRANSliceInstance threw exception");
@@ -303,7 +316,7 @@ public class RANSliceProviderTest {
                try {
                        TerminateRANSliceInstanceOutput results = provider.terminateRANSliceInstance(builder.build()).get().getResult();
                        LOG.info("terminateRANSliceInstance returned status {} : {}", results.getStatus().getCode(), results.getStatus().getMessage());
-                       assert(results.getStatus().getCode() == 400);
+                       assert(results.getStatus().getCode().intValue() == 400);
                } catch (InterruptedException | ExecutionException e) {
                        LOG.error("Caught exception", e);
                        fail("terminateRANSliceInstance threw exception");
@@ -328,7 +341,7 @@ public class RANSliceProviderTest {
                try {
                        DetermineRANSliceResourcesOutput results = provider.determineRANSliceResources(builder.build()).get().getResult();
                        LOG.info("determineRANSliceResources returned status {} : {}", results.getStatus().getCode(), results.getStatus().getMessage());
-                       assert(results.getStatus().getCode() == 400);
+                       assert(results.getStatus().getCode().intValue() == 400);
                } catch (InterruptedException | ExecutionException e) {
                        LOG.error("Caught exception", e);
                        fail("determineRANSliceResources threw exception");
@@ -354,7 +367,7 @@ public class RANSliceProviderTest {
                try {
                        ConfigNotificationOutput results = provider.configNotification(builder.build()).get().getResult();
                        LOG.info("configNotification returned status {} : {}", results.getStatus().getCode(), results.getStatus().getMessage());
-                       assert(results.getStatus().getCode() == 400);
+                       assert(results.getStatus().getCode().intValue() == 400);
                } catch (InterruptedException | ExecutionException e) {
                        LOG.error("Caught exception", e);
                        fail("configNotification threw exception");