diff options
Diffstat (limited to 'infra/rpc')
5 files changed, 17 insertions, 21 deletions
diff --git a/infra/rpc/api/src/main/java/io/fd/honeycomb/rpc/RpcException.java b/infra/rpc/api/src/main/java/io/fd/honeycomb/rpc/RpcException.java index 907ce6c15..72d1a8835 100644 --- a/infra/rpc/api/src/main/java/io/fd/honeycomb/rpc/RpcException.java +++ b/infra/rpc/api/src/main/java/io/fd/honeycomb/rpc/RpcException.java @@ -17,7 +17,7 @@ package io.fd.honeycomb.rpc; import com.google.common.annotations.Beta; -import org.opendaylight.controller.md.sal.dom.api.DOMRpcException; +import org.opendaylight.mdsal.dom.api.DOMRpcException; @Beta public class RpcException extends DOMRpcException { diff --git a/infra/rpc/impl/src/main/java/io/fd/honeycomb/rpc/HoneycombDOMRpcService.java b/infra/rpc/impl/src/main/java/io/fd/honeycomb/rpc/HoneycombDOMRpcService.java index d951ff962..49a8b4346 100644 --- a/infra/rpc/impl/src/main/java/io/fd/honeycomb/rpc/HoneycombDOMRpcService.java +++ b/infra/rpc/impl/src/main/java/io/fd/honeycomb/rpc/HoneycombDOMRpcService.java @@ -18,19 +18,18 @@ package io.fd.honeycomb.rpc; import static net.javacrumbs.futureconverter.java8guava.FutureConverter.toListenableFuture; -import com.google.common.base.Function; -import com.google.common.util.concurrent.CheckedFuture; +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.util.concurrent.CompletableFuture; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import org.opendaylight.controller.md.sal.dom.api.DOMRpcAvailabilityListener; -import org.opendaylight.controller.md.sal.dom.api.DOMRpcException; -import org.opendaylight.controller.md.sal.dom.api.DOMRpcResult; -import org.opendaylight.controller.md.sal.dom.api.DOMRpcService; -import org.opendaylight.controller.md.sal.dom.spi.DefaultDOMRpcResult; import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer; +import org.opendaylight.mdsal.dom.api.DOMRpcAvailabilityListener; +import org.opendaylight.mdsal.dom.api.DOMRpcResult; +import org.opendaylight.mdsal.dom.api.DOMRpcService; +import org.opendaylight.mdsal.dom.spi.DefaultDOMRpcResult; import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; @@ -39,9 +38,6 @@ import org.opendaylight.yangtools.yang.model.api.SchemaPath; public final class HoneycombDOMRpcService implements DOMRpcService { - private static final Function<? super Exception, DOMRpcException> ANY_EX_TO_RPC_EXCEPTION_MAPPER = - e -> (e instanceof DOMRpcException) ? (DOMRpcException) e : new RpcException("RPC failed", e); - private final BindingNormalizedNodeSerializer serializer; private final RpcRegistry rpcRegistry; @@ -53,8 +49,8 @@ public final class HoneycombDOMRpcService implements DOMRpcService { @Nonnull @Override - public CheckedFuture<DOMRpcResult, DOMRpcException> invokeRpc(@Nonnull final SchemaPath schemaPath, - @Nullable final NormalizedNode<?, ?> normalizedNode) { + public FluentFuture<DOMRpcResult> invokeRpc(@Nonnull final SchemaPath schemaPath, + @Nullable final NormalizedNode<?, ?> normalizedNode) { DataObject input = null; if (normalizedNode != null) { // RPC input is optional @@ -63,7 +59,7 @@ public final class HoneycombDOMRpcService implements DOMRpcService { } final CompletableFuture<DataObject> result = rpcRegistry.invoke(schemaPath, input).toCompletableFuture(); final ListenableFuture<DOMRpcResult> output = getDOMRpcResult(toListenableFuture(result)); - return Futures.makeChecked(output, ANY_EX_TO_RPC_EXCEPTION_MAPPER); + return FluentFuture.from(output); } private ListenableFuture<DOMRpcResult> getDOMRpcResult(final ListenableFuture<DataObject> invoke) { @@ -76,7 +72,7 @@ public final class HoneycombDOMRpcService implements DOMRpcService { outputNode = serializer.toNormalizedNodeRpcData(output); } return new DefaultDOMRpcResult(outputNode); - }); + }, MoreExecutors.directExecutor()); } @Nonnull diff --git a/infra/rpc/impl/src/main/java/io/fd/honeycomb/rpc/RpcRegistryBuilder.java b/infra/rpc/impl/src/main/java/io/fd/honeycomb/rpc/RpcRegistryBuilder.java index ca6441ee8..aba79ad13 100644 --- a/infra/rpc/impl/src/main/java/io/fd/honeycomb/rpc/RpcRegistryBuilder.java +++ b/infra/rpc/impl/src/main/java/io/fd/honeycomb/rpc/RpcRegistryBuilder.java @@ -22,7 +22,7 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletionStage; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import org.opendaylight.controller.md.sal.dom.api.DOMRpcImplementationNotAvailableException; +import org.opendaylight.mdsal.dom.api.DOMRpcImplementationNotAvailableException; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.slf4j.Logger; diff --git a/infra/rpc/impl/src/test/java/io/fd/honeycomb/rpc/HoneycombDOMRpcServiceTest.java b/infra/rpc/impl/src/test/java/io/fd/honeycomb/rpc/HoneycombDOMRpcServiceTest.java index 7b27fec4e..c47590887 100644 --- a/infra/rpc/impl/src/test/java/io/fd/honeycomb/rpc/HoneycombDOMRpcServiceTest.java +++ b/infra/rpc/impl/src/test/java/io/fd/honeycomb/rpc/HoneycombDOMRpcServiceTest.java @@ -22,6 +22,7 @@ import static org.mockito.Mockito.when; import java.net.URI; import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; import org.junit.Before; import org.junit.Test; import org.mockito.ArgumentMatchers; @@ -74,13 +75,13 @@ public class HoneycombDOMRpcServiceTest { assertEquals(outputBi, service.invokeRpc(path, node).get().getResult()); } - @Test(expected = RpcException.class) + @Test(expected = ExecutionException.class) public void testInvokeRpcFailed() throws Exception { final CompletableFuture future = new CompletableFuture(); future.completeExceptionally(new RuntimeException()); when(registry.invoke(path, input)).thenReturn(future); - service.invokeRpc(path, node).checkedGet(); + service.invokeRpc(path, node).get(); } private ContainerNode mockContainerNode(final QName nn1) { diff --git a/infra/rpc/impl/src/test/java/io/fd/honeycomb/rpc/RpcRegistryBuilderTest.java b/infra/rpc/impl/src/test/java/io/fd/honeycomb/rpc/RpcRegistryBuilderTest.java index d021555b8..4c7686fa1 100644 --- a/infra/rpc/impl/src/test/java/io/fd/honeycomb/rpc/RpcRegistryBuilderTest.java +++ b/infra/rpc/impl/src/test/java/io/fd/honeycomb/rpc/RpcRegistryBuilderTest.java @@ -20,13 +20,12 @@ import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.net.URI; -import java.util.concurrent.ExecutionException; import org.junit.Before; import org.junit.Test; import org.mockito.ArgumentMatchers; import org.mockito.Mock; import org.mockito.Mockito; -import org.opendaylight.controller.md.sal.dom.api.DOMRpcImplementationNotAvailableException; +import org.opendaylight.mdsal.dom.api.DOMRpcImplementationNotAvailableException; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.SchemaPath; @@ -68,7 +67,7 @@ public class RpcRegistryBuilderTest { } @Test - public void testServiceNotFound() throws ExecutionException, InterruptedException { + public void testServiceNotFound() { final SchemaPath id = SchemaPath.ROOT.createChild(QName.create(namespace, "c")); final DataObject request = Mockito.mock(DataObject.class); |