From: Robert Varga Date: Tue, 20 Dec 2022 17:50:48 +0000 (+0100) Subject: Split up MessageTransformer X-Git-Tag: v5.0.0~51 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F23%2F103723%2F3;p=netconf.git Split up MessageTransformer We have three groups of methods in one interface and we need to correctly separate their implementations, as not everything can be a DOMRpcResult. JIRA: NETCONF-669 Change-Id: I39452c7050cd5c7da46910f708d37ef17caac279 Signed-off-by: Robert Varga --- diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/api/MessageTransformer.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/api/ActionTransformer.java similarity index 55% rename from netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/api/MessageTransformer.java rename to netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/api/ActionTransformer.java index c387e2d80c..ac2eec8590 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/api/MessageTransformer.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/api/ActionTransformer.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved. + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, @@ -9,21 +9,14 @@ package org.opendaylight.netconf.sal.connect.api; import org.opendaylight.mdsal.dom.api.DOMActionResult; import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier; -import org.opendaylight.mdsal.dom.api.DOMNotification; -import org.opendaylight.mdsal.dom.api.DOMRpcResult; import org.opendaylight.netconf.api.NetconfMessage; -import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute; -public interface MessageTransformer { - - DOMNotification toNotification(NetconfMessage message); - - NetconfMessage toRpcRequest(QName rpc, NormalizedNode node); - - DOMRpcResult toRpcResult(NetconfMessage message, QName rpc); - +/** + * Interface for transforming NETCONF device action request/response messages. + */ +public interface ActionTransformer { /** * Parse action into message for request. * @@ -32,10 +25,8 @@ public interface MessageTransformer { * @param payload - input of action * @return message */ - default NetconfMessage toActionRequest(final Absolute action, final DOMDataTreeIdentifier domDataTreeIdentifier, - final NormalizedNode payload) { - throw new UnsupportedOperationException(); - } + NetconfMessage toActionRequest(Absolute action, DOMDataTreeIdentifier domDataTreeIdentifier, + NormalizedNode payload); /** * Parse result of invoking action into DOM result. @@ -44,7 +35,5 @@ public interface MessageTransformer { * @param message - message to parsing * @return {@link DOMActionResult} */ - default DOMActionResult toActionResult(final Absolute action, final NetconfMessage message) { - throw new UnsupportedOperationException(); - } + DOMActionResult toActionResult(Absolute action, NetconfMessage message); } diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/api/DeviceActionFactory.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/api/DeviceActionFactory.java index f69882946d..6e4e47bd3f 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/api/DeviceActionFactory.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/api/DeviceActionFactory.java @@ -18,6 +18,6 @@ public interface DeviceActionFactory { * @param listener - allows specific service to send and receive messages to/from device * @return {@link Actions} of specific device */ - @NonNull Actions createDeviceAction(MessageTransformer messageTransformer, RemoteDeviceCommunicator listener); + @NonNull Actions createDeviceAction(ActionTransformer messageTransformer, RemoteDeviceCommunicator listener); } diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/api/NotificationTransformer.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/api/NotificationTransformer.java new file mode 100644 index 0000000000..2f0a32127a --- /dev/null +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/api/NotificationTransformer.java @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.netconf.sal.connect.api; + +import org.opendaylight.mdsal.dom.api.DOMNotification; +import org.opendaylight.netconf.api.NetconfMessage; + +/** + * Interface for transforming NETCONF device {@link NetconfMessage}s to {@link DOMNotification}. + */ +public interface NotificationTransformer { + + DOMNotification toNotification(NetconfMessage message); +} diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/api/RpcTransformer.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/api/RpcTransformer.java new file mode 100644 index 0000000000..d32917bb45 --- /dev/null +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/api/RpcTransformer.java @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2022 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.netconf.sal.connect.api; + +import org.opendaylight.mdsal.dom.api.DOMRpcResult; +import org.opendaylight.netconf.api.NetconfMessage; +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; + +/** + * Interface for transforming NETCONF device RPC request/response messages. + */ +public interface RpcTransformer { + + NetconfMessage toRpcRequest(QName rpc, NormalizedNode node); + + DOMRpcResult toRpcResult(NetconfMessage message, QName rpc); +} diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/DeviceActionFactoryImpl.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/DeviceActionFactoryImpl.java index cb778d337e..8ea00f6202 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/DeviceActionFactoryImpl.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/DeviceActionFactoryImpl.java @@ -13,8 +13,8 @@ import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.MoreExecutors; import javax.inject.Singleton; import org.opendaylight.mdsal.dom.api.DOMActionService; +import org.opendaylight.netconf.sal.connect.api.ActionTransformer; import org.opendaylight.netconf.sal.connect.api.DeviceActionFactory; -import org.opendaylight.netconf.sal.connect.api.MessageTransformer; import org.opendaylight.netconf.sal.connect.api.RemoteDeviceCommunicator; import org.opendaylight.netconf.sal.connect.api.RemoteDeviceServices.Actions; import org.osgi.service.component.annotations.Component; @@ -23,7 +23,7 @@ import org.slf4j.LoggerFactory; /** * Implementation of the factory for creation of {@link DOMActionService} instances that are provided by device. - * {@link DOMActionService} is implemented using {@link MessageTransformer} that builds NETCONF RPCs and + * {@link DOMActionService} is implemented using {@link ActionTransformer} that builds NETCONF RPCs and * transforms replied NETCONF message to action result, and using {@link RemoteDeviceCommunicator} that is responsible * for sending of built RPCs to NETCONF client. */ @@ -33,7 +33,7 @@ public class DeviceActionFactoryImpl implements DeviceActionFactory { private static final Logger LOG = LoggerFactory.getLogger(DeviceActionFactoryImpl.class); @Override - public Actions.Normalized createDeviceAction(final MessageTransformer messageTransformer, + public Actions.Normalized createDeviceAction(final ActionTransformer messageTransformer, final RemoteDeviceCommunicator listener) { return (schemaPath, dataTreeIdentifier, input) -> { requireNonNull(schemaPath); diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDevice.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDevice.java index 05e55bb8ca..f29bd2422b 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDevice.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDevice.java @@ -39,7 +39,6 @@ import org.opendaylight.mdsal.dom.api.DOMRpcResult; import org.opendaylight.netconf.api.NetconfMessage; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; import org.opendaylight.netconf.sal.connect.api.DeviceActionFactory; -import org.opendaylight.netconf.sal.connect.api.MessageTransformer; import org.opendaylight.netconf.sal.connect.api.NetconfDeviceSchemasResolver; import org.opendaylight.netconf.sal.connect.api.RemoteDevice; import org.opendaylight.netconf.sal.connect.api.RemoteDeviceCommunicator; @@ -112,7 +111,7 @@ public class NetconfDevice implements RemoteDevice { private boolean connected = false; // Message transformer is constructed once the schemas are available - private MessageTransformer messageTransformer; + private NetconfMessageTransformer messageTransformer; public NetconfDevice(final SchemaResourcesDTO schemaResourcesDTO, final BaseNetconfSchemas baseSchemas, final RemoteDeviceId id, final RemoteDeviceHandler salFacade, @@ -258,7 +257,7 @@ public class NetconfDevice implements RemoteDevice { updateTransformer(null); } - private synchronized void updateTransformer(final MessageTransformer transformer) { + private synchronized void updateTransformer(final NetconfMessageTransformer transformer) { messageTransformer = transformer; } diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NotificationHandler.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NotificationHandler.java index 3b03974f92..917729e7cb 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NotificationHandler.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NotificationHandler.java @@ -17,7 +17,7 @@ import java.util.function.Predicate; import org.opendaylight.mdsal.dom.api.DOMNotification; import org.opendaylight.netconf.api.NetconfMessage; import org.opendaylight.netconf.api.xml.XmlUtil; -import org.opendaylight.netconf.sal.connect.api.MessageTransformer; +import org.opendaylight.netconf.sal.connect.api.NotificationTransformer; import org.opendaylight.netconf.sal.connect.api.RemoteDeviceHandler; import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; import org.slf4j.Logger; @@ -36,7 +36,7 @@ final class NotificationHandler { private boolean passNotifications = false; private NotificationFilter filter; - private MessageTransformer messageTransformer; + private NotificationTransformer messageTransformer; NotificationHandler(final RemoteDeviceHandler salFacade, final RemoteDeviceId id) { this.salFacade = requireNonNull(salFacade); @@ -55,7 +55,7 @@ final class NotificationHandler { * Forward all cached notifications and pass all notifications from this point directly to sal facade. * @param transformer Message transformer */ - synchronized void onRemoteSchemaUp(final MessageTransformer transformer) { + synchronized void onRemoteSchemaUp(final NotificationTransformer transformer) { messageTransformer = requireNonNull(transformer); passNotifications = true; diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceRpc.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceRpc.java index e902a4912c..6679f06020 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceRpc.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceRpc.java @@ -22,9 +22,9 @@ import org.opendaylight.mdsal.dom.api.DOMRpcResult; import org.opendaylight.mdsal.dom.api.DefaultDOMRpcException; import org.opendaylight.mdsal.dom.spi.DefaultDOMRpcResult; import org.opendaylight.netconf.api.NetconfMessage; -import org.opendaylight.netconf.sal.connect.api.MessageTransformer; import org.opendaylight.netconf.sal.connect.api.RemoteDeviceCommunicator; import org.opendaylight.netconf.sal.connect.api.RemoteDeviceServices.Rpcs; +import org.opendaylight.netconf.sal.connect.api.RpcTransformer; import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.concepts.NoOpListenerRegistration; import org.opendaylight.yangtools.yang.common.QName; @@ -38,11 +38,11 @@ import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; */ public final class NetconfDeviceRpc implements Rpcs.Normalized { private final RemoteDeviceCommunicator communicator; - private final MessageTransformer transformer; + private final RpcTransformer transformer; private final EffectiveModelContext modelContext; public NetconfDeviceRpc(final EffectiveModelContext modelContext, final RemoteDeviceCommunicator communicator, - final MessageTransformer transformer) { + final RpcTransformer transformer) { this.modelContext = requireNonNull(modelContext); this.communicator = communicator; this.transformer = transformer; diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/SchemalessNetconfDeviceRpc.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/SchemalessNetconfDeviceRpc.java index 9ead72651f..1d66547a4d 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/SchemalessNetconfDeviceRpc.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/SchemalessNetconfDeviceRpc.java @@ -17,9 +17,9 @@ import org.opendaylight.mdsal.dom.api.DOMRpcImplementationNotAvailableException; import org.opendaylight.mdsal.dom.api.DOMRpcResult; import org.opendaylight.mdsal.dom.spi.DefaultDOMRpcResult; import org.opendaylight.netconf.api.NetconfMessage; -import org.opendaylight.netconf.sal.connect.api.MessageTransformer; import org.opendaylight.netconf.sal.connect.api.RemoteDeviceCommunicator; import org.opendaylight.netconf.sal.connect.api.RemoteDeviceServices.Rpcs; +import org.opendaylight.netconf.sal.connect.api.RpcTransformer; import org.opendaylight.netconf.sal.connect.netconf.schema.mapping.BaseRpcSchemalessTransformer; import org.opendaylight.netconf.sal.connect.netconf.schema.mapping.SchemalessMessageTransformer; import org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil; @@ -58,7 +58,7 @@ public final class SchemalessNetconfDeviceRpc implements Rpcs.Schemaless { @Override public ListenableFuture invokeRpc(final QName type, final NormalizedNode input) { - final MessageTransformer transformer; + final RpcTransformer transformer; if (input instanceof DOMSourceAnyxmlNode) { transformer = schemalessTransformer; } else if (isBaseRpc(type)) { @@ -71,7 +71,7 @@ public final class SchemalessNetconfDeviceRpc implements Rpcs.Schemaless { } private @NonNull ListenableFuture handleRpc(final @NonNull QName type, - final @NonNull NormalizedNode input, final MessageTransformer transformer) { + final @NonNull NormalizedNode input, final RpcTransformer transformer) { final var delegateFuture = listener.sendRequest(transformer.toRpcRequest(type, input), type); final var ret = SettableFuture.create(); Futures.addCallback(delegateFuture, new FutureCallback<>() { diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/BaseRpcSchemalessTransformer.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/BaseRpcSchemalessTransformer.java index 7ab9718c47..eef1b8117d 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/BaseRpcSchemalessTransformer.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/BaseRpcSchemalessTransformer.java @@ -13,13 +13,12 @@ import java.io.IOException; import javax.xml.stream.XMLStreamException; import javax.xml.transform.dom.DOMResult; import javax.xml.transform.dom.DOMSource; -import org.opendaylight.mdsal.dom.api.DOMNotification; import org.opendaylight.mdsal.dom.api.DOMRpcResult; import org.opendaylight.mdsal.dom.spi.DefaultDOMRpcResult; import org.opendaylight.netconf.api.NetconfMessage; import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlUtil; -import org.opendaylight.netconf.sal.connect.api.MessageTransformer; +import org.opendaylight.netconf.sal.connect.api.RpcTransformer; import org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil; import org.opendaylight.netconf.sal.connect.util.MessageCounter; import org.opendaylight.yangtools.yang.common.QName; @@ -36,7 +35,7 @@ import org.w3c.dom.Element; /** * Transforms base netconf RPCs. */ -public class BaseRpcSchemalessTransformer implements MessageTransformer { +public class BaseRpcSchemalessTransformer implements RpcTransformer { private final ImmutableMap mappedRpcs; private final EffectiveModelContext modelContext; private final MessageCounter counter; @@ -48,11 +47,6 @@ public class BaseRpcSchemalessTransformer implements MessageTransformer { this.counter = counter; } - @Override - public DOMNotification toNotification(final NetconfMessage message) { - throw new UnsupportedOperationException("Notifications not supported."); - } - @Override public NetconfMessage toRpcRequest(final QName rpc, final NormalizedNode payload) { // In case no input for rpc is defined, we can simply construct the payload here diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/NetconfMessageTransformer.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/NetconfMessageTransformer.java index 3d67ba2abd..7a2e57017d 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/NetconfMessageTransformer.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/NetconfMessageTransformer.java @@ -58,7 +58,9 @@ import org.opendaylight.mdsal.dom.spi.SimpleDOMActionResult; import org.opendaylight.netconf.api.NetconfMessage; import org.opendaylight.netconf.api.xml.MissingNameSpaceException; import org.opendaylight.netconf.api.xml.XmlElement; -import org.opendaylight.netconf.sal.connect.api.MessageTransformer; +import org.opendaylight.netconf.sal.connect.api.ActionTransformer; +import org.opendaylight.netconf.sal.connect.api.NotificationTransformer; +import org.opendaylight.netconf.sal.connect.api.RpcTransformer; import org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil; import org.opendaylight.netconf.sal.connect.util.MessageCounter; import org.opendaylight.yangtools.rfc8528.data.api.MountPointContext; @@ -100,7 +102,7 @@ import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; -public class NetconfMessageTransformer implements MessageTransformer { +public class NetconfMessageTransformer implements ActionTransformer, NotificationTransformer, RpcTransformer { private static final Logger LOG = LoggerFactory.getLogger(NetconfMessageTransformer.class); private static final ImmutableSet BASE_OR_NOTIFICATION_NS = ImmutableSet.of( diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/SchemalessMessageTransformer.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/SchemalessMessageTransformer.java index 3a8f2d7ca8..d3b920a424 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/SchemalessMessageTransformer.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/SchemalessMessageTransformer.java @@ -16,7 +16,8 @@ import org.opendaylight.mdsal.dom.spi.DefaultDOMRpcResult; import org.opendaylight.netconf.api.NetconfMessage; import org.opendaylight.netconf.api.xml.MissingNameSpaceException; import org.opendaylight.netconf.api.xml.XmlElement; -import org.opendaylight.netconf.sal.connect.api.MessageTransformer; +import org.opendaylight.netconf.sal.connect.api.NotificationTransformer; +import org.opendaylight.netconf.sal.connect.api.RpcTransformer; import org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil; import org.opendaylight.netconf.sal.connect.util.MessageCounter; import org.opendaylight.yangtools.yang.common.QName; @@ -31,7 +32,7 @@ import org.w3c.dom.Element; /** * Transforms anyxml rpcs for schemaless netconf devices. */ -public class SchemalessMessageTransformer implements MessageTransformer { +public class SchemalessMessageTransformer implements NotificationTransformer, RpcTransformer { // TODO maybe we should move this somewhere else as this // might be used in applications using schemaless mountpoints public static final NodeIdentifier SCHEMALESS_NOTIFICATION_PAYLOAD = diff --git a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDeviceTest.java b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDeviceTest.java index 43bf865e5e..100277dcc1 100644 --- a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDeviceTest.java +++ b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDeviceTest.java @@ -50,7 +50,6 @@ import org.opendaylight.mdsal.dom.spi.DefaultDOMRpcResult; import org.opendaylight.netconf.api.NetconfMessage; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; import org.opendaylight.netconf.api.xml.XmlUtil; -import org.opendaylight.netconf.sal.connect.api.MessageTransformer; import org.opendaylight.netconf.sal.connect.api.NetconfDeviceSchemasResolver; import org.opendaylight.netconf.sal.connect.api.RemoteDeviceHandler; import org.opendaylight.netconf.sal.connect.api.RemoteDeviceServices; @@ -63,7 +62,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev15 import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.available.capabilities.AvailableCapability.CapabilityOrigin; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; -import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.repo.api.EffectiveModelContextFactory; @@ -562,14 +560,6 @@ public class NetconfDeviceTest extends AbstractTestModelTest { return MoreExecutors.listeningDecorator(Executors.newSingleThreadExecutor()); } - public MessageTransformer getMessageTransformer() throws Exception { - final MessageTransformer messageTransformer = mockClass(MessageTransformer.class); - doReturn(NOTIFICATION).when(messageTransformer).toRpcRequest(any(QName.class), any(NormalizedNode.class)); - doReturn(RPC_RESULT).when(messageTransformer).toRpcResult(any(NetconfMessage.class), any(QName.class)); - doReturn(COMPOSITE_NODE).when(messageTransformer).toNotification(any(NetconfMessage.class)); - return messageTransformer; - } - public NetconfSessionPreferences getSessionCaps(final boolean addMonitor, final Collection additionalCapabilities) { final ArrayList capabilities = Lists.newArrayList( diff --git a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceRpcTest.java b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceRpcTest.java index e00e2cb18d..92100136be 100644 --- a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceRpcTest.java +++ b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceRpcTest.java @@ -34,8 +34,8 @@ import org.opendaylight.mdsal.dom.api.DOMRpcIdentifier; import org.opendaylight.mdsal.dom.api.DOMRpcResult; import org.opendaylight.netconf.api.NetconfMessage; import org.opendaylight.netconf.api.xml.XmlUtil; -import org.opendaylight.netconf.sal.connect.api.MessageTransformer; import org.opendaylight.netconf.sal.connect.api.RemoteDeviceCommunicator; +import org.opendaylight.netconf.sal.connect.api.RpcTransformer; import org.opendaylight.netconf.sal.connect.netconf.AbstractBaseSchemasTest; import org.opendaylight.netconf.sal.connect.netconf.schema.mapping.NetconfMessageTransformer; import org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil; @@ -98,7 +98,7 @@ public class NetconfDeviceRpcTest extends AbstractBaseSchemasTest { @Test public void testDeadlock() throws Exception { // when rpc is successful, but transformer fails for some reason - final MessageTransformer failingTransformer = mock(MessageTransformer.class); + final RpcTransformer failingTransformer = mock(RpcTransformer.class); final RemoteDeviceCommunicator communicatorMock = mock(RemoteDeviceCommunicator.class); final NetconfMessage msg = null; final RpcResult result = RpcResultBuilder.success(msg).build(); diff --git a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/BaseRpcSchemalessTransformerTest.java b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/BaseRpcSchemalessTransformerTest.java index e91abae2fc..99a554152d 100644 --- a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/BaseRpcSchemalessTransformerTest.java +++ b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/BaseRpcSchemalessTransformerTest.java @@ -67,12 +67,6 @@ public class BaseRpcSchemalessTransformerTest extends AbstractBaseSchemasTest { transformer = new BaseRpcSchemalessTransformer(BASE_SCHEMAS, new MessageCounter()); } - @Test(expected = UnsupportedOperationException.class) - public void toNotification() throws Exception { - transformer.toNotification(new NetconfMessage( - XmlUtil.readXmlToDocument(getClass().getResourceAsStream("/notification-payload.xml")))); - } - @Test public void toRpcRequest() throws Exception { final Document doc =