Revert "migrate sli to alu-SR1"

This reverts commit ce4e5f9a00d2677495240ad367b9bfc4b74752d0.

Reason for revert: ODL upgrade changes need to be backed out until issues in ccsdk/features are resolved.

Change-Id: I168e2519e37f3eee61609d0da890c14db49ec49e
diff --git a/northbound/dataChange/provider/pom.xml b/northbound/dataChange/provider/pom.xml
index 03f46e6..10f6f00 100755
--- a/northbound/dataChange/provider/pom.xml
+++ b/northbound/dataChange/provider/pom.xml
@@ -35,8 +35,8 @@
         </dependency>
 
         <dependency>
-            <groupId>org.opendaylight.mdsal</groupId>
-            <artifactId>mdsal-binding-api</artifactId>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>sal-binding-api</artifactId>
         </dependency>
         <dependency>
             <groupId>org.onap.ccsdk.sli.core</groupId>
@@ -48,28 +48,24 @@
         </dependency>
 
         <dependency>
-            <groupId>org.opendaylight.mdsal</groupId>
-            <artifactId>mdsal-binding-test-model</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.mdsal</groupId>
-            <artifactId>mdsal-dom-api</artifactId>
+            <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> -->
-<!--             <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>
+            <scope>test</scope>
+        </dependency>
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
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 cf4b07a..3301ca8 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 @@
 
     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 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 0000000..5a38c81
--- /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 7bc0076..5a38c81 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 88a7f5b..9ba6c87 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 ad2e854..f9c39b7 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());
+    }
 }