X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=renderer%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Frenderer%2Frpcs%2FTransportPCEServicePathRPCImpl.java;h=0ec15420269b0d8ea45ddd6e264b51de255dee87;hb=refs%2Fchanges%2F68%2F108068%2F4;hp=73629ec779e0cf5d6058fdd3c80af5adc4881792;hpb=020c4c60d2db7250f44e9c767cccf577c27ac430;p=transportpce.git diff --git a/renderer/src/main/java/org/opendaylight/transportpce/renderer/rpcs/TransportPCEServicePathRPCImpl.java b/renderer/src/main/java/org/opendaylight/transportpce/renderer/rpcs/TransportPCEServicePathRPCImpl.java index 73629ec77..0ec154202 100644 --- a/renderer/src/main/java/org/opendaylight/transportpce/renderer/rpcs/TransportPCEServicePathRPCImpl.java +++ b/renderer/src/main/java/org/opendaylight/transportpce/renderer/rpcs/TransportPCEServicePathRPCImpl.java @@ -7,18 +7,25 @@ */ package org.opendaylight.transportpce.renderer.rpcs; +import com.google.common.collect.ImmutableClassToInstanceMap; import com.google.common.util.concurrent.ListenableFuture; import java.util.concurrent.ExecutionException; +import org.opendaylight.mdsal.binding.api.RpcProviderService; import org.opendaylight.transportpce.renderer.ModelMappingUtils; import org.opendaylight.transportpce.renderer.provisiondevice.RendererServiceOperations; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.ServiceDelete; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.ServiceDeleteInput; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.ServiceDeleteOutput; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.ServiceImplementationRequest; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.ServiceImplementationRequestInput; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.ServiceImplementationRequestOutput; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.TransportpceRendererService; +import org.opendaylight.yangtools.concepts.Registration; +import org.opendaylight.yangtools.yang.binding.Rpc; import org.opendaylight.yangtools.yang.common.RpcResult; import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Component; +import org.osgi.service.component.annotations.Deactivate; import org.osgi.service.component.annotations.Reference; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -29,15 +36,27 @@ public class TransportPCEServicePathRPCImpl implements TransportpceRendererServi private static final Logger LOG = LoggerFactory.getLogger(TransportPCEServicePathRPCImpl.class); private final RendererServiceOperations rendererServiceOperations; + private Registration reg; @Activate - public TransportPCEServicePathRPCImpl(@Reference RendererServiceOperations rendererServiceOperations) { + public TransportPCEServicePathRPCImpl(@Reference RendererServiceOperations rendererServiceOperations, + @Reference RpcProviderService rpcProviderService) { this.rendererServiceOperations = rendererServiceOperations; + this.reg = rpcProviderService.registerRpcImplementations(ImmutableClassToInstanceMap.>builder() + .put(ServiceImplementationRequest.class, this::serviceImplementationRequest) + .put(ServiceDelete.class, this::serviceDelete) + .build()); LOG.debug("TransportPCEServicePathRPCImpl instantiated"); } + @Deactivate + public void close() { + this.reg.close(); + LOG.info("TransportPCEServicePathRPCImpl Closed"); + } + @Override - public ListenableFuture> serviceDelete(ServiceDeleteInput input) { + public final ListenableFuture> serviceDelete(ServiceDeleteInput input) { String serviceName = input.getServiceName(); LOG.info("Calling RPC service delete request {}", serviceName); ServiceDeleteOutput output = null; @@ -50,7 +69,7 @@ public class TransportPCEServicePathRPCImpl implements TransportpceRendererServi } @Override - public ListenableFuture> serviceImplementationRequest( + public final ListenableFuture> serviceImplementationRequest( ServiceImplementationRequestInput input) { String serviceName = input.getServiceName(); LOG.info("Calling RPC service impl request {}", serviceName); @@ -62,4 +81,8 @@ public class TransportPCEServicePathRPCImpl implements TransportpceRendererServi } return ModelMappingUtils.createServiceImplementationRpcResponse(output); } + + public Registration getRegisteredRpc() { + return reg; + } }