-diff --git a/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/ModelMappingUtils.java b/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/ModelMappingUtils.java
-index e5b44c4..a063b9e 100644
---- a/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/ModelMappingUtils.java
-+++ b/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/ModelMappingUtils.java
-@@ -8,8 +8,6 @@
- package org.opendaylight.transportpce.servicehandler;
-
- import com.google.common.util.concurrent.ListenableFuture;
--import java.util.ArrayList;
--import java.util.List;
- import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev170426.PathComputationRequestOutput;
- import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev170426.path.computation.request.input.ServiceAEnd;
- import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev170426.path.computation.request.input.ServiceAEndBuilder;
-@@ -18,8 +16,6 @@ import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev17
- import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.configuration.response.common.ConfigurationResponseCommon;
- import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.configuration.response.common.ConfigurationResponseCommonBuilder;
- import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.response.parameters.ResponseParametersBuilder;
--import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service.Topology;
--import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service.TopologyBuilder;
- import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev161014.LifecycleState;
- import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev161014.State;
- import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceCreateInput;
-@@ -31,12 +27,6 @@ import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.Service
- import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceReconfigureInput;
- import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.list.Services;
- import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.list.ServicesBuilder;
--import org.opendaylight.yang.gen.v1.http.org.openroadm.topology.rev161014.topology.AToZ;
--import org.opendaylight.yang.gen.v1.http.org.openroadm.topology.rev161014.topology.AToZBuilder;
--import org.opendaylight.yang.gen.v1.http.org.openroadm.topology.rev161014.topology.AToZKey;
--import org.opendaylight.yang.gen.v1.http.org.openroadm.topology.rev161014.topology.ZToA;
--import org.opendaylight.yang.gen.v1.http.org.openroadm.topology.rev161014.topology.ZToABuilder;
--import org.opendaylight.yang.gen.v1.http.org.openroadm.topology.rev161014.topology.ZToAKey;
- import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev170426.routing.constraints.sp.HardConstraintsBuilder;
- import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev170426.routing.constraints.sp.SoftConstraintsBuilder;
- import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev170426.service.endpoint.sp.RxDirection;
-@@ -238,42 +228,6 @@ public final class ModelMappingUtils {
- .setSoftConstraints(serviceReconfigureInput.getSoftConstraints())
- .setLifecycleState(LifecycleState.Planned).setServiceAEnd(aend).setServiceZEnd(zend);
- }
--
-- org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev170426.response
-- .parameters.sp.ResponseParameters responseParameters = output.getResponseParameters();
-- if (responseParameters != null) {
-- // service.setPceMetric(responseParameters.getPceMetric());
-- org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev170426
-- .response.parameters.sp.response.parameters.PathDescription pathDescription =
-- responseParameters.getPathDescription();
-- if (pathDescription != null) {
-- List<AToZ> atozList = new ArrayList<>();
-- List<ZToA> ztoaList = new ArrayList<>();
--
-- for (org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426
-- .path.description.atoz.direction.AToZ tmp : pathDescription.getAToZDirection().getAToZ()) {
--
-- AToZKey key = new AToZKey(tmp.key().getId());
-- AToZ atoz = new AToZBuilder().setId(tmp.getId()).withKey(key)
-- // .setResource(tmp.getResource())
-- .build();
-- atozList.add(atoz);
-- }
--
-- for (org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426
-- .path.description.ztoa.direction.ZToA
-- tmp : pathDescription.getZToADirection().getZToA()) {
-- ZToAKey key = new ZToAKey(tmp.key().getId());
-- ZToA ztoa = new ZToABuilder().setId(tmp.getId()).withKey(key)
-- // .setResource(tmp.getResource())
-- .build();
-- ztoaList.add(ztoa);
-- }
--
-- Topology topology = new TopologyBuilder().setAToZ(atozList).setZToA(ztoaList).build();
-- service.setTopology(topology);
-- }
-- }
- return service.build();
- }
-
diff --git a/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/impl/ServicehandlerImpl.java b/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/impl/ServicehandlerImpl.java
-index b81e9b4..c5b5045 100644
+index ccd0f14..8219393 100644
--- a/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/impl/ServicehandlerImpl.java
+++ b/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/impl/ServicehandlerImpl.java
-@@ -27,6 +27,7 @@ import org.opendaylight.transportpce.servicehandler.service.ServiceDataStoreOper
+@@ -22,6 +22,7 @@ import org.opendaylight.transportpce.servicehandler.ModelMappingUtils;
+ import org.opendaylight.transportpce.servicehandler.service.PCEServiceWrapper;
+ import org.opendaylight.transportpce.servicehandler.service.ServiceDataStoreOperations;
+ import org.opendaylight.transportpce.servicehandler.service.ServiceDataStoreOperationsImpl;
++import org.opendaylight.transportpce.servicehandler.stub.StubRendererServiceOperations;
import org.opendaylight.transportpce.servicehandler.validation.ServiceCreateValidation;
import org.opendaylight.transportpce.servicehandler.validation.checks.ComplianceCheckResult;
import org.opendaylight.transportpce.servicehandler.validation.checks.ServicehandlerCompliancyCheck;
-+import org.opendaylight.transportpce.stubrenderer.SendingRendererRPCs;
- import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev170426.PathComputationRequestOutput;
- import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.RpcActions;
- import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.sdnc.request.header.SdncRequestHeaderBuilder;
-@@ -89,6 +90,7 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService {
+@@ -84,6 +85,7 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService {
+ private DataBroker db;
private ServiceDataStoreOperations serviceDataStoreOperations;
private RendererServiceOperations rendererServiceOperations;
++ private StubRendererServiceOperations stubRendererServiceOperations;
private PCEServiceWrapper pceServiceWrapper;
-+ private SendingRendererRPCs stubrendererService;
//TODO: remove private request fields as they are in global scope
-
-@@ -145,8 +147,9 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService {
+@@ -92,6 +94,7 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService {
+ RendererServiceOperations rendererServiceOperations) {
+ this.db = databroker;
+ this.rendererServiceOperations = rendererServiceOperations;
++ this.stubRendererServiceOperations = new StubRendererServiceOperations();
+ this.serviceDataStoreOperations = new ServiceDataStoreOperationsImpl(this.db);
+ this.serviceDataStoreOperations.initialize();
+ this.pceServiceWrapper = new PCEServiceWrapper(pathComputationService);
+@@ -141,8 +144,8 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService {
ServiceImplementationRequestInput serviceImplementationRequest =
ModelMappingUtils.createServiceImplementationRequest(input, pceResponse);
-+ this.stubrendererService = new SendingRendererRPCs();
- org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426
-- .ServiceImplementationRequestOutput serviceImplementationRequestOutput = this.rendererServiceOperations
-+ .ServiceImplementationRequestOutput serviceImplementationRequestOutput = this.stubrendererService
- .serviceImplementation(serviceImplementationRequest);
+- ServiceImplementationRequestOutput serviceImplementationRequestOutput = this.rendererServiceOperations
+- .serviceImplementation(serviceImplementationRequest);
++ ServiceImplementationRequestOutput serviceImplementationRequestOutput = this.stubRendererServiceOperations
++ .serviceImplementation(serviceImplementationRequest);
if (ResponseCodes.RESPONSE_OK
.equals(serviceImplementationRequestOutput.getConfigurationResponseCommon().getResponseCode())) {
-@@ -215,8 +218,9 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService {
- LOG.debug("Service '{}' present in datastore !", serviceName);
- org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.ServiceDeleteInput
- serviceDeleteInput = ModelMappingUtils.createServiceDeleteInput(input);
-+ this.stubrendererService = new SendingRendererRPCs();
- org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426
+ String message = "Service rendered successfully !";
+@@ -216,8 +219,7 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService {
+ org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev171017
+ .ServiceDeleteInput serviceDeleteInput = ModelMappingUtils.createServiceDeleteInput(input);
+ org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev171017
- .ServiceDeleteOutput output = this.rendererServiceOperations.serviceDelete(serviceDeleteInput);
-+ .ServiceDeleteOutput output = this.stubrendererService.serviceDelete(serviceDeleteInput);
-
+-
++ .ServiceDeleteOutput output = this.stubRendererServiceOperations.serviceDelete(serviceDeleteInput);
if (!ResponseCodes.RESPONSE_OK
.equals(output.getConfigurationResponseCommon().getResponseCode())) {
-diff --git a/servicehandler/src/test/java/org/opendaylight/transportpce/servicehandler/stub/StubRendererServiceOperations.java b/servicehandler/src/test/java/org/opendaylight/transportpce/servicehandler/stub/StubRendererServiceOperations.java
-index 6db468c..76e4a26 100644
---- a/servicehandler/src/test/java/org/opendaylight/transportpce/servicehandler/stub/StubRendererServiceOperations.java
-+++ b/servicehandler/src/test/java/org/opendaylight/transportpce/servicehandler/stub/StubRendererServiceOperations.java
-@@ -9,13 +9,8 @@ package org.opendaylight.transportpce.servicehandler.stub;
-
- import java.util.concurrent.ExecutionException;
- import java.util.concurrent.Future;
--
- import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService;
- import org.opendaylight.transportpce.renderer.provisiondevice.RendererServiceOperations;
--import org.opendaylight.transportpce.servicehandler.mappers.ServiceDeleteInputConverter;
--import org.opendaylight.transportpce.servicehandler.mappers.ServiceDeleteOutputConverter;
--import org.opendaylight.transportpce.servicehandler.mappers.ServiceImplementationRequestInputConverter;
--import org.opendaylight.transportpce.servicehandler.mappers.ServiceImplementationRequestOutputConverter;
- import org.opendaylight.transportpce.stubrenderer.impl.StubrendererImpl;
- import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.ServiceDeleteInput;
- import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.ServiceDeleteOutput;
-@@ -30,16 +25,15 @@ public class StubRendererServiceOperations implements RendererServiceOperations
- private StubrendererImpl stubrenderer;
-
- public StubRendererServiceOperations(NotificationPublishService notificationPublishService) {
-- this.stubrenderer = new StubrendererImpl(notificationPublishService);
-+ this.stubrenderer = new StubrendererImpl();
- }
-
- @Override
- public ServiceImplementationRequestOutput serviceImplementation(ServiceImplementationRequestInput input) {
-- Future<RpcResult<org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubrenderer.rev170426
-- .ServiceImplementationRequestOutput>> rpcResultFuture = this.stubrenderer
-- .serviceImplementationRequest(ServiceImplementationRequestInputConverter.getStub(input));
-+ Future<RpcResult<ServiceImplementationRequestOutput>> rpcResultFuture = this.stubrenderer
-+ .serviceImplementationRequest(input);
- try {
-- return ServiceImplementationRequestOutputConverter.getConcrete(rpcResultFuture.get().getResult());
-+ return rpcResultFuture.get().getResult();
- } catch (InterruptedException e) {
- LOG.error("RPC serviceImplementation failed !",e);
- } catch (ExecutionException e) {
-@@ -50,11 +44,10 @@ public class StubRendererServiceOperations implements RendererServiceOperations
-
- @Override
- public ServiceDeleteOutput serviceDelete(ServiceDeleteInput input) {
-- Future<RpcResult<org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubrenderer.rev170426
-- .ServiceDeleteOutput>> rpcResultFuture = this.stubrenderer
-- .serviceDelete(ServiceDeleteInputConverter.getStub(input));
-+ Future<RpcResult<ServiceDeleteOutput>> rpcResultFuture = this.stubrenderer
-+ .serviceDelete(input);
- try {
-- return ServiceDeleteOutputConverter.getConcrete(rpcResultFuture.get().getResult());
-+ return rpcResultFuture.get().getResult();
- } catch (InterruptedException e) {
- LOG.error("RPC serviceDelete failed !",e);
- } catch (ExecutionException e) {
-diff --git a/tests/stubrenderer/src/main/java/org/opendaylight/transportpce/stubrenderer/SendingRendererRPCs.java b/tests/stubrenderer/src/main/java/org/opendaylight/transportpce/stubrenderer/SendingRendererRPCs.java
-index cdcdc0e..b43535f 100644
---- a/tests/stubrenderer/src/main/java/org/opendaylight/transportpce/stubrenderer/SendingRendererRPCs.java
-+++ b/tests/stubrenderer/src/main/java/org/opendaylight/transportpce/stubrenderer/SendingRendererRPCs.java
-@@ -8,16 +8,18 @@
-
- package org.opendaylight.transportpce.stubrenderer;
-
--import com.google.common.util.concurrent.ListenableFuture;
--import com.google.common.util.concurrent.ListeningExecutorService;
--
- import java.util.ArrayList;
- import java.util.List;
--import java.util.concurrent.Callable;
--
-+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.configuration.response.common.ConfigurationResponseCommonBuilder;
- import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service.TopologyBuilder;
- import org.opendaylight.yang.gen.v1.http.org.openroadm.topology.rev161014.topology.AToZ;
- import org.opendaylight.yang.gen.v1.http.org.openroadm.topology.rev161014.topology.ZToA;
-+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.ServiceDeleteInput;
-+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.ServiceDeleteOutput;
-+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.ServiceDeleteOutputBuilder;
-+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.ServiceImplementationRequestInput;
-+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.ServiceImplementationRequestOutput;
-+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.ServiceImplementationRequestOutputBuilder;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
-
-@@ -41,73 +43,78 @@ public class SendingRendererRPCs {
- private List<AToZ> atoz;
- private List<ZToA> ztoa;
- private String error;
-- private final ListeningExecutorService executor;
-
-- public SendingRendererRPCs(ListeningExecutorService executor) {
-- success = true;
-+ public SendingRendererRPCs() {
-+ this.success = true;
- setTopology(null);
-- this.executor = executor;
- setError("");
- }
-
- private void buildAtoZ() {
-- atoz = new ArrayList<AToZ>();
-+ this.atoz = new ArrayList<AToZ>();
- }
-
- private void buildZtoA() {
-- ztoa = new ArrayList<ZToA>();
-+ this.ztoa = new ArrayList<ZToA>();
- }
-
-- public ListenableFuture<Boolean> serviceDelete() {
-+ public ServiceDeleteOutput serviceDelete(ServiceDeleteInput input) {
-+ String message = "Service deleted !";
-+ String responseCode = "200";
- LOG.info("ServiceDelete request ...");
-- success = false;
-- return executor.submit(new Callable<Boolean>() {
-- @Override
-- public Boolean call() throws Exception {
-- Boolean output = true;
-- LOG.info("Wait for 10s til beginning the Renderer serviceDelete request");
-- try {
-- Thread.sleep(10000); //sleep for 10s
-- } catch (InterruptedException e) {
-- output = false;
-- LOG.error("Thread.sleep failed : {}", e.toString());
-- }
-- buildAtoZ();
-- buildZtoA();
-- success = true;
-- return output;
-- }
-- });
-+ LOG.info("Wait for 10s til beginning the Renderer serviceDelete request");
-+ try {
-+ Thread.sleep(1000); //sleep for 1s
-+ } catch (InterruptedException e) {
-+ message = "deleting service failed !";
-+ LOG.error(message);
-+ responseCode = "500";
-+ setError(message);
-+ }
-+ ConfigurationResponseCommonBuilder configurationResponseCommon = new ConfigurationResponseCommonBuilder()
-+ .setAckFinalIndicator("yes")
-+ .setRequestId(input.getServiceHandlerHeader().getRequestId())
-+ .setResponseCode(responseCode)
-+ .setResponseMessage(message);
-+ ServiceDeleteOutput output = new ServiceDeleteOutputBuilder()
-+ .setConfigurationResponseCommon(configurationResponseCommon.build())
-+ .build();
-+ return output;
- }
-
-- public ListenableFuture<Boolean> serviceImplementation() {
-+ public ServiceImplementationRequestOutput serviceImplementation(ServiceImplementationRequestInput input) {
-+ String message = "Service implemented !";
-+ String responseCode = "200";
-+ setSuccess(true);
- LOG.info("serviceImplementation request ...");
-- success = false;
-- return executor.submit(new Callable<Boolean>() {
-- @Override
-- public Boolean call() throws Exception {
-- Boolean output = true;
-- LOG.info("Wait for 10s til beginning the Renderer serviceDelete request");
-- try {
-- Thread.sleep(10000); //sleep for 10s
-- } catch (InterruptedException e) {
-- output = false;
-- LOG.error("Thread.sleep failed : {}", e.toString());
-- }
-- buildAtoZ();
-- buildZtoA();
-- setTopology(new TopologyBuilder()
-- .setAToZ(atoz)
-- .setZToA(ztoa));
-- output = true;
-- success = true;
-- return output;
-- }
-- });
-+ LOG.info("Wait for 10s til beginning the Renderer serviceDelete request");
-+ try {
-+ Thread.sleep(1000); //sleep for 1s
-+ } catch (InterruptedException e) {
-+ message = "implementing service failed !";
-+ LOG.error(message);
-+ setError(message);
-+ responseCode = "500";
-+ setSuccess(false);
-+ }
-+ buildAtoZ();
-+ buildZtoA();
-+ setTopology(new TopologyBuilder()
-+ .setAToZ(SendingRendererRPCs.this.atoz)
-+ .setZToA(SendingRendererRPCs.this.ztoa));
-+ ConfigurationResponseCommonBuilder configurationResponseCommon = new ConfigurationResponseCommonBuilder()
-+ .setAckFinalIndicator("yes")
-+ .setRequestId(input.getServiceHandlerHeader().getRequestId())
-+ .setResponseCode(responseCode)
-+ .setResponseMessage(message);
-+ ServiceImplementationRequestOutput output = new ServiceImplementationRequestOutputBuilder()
-+ .setConfigurationResponseCommon(configurationResponseCommon.build())
-+ .build();
-+ return output;
- }
-
- public Boolean getSuccess() {
-- return success;
-+ return this.success;
- }
-
- public void setSuccess(Boolean success) {
-@@ -115,7 +122,7 @@ public class SendingRendererRPCs {
- }
-
- public TopologyBuilder getTopology() {
-- return topology;
-+ return this.topology;
- }
-
- public void setTopology(TopologyBuilder topo) {
-@@ -123,7 +130,7 @@ public class SendingRendererRPCs {
- }
-
- public String getError() {
-- return error;
-+ return this.error;
- }
-
- public void setError(String error) {
-diff --git a/tests/stubrenderer/src/main/java/org/opendaylight/transportpce/stubrenderer/impl/StubrendererImpl.java b/tests/stubrenderer/src/main/java/org/opendaylight/transportpce/stubrenderer/impl/StubrendererImpl.java
-index 6e197d5..e3e1984 100644
---- a/tests/stubrenderer/src/main/java/org/opendaylight/transportpce/stubrenderer/impl/StubrendererImpl.java
-+++ b/tests/stubrenderer/src/main/java/org/opendaylight/transportpce/stubrenderer/impl/StubrendererImpl.java
-@@ -9,30 +9,21 @@
-
- package org.opendaylight.transportpce.stubrenderer.impl;
-
--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.util.concurrent.ListeningExecutorService;
--import com.google.common.util.concurrent.MoreExecutors;
--import java.util.concurrent.Executors;
--import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService;
- import org.opendaylight.transportpce.stubrenderer.SendingRendererRPCs;
- import org.opendaylight.transportpce.stubrenderer.StubrendererCompliancyCheck;
--import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubrenderer.rev170426.ServiceDeleteInput;
--import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubrenderer.rev170426.ServiceDeleteOutput;
--import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubrenderer.rev170426.ServiceDeleteOutputBuilder;
--import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubrenderer.rev170426.ServiceImplementationRequestInput;
--import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubrenderer.rev170426.ServiceImplementationRequestOutput;
--import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubrenderer.rev170426.ServiceImplementationRequestOutputBuilder;
--import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubrenderer.rev170426.ServiceRpcResultSp;
--import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubrenderer.rev170426.ServiceRpcResultSpBuilder;
--import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubrenderer.rev170426.StubrendererService;
--import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubrenderer.rev170426.service.rpc.result.sp.PathTopology;
--import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubrenderer.rev170426.service.rpc.result.sp.PathTopologyBuilder;
- import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.configuration.response.common.ConfigurationResponseCommonBuilder;
--import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service.TopologyBuilder;
--import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev170426.RpcStatusEx;
--import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev170426.ServicePathNotificationTypes;
-+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.CancelResourceReserveInput;
-+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.CancelResourceReserveOutput;
-+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.PathComputationRequestInput;
-+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.PathComputationRequestOutput;
-+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.ServiceDeleteInput;
-+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.ServiceDeleteOutput;
-+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.ServiceDeleteOutputBuilder;
-+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.ServiceImplementationRequestInput;
-+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.ServiceImplementationRequestOutput;
-+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.ServiceImplementationRequestOutputBuilder;
-+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.TransportpceServicepathService;
- import org.opendaylight.yangtools.yang.common.RpcResult;
- import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
- import org.slf4j.Logger;
-@@ -45,21 +36,12 @@ import org.slf4j.LoggerFactory;
- * @author Martial Coulibaly ( martial.coulibaly@gfi.com ) on behalf of Orange
- *
- */
--public class StubrendererImpl implements StubrendererService {
-+public class StubrendererImpl implements TransportpceServicepathService {
- /** Logging. */
- private static final Logger LOG = LoggerFactory.getLogger(StubrendererImpl.class);
-- /** send notification. */
-- private NotificationPublishService notificationPublishService;
-- private ServiceRpcResultSp notification;
-- private final ListeningExecutorService executor = MoreExecutors
-- .listeningDecorator(Executors.newFixedThreadPool(10));
- /** check service sdnc-request-header compliancy. */
- private StubrendererCompliancyCheck compliancyCheck;
-
-- public StubrendererImpl(NotificationPublishService notificationPublishService) {
-- this.notificationPublishService = notificationPublishService;
-- }
--
- @Override
- public ListenableFuture<RpcResult<ServiceImplementationRequestOutput>> serviceImplementationRequest(
- ServiceImplementationRequestInput input) {
-@@ -77,102 +59,20 @@ public class StubrendererImpl implements StubrendererService {
- * a path and implement a service.
- */
-
-- this.notification = new ServiceRpcResultSpBuilder()
-- .setNotificationType(ServicePathNotificationTypes.ServiceImplementationRequest)
-- .setServiceName(input.getServiceName())
-- .setStatus(RpcStatusEx.Pending)
-- .setStatusMessage("Service compliant, submitting serviceImplementation Request ...")
-- .build();
-- try {
-- this.notificationPublishService.putNotification(this.notification);
-- } catch (InterruptedException e) {
-- LOG.info("notification offer rejected : {}", e);
-+ SendingRendererRPCs sendingRenderer = new SendingRendererRPCs();
-+ sendingRenderer.serviceImplementation(input);
-+ if (sendingRenderer.getSuccess()) {
-+ message = "Service implemented !";
-+ LOG.info(message);
-+ responseCode = "200";
-+ } else {
-+ message = "Service implementation failed : " + sendingRenderer.getError();
-+ LOG.error(message);
-+ responseCode = "500";
- }
--
-- SendingRendererRPCs sendingRenderer = new SendingRendererRPCs(this.executor);
-- FutureCallback<Boolean> rendererCallback =
-- new FutureCallback<Boolean>() {
-- String message = "";
-- ServiceRpcResultSp notification = null;
--
-- @Override
-- public void onFailure(Throwable arg0) {
-- LOG.error("Failure message : {}", arg0.toString());
-- LOG.error("Service implementation failed !");
-- this.notification = new ServiceRpcResultSpBuilder()
-- .setNotificationType(ServicePathNotificationTypes.ServiceImplementationRequest)
-- .setServiceName(input.getServiceName()).setStatus(RpcStatusEx.Failed)
-- .setStatusMessage("PCR Request failed : {}" + arg0.getMessage()).build();
-- try {
-- StubrendererImpl.this.notificationPublishService.putNotification(this.notification);
-- } catch (InterruptedException e) {
-- LOG.info("notification offer rejected : {}", e);
-- }
-- }
--
-- @Override
-- public void onSuccess(Boolean response) {
-- LOG.info("response : {}", response);
-- if (response) {
-- this.message = "Service implemented !";
-- TopologyBuilder topo = sendingRenderer.getTopology();
-- ServiceRpcResultSpBuilder tmp = new ServiceRpcResultSpBuilder()
-- .setNotificationType(ServicePathNotificationTypes.ServiceImplementationRequest)
-- .setServiceName(input.getServiceName())
-- .setStatus(RpcStatusEx.Successful)
-- .setStatusMessage(this.message);
-- if (topo != null) {
-- PathTopology value = new PathTopologyBuilder()
-- .setAToZ(topo.getAToZ())
-- .setZToA(topo.getZToA())
-- .build();
-- tmp.setPathTopology(value);
-- }
-- this.notification = tmp.build();
-- } else {
-- this.message = "Service implementation failed : " + sendingRenderer.getError();
-- this.notification = new ServiceRpcResultSpBuilder()
-- .setNotificationType(ServicePathNotificationTypes.ServiceImplementationRequest)
-- .setServiceName("")
-- .setStatus(RpcStatusEx.Failed).setStatusMessage(this.message)
-- .build();
-- }
-- LOG.info(this.notification.toString());
-- try {
-- StubrendererImpl.this.notificationPublishService.putNotification(this.notification);
-- } catch (InterruptedException e) {
-- LOG.info("notification offer rejected : {}", e);
-- }
-- LOG.info(this.message);
-- }
-- };
-- ListenableFuture<Boolean> renderer = sendingRenderer.serviceImplementation();
-- Futures.addCallback(renderer, rendererCallback, this.executor);
-- LOG.info("Service implmentation Request in progress ");
-- configurationResponseCommon = new ConfigurationResponseCommonBuilder()
-- .setAckFinalIndicator("Yes")
-- .setRequestId(input.getServiceHandlerHeader().getRequestId())
-- .setResponseCode("200")
-- .setResponseMessage("Service implementation Request in progress ");
--
-- ServiceImplementationRequestOutput output = new ServiceImplementationRequestOutputBuilder()
-- .setConfigurationResponseCommon(configurationResponseCommon.build())
-- .build();
-- return RpcResultBuilder.success(output).buildFuture();
- } else {
-- message = this.compliancyCheck.getMessage();
-+ message = "Service not compliant";
+ message = "Service delete failed!";
+diff --git a/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/stub/StubrendererImpl.java b/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/stub/StubrendererImpl.java
+index 630fb67..2cc2bdf 100644
+--- a/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/stub/StubrendererImpl.java
++++ b/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/stub/StubrendererImpl.java
+@@ -51,6 +51,8 @@ public final class StubrendererImpl {
+ LOG.error("deleting service failed !", e);
responseCode = "500";
-- LOG.info("Service not compliant caused by : {}", message);
-- this.notification = new ServiceRpcResultSpBuilder()
-- .setNotificationType(ServicePathNotificationTypes.ServiceDelete)
-- .setServiceName(input.getServiceName()).setStatus(RpcStatusEx.Failed)
-- .setStatusMessage("Service not compliant caused by : " + message)
-- .build();
-- try {
-- this.notificationPublishService.putNotification(this.notification);
-- } catch (InterruptedException e) {
-- LOG.info("notification offer rejected : {}", e);
-- }
}
- configurationResponseCommon = new ConfigurationResponseCommonBuilder()
++ responseCode = "200";
++ message = "Service deleted";
+ ConfigurationResponseCommonBuilder configurationResponseCommon = new ConfigurationResponseCommonBuilder()
.setAckFinalIndicator("yes")
-@@ -201,90 +101,20 @@ public class StubrendererImpl implements StubrendererService {
- * a path and implement a service.
- */
-
-- this.notification = new ServiceRpcResultSpBuilder()
-- .setNotificationType(ServicePathNotificationTypes.ServiceDelete)
-- .setServiceName(input.getServiceName())
-- .setStatus(RpcStatusEx.Pending)
-- .setStatusMessage("Service compliant, submitting serviceDelete Request ...")
-- .build();
-- try {
-- this.notificationPublishService.putNotification(this.notification);
-- } catch (InterruptedException e) {
-- LOG.info("notification offer rejected : {}", e);
-+ SendingRendererRPCs sendingRenderer = new SendingRendererRPCs();
-+ sendingRenderer.serviceDelete(input);
-+ if (sendingRenderer.getSuccess()) {
-+ message = "Service deleted !";
-+ responseCode = "200";
-+ LOG.info(message);
-+ } else {
-+ message = "Service implementation failed : " + sendingRenderer.getError();
-+ LOG.error(message);
-+ responseCode = "500";
- }
-- SendingRendererRPCs sendingRenderer = new SendingRendererRPCs(this.executor);
-- FutureCallback<Boolean> rendererCallback = new FutureCallback<Boolean>() {
-- String message = "";
-- ServiceRpcResultSp notification = null;
--
-- @Override
-- public void onFailure(Throwable arg0) {
-- LOG.error("Failure message : {}", arg0.toString());
-- LOG.error("Service delete failed !");
-- this.notification = new ServiceRpcResultSpBuilder()
-- .setNotificationType(ServicePathNotificationTypes.ServiceDelete)
-- .setServiceName(input.getServiceName()).setStatus(RpcStatusEx.Failed)
-- .setStatusMessage("PCR Request failed : " + arg0.getMessage()).build();
-- try {
-- StubrendererImpl.this.notificationPublishService.putNotification(this.notification);
-- } catch (InterruptedException e) {
-- LOG.info("notification offer rejected : {}", e);
-- }
-- }
--
-- @Override
-- public void onSuccess(Boolean response) {
-- LOG.info("response : {}", response);
-- if (response) {
-- this.message = "Service deleted !";
-- this.notification = new ServiceRpcResultSpBuilder()
-- .setNotificationType(ServicePathNotificationTypes.ServiceDelete)
-- .setServiceName(input.getServiceName()).setStatus(RpcStatusEx.Successful)
-- .setStatusMessage(this.message).build();
-- } else {
-- this.message = "Service delete failed : " + sendingRenderer.getError();
-- this.notification = new ServiceRpcResultSpBuilder()
-- .setNotificationType(ServicePathNotificationTypes.ServiceDelete)
-- .setServiceName("")
-- .setStatus(RpcStatusEx.Failed).setStatusMessage(this.message)
-- .build();
-- }
-- LOG.info(this.notification.toString());
-- try {
-- StubrendererImpl.this.notificationPublishService.putNotification(this.notification);
-- } catch (InterruptedException e) {
-- LOG.info("notification offer rejected : {}", e);
-- }
-- LOG.info(this.message);
-- }
-- };
-- ListenableFuture<Boolean> renderer = sendingRenderer.serviceDelete();
-- Futures.addCallback(renderer, rendererCallback, this.executor);
-- message = "Service delete Request in progress ...";
-- LOG.info(message);
-- configurationResponseCommon = new ConfigurationResponseCommonBuilder()
-- .setAckFinalIndicator("Yes")
-- .setRequestId(input.getServiceHandlerHeader().getRequestId())
-- .setResponseCode("200")
-- .setResponseMessage(message);
-- ServiceDeleteOutput output = new ServiceDeleteOutputBuilder()
-- .setConfigurationResponseCommon(configurationResponseCommon.build())
-- .build();
-- return RpcResultBuilder.success(output).buildFuture();
- } else {
-- message = this.compliancyCheck.getMessage();
-- LOG.info("Service not compliant caused by : {}", message);
-+ message = "Service not compliant";
+ .setRequestId(input.getServiceHandlerHeader().getRequestId())
+@@ -75,6 +77,8 @@ public final class StubrendererImpl {
+ LOG.error(message);
responseCode = "500";
-- this.notification = new ServiceRpcResultSpBuilder()
-- .setNotificationType(ServicePathNotificationTypes.ServiceDelete)
-- .setServiceName(input.getServiceName()).setStatus(RpcStatusEx.Failed)
-- .setStatusMessage("Service not compliant caused by : " + message)
-- .build();
-- try {
-- this.notificationPublishService.putNotification(this.notification);
-- } catch (InterruptedException e) {
-- LOG.info("notification offer rejected : {}", e);
-- }
}
- configurationResponseCommon = new ConfigurationResponseCommonBuilder()
++ responseCode = "200";
++ message = "Service implemented";
+ ConfigurationResponseCommonBuilder configurationResponseCommon = new ConfigurationResponseCommonBuilder()
.setAckFinalIndicator("yes")
-@@ -296,4 +126,24 @@ public class StubrendererImpl implements StubrendererService {
- .build();
- return RpcResultBuilder.success(output).buildFuture();
- }
-+
-+ /* (non-Javadoc)
-+ * @see org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.TransportpceServicepathService#pathComputationRequest(org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.PathComputationRequestInput)
-+ */
-+ @Override
-+ public ListenableFuture<RpcResult<PathComputationRequestOutput>> pathComputationRequest(
-+ PathComputationRequestInput input) {
-+ // TODO Auto-generated method stub
-+ return null;
-+ }
-+
-+ /* (non-Javadoc)
-+ * @see org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.TransportpceServicepathService#cancelResourceReserve(org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.CancelResourceReserveInput)
-+ */
-+ @Override
-+ public ListenableFuture<RpcResult<CancelResourceReserveOutput>> cancelResourceReserve(
-+ CancelResourceReserveInput input) {
-+ // TODO Auto-generated method stub
-+ return null;
-+ }
- }
-diff --git a/tests/stubrenderer/src/main/java/org/opendaylight/transportpce/stubrenderer/impl/StubrendererProvider.java b/tests/stubrenderer/src/main/java/org/opendaylight/transportpce/stubrenderer/impl/StubrendererProvider.java
-index 0beb087..92b20f5 100644
---- a/tests/stubrenderer/src/main/java/org/opendaylight/transportpce/stubrenderer/impl/StubrendererProvider.java
-+++ b/tests/stubrenderer/src/main/java/org/opendaylight/transportpce/stubrenderer/impl/StubrendererProvider.java
-@@ -13,9 +13,7 @@ import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService
- import org.opendaylight.controller.md.sal.binding.api.NotificationService;
- import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
- import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
--import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubrenderer.rev170426.StubrendererListener;
--import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubrenderer.rev170426.StubrendererService;
--import org.opendaylight.yangtools.concepts.ListenerRegistration;
-+import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.TransportpceServicepathService;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
-
-@@ -27,17 +25,13 @@ import org.slf4j.LoggerFactory;
- public class StubrendererProvider {
- private static final Logger LOG = LoggerFactory.getLogger(StubrendererProvider.class);
- private final RpcProviderRegistry rpcRegistry;
-- private final NotificationPublishService notificationPublishService;
-
--
-- private BindingAwareBroker.RpcRegistration<StubrendererService> rpcRegistration;
-- private ListenerRegistration<StubrendererListener> stubRendererlistenerRegistration;
-+ private BindingAwareBroker.RpcRegistration<TransportpceServicepathService> rpcRegistration;
-
- public StubrendererProvider(RpcProviderRegistry rpcProviderRegistry,
- NotificationService notificationService,
- NotificationPublishService notificationPublishService) {
- this.rpcRegistry = rpcProviderRegistry;
-- this.notificationPublishService = notificationPublishService;
- }
-
- /**
-@@ -45,8 +39,8 @@ public class StubrendererProvider {
- */
- public void init() {
- LOG.info("StubrendererProvider Session Initiated");
-- final StubrendererImpl consumer = new StubrendererImpl(this.notificationPublishService);
-- this.rpcRegistration = this.rpcRegistry.addRpcImplementation(StubrendererService.class, consumer);
-+ final StubrendererImpl consumer = new StubrendererImpl();
-+ this.rpcRegistration = this.rpcRegistry.addRpcImplementation(TransportpceServicepathService.class, consumer);
- }
-
- /**
+ .setRequestId(input.getServiceHandlerHeader().getRequestId())