Remove FluentFuture from DOM RPC contracts 33/80933/9
authorRobert Varga <robert.varga@pantheon.tech>
Sat, 16 Mar 2019 12:01:58 +0000 (13:01 +0100)
committerJie Han <han.jie@zte.com.cn>
Wed, 20 Mar 2019 03:05:56 +0000 (03:05 +0000)
FluentFuture cannot be proxied in Guava 27.0, hence we need to drop
to using ListenableFuture to efficiently shortcut invocations.

Change-Id: Ib89742760e0bbfdb6c46aa4bbf99ea35f5823c8b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
16 files changed:
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/ActionAdapter.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/ActionProviderServiceAdapter.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/ActionServiceAdapter.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMRpcImplementationAdapter.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingOperationFluentFuture.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/LazyDOMRpcResultFuture.java
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/ActionServiceAdapterTest.java
binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/Action.java
binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/KeyedListAction.java
dom/mdsal-dom-api/src/main/java/org/opendaylight/mdsal/dom/api/DOMActionImplementation.java
dom/mdsal-dom-api/src/main/java/org/opendaylight/mdsal/dom/api/DOMActionService.java
dom/mdsal-dom-api/src/main/java/org/opendaylight/mdsal/dom/api/DOMRpcImplementation.java
dom/mdsal-dom-api/src/main/java/org/opendaylight/mdsal/dom/api/DOMRpcService.java
dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/DOMRpcRouter.java
dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/ForwardingDOMRpcImplementation.java
dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/ForwardingDOMRpcService.java

index 2711e35cf886c93c9f354837489b598c75b0f220..5f0d38fc670bb6a112ddf4cc7d29a6b9a0657930 100644 (file)
@@ -11,8 +11,8 @@ import static java.util.Objects.requireNonNull;
 import static org.opendaylight.mdsal.binding.dom.adapter.StaticConfiguration.ENABLE_CODEC_SHORTCUT;
 import static org.opendaylight.yangtools.yang.common.YangConstants.operationInputQName;
 
