Update code to support OpenDaylight Fluorine changes.
Change-Id: Iec7e5173076419b101d07e3321b1ca93178b6fa7
Issue-ID: SDNC-552
Signed-off-by: Timoney, Dan (dt5972) <dtimoney@att.com>
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>feature-repo-parent</artifactId>
- <version>1.2.0-SNAPSHOT</version>
+ <version>1.2.1-SNAPSHOT</version>
<relativePath/>
</parent>
<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>1.2.0-SNAPSHOT</version>
- <relativePath />
+ <version>1.2.1-SNAPSHOT</version>
+ <relativePath/>
</parent>
<groupId>org.onap.sdnc.northbound</groupId>
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>1.2.0-SNAPSHOT</version>
+ <version>1.2.1-SNAPSHOT</version>
<relativePath/>
</parent>
<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>single-feature-parent</artifactId>
- <version>1.2.0-SNAPSHOT</version>
- <relativePath />
+ <version>1.2.1-SNAPSHOT</version>
+ <relativePath/>
</parent>
<groupId>org.onap.sdnc.northbound</groupId>
<name>sdnc-northbound :: features :: ${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>
+ <dependencies>
+ <dependency>
+ <groupId>org.onap.ccsdk.sli.core</groupId>
+ <artifactId>sli-core-artifacts</artifactId>
+ <version>${ccsdk.sli.core.version}</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+ </dependencies>
</dependencyManagement>
<dependencies>
<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>client-parent</artifactId>
- <version>1.2.0-SNAPSHOT</version>
+ <version>1.2.1-SNAPSHOT</version>
</parent>
<dependencies>
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>feature-repo-parent</artifactId>
- <version>1.2.0-SNAPSHOT</version>
+ <version>1.2.1-SNAPSHOT</version>
<relativePath/>
</parent>
-<?xml version='1.0' encoding='UTF-8'?>
+<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>1.2.0-SNAPSHOT</version>
- <relativePath />
+ <version>1.2.1-SNAPSHOT</version>
+ <relativePath/>
</parent>
<groupId>org.onap.sdnc.northbound</groupId>
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>single-feature-parent</artifactId>
- <version>1.2.0-SNAPSHOT</version>
- <relativePath />
+ <version>1.2.1-SNAPSHOT</version>
+ <relativePath/>
</parent>
<groupId>org.onap.sdnc.northbound</groupId>
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>1.2.0-SNAPSHOT</version>
- <relativePath />
+ <version>1.2.1-SNAPSHOT</version>
+ <relativePath/>
</parent>
<groupId>org.onap.sdnc.northbound</groupId>
-<?xml version='1.0' encoding='UTF-8'?>
+<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>binding-parent</artifactId>
- <version>1.2.0-SNAPSHOT</version>
- <relativePath />
+ <version>1.2.1-SNAPSHOT</version>
+ <relativePath/>
</parent>
<groupId>org.onap.sdnc.northbound</groupId>
<dependencies>
<dependency>
<groupId>org.opendaylight.mdsal.model</groupId>
- <artifactId>ietf-inet-types</artifactId>
+ <artifactId>ietf-inet-types-2013-07-15</artifactId>
</dependency>
<dependency>
<groupId>org.opendaylight.mdsal.model</groupId>
- <artifactId>ietf-yang-types</artifactId>
+ <artifactId>ietf-yang-types-20130715</artifactId>
</dependency>
</dependencies>
\r
prefix generic-resource-api;\r
\r
- import ietf-inet-types { prefix "inet"; revision-date "2010-09-24"; }\r
+ import ietf-inet-types { prefix "inet"; revision-date "2013-07-15"; }\r
\r
import ietf-yang-types { prefix yang; }\r
\r
<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>1.2.0-SNAPSHOT</version>
- <relativePath />
+ <version>1.2.1-SNAPSHOT</version>
+ <relativePath/>
</parent>
<groupId>org.onap.sdnc.northbound</groupId>
-<?xml version='1.0' encoding='UTF-8'?>
+<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>binding-parent</artifactId>
- <version>1.2.0-SNAPSHOT</version>
- <relativePath />
+ <version>1.2.1-SNAPSHOT</version>
+ <relativePath/>
</parent>
<groupId>org.onap.sdnc.northbound</groupId>
<name>sdnc-northbound :: generic-resource-api :: ${project.artifactId}</name>
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.onap.ccsdk.sli.core</groupId>
+ <artifactId>sli-core-artifacts</artifactId>
+ <version>${ccsdk.sli.core.version}</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
<dependencies>
<dependency>
<groupId>org.onap.sdnc.northbound</groupId>
<artifactId>sli-provider</artifactId>
</dependency>
- <dependency>
- <groupId>org.opendaylight.controller</groupId>
- <artifactId>sal-binding-config</artifactId>
- </dependency>
-
<dependency>
<groupId>org.opendaylight.controller</groupId>
<artifactId>sal-binding-api</artifactId>
import com.google.common.base.Optional;
import com.google.common.util.concurrent.CheckedFuture;
import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
+
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.GENERICRESOURCEAPIService;
import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.GenericConfigurationNotificationInput;
import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.GenericConfigurationNotificationInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.GenericConfigurationNotificationOutput;
import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.GenericConfigurationTopologyOperationInput;
import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.GenericConfigurationTopologyOperationInputBuilder;
import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.generic.resource.rev170824.GenericConfigurationTopologyOperationOutput;
// Each entry will be identifiable by a unique key, we have to create that
// identifier
InstanceIdentifier<Service> path = InstanceIdentifier.builder(Services.class)
- .child(Service.class, entry.getKey()).build();
+ .child(Service.class, entry.key()).build();
trySaveEntry(entry, merge, storeType, path);
}
// Each entry will be identifiable by a unique key, we have to create
// that identifier
InstanceIdentifier<Service> path = InstanceIdentifier.builder(Services.class)
- .child(Service.class, entry.getKey()).build();
+ .child(Service.class, entry.key()).build();
tryDeleteEntry(storeType, path);
}
// Each entry will be identifiable by a unique key, we have to create that
// identifier
InstanceIdentifier.InstanceIdentifierBuilder<PreloadList> preloadListBuilder = InstanceIdentifier
- .<PreloadInformation>builder(PreloadInformation.class).child(PreloadList.class, entry.getKey());
+ .<PreloadInformation>builder(PreloadInformation.class).child(PreloadList.class, entry.key());
InstanceIdentifier<PreloadList> path = preloadListBuilder.build();
int tries = 2;
while (true) {
// Each entry will be identifiable by a unique key, we have to create
// that identifier
InstanceIdentifier<PreloadList> path = InstanceIdentifier.builder(PreloadInformation.class)
- .child(PreloadList.class, entry.getKey()).build();
+ .child(PreloadList.class, entry.key()).build();
tryDeletePreloadListEntry(storeType, path);
}
}
@Override
- public Future<RpcResult<ServiceTopologyOperationOutput>> serviceTopologyOperation(
+ public ListenableFuture<RpcResult<ServiceTopologyOperationOutput>> serviceTopologyOperation(
ServiceTopologyOperationInput input) {
final String svcOperation = "service-topology-operation";
}
@Override
- public Future<RpcResult<VnfTopologyOperationOutput>> vnfTopologyOperation(VnfTopologyOperationInput input) {
+ public ListenableFuture<RpcResult<VnfTopologyOperationOutput>> vnfTopologyOperation(VnfTopologyOperationInput input) {
final String svcOperation = "vnf-topology-operation";
ServiceData serviceData;
}
@Override
- public Future<RpcResult<VfModuleTopologyOperationOutput>> vfModuleTopologyOperation(
+ public ListenableFuture<RpcResult<VfModuleTopologyOperationOutput>> vfModuleTopologyOperation(
VfModuleTopologyOperationInput input) {
final String svcOperation = "vf-module-topology-operation";
}
@Override
- public Future<RpcResult<NetworkTopologyOperationOutput>> networkTopologyOperation(
+ public ListenableFuture<RpcResult<NetworkTopologyOperationOutput>> networkTopologyOperation(
NetworkTopologyOperationInput input) {
final String svcOperation = "network-topology-operation";
|| input.getServiceInformation().getServiceInstanceId().length() == 0;
}
- private Future<RpcResult<NetworkTopologyOperationOutput>> buildRpcResultFuture(
+ private ListenableFuture<RpcResult<NetworkTopologyOperationOutput>> buildRpcResultFuture(
NetworkTopologyOperationOutputBuilder responseBuilder, String responseMessage) {
responseBuilder.setResponseCode("404");
}
@Override
- public Future<RpcResult<ContrailRouteTopologyOperationOutput>> contrailRouteTopologyOperation(
+ public ListenableFuture<RpcResult<ContrailRouteTopologyOperationOutput>> contrailRouteTopologyOperation(
ContrailRouteTopologyOperationInput input) {
final String svcOperation = "contrail-route-topology-operation";
|| input.getServiceInformation().getServiceInstanceId().length() == 0;
}
- private Future<RpcResult<ContrailRouteTopologyOperationOutput>> buildRpcResultFuture(
+ private ListenableFuture<RpcResult<ContrailRouteTopologyOperationOutput>> buildRpcResultFuture(
ContrailRouteTopologyOperationOutputBuilder responseBuilder, String responseMessage) {
responseBuilder.setResponseCode("404");
responseBuilder.setResponseMessage(responseMessage);
}
@Override
- public Future<RpcResult<SecurityZoneTopologyOperationOutput>> securityZoneTopologyOperation(
+ public ListenableFuture<RpcResult<SecurityZoneTopologyOperationOutput>> securityZoneTopologyOperation(
SecurityZoneTopologyOperationInput input) {
final String svcOperation = "security-zone-topology-operation";
|| input.getServiceInformation().getServiceInstanceId().length() == 0;
}
- private Future<RpcResult<SecurityZoneTopologyOperationOutput>> buildRpcResultFuture(
+ private ListenableFuture<RpcResult<SecurityZoneTopologyOperationOutput>> buildRpcResultFuture(
SecurityZoneTopologyOperationOutputBuilder responseBuilder, String responseMessage) {
responseBuilder.setResponseCode("404");
}
}
- private Future<RpcResult<ConnectionAttachmentTopologyOperationOutput>>
+ private ListenableFuture<RpcResult<ConnectionAttachmentTopologyOperationOutput>>
buildRpcResultFuture(ConnectionAttachmentTopologyOperationOutputBuilder responseBuilder, String responseMessage) {
responseBuilder.setResponseCode("404");
}
@Override
- public Future<RpcResult<ConnectionAttachmentTopologyOperationOutput>> connectionAttachmentTopologyOperation(ConnectionAttachmentTopologyOperationInput input) {
+ public ListenableFuture<RpcResult<ConnectionAttachmentTopologyOperationOutput>> connectionAttachmentTopologyOperation(ConnectionAttachmentTopologyOperationInput input) {
final String svcOperation = "connection-attachment-topology-operation";
Properties parms = new Properties();
log.info(CALLED_STR, svcOperation);
}
@Override
- public Future<RpcResult<TunnelxconnTopologyOperationOutput>> tunnelxconnTopologyOperation(
+ public ListenableFuture<RpcResult<TunnelxconnTopologyOperationOutput>> tunnelxconnTopologyOperation(
TunnelxconnTopologyOperationInput input) {
final String svcOperation = "tunnelxconn-topology-operation";
}
@Override
- public Future<RpcResult<BrgTopologyOperationOutput>> brgTopologyOperation(BrgTopologyOperationInput input) {
+ public ListenableFuture<RpcResult<BrgTopologyOperationOutput>> brgTopologyOperation(BrgTopologyOperationInput input) {
final String svcOperation = "brg-topology-operation";
Properties parms = new Properties();
}
@Override
- public Future<RpcResult<PreloadNetworkTopologyOperationOutput>> preloadNetworkTopologyOperation(
+ public ListenableFuture<RpcResult<PreloadNetworkTopologyOperationOutput>> preloadNetworkTopologyOperation(
PreloadNetworkTopologyOperationInput input) {
final String svcOperation = "preload-network-topology-operation";
}
@Override
- public Future<RpcResult<PreloadVfModuleTopologyOperationOutput>> preloadVfModuleTopologyOperation(
+ public ListenableFuture<RpcResult<PreloadVfModuleTopologyOperationOutput>> preloadVfModuleTopologyOperation(
PreloadVfModuleTopologyOperationInput input) {
final String svcOperation = "preload-vf-module-topology-operation";
}
@Override
- public Future<RpcResult<GenericConfigurationTopologyOperationOutput>> genericConfigurationTopologyOperation(
+ public ListenableFuture<RpcResult<GenericConfigurationTopologyOperationOutput>> genericConfigurationTopologyOperation(
GenericConfigurationTopologyOperationInput input) {
final String svcOperation = "generic-configuration-topology-operation";
}
@Override
- public Future<RpcResult<Void>> genericConfigurationNotification(GenericConfigurationNotificationInput input) {
+ public ListenableFuture<RpcResult<GenericConfigurationNotificationOutput>> genericConfigurationNotification(GenericConfigurationNotificationInput input) {
final String svcOperation = "generic-configuration-notification";
ServiceData serviceData;
} catch (Exception e) {
log.error(UPDATING_MDSAL_ERROR_MESSAGE, svcOperation, siid, e);
}
+
+
+
- RpcResult<Void> rpcResult = RpcResultBuilder.<Void>status(true).build();
+ RpcResult<GenericConfigurationNotificationOutput> rpcResult = RpcResultBuilder.<GenericConfigurationNotificationOutput>status(true).build();
return Futures.immediateFuture(rpcResult);
}
} catch (Exception e) {
log.error(UPDATING_MDSAL_ERROR_MESSAGE, svcOperation, siid, e);
- RpcResult<Void> rpcResult = RpcResultBuilder.<Void>status(true).build();
+ RpcResult<GenericConfigurationNotificationOutput> rpcResult = RpcResultBuilder.<GenericConfigurationNotificationOutput>status(true).build();
return Futures.immediateFuture(rpcResult);
}
// Update succeeded
log.info(UPDATED_MDSAL_INFO_MESSAGE, svcOperation, siid);
- RpcResult<Void> rpcResult = RpcResultBuilder.<Void>status(true).build();
+ RpcResult<GenericConfigurationNotificationOutput> rpcResult = RpcResultBuilder.<GenericConfigurationNotificationOutput>status(true).build();
return Futures.immediateFuture(rpcResult);
}
@Override
- public Future<RpcResult<GetpathsegmentTopologyOperationOutput>> getpathsegmentTopologyOperation(
+ public ListenableFuture<RpcResult<GetpathsegmentTopologyOperationOutput>> getpathsegmentTopologyOperation(
GetpathsegmentTopologyOperationInput input) {
final String svcOperation = "getpathsegment-topology-operation";
}
@Override
- public Future<RpcResult<PolicyUpdateNotifyOperationOutput>> policyUpdateNotifyOperation(
+ public ListenableFuture<RpcResult<PolicyUpdateNotifyOperationOutput>> policyUpdateNotifyOperation(
PolicyUpdateNotifyOperationInput input) {
final String svcOperation = "policy-update-notify-operation";
}
@Override
- public Future<RpcResult<PortMirrorTopologyOperationOutput>> portMirrorTopologyOperation(
+ public ListenableFuture<RpcResult<PortMirrorTopologyOperationOutput>> portMirrorTopologyOperation(
final PortMirrorTopologyOperationInput input) {
final String svcOperation = "port-mirror-topology-operation";
}
@Override
- public Future<RpcResult<VnfGetResourceRequestOutput>> vnfGetResourceRequest(VnfGetResourceRequestInput input) {
+ public ListenableFuture<RpcResult<VnfGetResourceRequestOutput>> vnfGetResourceRequest(VnfGetResourceRequestInput input) {
final String svcOperation = "vnf-get-resource-request";
ServiceData serviceData;
// Each entry will be identifiable by a unique key, we have to create that
// identifier
InstanceIdentifier.InstanceIdentifierBuilder<Service> serviceBuilder = InstanceIdentifier
- .<Services>builder(Services.class).child(Service.class, service.getKey());
+ .<Services>builder(Services.class).child(Service.class, service.key());
InstanceIdentifier<Service> path = serviceBuilder.build();
WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>1.2.0-SNAPSHOT</version>
- <relativePath />
+ <version>1.2.1-SNAPSHOT</version>
+ <relativePath/>
</parent>
<groupId>org.onap.sdnc.northbound</groupId>
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>feature-repo-parent</artifactId>
- <version>1.2.0-SNAPSHOT</version>
+ <version>1.2.1-SNAPSHOT</version>
<relativePath/>
</parent>
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>1.2.0-SNAPSHOT</version>
- <relativePath />
+ <version>1.2.1-SNAPSHOT</version>
+ <relativePath/>
</parent>
<groupId>org.onap.sdnc.northbound</groupId>
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>single-feature-parent</artifactId>
- <version>1.2.0-SNAPSHOT</version>
- <relativePath />
+ <version>1.2.1-SNAPSHOT</version>
+ <relativePath/>
</parent>
<groupId>org.onap.sdnc.northbound</groupId>
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>1.2.0-SNAPSHOT</version>
- <relativePath />
+ <version>1.2.1-SNAPSHOT</version>
+ <relativePath/>
</parent>
<groupId>org.onap.sdnc.northbound</groupId>
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>binding-parent</artifactId>
- <version>1.2.0-SNAPSHOT</version>
- <relativePath />
+ <version>1.2.1-SNAPSHOT</version>
+ <relativePath/>
</parent>
<groupId>org.onap.sdnc.northbound</groupId>
<dependencies>
<dependency>
<groupId>org.opendaylight.mdsal.model</groupId>
- <artifactId>ietf-inet-types</artifactId>
+ <artifactId>ietf-inet-types-2013-07-15</artifactId>
</dependency>
<dependency>
<groupId>org.opendaylight.mdsal.model</groupId>
- <artifactId>ietf-yang-types</artifactId>
+ <artifactId>ietf-yang-types-20130715</artifactId>
</dependency>
</dependencies>
</project>
prefix vnfapi;
- import ietf-inet-types { prefix "ietf"; revision-date "2010-09-24"; }
+ import ietf-inet-types { prefix "ietf"; revision-date "2013-07-15"; }
include "vnfsubmodule";
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>1.2.0-SNAPSHOT</version>
- <relativePath />
+ <version>1.2.1-SNAPSHOT</version>
+ <relativePath/>
</parent>
<groupId>org.onap.sdnc.northbound</groupId>
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>binding-parent</artifactId>
- <version>1.2.0-SNAPSHOT</version>
- <relativePath />
+ <version>1.2.1-SNAPSHOT</version>
+ <relativePath/>
</parent>
<groupId>org.onap.sdnc.northbound</groupId>
<packaging>bundle</packaging>
<name>sdnc-northbound :: vnfapi :: ${project.artifactId}</name>
-
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.onap.ccsdk.sli.core</groupId>
+ <artifactId>sli-core-artifacts</artifactId>
+ <version>${ccsdk.sli.core.version}</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
<dependencies>
<dependency>
<groupId>org.onap.sdnc.northbound</groupId>
<artifactId>vnfapi-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>
import com.google.common.util.concurrent.CheckedFuture;
import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.base.Optional;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.DataChangeListener;
+import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
+import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService;
import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.controller.md.sal.common.api.data.OptimisticLockFailedException;
import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.concurrent.Future;
/**
* initialization / clean up methods.
*/
-public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeListener {
+public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataTreeChangeListener {
protected DataBroker dataBroker;
protected NotificationPublishService notificationService;
protected RpcProviderRegistry rpcRegistry;
}
// On data change not used
- @Override
- public void onDataChanged(AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> change) {
-
- log.info(" IN ON DATA CHANGE: ");
-
- boolean changed = false;
- WriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction();
- DataObject updatedSubTree = change.getUpdatedSubtree();
-
- if (updatedSubTree != null) {
- if (log.isDebugEnabled()) {
- log.debug("updatedSubTree was non-null:" + updatedSubTree);
- }
- if (updatedSubTree instanceof Vnfs) {
- changed = isChanged(changed, (Vnfs) updatedSubTree);
- }
- if (updatedSubTree instanceof PreloadVnfs) {
- changed = isChanged(changed, (PreloadVnfs) updatedSubTree);
- }
- //1610
- if (updatedSubTree instanceof PreloadVnfInstances) {
- changed = isChanged(changed, (PreloadVnfInstances) updatedSubTree);
- }
- //1610
- if (updatedSubTree instanceof VnfInstances) {
- changed = isChanged(changed, (VnfInstances) updatedSubTree);
- }
- //1610
- if (updatedSubTree instanceof PreloadVfModules) {
- changed = isChanged(changed, (PreloadVfModules) updatedSubTree);
- }
- //1610
- if (updatedSubTree instanceof VfModules) {
- changed = isChanged(changed, (VfModules) updatedSubTree);
- }
- }
-
- // Do the write transaction only if something changed.
- if (changed) {
- CheckedFuture<Void, TransactionCommitFailedException> checkedFuture = writeTransaction.submit();
- Futures.addCallback(checkedFuture, new FutureCallback<Void>() {
-
- @Override
- public void onSuccess(Void arg0) {
- log.debug("Successfully updated Service Status");
- }
-
- @Override
- public void onFailure(Throwable e) {
- log.debug("Failed updating Service Status", e);
- }
- }, executor);
- }
- }
+ @Override
+ public void onDataTreeChanged(Collection changes) {
+
+ log.info(" IN ON DATA CHANGE: ");
+
+ for (Object changeObj : changes) {
+
+ if (changeObj instanceof DataTreeModification) {
+
+ DataTreeModification change = (DataTreeModification) changeObj;
+
+
+ boolean changed = false;
+ WriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction();
+ DataObject updatedSubTree = change.getRootNode().getDataAfter();
+
+ if (updatedSubTree != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("updatedSubTree was non-null:" + updatedSubTree);
+ }
+ if (updatedSubTree instanceof Vnfs) {
+ changed = isChanged(changed, (Vnfs) updatedSubTree);
+ }
+ if (updatedSubTree instanceof PreloadVnfs) {
+ changed = isChanged(changed, (PreloadVnfs) updatedSubTree);
+ }
+ // 1610
+ if (updatedSubTree instanceof PreloadVnfInstances) {
+ changed = isChanged(changed, (PreloadVnfInstances) updatedSubTree);
+ }
+ // 1610
+ if (updatedSubTree instanceof VnfInstances) {
+ changed = isChanged(changed, (VnfInstances) updatedSubTree);
+ }
+ // 1610
+ if (updatedSubTree instanceof PreloadVfModules) {
+ changed = isChanged(changed, (PreloadVfModules) updatedSubTree);
+ }
+ // 1610
+ if (updatedSubTree instanceof VfModules) {
+ changed = isChanged(changed, (VfModules) updatedSubTree);
+ }
+ }
+
+ // Do the write transaction only if something changed.
+ if (changed) {
+ CheckedFuture<Void, TransactionCommitFailedException> checkedFuture = writeTransaction.submit();
+ Futures.addCallback(checkedFuture, new FutureCallback<Void>() {
+
+ @Override
+ public void onSuccess(Void arg0) {
+ log.debug("Successfully updated Service Status");
+ }
+
+ @Override
+ public void onFailure(Throwable e) {
+ log.debug("Failed updating Service Status", e);
+ }
+ }, executor);
+ }
+ }
+ }
+ }
private boolean isChanged(boolean changed, VfModules updatedSubTree) {
ArrayList<VfModuleList> vfModuleList =
// Each entry will be identifiable by a unique key, we have to create that identifier
InstanceIdentifier<VnfList> path = InstanceIdentifier
.builder(Vnfs.class)
- .child(VnfList.class, entry.getKey())
+ .child(VnfList.class, entry.key())
.build();
int optimisticLockTries = 2;
tryAgain = true;
} catch (final TransactionCommitFailedException e) {
-
- if (e.getCause() instanceof ModifiedNodeDoesNotExistException) {
- log.debug("Ignoring MpdifiedNodeDoesNotExistException");
+ Throwable eCause = e.getCause();
+
+
+ if (eCause instanceof org.opendaylight.mdsal.common.api.TransactionCommitFailedException) {
+ log.debug("Nested TransactionCommitFailed exception - getting next cause");
+ eCause = eCause.getCause();
+ } else {
+ log.debug("Got TransactionCommitFailedException, caused by {}", eCause.getClass().getName());
+ }
+
+ if (eCause instanceof ModifiedNodeDoesNotExistException) {
+ log.debug("Ignoring ModifiedNodeDoesNotExistException");
break;
}
- log.debug("Delete DataStore failed");
+ log.debug("Delete DataStore failed due to exception", eCause);
throw new IllegalStateException(e);
}
}
// Each entry will be identifiable by a unique key, we have to create that identifier
InstanceIdentifier<VnfList> path = InstanceIdentifier
.builder(Vnfs.class)
- .child(VnfList.class, entry.getKey())
+ .child(VnfList.class, entry.key())
.build();
tryUpdateDataStore(entry, merge, storeType, path);
// Each entry will be identifiable by a unique key, we have to create that identifier
InstanceIdentifier<VnfInstanceList> path = InstanceIdentifier
.builder(VnfInstances.class)
- .child(VnfInstanceList.class, entry.getKey())
+ .child(VnfInstanceList.class, entry.key())
.build();
tryUpdateDataStore(entry, merge, storeType, path);
// Each entry will be identifiable by a unique key, we have to create that identifier
InstanceIdentifier<VfModuleList> path = InstanceIdentifier
.builder(VfModules.class)
- .child(VfModuleList.class, entry.getKey())
+ .child(VfModuleList.class, entry.key())
.build();
tryUpdateDataStore(entry, merge, storeType, path);
// Each entry will be identifiable by a unique key, we have to create that identifier
InstanceIdentifier<VnfPreloadList> path = InstanceIdentifier
.builder(PreloadVnfs.class)
- .child(VnfPreloadList.class, entry.getKey())
+ .child(VnfPreloadList.class, entry.key())
.build();
tryUpdateDataStore(entry, merge, storeType, path);
// Each entry will be identifiable by a unique key, we have to create that identifier
InstanceIdentifier<VnfInstancePreloadList> path = InstanceIdentifier
.builder(PreloadVnfInstances.class)
- .child(VnfInstancePreloadList.class, entry.getKey())
+ .child(VnfInstancePreloadList.class, entry.key())
.build();
tryUpdateDataStore(entry, merge, storeType, path);
// Each entry will be identifiable by a unique key, we have to create that identifier
InstanceIdentifier<VfModulePreloadList> path = InstanceIdentifier
.builder(PreloadVfModules.class)
- .child(VfModulePreloadList.class, entry.getKey())
+ .child(VfModulePreloadList.class, entry.key())
.build();
tryUpdateDataStore(entry, merge, storeType, path);
&& input.getVnfInstanceRequestInformation().getVnfInstanceId().length() != 0;
}
- private Future<RpcResult<VnfInstanceTopologyOperationOutput>> buildVnfInstanceTopologyOperationOutputWithtError(
+ private ListenableFuture<RpcResult<VnfInstanceTopologyOperationOutput>> buildVnfInstanceTopologyOperationOutputWithtError(
String responseCode, String responseMessage, String ackFinalIndicator) {
VnfInstanceTopologyOperationOutputBuilder responseBuilder = new VnfInstanceTopologyOperationOutputBuilder();
responseBuilder.setResponseCode(responseCode);
}
@Override
- public Future<RpcResult<VnfInstanceTopologyOperationOutput>> vnfInstanceTopologyOperation(
+ public ListenableFuture<RpcResult<VnfInstanceTopologyOperationOutput>> vnfInstanceTopologyOperation(
VnfInstanceTopologyOperationInput input) {
final String svcOperation = "vnf-instance-topology-operation";
//1610 vf-module-topology-operation
@Override
- public Future<RpcResult<VfModuleTopologyOperationOutput>> vfModuleTopologyOperation(
+ public ListenableFuture<RpcResult<VfModuleTopologyOperationOutput>> vfModuleTopologyOperation(
VfModuleTopologyOperationInput input) {
final String svcOperation = "vf-module-topology-operation";
}
@Override
- public Future<RpcResult<VnfTopologyOperationOutput>> vnfTopologyOperation(VnfTopologyOperationInput input) {
+ public ListenableFuture<RpcResult<VnfTopologyOperationOutput>> vnfTopologyOperation(VnfTopologyOperationInput input) {
final String svcOperation = "vnf-topology-operation";
ServiceData serviceData;
ServiceStatusBuilder serviceStatusBuilder = new ServiceStatusBuilder();
}
@Override
- public Future<RpcResult<NetworkTopologyOperationOutput>> networkTopologyOperation(
+ public ListenableFuture<RpcResult<NetworkTopologyOperationOutput>> networkTopologyOperation(
NetworkTopologyOperationInput input) {
final String svcOperation = "network-topology-operation";
}
@Override
- public Future<RpcResult<PreloadVnfTopologyOperationOutput>> preloadVnfTopologyOperation(
+ public ListenableFuture<RpcResult<PreloadVnfTopologyOperationOutput>> preloadVnfTopologyOperation(
PreloadVnfTopologyOperationInput input) {
final String svcOperation = "preload-vnf-topology-operation";
//1610 preload-vnf-instance-topology-operation
@Override
- public Future<RpcResult<PreloadVnfInstanceTopologyOperationOutput>> preloadVnfInstanceTopologyOperation(
+ public ListenableFuture<RpcResult<PreloadVnfInstanceTopologyOperationOutput>> preloadVnfInstanceTopologyOperation(
PreloadVnfInstanceTopologyOperationInput input) {
final String svcOperation = "preload-vnf-instance-topology-operation";
//1610 preload-vf-module-topology-operation
@Override
- public Future<RpcResult<PreloadVfModuleTopologyOperationOutput>> preloadVfModuleTopologyOperation(
+ public ListenableFuture<RpcResult<PreloadVfModuleTopologyOperationOutput>> preloadVfModuleTopologyOperation(
PreloadVfModuleTopologyOperationInput input) {
final String svcOperation = "preload-vf-module-topology-operation";
@Override
- public Future<RpcResult<PreloadNetworkTopologyOperationOutput>> preloadNetworkTopologyOperation(
+ public ListenableFuture<RpcResult<PreloadNetworkTopologyOperationOutput>> preloadNetworkTopologyOperation(
PreloadNetworkTopologyOperationInput input) {
final String svcOperation = "preload-network-topology-operation";
.build();
return Futures.immediateFuture(rpcResult);
}
+
+
}
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
+import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService;
import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
import org.powermock.reflect.Whitebox;
import java.util.ArrayList;
+import java.util.Collection;
+import java.util.LinkedList;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
verify(vnfapiServiceRpcRegistration, times(1)).close();
}
- @Test public void onDataChanged() throws Exception {
- AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> asyncDataChangeEvent = mock(AsyncDataChangeEvent.class);
+ @Test public void onDataTreeChanged() throws Exception {
+ DataTreeModification dtm = mock(DataTreeModification.class);
+ DataObjectModification dom = mock(DataObjectModification.class);
+
+
// instance of Vnfs
Vnfs vnfs = mock(Vnfs.class);
- doReturn(vnfs).when(asyncDataChangeEvent).getUpdatedSubtree();
+ doReturn(dom).when(dtm).getRootNode();
+ doReturn(vnfs).when(dom).getDataAfter();
VnfList vnfList = mock(VnfList.class);
ServiceData serviceData = mock(ServiceData.class);
doReturn(serviceData).when(vnfList).getServiceData();
doReturn(readWriteTransactionInDataChanged).when(dataBroker).newWriteOnlyTransaction();
doReturn(checkedFuture).when(readWriteTransactionInDataChanged).submit();
- vnfapiProvider.onDataChanged(asyncDataChangeEvent);
+ Collection dtmList = new LinkedList<DataTreeModification>();
+ dtmList.add(dtm);
+
+ vnfapiProvider.onDataTreeChanged(dtmList);
verify(readWriteTransactionInDataChanged, times(1)).submit();
// instance of PreloadVnfs
PreloadVnfs preloadVnfs = mock(PreloadVnfs.class);
- doReturn(preloadVnfs).when(asyncDataChangeEvent).getUpdatedSubtree();
+ doReturn(preloadVnfs).when(dom).getDataAfter();
ArrayList<VnfPreloadList> vnfPreloadLists = new ArrayList<>();
doReturn(vnfPreloadLists).when(preloadVnfs).getVnfPreloadList();
PreloadData preloadData = mock(PreloadData.class);
doReturn(preloadData).when(vnfPreloadList).getPreloadData();
vnfPreloadLists.add(vnfPreloadList);
- vnfapiProvider.onDataChanged(asyncDataChangeEvent);
+ vnfapiProvider.onDataTreeChanged(dtmList);
verify(readWriteTransactionInDataChanged, times(2)).submit();
// instance of PreloadVnfInstances
PreloadVnfInstances preloadVnfInstances = mock(PreloadVnfInstances.class);
- doReturn(preloadVnfInstances).when(asyncDataChangeEvent).getUpdatedSubtree();
+ doReturn(preloadVnfInstances).when(dom).getDataAfter();
ArrayList<VnfInstancePreloadList> vnfInstancePreloadLists = new ArrayList<>();
doReturn(vnfInstancePreloadLists).when(preloadVnfInstances).getVnfInstancePreloadList();
VnfInstancePreloadList vnfInstancePreloadList = mock(VnfInstancePreloadList.class);
doReturn(vnfInstancePreloadData).when(vnfInstancePreloadList).getVnfInstancePreloadData();
vnfInstancePreloadLists.add(vnfInstancePreloadList);
- vnfapiProvider.onDataChanged(asyncDataChangeEvent);
+ vnfapiProvider.onDataTreeChanged(dtmList);
verify(readWriteTransactionInDataChanged, times(3)).submit();
// instance of VnfInstances
VnfInstances vnfInstances = mock(VnfInstances.class);
- doReturn(vnfInstances).when(asyncDataChangeEvent).getUpdatedSubtree();
+ doReturn(vnfInstances).when(dom).getDataAfter();
ArrayList<VnfInstanceList> vnfInstanceLists = new ArrayList<>();
doReturn(vnfInstanceLists).when(vnfInstances).getVnfInstanceList();
VnfInstanceList vnfInstanceList = mock(VnfInstanceList.class);
doReturn(vnfInstanceServiceData).when(vnfInstanceList).getVnfInstanceServiceData();
doReturn(serviceStatus).when(vnfInstanceList).getServiceStatus();
- vnfapiProvider.onDataChanged(asyncDataChangeEvent);
+ vnfapiProvider.onDataTreeChanged(dtmList);
verify(readWriteTransactionInDataChanged, times(4)).submit();
// instance of PreloadVfModules
PreloadVfModules preloadVfModules = mock(PreloadVfModules.class);
- doReturn(preloadVfModules).when(asyncDataChangeEvent).getUpdatedSubtree();
+ doReturn(preloadVfModules).when(dom).getDataAfter();
ArrayList<VfModulePreloadList> vfModulePreloadLists = new ArrayList<>();
doReturn(vfModulePreloadLists).when(preloadVfModules).getVfModulePreloadList();
VfModulePreloadList vfModulePreloadList = mock(VfModulePreloadList.class);
VfModulePreloadData vfModulePreloadData = mock(VfModulePreloadData.class);
doReturn(vfModulePreloadData).when(vfModulePreloadList).getVfModulePreloadData();
- vnfapiProvider.onDataChanged(asyncDataChangeEvent);
+ vnfapiProvider.onDataTreeChanged(dtmList);
verify(readWriteTransactionInDataChanged, times(5)).submit();
// instance of VfModules
VfModules vfModules = mock(VfModules.class);
- doReturn(preloadVfModules).when(asyncDataChangeEvent).getUpdatedSubtree();
+ doReturn(preloadVfModules).when(dom).getDataAfter();
ArrayList<VfModuleList> vfModuleLists = new ArrayList<>();
doReturn(vfModuleLists).when(vfModules).getVfModuleList();
VfModuleList vfModuleList = mock(VfModuleList.class);
doReturn(vfModuleServiceData).when(vfModuleList).getVfModuleServiceData();
doReturn(serviceStatus).when(vfModuleList).getServiceStatus();
- vnfapiProvider.onDataChanged(asyncDataChangeEvent);
+ vnfapiProvider.onDataTreeChanged(dtmList);
verify(readWriteTransactionInDataChanged, times(6)).submit();
}
LogicalDatastoreType configuration = LogicalDatastoreType.CONFIGURATION;
VnfList vnfList = mock(VnfList.class);
VnfListKey vnfListKey = mock(VnfListKey.class);
- doReturn(vnfListKey).when(vnfList).getKey();
+ doReturn(vnfListKey).when(vnfList).key();
InstanceIdentifier<VnfList> vnfListInstanceIdentifier = mock(InstanceIdentifier.class);
dataBroker.newWriteOnlyTransaction().put(configuration, vnfListInstanceIdentifier, vnfList);
// Each entry will be identifiable by a unique key, we have to create that
// identifier
InstanceIdentifier.InstanceIdentifierBuilder<VnfList> VnfListBuilder = InstanceIdentifier
- .<Vnfs>builder(Vnfs.class).child(VnfList.class, VnfList.getKey());
+ .<Vnfs>builder(Vnfs.class).child(VnfList.class, VnfList.key());
InstanceIdentifier<VnfList> path = VnfListBuilder.build();
WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>feature-repo-parent</artifactId>
- <version>1.2.0-SNAPSHOT</version>
+ <version>1.2.1-SNAPSHOT</version>
<relativePath/>
</parent>
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>1.2.0-SNAPSHOT</version>
- <relativePath />
+ <version>1.2.1-SNAPSHOT</version>
+ <relativePath/>
</parent>
<groupId>org.onap.sdnc.northbound</groupId>
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>single-feature-parent</artifactId>
- <version>1.2.0-SNAPSHOT</version>
- <relativePath />
+ <version>1.2.1-SNAPSHOT</version>
+ <relativePath/>
</parent>
<groupId>org.onap.sdnc.northbound</groupId>
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>1.2.0-SNAPSHOT</version>
+ <version>1.2.1-SNAPSHOT</version>
</parent>
<groupId>org.onap.sdnc.northbound</groupId>
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>1.2.0-SNAPSHOT</version>
+ <version>1.2.1-SNAPSHOT</version>
</parent>
<groupId>org.onap.sdnc.northbound</groupId>
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>binding-parent</artifactId>
- <version>1.2.0-SNAPSHOT</version>
- <relativePath />
+ <version>1.2.1-SNAPSHOT</version>
+ <relativePath/>
</parent>
<groupId>org.onap.sdnc.northbound</groupId>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
-
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.onap.ccsdk.sli.core</groupId>
+ <artifactId>sli-core-artifacts</artifactId>
+ <version>${ccsdk.sli.core.version}</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>