Merge dev/fluorine work across to master
[unimgr.git] / impl / src / main / java / org / opendaylight / unimgr / mef / nrp / impl / connectivityservice / TapiConnectivityServiceImpl.java
index c2e2416aebe20b2048881f6c60e6d55ff921a740..91a1cd69257769bab96a0369dfe1ec2294a75433 100644 (file)
@@ -8,52 +8,53 @@
 
 package org.opendaylight.unimgr.mef.nrp.impl.connectivityservice;
 
+import com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.util.concurrent.ListeningExecutorService;
+import com.google.common.util.concurrent.MoreExecutors;
 import java.util.Objects;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Future;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
-
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.unimgr.mef.nrp.api.ActivationDriverRepoService;
 import org.opendaylight.unimgr.mef.nrp.api.RequestDecomposer;
 import org.opendaylight.unimgr.mef.nrp.api.RequestValidator;
 import org.opendaylight.unimgr.mef.nrp.common.NrpDao;
 import org.opendaylight.unimgr.mef.nrp.impl.ConnectivityServiceIdResourcePool;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.Context1;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.CreateConnectivityServiceInput;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.CreateConnectivityServiceOutput;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.DeleteConnectivityServiceInput;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.DeleteConnectivityServiceOutput;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.GetConnectionDetailsInput;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.GetConnectionDetailsOutput;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.GetConnectivityServiceDetailsInput;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.GetConnectivityServiceDetailsOutput;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.GetConnectivityServiceListOutput;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.TapiConnectivityService;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.UpdateConnectivityServiceInput;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.UpdateConnectivityServiceOutput;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.Context1;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.CreateConnectivityServiceInput;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.CreateConnectivityServiceOutput;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.DeleteConnectivityServiceInput;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.DeleteConnectivityServiceOutput;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.GetConnectionDetailsInput;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.GetConnectionDetailsOutput;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.GetConnectivityServiceDetailsInput;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.GetConnectivityServiceDetailsOutput;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.GetConnectivityServiceListInput;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.GetConnectivityServiceListOutput;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.TapiConnectivityService;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.UpdateConnectivityServiceInput;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.UpdateConnectivityServiceOutput;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
+ * TapiConnectivity RPC implementation.
  * @author bartosz.michalik@amartus.com
  */
 public class TapiConnectivityServiceImpl implements TapiConnectivityService, AutoCloseable {
 
     private static final Logger LOG = LoggerFactory.getLogger(TapiConnectivityServiceImpl.class);
+    static final InstanceIdentifier<Context1> CONNECTIVITY_CTX = NrpDao.ctx().augmentation(Context1.class);
     private ActivationDriverRepoService driverRepo;
     private RequestDecomposer decomposer;
     private RequestValidator validator;
     private DataBroker broker;
     private ConnectivityServiceIdResourcePool serviceIdPool;
 
-    private ExecutorService executor = null;
-
-    final static InstanceIdentifier<Context1> connectivityCtx = NrpDao.ctx().augmentation(Context1.class);
+    private ListeningExecutorService executor = null;
 
 
     public void init() {
@@ -62,10 +63,11 @@ public class TapiConnectivityServiceImpl implements TapiConnectivityService, Aut
         Objects.requireNonNull(validator);
         Objects.requireNonNull(broker);
         Objects.requireNonNull(serviceIdPool);
-        if(executor == null) {
-            executor = new ThreadPoolExecutor(4, 16,
-                    30, TimeUnit.MINUTES,
-                    new LinkedBlockingQueue<>());
+        if (executor == null) {
+            executor = MoreExecutors.listeningDecorator(
+                    new ThreadPoolExecutor(4, 16,
+                            30, TimeUnit.MINUTES,
+                            new LinkedBlockingQueue<>()));
         }
         LOG.info("TapiConnectivityService initialized");
     }
@@ -76,34 +78,40 @@ public class TapiConnectivityServiceImpl implements TapiConnectivityService, Aut
     }
 
     @Override
-    public Future<RpcResult<CreateConnectivityServiceOutput>> createConnectivityService(CreateConnectivityServiceInput input) {
+    public ListenableFuture<RpcResult<CreateConnectivityServiceOutput>> createConnectivityService(
+            CreateConnectivityServiceInput input) {
         return executor.submit(new CreateConnectivityAction(this, input));
     }
 
 
     @Override
-    public Future<RpcResult<UpdateConnectivityServiceOutput>> updateConnectivityService(UpdateConnectivityServiceInput input) {
-       return executor.submit(new UpdateConnectivityAction(this, input));
+    public ListenableFuture<RpcResult<UpdateConnectivityServiceOutput>> updateConnectivityService(
+            UpdateConnectivityServiceInput input) {
+        return executor.submit(new UpdateConnectivityAction(this, input));
     }
 
     @Override
-    public Future<RpcResult<GetConnectionDetailsOutput>> getConnectionDetails(GetConnectionDetailsInput input) {
+    public ListenableFuture<RpcResult<GetConnectionDetailsOutput>> getConnectionDetails(
+            GetConnectionDetailsInput input) {
         return executor.submit(new GetConnectionDetailsAction(this, input));
     }
 
     @Override
-    public Future<RpcResult<GetConnectivityServiceDetailsOutput>> getConnectivityServiceDetails(GetConnectivityServiceDetailsInput input) {
+    public ListenableFuture<RpcResult<GetConnectivityServiceDetailsOutput>> getConnectivityServiceDetails(
+            GetConnectivityServiceDetailsInput input) {
         return executor.submit(new GetConnectivityDetailsAction(this, input));
     }
 
     @Override
-    public Future<RpcResult<DeleteConnectivityServiceOutput>> deleteConnectivityService(DeleteConnectivityServiceInput input) {
+    public ListenableFuture<RpcResult<DeleteConnectivityServiceOutput>> deleteConnectivityService(
+            DeleteConnectivityServiceInput input) {
         return executor.submit(new DeleteConnectivityAction(this,input));
 
     }
 
     @Override
-    public Future<RpcResult<GetConnectivityServiceListOutput>> getConnectivityServiceList() {
+    public ListenableFuture<RpcResult<GetConnectivityServiceListOutput>> getConnectivityServiceList(
+            GetConnectivityServiceListInput input) {
         return executor.submit(new ListConnectivityAction(this));
     }
 
@@ -124,8 +132,10 @@ public class TapiConnectivityServiceImpl implements TapiConnectivityService, Aut
         this.broker = broker;
     }
 
-    public void setExecutor(ExecutorService executor) {
-        if(executor != null) throw new IllegalStateException();
+    public void setExecutor(ListeningExecutorService executor) {
+        if (executor != null) {
+            throw new IllegalStateException();
+        }
         this.executor = executor;
     }