summaryrefslogtreecommitdiffstats
path: root/northbound/dataChange/provider/src
diff options
context:
space:
mode:
Diffstat (limited to 'northbound/dataChange/provider/src')
-rw-r--r--northbound/dataChange/provider/src/main/java/org/onap/ccsdk/sli/northbound/DataChangeProvider.java26
-rw-r--r--northbound/dataChange/provider/src/main/resources/OSGI-INF/blueprint/datachange-blueprint.xml32
-rw-r--r--northbound/dataChange/provider/src/main/resources/org/opendaylight/blueprint/datachange-blueprint.xml9
-rw-r--r--northbound/dataChange/provider/src/test/java/org/onap/sdnc/northbound/dataChange/DataChangeClientTest.java109
-rw-r--r--northbound/dataChange/provider/src/test/java/org/onap/sdnc/northbound/dataChange/TestDataChange.java122
5 files changed, 177 insertions, 121 deletions
diff --git a/northbound/dataChange/provider/src/main/java/org/onap/ccsdk/sli/northbound/DataChangeProvider.java b/northbound/dataChange/provider/src/main/java/org/onap/ccsdk/sli/northbound/DataChangeProvider.java
index cf4b07a70..3301ca8e0 100644
--- a/northbound/dataChange/provider/src/main/java/org/onap/ccsdk/sli/northbound/DataChangeProvider.java
+++ b/northbound/dataChange/provider/src/main/java/org/onap/ccsdk/sli/northbound/DataChangeProvider.java
@@ -9,9 +9,9 @@
* 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.
@@ -22,26 +22,28 @@
package org.onap.ccsdk.sli.northbound;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
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.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.NotificationPublishService;
-import org.opendaylight.mdsal.binding.api.RpcProviderService;
+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.sli.northbound.datachange.rev150519.DataChangeNotificationInput;
import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.northbound.datachange.rev150519.DataChangeNotificationInputBuilder;
import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.northbound.datachange.rev150519.DataChangeNotificationOutput;
import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.northbound.datachange.rev150519.DataChangeNotificationOutputBuilder;
import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.northbound.datachange.rev150519.DataChangeService;
-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.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
@@ -58,14 +60,14 @@ public class DataChangeProvider implements AutoCloseable, DataChangeService {
protected DataBroker dataBroker;
protected NotificationPublishService notificationService;
- protected RpcProviderService rpcRegistry;
- protected ObjectRegistration<DataChangeService> rpcRegistration;
+ protected RpcProviderRegistry rpcRegistry;
+ protected BindingAwareBroker.RpcRegistration<DataChangeService> rpcRegistration;
private final DataChangeClient dataChangeClient;
public DataChangeProvider(final DataBroker dataBroker,
final NotificationPublishService notificationPublishService,
- final RpcProviderService rpcProviderRegistry,
+ final RpcProviderRegistry rpcProviderRegistry,
final DataChangeClient dataChangeClient) {
this.LOG.info( "Creating provider for {}", APPLICATION_NAME);
@@ -79,7 +81,7 @@ public class DataChangeProvider implements AutoCloseable, DataChangeService {
public void initialize(){
LOG.info( "Initializing provider for {}", APPLICATION_NAME);
- rpcRegistration = rpcRegistry.registerRpcImplementation(DataChangeService.class, this);
+ rpcRegistration = rpcRegistry.addRpcImplementation(DataChangeService.class, this);
LOG.info( "Initialization complete for {}", APPLICATION_NAME);
}
diff --git a/northbound/dataChange/provider/src/main/resources/OSGI-INF/blueprint/datachange-blueprint.xml b/northbound/dataChange/provider/src/main/resources/OSGI-INF/blueprint/datachange-blueprint.xml
new file mode 100644
index 000000000..5a38c81f1
--- /dev/null
+++ b/northbound/dataChange/provider/src/main/resources/OSGI-INF/blueprint/datachange-blueprint.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
+ xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0"
+ odl:use-default-for-reference-types="true">
+
+ <reference id="svcLogicService"
+ interface="org.onap.ccsdk.sli.core.sli.provider.SvcLogicService" />
+
+ <bean id="client" class="org.onap.ccsdk.sli.northbound.DataChangeClient">
+ <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.sli.northbound.DataChangeProvider">
+ <argument ref="dataBroker" />
+ <argument ref="notificationService" />
+ <argument ref="rpcRegistry" />
+ <argument ref="client" />
+ </bean>
+
+</blueprint> \ No newline at end of file
diff --git a/northbound/dataChange/provider/src/main/resources/org/opendaylight/blueprint/datachange-blueprint.xml b/northbound/dataChange/provider/src/main/resources/org/opendaylight/blueprint/datachange-blueprint.xml
index 7bc0076dd..5a38c81f1 100644
--- a/northbound/dataChange/provider/src/main/resources/org/opendaylight/blueprint/datachange-blueprint.xml
+++ b/northbound/dataChange/provider/src/main/resources/org/opendaylight/blueprint/datachange-blueprint.xml
@@ -11,13 +11,16 @@
</bean>
<reference id="dataBroker"
- interface="org.opendaylight.mdsal.binding.api.DataBroker" />
+ interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"
+ odl:type="default" />
<reference id="notificationService"
- interface="org.opendaylight.mdsal.binding.api.NotificationPublishService" />
+ interface="org.opendaylight.controller.md.sal.binding.api.NotificationPublishService"
+ odl:type="default" />
<reference id="rpcRegistry"
- interface="org.opendaylight.mdsal.binding.api.RpcProviderService" />
+ interface="org.opendaylight.controller.sal.binding.api.RpcProviderRegistry"
+ odl:type="default" />
<bean id="provider" class="org.onap.ccsdk.sli.northbound.DataChangeProvider">
<argument ref="dataBroker" />
diff --git a/northbound/dataChange/provider/src/test/java/org/onap/sdnc/northbound/dataChange/DataChangeClientTest.java b/northbound/dataChange/provider/src/test/java/org/onap/sdnc/northbound/dataChange/DataChangeClientTest.java
index 88a7f5bf0..9ba6c8742 100644
--- a/northbound/dataChange/provider/src/test/java/org/onap/sdnc/northbound/dataChange/DataChangeClientTest.java
+++ b/northbound/dataChange/provider/src/test/java/org/onap/sdnc/northbound/dataChange/DataChangeClientTest.java
@@ -1,55 +1,56 @@
-package org.onap.sdnc.northbound.dataChange;
-
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-import java.util.Properties;
-import org.junit.Before;
-import org.junit.Test;
-import org.onap.ccsdk.sli.core.sli.SvcLogicException;
-import org.onap.ccsdk.sli.core.sli.provider.SvcLogicService;
-import org.onap.ccsdk.sli.northbound.DataChangeClient;
-import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.northbound.datachange.rev150519.DataChangeNotificationOutputBuilder;
-
-public class DataChangeClientTest {
-
- SvcLogicService mockSvcLogicService;
- String module = "test-module";
- String rpc = "test-rpc";
- String version = "test-version";
- String mode = "test-mode";
- Properties localProp = new Properties();
-
- @Before
- public void setUp() throws Exception {
- mockSvcLogicService = mock(SvcLogicService.class);
- when(mockSvcLogicService.hasGraph(module, rpc, version, mode)).thenReturn(true);
- }
-
- @Test
- public void testDataChangeClientConstructor() {
- DataChangeClient dataChangeClient = new DataChangeClient(mockSvcLogicService);
- assertNotNull(dataChangeClient);
- }
-
- @Test
- public void testHasGraph() throws SvcLogicException {
- DataChangeClient dataChangeClient = new DataChangeClient(mockSvcLogicService);
- boolean result = dataChangeClient.hasGraph(module, rpc, version, mode);
- assertTrue(result);
- }
-
- @Test
- public void testExecuteSvcLogicStatusFailure() throws SvcLogicException {
- DataChangeNotificationOutputBuilder serviceData = mock(DataChangeNotificationOutputBuilder.class);
- Properties parms = mock(Properties.class);
- SvcLogicService svcLogicService = mock(SvcLogicService.class);
- Properties properties = new Properties();
- properties.setProperty("SvcLogic.status", "failure");
- when(svcLogicService.execute(module, rpc, version, mode, properties)).thenReturn(properties);
- DataChangeClient sliClient = new DataChangeClient(svcLogicService);
- Properties prop = sliClient.execute(module, rpc, version, mode, serviceData, properties);
- assertTrue(prop != null);
- }
+package org.onap.sdnc.northbound.dataChange;
+
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.*;
+
+import java.util.Properties;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.provider.MdsalHelper;
+import org.onap.ccsdk.sli.core.sli.provider.SvcLogicService;
+import org.onap.ccsdk.sli.northbound.DataChangeClient;
+import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.northbound.datachange.rev150519.DataChangeNotificationOutputBuilder;
+
+public class DataChangeClientTest {
+
+ SvcLogicService mockSvcLogicService;
+ String module = "test-module";
+ String rpc = "test-rpc";
+ String version = "test-version";
+ String mode = "test-mode";
+ Properties localProp = new Properties();
+
+ @Before
+ public void setUp() throws Exception {
+ mockSvcLogicService = mock(SvcLogicService.class);
+ when(mockSvcLogicService.hasGraph(module, rpc, version, mode)).thenReturn(true);
+ }
+
+ @Test
+ public void testDataChangeClientConstructor() {
+ DataChangeClient dataChangeClient = new DataChangeClient(mockSvcLogicService);
+ assertNotNull(dataChangeClient);
+ }
+
+ @Test
+ public void testHasGraph() throws SvcLogicException {
+ DataChangeClient dataChangeClient = new DataChangeClient(mockSvcLogicService);
+ boolean result = dataChangeClient.hasGraph(module, rpc, version, mode);
+ assertTrue(result);
+ }
+
+ @Test
+ public void testExecuteSvcLogicStatusFailure() throws SvcLogicException {
+ DataChangeNotificationOutputBuilder serviceData = mock(DataChangeNotificationOutputBuilder.class);
+ Properties parms = mock(Properties.class);
+ SvcLogicService svcLogicService = mock(SvcLogicService.class);
+ Properties properties = new Properties();
+ properties.setProperty("SvcLogic.status", "failure");
+ when(svcLogicService.execute(module, rpc, version, mode, properties)).thenReturn(properties);
+ DataChangeClient sliClient = new DataChangeClient(svcLogicService);
+ Properties prop = sliClient.execute(module, rpc, version, mode, serviceData, properties);
+ assertTrue(prop != null);
+ }
} \ No newline at end of file
diff --git a/northbound/dataChange/provider/src/test/java/org/onap/sdnc/northbound/dataChange/TestDataChange.java b/northbound/dataChange/provider/src/test/java/org/onap/sdnc/northbound/dataChange/TestDataChange.java
index ad2e85498..f9c39b703 100644
--- a/northbound/dataChange/provider/src/test/java/org/onap/sdnc/northbound/dataChange/TestDataChange.java
+++ b/northbound/dataChange/provider/src/test/java/org/onap/sdnc/northbound/dataChange/TestDataChange.java
@@ -21,57 +21,75 @@
package org.onap.sdnc.northbound.dataChange;
-public class TestDataChange {//extends AbstractConcurrentDataBrokerTest {
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.ccsdk.sli.northbound.DataChangeProvider;
+import org.onap.ccsdk.sli.northbound.DataChangeClient;
+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.yang.gen.v1.org.onap.ccsdk.sli.northbound.datachange.rev150519.DataChangeNotificationInput;
+import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.northbound.datachange.rev150519.DataChangeNotificationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.northbound.datachange.rev150519.DataChangeNotificationOutput;
+import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
-// private DataChangeProvider dataChangeProvider;
-// private static final Logger LOG = LoggerFactory.getLogger(DataChangeProvider.class);
-//
-// @Before
-// public void setUp() throws Exception {
-// if (null == dataChangeProvider) {
-// DataBroker dataBroker = getDataBroker();
-// NotificationPublishService mockNotification = mock(NotificationPublishService.class);
-// RpcProviderService mockRpcRegistry = mock(RpcProviderService.class);
-// DataChangeClient mockSliClient = mock(DataChangeClient.class);
-// dataChangeProvider = new DataChangeProvider(dataBroker, mockNotification, mockRpcRegistry, mockSliClient);
-// }
-// }
-//
-// //Testcase should return error 503 when No service logic active for dataChange.
-// @Test
-// public void testDataChangeNotification() {
-//
-// DataChangeNotificationInputBuilder inputBuilder = new DataChangeNotificationInputBuilder();
-//
-// inputBuilder.setAaiEventId("1");
-//
-//
-// // TODO: currently initialize SvcLogicServiceClient is failing, need to fix
-// java.util.concurrent.Future<RpcResult<DataChangeNotificationOutput>> future = dataChangeProvider
-// .dataChangeNotification(inputBuilder.build());
-// RpcResult<DataChangeNotificationOutput> rpcResult = null;
-// try {
-// rpcResult = future.get();
-// } catch (Exception e) {
-// fail("Error : " + e);
-// }
-// LOG.info("result: {}", rpcResult);
-// assertEquals("503", rpcResult.getResult().getDataChangeResponseCode());
-// }
-//
-// //Input parameter validation
-// @Test
-// public void testDataChangeNotificationInputValidation() {
-//
-// java.util.concurrent.Future<RpcResult<DataChangeNotificationOutput>> future = dataChangeProvider
-// .dataChangeNotification(null);
-// RpcResult<DataChangeNotificationOutput> rpcResult = null;
-// try {
-// rpcResult = future.get();
-// } catch (Exception e) {
-// fail("Error : " + e);
-// }
-// LOG.info("result: {}", rpcResult);
-// assertEquals("403", rpcResult.getResult().getDataChangeResponseCode());
-// }
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.mock;
+
+public class TestDataChange extends AbstractConcurrentDataBrokerTest {
+
+ private DataChangeProvider dataChangeProvider;
+ private static final Logger LOG = LoggerFactory.getLogger(DataChangeProvider.class);
+
+ @Before
+ public void setUp() throws Exception {
+ if (null == dataChangeProvider) {
+ DataBroker dataBroker = getDataBroker();
+ NotificationPublishService mockNotification = mock(NotificationPublishService.class);
+ RpcProviderRegistry mockRpcRegistry = mock(RpcProviderRegistry.class);
+ DataChangeClient mockSliClient = mock(DataChangeClient.class);
+ dataChangeProvider = new DataChangeProvider(dataBroker, mockNotification, mockRpcRegistry, mockSliClient);
+ }
+ }
+
+ //Testcase should return error 503 when No service logic active for dataChange.
+ @Test
+ public void testDataChangeNotification() {
+
+ DataChangeNotificationInputBuilder inputBuilder = new DataChangeNotificationInputBuilder();
+
+ inputBuilder.setAaiEventId("1");
+
+
+ // TODO: currently initialize SvcLogicServiceClient is failing, need to fix
+ java.util.concurrent.Future<RpcResult<DataChangeNotificationOutput>> future = dataChangeProvider
+ .dataChangeNotification(inputBuilder.build());
+ RpcResult<DataChangeNotificationOutput> rpcResult = null;
+ try {
+ rpcResult = future.get();
+ } catch (Exception e) {
+ fail("Error : " + e);
+ }
+ LOG.info("result: {}", rpcResult);
+ assertEquals("503", rpcResult.getResult().getDataChangeResponseCode());
+ }
+
+ //Input parameter validation
+ @Test
+ public void testDataChangeNotificationInputValidation() {
+
+ java.util.concurrent.Future<RpcResult<DataChangeNotificationOutput>> future = dataChangeProvider
+ .dataChangeNotification(null);
+ RpcResult<DataChangeNotificationOutput> rpcResult = null;
+ try {
+ rpcResult = future.get();
+ } catch (Exception e) {
+ fail("Error : " + e);
+ }
+ LOG.info("result: {}", rpcResult);
+ assertEquals("403", rpcResult.getResult().getDataChangeResponseCode());
+ }
}