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;
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));
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;
@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) {
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;
}
@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);
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;
}
@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);
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;
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);
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;
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);
}
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;
@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());
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;
* @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);
}
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;
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);
}
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;
* @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);
/**
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;
* @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);
}
*/
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;
*
* @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.
*/
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;
*
* @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
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;
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;
}
@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));
}
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));
}
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) {
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());
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);
}
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;
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);
}
}
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;
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);
}