Remove blueprint from clustering-test-app
[controller.git] / opendaylight / md-sal / samples / clustering-test-app / provider / src / main / java / org / opendaylight / controller / clustering / it / provider / BasicRpcTestProvider.java
index 21d3a8c57abdedc9c0e0add5a4cf09fda8c249c1..b04b5175799e574fd7eff78dde4c9762bb695a58 100644 (file)
@@ -9,6 +9,9 @@ package org.opendaylight.controller.clustering.it.provider;
 
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
+import javax.annotation.PreDestroy;
+import javax.inject.Inject;
+import javax.inject.Singleton;
 import org.opendaylight.mdsal.binding.api.RpcProviderService;
 import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonService;
 import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider;
@@ -18,26 +21,39 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.controller.basic.rpc.test.r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.controller.basic.rpc.test.rev160120.BasicGlobalOutputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.controller.basic.rpc.test.rev160120.BasicRpcTestService;
 import org.opendaylight.yangtools.concepts.ObjectRegistration;
+import org.opendaylight.yangtools.concepts.Registration;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
+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;
 
+@Singleton
+@Component(service = { })
 public final class BasicRpcTestProvider implements ClusterSingletonService, BasicRpcTestService {
     private static final Logger LOG = LoggerFactory.getLogger(BasicRpcTestProvider.class);
     private static final ServiceGroupIdentifier IDENTIFIER = ServiceGroupIdentifier.create("Basic-rpc-test");
 
     private final RpcProviderService rpcProviderRegistry;
-    private final ClusterSingletonServiceProvider singletonService;
+    private final Registration singletonRegistration;
 
     private ObjectRegistration<?> rpcRegistration;
 
-    public BasicRpcTestProvider(final RpcProviderService rpcProviderRegistry,
-                                final ClusterSingletonServiceProvider singletonService) {
+    @Inject
+    @Activate
+    public BasicRpcTestProvider(@Reference final RpcProviderService rpcProviderRegistry,
+                                @Reference final ClusterSingletonServiceProvider singletonService) {
         this.rpcProviderRegistry = rpcProviderRegistry;
-        this.singletonService = singletonService;
+        singletonRegistration = singletonService.registerClusterSingletonService(this);
+    }
 
-        singletonService.registerClusterSingletonService(this);
+    @PreDestroy
+    @Deactivate
+    public void close() {
+        singletonRegistration.close();
     }
 
     @Override