-import com.google.common.util.concurrent.FluentFuture;
 import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.MoreExecutors;
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;
@@ -64,7 +64,7 @@ final class ActionAdapter extends AbstractBindingAdapter<DOMActionService> imple
                 if (args.length == 2) {
                     final InstanceIdentifier<?> path = (InstanceIdentifier<?>) requireNonNull(args[0]);
                     final RpcInput input = (RpcInput) requireNonNull(args[1]);
-                    final FluentFuture<? extends DOMActionResult> future = getDelegate().invokeAction(schemaPath,
+                    final ListenableFuture<? extends DOMActionResult> future = getDelegate().invokeAction(schemaPath,
                         new DOMDataTreeIdentifier(LogicalDatastoreType.OPERATIONAL, getCodec().toNormalized(path)),
                         getCodec().toLazyNormalizedNodeActionInput(type, inputName, input));
 
index 29d51d918b65b0fea17e121286d2fc5acb77dc2b..ee4663240b93521a424ebfe5c1e50f641a25e212 100644 (file)
@@ -12,7 +12,7 @@ import static java.util.Objects.requireNonNull;
 import com.google.common.annotations.Beta;
 import com.google.common.collect.ClassToInstanceMap;
 import com.google.common.collect.ImmutableSet;
-import com.google.common.util.concurrent.FluentFuture;
+import com.google.common.util.concurrent.ListenableFuture;
 import java.util.Set;
 import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.eclipse.jdt.annotation.Nullable;
@@ -102,9 +102,9 @@ public final class ActionProviderServiceAdapter extends AbstractBindingAdapter<D
 
         @Override
         @SuppressWarnings({ "rawtypes", "unchecked" })
-        public FluentFuture<? extends DOMActionResult> invokeAction(final SchemaPath type,
+        public ListenableFuture<? extends DOMActionResult> invokeAction(final SchemaPath type,
                 final DOMDataTreeIdentifier path, final ContainerNode input) {
-            final FluentFuture<RpcResult<?>> userFuture = implementation.invoke(
+            final ListenableFuture<RpcResult<?>> userFuture = implementation.invoke(
                 codec.fromYangInstanceIdentifier(path.getRootIdentifier()),
                 codec.fromNormalizedNodeActionInput(actionInterface, input));
             if (userFuture instanceof BindingOperationFluentFuture) {
index faa518171169d117cff812b0c7c6b995e9a6846b..72f7276801522e213cd9d358ebff10963ebd961d 100644 (file)
@@ -14,7 +14,7 @@ import static java.util.Objects.requireNonNull;
 import com.google.common.annotations.Beta;
 import com.google.common.collect.ClassToInstanceMap;
 import com.google.common.collect.ImmutableSet;
-import com.google.common.util.concurrent.FluentFuture;
+import com.google.common.util.concurrent.ListenableFuture;
 import java.lang.reflect.Proxy;
 import java.util.Set;
 import org.eclipse.jdt.annotation.NonNullByDefault;
@@ -65,7 +65,7 @@ public final class ActionServiceAdapter
         }
 
         @Override
-        public FluentFuture<RpcResult<RpcOutput>> invoke(final InstanceIdentifier<?> path, final RpcInput input) {
+        public ListenableFuture<RpcResult<RpcOutput>> invoke(final InstanceIdentifier<?> path, final RpcInput input) {
             checkState(nodes.contains(DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL, path)),
                 "Cannot service %s", path);
             return delegate.invoke(path, input);
index c8428c843473cb686434a53d07180fe6b3e6a599..1cd70ed0904ee2b033bbc39c417ef4cb9ed4d243 100644 (file)
@@ -12,7 +12,6 @@ import static org.opendaylight.mdsal.binding.dom.adapter.StaticConfiguration.ENA
 
 import com.google.common.cache.Cache;
 import com.google.common.cache.CacheBuilder;
-import com.google.common.util.concurrent.FluentFuture;
 import com.google.common.util.concurrent.ListenableFuture;
 import java.lang.reflect.Method;
 import java.util.HashMap;
@@ -67,7 +66,7 @@ public class BindingDOMRpcImplementationAdapter implements DOMRpcImplementation
     }
 
     @Override
-    public FluentFuture<DOMRpcResult> invokeRpc(final DOMRpcIdentifier rpc, final NormalizedNode<?, ?> input) {
+    public ListenableFuture<DOMRpcResult> invokeRpc(final DOMRpcIdentifier rpc, final NormalizedNode<?, ?> input) {
         final SchemaPath schemaPath = rpc.getType();
         final DataObject bindingInput = input != null ? deserialize(rpc.getType(), input) : null;
         final ListenableFuture<RpcResult<?>> bindingResult = invoke(schemaPath, bindingInput);
index 80bbd7e5f93821396e1c531f4d4bf45c95a34d3b..9e79b8d73258ff42d6ffbb99397621a0b4c08450 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.mdsal.binding.dom.adapter;
 import static java.util.Objects.requireNonNull;
 
 import com.google.common.util.concurrent.AbstractFuture;
-import com.google.common.util.concurrent.FluentFuture;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.MoreExecutors;
@@ -31,7 +30,7 @@ final class BindingOperationFluentFuture<O extends RpcOutput> extends AbstractFu
 
     private BindingNormalizedNodeSerializer codec;
 
-    BindingOperationFluentFuture(final FluentFuture<RpcResult<O>> userFuture,
+    BindingOperationFluentFuture(final ListenableFuture<RpcResult<O>> userFuture,
             final Class<? extends Action<?, ?, O>> action, final NodeIdentifier identifier,
             final BindingNormalizedNodeSerializer codec) {
         this.userFuture = requireNonNull(userFuture);
index ad2516e8bb879d5f90672da3cf91b54fb9943a66..1614e5bcdede703d93f85f3e0dbb1fb70237bbfd 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.mdsal.binding.dom.adapter;
 import static java.util.Objects.requireNonNull;
 
 import com.google.common.util.concurrent.AbstractFuture;
-import com.google.common.util.concurrent.FluentFuture;
 import com.google.common.util.concurrent.ListenableFuture;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Executor;
@@ -47,7 +46,7 @@ final class LazyDOMRpcResultFuture extends AbstractFuture<DOMRpcResult> implemen
         this.codec = requireNonNull(codec, "codec");
     }
 
-    static @NonNull FluentFuture<DOMRpcResult> create(final BindingNormalizedNodeCodecRegistry codec,
+    static @NonNull LazyDOMRpcResultFuture create(final BindingNormalizedNodeCodecRegistry codec,
             final ListenableFuture<RpcResult<?>> bindingResult) {
         return new LazyDOMRpcResultFuture(bindingResult, codec);
     }
index 78949aae38af07086d1dfdc98dfe751991bd571a..214d1ed87f2bd6900afbfb19394fec91524443ae 100644 (file)
@@ -19,8 +19,8 @@ import static org.opendaylight.yangtools.yang.data.impl.schema.Builders.leafBuil
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
-import com.google.common.util.concurrent.FluentFuture;
 import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.SettableFuture;
 import java.util.concurrent.ExecutionException;
 import org.junit.Before;
@@ -77,7 +77,7 @@ public class ActionServiceAdapterTest extends AbstractAdapterTest {
     @Test
     public void testInvocation() throws ExecutionException {
         final Foo handle = service.getActionHandle(Foo.class, ImmutableSet.of());
-        final FluentFuture<RpcResult<Output>> future = handle.invoke(InstanceIdentifier.create(Cont.class),
+        final ListenableFuture<RpcResult<Output>> future = handle.invoke(InstanceIdentifier.create(Cont.class),
             BINDING_FOO_INPUT);
         assertNotNull(future);
         assertFalse(future.isDone());
index e77d65800bdfc82e22c86f954d097e214d9ad0a8..131ed74e1cd2daa08fbb51fdcda2b2d8088f020f 100644 (file)
@@ -8,7 +8,7 @@
 package org.opendaylight.yangtools.yang.binding;
 
 import com.google.common.annotations.Beta;
-import com.google.common.util.concurrent.FluentFuture;
+import com.google.common.util.concurrent.ListenableFuture;
 import javax.annotation.CheckReturnValue;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.RpcResult;
@@ -30,5 +30,5 @@ public interface Action<P extends InstanceIdentifier<?>, I extends RpcInput, O e
      * @throws NullPointerException if any of the arguments are null
      */
     @CheckReturnValue
-    @NonNull FluentFuture<@NonNull RpcResult<@NonNull O>> invoke(@NonNull P path, @NonNull I input);
+    @NonNull ListenableFuture<@NonNull RpcResult<@NonNull O>> invoke(@NonNull P path, @NonNull I input);
 }
index f7c31d0f216f54f5bc411d93f35d5e3cba314b63..c9ac4f1302c4c4dbb90d12e278e476c5942e4c4d 100644 (file)
@@ -8,7 +8,7 @@
 package org.opendaylight.yangtools.yang.binding;
 
 import com.google.common.annotations.Beta;
-import com.google.common.util.concurrent.FluentFuture;
+import com.google.common.util.concurrent.ListenableFuture;
 import javax.annotation.CheckReturnValue;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 
@@ -23,5 +23,5 @@ public interface KeyedListAction<K extends Identifier<T>, T extends DataObject &
         I extends RpcInput, O extends RpcOutput> extends Action<KeyedInstanceIdentifier<T, K>, I, O> {
     @Override
     @CheckReturnValue
-    FluentFuture<RpcResult<O>> invoke(KeyedInstanceIdentifier<T, K> path, I input);
+    ListenableFuture<RpcResult<O>> invoke(KeyedInstanceIdentifier<T, K> path, I input);
 }
index 678e8496b606341ea26ac49fdf6e0c5accf14ed0..3583247046ee9651b67af2709bdff8b91cc5d9c7 100644 (file)
@@ -8,7 +8,7 @@
 package org.opendaylight.mdsal.dom.api;
 
 import com.google.common.annotations.Beta;
-import com.google.common.util.concurrent.FluentFuture;
+import com.google.common.util.concurrent.ListenableFuture;
 import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.StoreTreeNode;
@@ -34,7 +34,7 @@ public interface DOMActionImplementation {
      * @return A FluentFuture which completes with the result of invocation
      * @throws NullPointerException if any of the arguments is null
      */
-    FluentFuture<? extends DOMActionResult> invokeAction(SchemaPath type, DOMDataTreeIdentifier path,
+    ListenableFuture<? extends DOMActionResult> invokeAction(SchemaPath type, DOMDataTreeIdentifier path,
             ContainerNode input);
 
     /**
index 94117732501ac9fe8c0e0401c3d589bdd35859f4..75499fed94f14122694969dc3f835f7b80994a44 100644 (file)
@@ -8,7 +8,7 @@
 package org.opendaylight.mdsal.dom.api;
 
 import com.google.common.annotations.Beta;
-import com.google.common.util.concurrent.FluentFuture;
+import com.google.common.util.concurrent.ListenableFuture;
 import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.StoreTreeNode;
@@ -33,6 +33,6 @@ public interface DOMActionService extends DOMExtensibleService<DOMActionService,
      * @return A FluentFuture which completes with the result of invocation
      * @throws NullPointerException if any of the arguments is null
      */
-    FluentFuture<? extends DOMActionResult> invokeAction(SchemaPath type, DOMDataTreeIdentifier path,
+    ListenableFuture<? extends DOMActionResult> invokeAction(SchemaPath type, DOMDataTreeIdentifier path,
             ContainerNode input);
 }
index 5cef886787a5158c0187cdcbda5ff6ba128a13ae..12653a8bba518342a32bceef26db0f4f0a0bd13b 100644 (file)
@@ -7,7 +7,7 @@
  */
 package org.opendaylight.mdsal.dom.api;
 
-import com.google.common.util.concurrent.FluentFuture;
+import com.google.common.util.concurrent.ListenableFuture;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
@@ -23,12 +23,13 @@ public interface DOMRpcImplementation {
      *
      * @param rpc RPC identifier which was invoked
      * @param input Input arguments, null if the RPC does not take any.
-     * @return A {@link FluentFuture} which will return either a result structure,
+     * @return A {@link ListenableFuture} which will return either a result structure,
      *         or report a subclass of {@link DOMRpcException} reporting a transport
      *         error.
      */
     // FIXME: 4.0.0: do not allow null input
-    @NonNull FluentFuture<DOMRpcResult> invokeRpc(@NonNull DOMRpcIdentifier rpc, @Nullable NormalizedNode<?, ?> input);
+    @NonNull ListenableFuture<DOMRpcResult> invokeRpc(@NonNull DOMRpcIdentifier rpc,
+            @Nullable NormalizedNode<?, ?> input);
 
     /**
      * Return the relative invocation cost of this implementation. Default implementation return 0.
index 7b23ee73590f2af61e5f8119064424e26b11d8a5..fe02e06a8f278b8c10cd891f104a4028bf520656 100644 (file)
@@ -7,7 +7,7 @@
  */
 package org.opendaylight.mdsal.dom.api;
 
-import com.google.common.util.concurrent.FluentFuture;
+import com.google.common.util.concurrent.ListenableFuture;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.concepts.ListenerRegistration;
@@ -27,11 +27,11 @@ public interface DOMRpcService extends DOMService {
      *
      * @param type SchemaPath of the RPC to be invoked
      * @param input Input arguments, null if the RPC does not take any.
-     * @return A {@link FluentFuture} which will return either a result structure, or report a subclass
+     * @return A {@link ListenableFuture} which will return either a result structure, or report a subclass
      *         of {@link DOMRpcException} reporting a transport error.
      */
     // FIXME: 4.0.0: do not allow null input
-    @NonNull FluentFuture<DOMRpcResult> invokeRpc(@NonNull SchemaPath type, @Nullable NormalizedNode<?, ?> input);
+    @NonNull ListenableFuture<DOMRpcResult> invokeRpc(@NonNull SchemaPath type, @Nullable NormalizedNode<?, ?> input);
 
     /**
      * Register a {@link DOMRpcAvailabilityListener} with this service to receive notifications
index f0215481c67ecf575700aa1b7c7d2b6752f9f0d7..1f9ce4c809fec5c6ccb366a0ad9f2c86c3a702cf 100644 (file)
@@ -21,7 +21,8 @@ import com.google.common.collect.MapDifference;
 import com.google.common.collect.MapDifference.ValueDifference;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
-import com.google.common.util.concurrent.FluentFuture;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.ThreadFactoryBuilder;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -63,7 +64,6 @@ import org.opendaylight.yangtools.concepts.AbstractObjectRegistration;
 import org.opendaylight.yangtools.concepts.AbstractRegistration;
 import org.opendaylight.yangtools.concepts.ListenerRegistration;
 import org.opendaylight.yangtools.concepts.ObjectRegistration;
-import org.opendaylight.yangtools.util.concurrent.FluentFutures;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
@@ -371,11 +371,11 @@ public final class DOMRpcRouter extends AbstractRegistration implements SchemaCo
         }
 
         @Override
-        public FluentFuture<? extends DOMActionResult> invokeAction(final SchemaPath type,
+        public ListenableFuture<? extends DOMActionResult> invokeAction(final SchemaPath type,
                 final DOMDataTreeIdentifier path, final ContainerNode input) {
             final DOMActionRoutingTableEntry entry = (DOMActionRoutingTableEntry) actionRoutingTable.getEntry(type);
             if (entry == null) {
-                return FluentFutures.immediateFailedFluentFuture(
+                return Futures.immediateFailedFuture(
                     new DOMActionNotAvailableException("No implementation of Action %s available", type));
             }
 
@@ -413,10 +413,10 @@ public final class DOMRpcRouter extends AbstractRegistration implements SchemaCo
 
     private final class RpcServiceFacade implements DOMRpcService {
         @Override
-        public FluentFuture<DOMRpcResult> invokeRpc(final SchemaPath type, final NormalizedNode<?, ?> input) {
+        public ListenableFuture<DOMRpcResult> invokeRpc(final SchemaPath type, final NormalizedNode<?, ?> input) {
             final AbstractDOMRpcRoutingTableEntry entry = (AbstractDOMRpcRoutingTableEntry) routingTable.getEntry(type);
             if (entry == null) {
-                return FluentFutures.immediateFailedFluentFuture(
+                return Futures.immediateFailedFuture(
                     new DOMRpcImplementationNotAvailableException("No implementation of RPC %s available", type));
             }
 
@@ -470,15 +470,15 @@ public final class DOMRpcRouter extends AbstractRegistration implements SchemaCo
     static final class OperationInvocation {
         private static final Logger LOG = LoggerFactory.getLogger(OperationInvocation.class);
 
-        static FluentFuture<? extends DOMActionResult> invoke(final DOMActionRoutingTableEntry entry,
+        static ListenableFuture<? extends DOMActionResult> invoke(final DOMActionRoutingTableEntry entry,
                 final SchemaPath type, final DOMDataTreeIdentifier path, final ContainerNode input) {
             return entry.getImplementations(path).get(0).invokeAction(type, path, input);
         }
 
-        static FluentFuture<DOMRpcResult> invoke(final AbstractDOMRpcRoutingTableEntry entry,
+        static ListenableFuture<DOMRpcResult> invoke(final AbstractDOMRpcRoutingTableEntry entry,
                 final NormalizedNode<?, ?> input) {
             if (entry instanceof UnknownDOMRpcRoutingTableEntry) {
-                return FluentFutures.immediateFailedFluentFuture(
+                return Futures.immediateFailedFuture(
                     new DOMRpcImplementationNotAvailableException("SchemaPath %s is not resolved to an RPC",
                         entry.getType()));
             } else if (entry instanceof RoutedDOMRpcRoutingTableEntry) {
@@ -487,11 +487,11 @@ public final class DOMRpcRouter extends AbstractRegistration implements SchemaCo
                 return invokeGlobalRpc((GlobalDOMRpcRoutingTableEntry) entry, input);
             }
 
-            return FluentFutures.immediateFailedFluentFuture(
+            return Futures.immediateFailedFuture(
                 new DOMRpcImplementationNotAvailableException("Unsupported RPC entry."));
         }
 
-        private static FluentFuture<DOMRpcResult> invokeRoutedRpc(final RoutedDOMRpcRoutingTableEntry entry,
+        private static ListenableFuture<DOMRpcResult> invokeRoutedRpc(final RoutedDOMRpcRoutingTableEntry entry,
                 final NormalizedNode<?, ?> input) {
             final Optional<NormalizedNode<?, ?>> maybeKey = NormalizedNodes.findNode(input,
                 entry.getRpcId().getContextReference());
@@ -532,12 +532,12 @@ public final class DOMRpcRouter extends AbstractRegistration implements SchemaCo
                 return impls.get(0).invokeRpc(entry.getRpcId(), input);
             }
 
-            return FluentFutures.immediateFailedFluentFuture(
+            return Futures.immediateFailedFuture(
                 new DOMRpcImplementationNotAvailableException("No implementation of RPC %s available",
                     entry.getType()));
         }
 
-        private static FluentFuture<DOMRpcResult> invokeGlobalRpc(final GlobalDOMRpcRoutingTableEntry entry,
+        private static ListenableFuture<DOMRpcResult> invokeGlobalRpc(final GlobalDOMRpcRoutingTableEntry entry,
                 final NormalizedNode<?, ?> input) {
             return entry.getImplementations(YangInstanceIdentifier.EMPTY).get(0).invokeRpc(entry.getRpcId(), input);
         }
index 7eb723933beb8dab2371c90d768bf62021f847c8..95af1e33e83ad9f77685649142e1f8ce0e3e85ad 100644 (file)
@@ -8,7 +8,7 @@
 package org.opendaylight.mdsal.dom.spi;
 
 import com.google.common.collect.ForwardingObject;
-import com.google.common.util.concurrent.FluentFuture;
+import com.google.common.util.concurrent.ListenableFuture;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.mdsal.dom.api.DOMRpcIdentifier;
 import org.opendaylight.mdsal.dom.api.DOMRpcImplementation;
@@ -24,7 +24,7 @@ public abstract class ForwardingDOMRpcImplementation extends ForwardingObject im
     protected abstract @NonNull DOMRpcImplementation delegate();
 
     @Override
-    public FluentFuture<DOMRpcResult> invokeRpc(final DOMRpcIdentifier type, final NormalizedNode<?, ?> input) {
+    public ListenableFuture<DOMRpcResult> invokeRpc(final DOMRpcIdentifier type, final NormalizedNode<?, ?> input) {
         return delegate().invokeRpc(type, input);
     }
 }
index dc9b68cca234d78892da09b300ab6feb775446aa..a13bd43bc0f31e8dabc2ff536f96276acd12e2f6 100644 (file)
@@ -8,7 +8,7 @@
 package org.opendaylight.mdsal.dom.spi;
 
 import com.google.common.collect.ForwardingObject;
-import com.google.common.util.concurrent.FluentFuture;
+import com.google.common.util.concurrent.ListenableFuture;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.mdsal.dom.api.DOMRpcAvailabilityListener;
 import org.opendaylight.mdsal.dom.api.DOMRpcResult;
@@ -25,7 +25,7 @@ public abstract class ForwardingDOMRpcService extends ForwardingObject implement
     protected abstract @NonNull DOMRpcService delegate();
 
     @Override
-    public FluentFuture<DOMRpcResult> invokeRpc(final SchemaPath type, final NormalizedNode<?, ?> input) {
+    public ListenableFuture<DOMRpcResult> invokeRpc(final SchemaPath type, final NormalizedNode<?, ?> input) {
         return delegate().invokeRpc(type, input);
     }