From: Robert Varga Date: Wed, 28 Feb 2024 07:15:36 +0000 (+0100) Subject: Do no implement invokeNetconf() as a default method X-Git-Tag: v7.0.0~1 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=1d6e9d80cc41e7d500635b2b961427d5f0fb2aff;p=netconf.git Do no implement invokeNetconf() as a default method We need to split the invokeRpc() and invokeNetconf() implementations, this takes the first step. JIRA: NETCONF-806 Change-Id: I4b6af534dcdf733c29e6dfc03e379a040e72aa8b Signed-off-by: Robert Varga --- diff --git a/apps/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/actors/NetconfNodeActor.java b/apps/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/actors/NetconfNodeActor.java index 12b8350372..c58716c2aa 100644 --- a/apps/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/actors/NetconfNodeActor.java +++ b/apps/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/actors/NetconfNodeActor.java @@ -333,7 +333,18 @@ public class NetconfNodeActor extends AbstractUntypedActor { final var rpcProxy = new ProxyDOMRpcService(actorSystem, masterReference, id, actorResponseWaitTime); slaveSalManager.registerSlaveMountPoint(result, masterReference, new RemoteDeviceServices( - (Rpcs.Normalized) () -> rpcProxy, + new Rpcs.Normalized() { + @Override + public ListenableFuture invokeNetconf(final QName type, + final ContainerNode input) { + return rpcProxy.invokeRpc(type, input); + } + + @Override + public DOMRpcService domRpcService() { + return rpcProxy; + } + }, new ProxyDOMActionService(actorSystem, masterReference, id, actorResponseWaitTime))); } }); diff --git a/apps/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/MountPointEndToEndTest.java b/apps/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/MountPointEndToEndTest.java index b3989112f5..e49ce7f5a6 100644 --- a/apps/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/MountPointEndToEndTest.java +++ b/apps/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/MountPointEndToEndTest.java @@ -255,7 +255,17 @@ public class MountPointEndToEndTest extends AbstractBaseSchemasTest { DOMRpcIdentifier.create(putTopRpcSchemaPath), DOMRpcIdentifier.create(getTopRpcSchemaPath)); final var rpcService = router.rpcService(); - deviceRpcService = () -> rpcService; + deviceRpcService = new Rpcs.Normalized() { + @Override + public ListenableFuture invokeNetconf(final QName type, final ContainerNode input) { + return rpcService.invokeRpc(type, input); + } + + @Override + public DOMRpcService domRpcService() { + return rpcService; + } + }; builderFactory = new NetconfClientConfigurationBuilderFactoryImpl(mockEncryptionService, credentialProvider, sslHandlerFactoryProvider); diff --git a/plugins/netconf-client-mdsal/src/main/java/org/opendaylight/netconf/client/mdsal/api/RemoteDeviceServices.java b/plugins/netconf-client-mdsal/src/main/java/org/opendaylight/netconf/client/mdsal/api/RemoteDeviceServices.java index 64d40aec8f..2f16959973 100644 --- a/plugins/netconf-client-mdsal/src/main/java/org/opendaylight/netconf/client/mdsal/api/RemoteDeviceServices.java +++ b/plugins/netconf-client-mdsal/src/main/java/org/opendaylight/netconf/client/mdsal/api/RemoteDeviceServices.java @@ -9,14 +9,10 @@ package org.opendaylight.netconf.client.mdsal.api; import static java.util.Objects.requireNonNull; -import com.google.common.util.concurrent.ListenableFuture; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.mdsal.dom.api.DOMActionService; -import org.opendaylight.mdsal.dom.api.DOMRpcResult; import org.opendaylight.mdsal.dom.api.DOMRpcService; -import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; /** * Set of interfaces exposed by a {@link RemoteDevice}. @@ -35,11 +31,6 @@ public record RemoteDeviceServices(@NonNull Rpcs rpcs, @Nullable Actions actions * NETCONF device RPCs operating just as any other {@link DOMRpcService}. */ non-sealed interface Normalized extends Rpcs { - @Override - default ListenableFuture invokeNetconf(final QName type, - final ContainerNode input) { - return domRpcService().invokeRpc(type, input); - } @NonNull DOMRpcService domRpcService(); } diff --git a/plugins/netconf-client-mdsal/src/main/java/org/opendaylight/netconf/client/mdsal/spi/NetconfDeviceRpc.java b/plugins/netconf-client-mdsal/src/main/java/org/opendaylight/netconf/client/mdsal/spi/NetconfDeviceRpc.java index 63e965a05a..c434e2dca3 100644 --- a/plugins/netconf-client-mdsal/src/main/java/org/opendaylight/netconf/client/mdsal/spi/NetconfDeviceRpc.java +++ b/plugins/netconf-client-mdsal/src/main/java/org/opendaylight/netconf/client/mdsal/spi/NetconfDeviceRpc.java @@ -7,12 +7,14 @@ */ package org.opendaylight.netconf.client.mdsal.spi; +import com.google.common.util.concurrent.ListenableFuture; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.dom.api.DOMRpcResult; import org.opendaylight.mdsal.dom.api.DOMRpcService; import org.opendaylight.netconf.client.mdsal.api.RemoteDeviceCommunicator; import org.opendaylight.netconf.client.mdsal.api.RemoteDeviceServices.Rpcs; import org.opendaylight.netconf.client.mdsal.api.RpcTransformer; +import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; @@ -28,6 +30,11 @@ public final class NetconfDeviceRpc implements Rpcs.Normalized { domRpcService = new NetconfDeviceDOMRpcService(modelContext, communicator, transformer); } + @Override + public ListenableFuture invokeNetconf(final QName type, final ContainerNode input) { + return domRpcService().invokeRpc(type, input); + } + @Override public DOMRpcService domRpcService() { return domRpcService;