OPNFLWPLUG-929 : Remove deprecated guava library
[openflowplugin.git] / openflowplugin-impl / src / main / java / org / opendaylight / openflowplugin / impl / util / BarrierUtil.java
index 209ff92c1bb7061b5b6ac401f14524ea4f2ed362..cbddf6f487c3c95cace44f03f68b35cd99906d20 100644 (file)
@@ -9,10 +9,10 @@
 package org.opendaylight.openflowplugin.impl.util;
 
 import com.google.common.base.Function;
-import com.google.common.util.concurrent.AsyncFunction;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.JdkFutureAdapters;
 import com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.util.concurrent.MoreExecutors;
 import javax.annotation.Nullable;
 import org.apache.commons.lang3.tuple.MutablePair;
 import org.apache.commons.lang3.tuple.Pair;
@@ -21,16 +21,12 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev150304.
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev150304.SendBarrierInputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef;
 import org.opendaylight.yangtools.yang.common.RpcResult;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
- * provides barrier message chaining and factory methods
+ * Provides barrier message chaining and factory methods.
  */
 public final class BarrierUtil {
 
-    private static final Logger LOG = LoggerFactory.getLogger(BarrierUtil.class);
-
 
     private BarrierUtil() {
         throw new IllegalStateException("This class should not be instantiated.");
@@ -38,14 +34,14 @@ public final class BarrierUtil {
 
 
     /**
-     * chain a barrier message - regardless of previous result and use given {@link Function} to combine
-     * original result and barrier result
+     * Chain a barrier message - regardless of previous result and use given {@link Function} to combine
+     * original result and barrier result.
      *
      * @param <T>                type of input future
      * @param input              future to chain barrier to
      * @param nodeRef            target device
      * @param transactionService barrier service
-     * @param compositeTransform
+     * @param compositeTransform composite transform
      * @return future holding both results (input and of the barrier)
      */
     public static <T> ListenableFuture<RpcResult<T>> chainBarrier(
@@ -55,15 +51,12 @@ public final class BarrierUtil {
         final MutablePair<RpcResult<T>, RpcResult<Void>> resultPair = new MutablePair<>();
 
         // store input result and append barrier
-        final ListenableFuture<RpcResult<Void>> barrierResult = Futures.transform(input,
-                new AsyncFunction<RpcResult<T>, RpcResult<Void>>() {
-                    @Override
-                    public ListenableFuture<RpcResult<Void>> apply(@Nullable final RpcResult<T> interInput) throws Exception {
-                        resultPair.setLeft(interInput);
-                        final SendBarrierInput barrierInput = createSendBarrierInput(nodeRef);
-                        return JdkFutureAdapters.listenInPoolThread(transactionService.sendBarrier(barrierInput));
-                    }
-                });
+        final ListenableFuture<RpcResult<Void>> barrierResult = Futures.transformAsync(input,
+            interInput -> {
+                resultPair.setLeft(interInput);
+                final SendBarrierInput barrierInput = createSendBarrierInput(nodeRef);
+                return JdkFutureAdapters.listenInPoolThread(transactionService.sendBarrier(barrierInput));
+            }, MoreExecutors.directExecutor());
         // store barrier result and return initiated pair
         final ListenableFuture<Pair<RpcResult<T>, RpcResult<Void>>> compositeResult = Futures.transform(
                 barrierResult, new Function<RpcResult<Void>, Pair<RpcResult<T>, RpcResult<Void>>>() {
@@ -79,6 +72,8 @@ public final class BarrierUtil {
     }
 
     /**
+     * Creates barrier input.
+     *
      * @param nodeRef rpc routing context
      * @return input for {@link FlowCapableTransactionService#sendBarrier(SendBarrierInput)}
      */