From 1aaec97aa24f5dfe62fd3e6523e651db883ab51f Mon Sep 17 00:00:00 2001 From: Tom Pantelis Date: Thu, 5 Apr 2018 11:47:42 -0400 Subject: [PATCH] Remove dependency on controller config-util netconf uses a few classes from config-util, including DocumentedException, XmlElement, XmlUtil, Capability etc so copy them to netconf-api. config-util will be removed later. Change-Id: I440b7bcf03b5d612a81c46a16d001699bd0515da Signed-off-by: Tom Pantelis --- .../odl-aaa-netconf-plugin-no-cluster/pom.xml | 9 +- .../netconf/odl-aaa-netconf-plugin/pom.xml | 9 +- features/netconf/odl-netconf-api/pom.xml | 13 - features/netconf/odl-netconf-client/pom.xml | 16 +- features/netconf/odl-netconf-impl/pom.xml | 18 - features/netconf/odl-netconf-mdsal/pom.xml | 16 +- .../odl-netconf-notifications-api/pom.xml | 9 +- features/netconf/odl-netconf-tcp/pom.xml | 7 - .../mdsal/connector/CurrentSchemaContext.java | 4 +- .../MdsalNetconfOperationServiceFactory.java | 4 +- .../mdsal/connector/TransactionProvider.java | 10 +- .../mdsal/connector/ops/AbstractEdit.java | 10 +- .../netconf/mdsal/connector/ops/Commit.java | 6 +- .../mdsal/connector/ops/CopyConfig.java | 12 +- .../mdsal/connector/ops/DiscardChanges.java | 12 +- .../mdsal/connector/ops/EditConfig.java | 12 +- .../netconf/mdsal/connector/ops/Lock.java | 6 +- .../mdsal/connector/ops/RuntimeRpc.java | 17 +- .../netconf/mdsal/connector/ops/Unlock.java | 6 +- .../mdsal/connector/ops/get/AbstractGet.java | 10 +- .../ops/get/FilterContentValidator.java | 6 +- .../netconf/mdsal/connector/ops/get/Get.java | 12 +- .../mdsal/connector/ops/get/GetConfig.java | 12 +- .../ops/AbstractNetconfOperationTest.java | 4 +- .../mdsal/connector/ops/CopyConfigTest.java | 10 +- .../ops/NetconfMDSalMappingTest.java | 12 +- .../mdsal/connector/ops/RuntimeRpcTest.java | 10 +- .../mdsal/connector/ops/get/Bug8084.java | 4 +- .../ops/get/FilterContentValidatorTest.java | 4 +- .../connector/ops/get/Netconf506Test.java | 4 +- .../src/test/resources/filter/expected.txt | 6 +- .../MdsalMonitoringMapperFactory.java | 4 +- ...nfNotificationOperationServiceFactory.java | 2 +- .../netconf/NetconfEventSource.java | 2 +- netconf/netconf-api/pom.xml | 25 +- .../netconf/api/DocumentedException.java | 324 +++++++++++ .../api/NetconfDocumentedException.java | 1 - .../api/capability/BasicCapability.java | 60 +++ .../netconf/api/capability/Capability.java | 31 ++ .../api/capability/YangModuleCapability.java | 63 +++ .../api/messages/NetconfHelloMessage.java | 4 +- .../api/monitoring/CapabilityListener.java | 2 +- .../api/xml/MissingNameSpaceException.java | 27 + .../api/xml/UnexpectedElementException.java | 27 + .../api/xml/UnexpectedNamespaceException.java | 27 + .../netconf/api/xml/XmlElement.java | 503 ++++++++++++++++++ .../netconf/api/xml/XmlNetconfConstants.java | 8 +- .../opendaylight/netconf/api/xml/XmlUtil.java | 226 ++++++++ .../api/NetconfDocumentedExceptionTest.java | 1 - .../netconf/api/xml/XmlElementTest.java | 150 ++++++ .../netconf/api/xml/XmlUtilTest.java | 74 +++ .../NetconfClientSessionNegotiator.java | 2 +- .../NetconfClientSessionNegotiatorTest.java | 2 +- .../impl/NetconfServerSessionListener.java | 4 +- .../operations/DefaultCloseSession.java | 6 +- .../mapping/operations/DefaultStartExi.java | 12 +- .../mapping/operations/DefaultStopExi.java | 6 +- ...regatedNetconfOperationServiceFactory.java | 17 +- .../NetconfCapabilityMonitoringService.java | 4 +- .../impl/osgi/NetconfOperationRouter.java | 2 +- .../impl/osgi/NetconfOperationRouterImpl.java | 4 +- .../util/DeserializerExceptionHandler.java | 2 +- .../netconf/impl/ConcurrentClientsTest.java | 22 +- .../NetconfServerSessionListenerTest.java | 4 +- .../impl/NetconfServerSessionTest.java | 2 +- .../operations/DefaultCloseSessionTest.java | 6 +- .../operations/DefaultStopExiTest.java | 8 +- ...tedNetconfOperationServiceFactoryTest.java | 10 +- ...etconfCapabilityMonitoringServiceTest.java | 6 +- .../osgi/NetconfOperationRouterImplTest.java | 6 +- .../NetconfSessionMonitoringServiceTest.java | 4 +- .../netconf/mapping/api/NetconfOperation.java | 2 +- .../api/NetconfOperationChainedExecution.java | 2 +- .../api/NetconfOperationServiceFactory.java | 2 +- netconf/netconf-monitoring/pom.xml | 4 + .../opendaylight/netconf/monitoring/Get.java | 7 +- .../netconf/monitoring/GetSchema.java | 6 +- .../osgi/NetconfMonitoringActivator.java | 9 +- .../netconf/monitoring/GetSchemaTest.java | 8 +- .../netconf/monitoring/GetTest.java | 4 +- .../monitoring/xml/JaxBSerializerTest.java | 2 +- .../nettyutil/AbstractNetconfSession.java | 2 +- .../NetconfXMLToHelloMessageDecoder.java | 2 +- .../handler/NetconfXMLToMessageDecoder.java | 2 +- .../nettyutil/handler/exi/EXIParameters.java | 2 +- .../handler/exi/NetconfStartExiMessage.java | 2 +- .../AbstractNetconfSessionNegotiatorTest.java | 4 +- .../handler/NetconfEXIHandlersTest.java | 4 +- .../NetconfHelloMessageToXMLEncoderTest.java | 4 +- .../NetconfXMLToHelloMessageDecoderTest.java | 4 +- .../handler/exi/EXIParametersTest.java | 6 +- netconf/netconf-notifications-impl/pom.xml | 4 + .../impl/ops/CreateSubscription.java | 6 +- .../netconf/notifications/impl/ops/Get.java | 7 +- .../impl/ops/NotificationsTransformUtil.java | 2 +- .../notifications/impl/osgi/Activator.java | 11 +- .../impl/ops/CreateSubscriptionTest.java | 6 +- .../notifications/impl/ops/GetTest.java | 4 +- .../ops/NotificationsTransformUtilTest.java | 2 +- .../impl/osgi/ActivatorTest.java | 4 +- netconf/netconf-tcp/pom.xml | 4 + .../impl/utils/NetconfTopologyUtils.java | 2 +- .../impl/tx/ProxyReadTransactionTest.java | 4 +- .../tx/ProxyReadWriteTransactionTest.java | 2 +- .../netconf/util/NetconfUtil.java | 9 +- .../mapping/AbstractLastNetconfOperation.java | 4 +- .../mapping/AbstractNetconfOperation.java | 9 +- .../AbstractSingletonNetconfOperation.java | 4 +- .../util/messages/NetconfMessageUtil.java | 4 +- .../util/messages/SendErrorExceptionUtil.java | 9 +- .../netconf/util/messages/SubtreeFilter.java | 6 +- .../netconf/util/NetconfUtilTest.java | 2 +- .../AbstractLastNetconfOperationTest.java | 4 +- .../mapping/AbstractNetconfOperationTest.java | 6 +- ...AbstractSingletonNetconfOperationTest.java | 4 +- .../messages/SendErrorExceptionUtilTest.java | 2 +- .../SubtreeFilterNotificationTest.java | 4 +- .../util/messages/SubtreeFilterRpcTest.java | 2 +- .../netconf/util/test/XmlFileLoader.java | 2 +- .../netconf/util/test/XmlUnitUtil.java | 2 +- .../netconf/util/xml/XMLNetconfUtilTest.java | 4 +- .../connect/netconf/NotificationHandler.java | 2 +- .../listener/NetconfDeviceCommunicator.java | 4 +- .../netconf/sal/tx/AbstractWriteTx.java | 2 +- .../mapping/BaseRpcSchemalessTransformer.java | 6 +- .../mapping/NetconfMessageTransformer.java | 4 +- .../mapping/SchemalessMessageTransformer.java | 4 +- .../util/NetconfMessageTransformUtil.java | 6 +- .../SchemalessRpcStructureTransformer.java | 6 +- .../connect/netconf/NetconfDeviceTest.java | 2 +- .../netconf/NetconfToNotificationTest.java | 2 +- .../netconf/NetconfToRpcRequestTest.java | 2 +- .../NetconfDeviceCommunicatorTest.java | 4 +- .../netconf/sal/NetconfDeviceRpcTest.java | 2 +- .../sal/NetconfKeystoreAdapterTest.java | 2 +- .../sal/SchemalessNetconfDeviceRpcTest.java | 2 +- .../BaseRpcSchemalessTransformerTest.java | 4 +- .../NetconfMessageTransformerTest.java | 2 +- .../SchemalessMessageTransformerTest.java | 4 +- .../netconf/util/NetconfBaseOpsTest.java | 2 +- .../util/NetconfSalKeystoreServiceTest.java | 2 +- ...SchemalessRpcStructureTransformerTest.java | 4 +- .../test/tool/DummyMonitoringService.java | 2 +- .../netconf/test/tool/FakeCapability.java | 4 +- .../test/tool/MdsalOperationProvider.java | 2 +- .../test/tool/NetconfDeviceSimulator.java | 6 +- .../test/tool/SimulatedOperationProvider.java | 7 +- .../client/stress/AsyncExecutionStrategy.java | 4 +- .../test/tool/client/stress/StressClient.java | 2 +- .../client/stress/SyncExecutionStrategy.java | 5 +- .../test/tool/customrpc/RpcMapping.java | 6 +- .../customrpc/SettableOperationProvider.java | 2 +- .../test/tool/customrpc/SettableRpc.java | 6 +- .../operations/DefaultOperationsCreator.java | 2 +- .../tool/operations/OperationsCreator.java | 2 +- .../tool/operations/OperationsProvider.java | 7 +- .../netconf/test/tool/rpc/DataList.java | 2 +- .../test/tool/rpc/SimulatedCommit.java | 6 +- .../tool/rpc/SimulatedCreateSubscription.java | 6 +- .../tool/rpc/SimulatedDiscardChanges.java | 6 +- .../test/tool/rpc/SimulatedEditConfig.java | 6 +- .../netconf/test/tool/rpc/SimulatedGet.java | 6 +- .../test/tool/rpc/SimulatedGetConfig.java | 6 +- .../netconf/test/tool/rpc/SimulatedLock.java | 6 +- .../test/tool/rpc/SimulatedUnLock.java | 6 +- .../test/tool/rpchandler/RpcHandler.java | 2 +- .../tool/rpchandler/RpcHandlerDefault.java | 2 +- .../SettableOperationRpcProvider.java | 2 +- .../test/tool/rpchandler/SettableRpc.java | 6 +- 169 files changed, 1890 insertions(+), 490 deletions(-) create mode 100644 netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/DocumentedException.java create mode 100644 netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/capability/BasicCapability.java create mode 100644 netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/capability/Capability.java create mode 100644 netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/capability/YangModuleCapability.java create mode 100644 netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/xml/MissingNameSpaceException.java create mode 100644 netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/xml/UnexpectedElementException.java create mode 100644 netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/xml/UnexpectedNamespaceException.java create mode 100644 netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/xml/XmlElement.java create mode 100644 netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/xml/XmlUtil.java create mode 100644 netconf/netconf-api/src/test/java/org/opendaylight/netconf/api/xml/XmlElementTest.java create mode 100644 netconf/netconf-api/src/test/java/org/opendaylight/netconf/api/xml/XmlUtilTest.java diff --git a/features/netconf/odl-aaa-netconf-plugin-no-cluster/pom.xml b/features/netconf/odl-aaa-netconf-plugin-no-cluster/pom.xml index 18c00e8773..ebfaf49b83 100644 --- a/features/netconf/odl-aaa-netconf-plugin-no-cluster/pom.xml +++ b/features/netconf/odl-aaa-netconf-plugin-no-cluster/pom.xml @@ -38,13 +38,6 @@ - - org.opendaylight.controller - odl-config-api - 0.9.0-SNAPSHOT - xml - features - org.opendaylight.netconf netconf-auth @@ -61,4 +54,4 @@ aaa-authn-odl-plugin - \ No newline at end of file + diff --git a/features/netconf/odl-aaa-netconf-plugin/pom.xml b/features/netconf/odl-aaa-netconf-plugin/pom.xml index 8edfb1fd34..aef73969a5 100644 --- a/features/netconf/odl-aaa-netconf-plugin/pom.xml +++ b/features/netconf/odl-aaa-netconf-plugin/pom.xml @@ -26,13 +26,6 @@ OpenDaylight :: AAA :: ODL NETCONF Plugin - - org.opendaylight.controller - odl-config-api - 0.9.0-SNAPSHOT - xml - features - ${project.groupId} netconf-auth @@ -51,4 +44,4 @@ ${project.version} - \ No newline at end of file + diff --git a/features/netconf/odl-netconf-api/pom.xml b/features/netconf/odl-netconf-api/pom.xml index 41430b4d22..71d8bca083 100644 --- a/features/netconf/odl-netconf-api/pom.xml +++ b/features/netconf/odl-netconf-api/pom.xml @@ -27,13 +27,6 @@ - - org.opendaylight.controller - config-artifacts - 0.9.0-SNAPSHOT - pom - import - org.opendaylight.mdsal.model mdsal-model-artifacts @@ -52,12 +45,6 @@ - - org.opendaylight.controller - odl-config-util - xml - features - org.opendaylight.mdsal.model odl-mdsal-models diff --git a/features/netconf/odl-netconf-client/pom.xml b/features/netconf/odl-netconf-client/pom.xml index e74e6aac25..f8a98ae61a 100644 --- a/features/netconf/odl-netconf-client/pom.xml +++ b/features/netconf/odl-netconf-client/pom.xml @@ -24,20 +24,6 @@ feature - - org.opendaylight.controller - odl-config-all - 0.9.0-SNAPSHOT - xml - features - - - org.opendaylight.controller - odl-config-netty - 0.9.0-SNAPSHOT - xml - features - ${project.groupId} odl-netconf-netty-util @@ -56,4 +42,4 @@ ${project.version} - \ No newline at end of file + diff --git a/features/netconf/odl-netconf-impl/pom.xml b/features/netconf/odl-netconf-impl/pom.xml index 6ce2c39dc9..fa77c751e8 100644 --- a/features/netconf/odl-netconf-impl/pom.xml +++ b/features/netconf/odl-netconf-impl/pom.xml @@ -26,11 +26,6 @@ OpenDaylight :: Netconf :: Impl - - org.opendaylight.controller - yang-jmx-generator - 0.9.0-SNAPSHOT - ${project.groupId} odl-netconf-api @@ -59,19 +54,6 @@ xml features - - org.opendaylight.controller - odl-config-netty - 0.9.0-SNAPSHOT - xml - features - - - - org.opendaylight.controller - config-manager-facade-xml - 0.9.0-SNAPSHOT - ${project.groupId} odl-netconf-monitoring diff --git a/features/netconf/odl-netconf-mdsal/pom.xml b/features/netconf/odl-netconf-mdsal/pom.xml index 29c39ec38c..9a861214c8 100644 --- a/features/netconf/odl-netconf-mdsal/pom.xml +++ b/features/netconf/odl-netconf-mdsal/pom.xml @@ -44,20 +44,6 @@ - - org.opendaylight.controller - odl-config-all - 0.9.0-SNAPSHOT - xml - features - - - org.opendaylight.controller - odl-config-netty - 0.9.0-SNAPSHOT - xml - features - ${project.groupId} odl-netconf-all @@ -122,4 +108,4 @@ mdsal-netconf-impl - \ No newline at end of file + diff --git a/features/netconf/odl-netconf-notifications-api/pom.xml b/features/netconf/odl-netconf-notifications-api/pom.xml index a3e0cdf6cc..9f919fdaa9 100644 --- a/features/netconf/odl-netconf-notifications-api/pom.xml +++ b/features/netconf/odl-netconf-notifications-api/pom.xml @@ -26,13 +26,6 @@ OpenDaylight :: Netconf :: Notification :: Api - - org.opendaylight.controller - odl-config-manager-facade-xml - 0.9.0-SNAPSHOT - xml - features - ${project.groupId} odl-netconf-api @@ -46,4 +39,4 @@ ${project.version} - \ No newline at end of file + diff --git a/features/netconf/odl-netconf-tcp/pom.xml b/features/netconf/odl-netconf-tcp/pom.xml index db3e5eb297..551b11725e 100644 --- a/features/netconf/odl-netconf-tcp/pom.xml +++ b/features/netconf/odl-netconf-tcp/pom.xml @@ -40,13 +40,6 @@ xml features - - org.opendaylight.controller - odl-config-netty - 0.9.0-SNAPSHOT - xml - features - ${project.groupId} netconf-tcp diff --git a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/CurrentSchemaContext.java b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/CurrentSchemaContext.java index d83cfb56f4..61a3b950a7 100644 --- a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/CurrentSchemaContext.java +++ b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/CurrentSchemaContext.java @@ -13,8 +13,8 @@ import com.google.common.collect.Sets; import java.util.Collections; import java.util.Set; import java.util.concurrent.atomic.AtomicReference; -import org.opendaylight.controller.config.util.capability.Capability; import org.opendaylight.controller.sal.core.api.model.SchemaService; +import org.opendaylight.netconf.api.capability.Capability; import org.opendaylight.netconf.api.monitoring.CapabilityListener; import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.model.api.SchemaContext; @@ -63,4 +63,4 @@ public class CurrentSchemaContext implements SchemaContextListener, AutoCloseabl listeners1.add(listener); return () -> listeners1.remove(listener); } -} \ No newline at end of file +} diff --git a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/MdsalNetconfOperationServiceFactory.java b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/MdsalNetconfOperationServiceFactory.java index d957097ae8..d88e64ef15 100644 --- a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/MdsalNetconfOperationServiceFactory.java +++ b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/MdsalNetconfOperationServiceFactory.java @@ -18,11 +18,11 @@ import java.util.HashSet; import java.util.Optional; import java.util.Set; import java.util.concurrent.ExecutionException; -import org.opendaylight.controller.config.util.capability.Capability; -import org.opendaylight.controller.config.util.capability.YangModuleCapability; import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker; import org.opendaylight.controller.md.sal.dom.api.DOMRpcService; import org.opendaylight.controller.sal.core.api.model.SchemaService; +import org.opendaylight.netconf.api.capability.Capability; +import org.opendaylight.netconf.api.capability.YangModuleCapability; import org.opendaylight.netconf.api.monitoring.CapabilityListener; import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory; import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactoryListener; diff --git a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/TransactionProvider.java b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/TransactionProvider.java index 78680e00ba..b906b741e1 100644 --- a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/TransactionProvider.java +++ b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/TransactionProvider.java @@ -13,13 +13,13 @@ import com.google.common.base.Preconditions; import com.google.common.util.concurrent.CheckedFuture; import java.util.ArrayList; import java.util.List; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorSeverity; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorTag; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorType; import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException; import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker; import org.opendaylight.controller.md.sal.dom.api.DOMDataReadWriteTransaction; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.DocumentedException.ErrorSeverity; +import org.opendaylight.netconf.api.DocumentedException.ErrorTag; +import org.opendaylight.netconf.api.DocumentedException.ErrorType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -81,7 +81,7 @@ public class TransactionProvider implements AutoCloseable { future.checkedGet(); } catch (final TransactionCommitFailedException e) { LOG.debug("Transaction {} failed on", candidateTransaction, e); - final String cause = e.getCause() != null ? (" Cause: " + e.getCause().getMessage()) : ""; + final String cause = e.getCause() != null ? " Cause: " + e.getCause().getMessage() : ""; throw new DocumentedException( "Transaction commit failed on " + e.getMessage() + " " + netconfSessionIdForReporting + cause, e, ErrorType.APPLICATION, ErrorTag.OPERATION_FAILED, ErrorSeverity.ERROR); diff --git a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/AbstractEdit.java b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/AbstractEdit.java index 125f6b91ce..0efeab08ad 100644 --- a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/AbstractEdit.java +++ b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/AbstractEdit.java @@ -16,12 +16,12 @@ import java.net.URISyntaxException; import java.util.Iterator; import java.util.Map; import javax.xml.transform.dom.DOMSource; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorSeverity; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorTag; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorType; -import org.opendaylight.controller.config.util.xml.XmlElement; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.DocumentedException.ErrorSeverity; +import org.opendaylight.netconf.api.DocumentedException.ErrorTag; +import org.opendaylight.netconf.api.DocumentedException.ErrorType; import org.opendaylight.netconf.api.NetconfDocumentedException; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.mdsal.connector.CurrentSchemaContext; import org.opendaylight.netconf.util.mapping.AbstractSingletonNetconfOperation; import org.opendaylight.yangtools.yang.common.QName; diff --git a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/Commit.java b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/Commit.java index 8489faefce..38a24ae79e 100644 --- a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/Commit.java +++ b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/Commit.java @@ -9,10 +9,10 @@ package org.opendaylight.netconf.mdsal.connector.ops; import com.google.common.base.Optional; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.mdsal.connector.TransactionProvider; import org.opendaylight.netconf.util.mapping.AbstractSingletonNetconfOperation; import org.slf4j.Logger; diff --git a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/CopyConfig.java b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/CopyConfig.java index 9f0f9d9910..df29fb30e1 100644 --- a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/CopyConfig.java +++ b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/CopyConfig.java @@ -9,15 +9,15 @@ package org.opendaylight.netconf.mdsal.connector.ops; import com.google.common.base.Optional; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorSeverity; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorTag; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorType; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.md.sal.dom.api.DOMDataReadWriteTransaction; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.DocumentedException.ErrorSeverity; +import org.opendaylight.netconf.api.DocumentedException.ErrorTag; +import org.opendaylight.netconf.api.DocumentedException.ErrorType; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.mdsal.connector.CurrentSchemaContext; import org.opendaylight.netconf.mdsal.connector.TransactionProvider; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; diff --git a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/DiscardChanges.java b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/DiscardChanges.java index 9944f4e9ff..3e90745d33 100644 --- a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/DiscardChanges.java +++ b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/DiscardChanges.java @@ -11,13 +11,13 @@ package org.opendaylight.netconf.mdsal.connector.ops; import com.google.common.base.Optional; import java.util.HashMap; import java.util.Map; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorSeverity; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorTag; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorType; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.DocumentedException.ErrorSeverity; +import org.opendaylight.netconf.api.DocumentedException.ErrorTag; +import org.opendaylight.netconf.api.DocumentedException.ErrorType; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.mdsal.connector.TransactionProvider; import org.opendaylight.netconf.util.mapping.AbstractSingletonNetconfOperation; import org.slf4j.Logger; diff --git a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/EditConfig.java b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/EditConfig.java index 2da085290e..6776b6be26 100644 --- a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/EditConfig.java +++ b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/EditConfig.java @@ -14,15 +14,15 @@ import java.util.List; import java.util.ListIterator; import java.util.concurrent.ExecutionException; import java.util.stream.Collectors; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorSeverity; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorTag; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorType; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.md.sal.dom.api.DOMDataReadWriteTransaction; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.DocumentedException.ErrorSeverity; +import org.opendaylight.netconf.api.DocumentedException.ErrorTag; +import org.opendaylight.netconf.api.DocumentedException.ErrorType; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.mdsal.connector.CurrentSchemaContext; import org.opendaylight.netconf.mdsal.connector.TransactionProvider; import org.opendaylight.netconf.mdsal.connector.ops.DataTreeChangeTracker.DataTreeChange; diff --git a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/Lock.java b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/Lock.java index 3c0089d227..c39c61891e 100644 --- a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/Lock.java +++ b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/Lock.java @@ -9,10 +9,10 @@ package org.opendaylight.netconf.mdsal.connector.ops; import com.google.common.base.Optional; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.util.mapping.AbstractSingletonNetconfOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/RuntimeRpc.java b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/RuntimeRpc.java index d61c249cfd..a2f8c1b6ef 100644 --- a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/RuntimeRpc.java +++ b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/RuntimeRpc.java @@ -21,18 +21,17 @@ import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamWriter; import javax.xml.transform.dom.DOMResult; import javax.xml.transform.dom.DOMSource; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorSeverity; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorTag; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorType; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlMappingConstants; -import org.opendaylight.controller.config.util.xml.XmlUtil; 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.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.DocumentedException.ErrorSeverity; +import org.opendaylight.netconf.api.DocumentedException.ErrorTag; +import org.opendaylight.netconf.api.DocumentedException.ErrorType; import org.opendaylight.netconf.api.NetconfDocumentedException; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.mapping.api.HandlingPriority; import org.opendaylight.netconf.mapping.api.NetconfOperationChainedExecution; import org.opendaylight.netconf.mdsal.connector.CurrentSchemaContext; @@ -182,7 +181,7 @@ public class RuntimeRpc extends AbstractSingletonNetconfOperation { final Map attributes = requestElement.getAttributes(); final Element response = handle(document, operationElement, subsequentOperation); - final Element rpcReply = XmlUtil.createElement(document, XmlMappingConstants.RPC_REPLY_KEY, + final Element rpcReply = XmlUtil.createElement(document, XmlNetconfConstants.RPC_REPLY_KEY, Optional.of(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0)); if (XmlElement.fromDomElement(response).hasNamespace()) { @@ -207,7 +206,7 @@ public class RuntimeRpc extends AbstractSingletonNetconfOperation { private Node transformNormalizedNode(final Document document, final NormalizedNode data, final SchemaPath rpcOutputPath) { - final DOMResult result = new DOMResult(document.createElement(XmlMappingConstants.RPC_REPLY_KEY)); + final DOMResult result = new DOMResult(document.createElement(XmlNetconfConstants.RPC_REPLY_KEY)); final XMLStreamWriter xmlWriter = getXmlStreamWriter(result); diff --git a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/Unlock.java b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/Unlock.java index d0b32c10fb..3b5eb3c7d5 100644 --- a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/Unlock.java +++ b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/Unlock.java @@ -9,10 +9,10 @@ package org.opendaylight.netconf.mdsal.connector.ops; import com.google.common.base.Optional; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.util.mapping.AbstractSingletonNetconfOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/get/AbstractGet.java b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/get/AbstractGet.java index 4fa0baa805..eb6c095020 100644 --- a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/get/AbstractGet.java +++ b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/get/AbstractGet.java @@ -17,11 +17,11 @@ import javax.xml.stream.XMLOutputFactory; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamWriter; import javax.xml.transform.dom.DOMResult; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorSeverity; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorTag; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorType; -import org.opendaylight.controller.config.util.xml.XmlElement; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.DocumentedException.ErrorSeverity; +import org.opendaylight.netconf.api.DocumentedException.ErrorTag; +import org.opendaylight.netconf.api.DocumentedException.ErrorType; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; import org.opendaylight.netconf.mdsal.connector.CurrentSchemaContext; import org.opendaylight.netconf.mdsal.connector.ops.Datastore; diff --git a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/get/FilterContentValidator.java b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/get/FilterContentValidator.java index c4cd6b7726..1c88362cee 100644 --- a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/get/FilterContentValidator.java +++ b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/get/FilterContentValidator.java @@ -22,9 +22,9 @@ import java.util.List; import java.util.Map; import javax.xml.namespace.NamespaceContext; import javax.xml.stream.XMLStreamWriter; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.MissingNameSpaceException; -import org.opendaylight.controller.config.util.xml.XmlElement; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.xml.MissingNameSpaceException; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.mdsal.connector.CurrentSchemaContext; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; diff --git a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/get/Get.java b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/get/Get.java index 376d358c28..603e6d4d03 100644 --- a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/get/Get.java +++ b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/get/Get.java @@ -9,16 +9,16 @@ package org.opendaylight.netconf.mdsal.connector.ops.get; import com.google.common.base.Optional; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorSeverity; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorTag; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorType; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; import org.opendaylight.controller.md.sal.dom.api.DOMDataReadWriteTransaction; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.DocumentedException.ErrorSeverity; +import org.opendaylight.netconf.api.DocumentedException.ErrorTag; +import org.opendaylight.netconf.api.DocumentedException.ErrorType; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.mdsal.connector.CurrentSchemaContext; import org.opendaylight.netconf.mdsal.connector.TransactionProvider; import org.opendaylight.netconf.mdsal.connector.ops.Datastore; diff --git a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/get/GetConfig.java b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/get/GetConfig.java index d383cee471..30b5079925 100644 --- a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/get/GetConfig.java +++ b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/get/GetConfig.java @@ -10,16 +10,16 @@ package org.opendaylight.netconf.mdsal.connector.ops.get; import com.google.common.base.Optional; import com.google.common.base.Preconditions; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorSeverity; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorTag; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorType; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; import org.opendaylight.controller.md.sal.dom.api.DOMDataReadWriteTransaction; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.DocumentedException.ErrorSeverity; +import org.opendaylight.netconf.api.DocumentedException.ErrorTag; +import org.opendaylight.netconf.api.DocumentedException.ErrorType; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.mdsal.connector.CurrentSchemaContext; import org.opendaylight.netconf.mdsal.connector.TransactionProvider; import org.opendaylight.netconf.mdsal.connector.ops.Datastore; diff --git a/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/AbstractNetconfOperationTest.java b/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/AbstractNetconfOperationTest.java index 555f201e8d..5a9a6a60a6 100644 --- a/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/AbstractNetconfOperationTest.java +++ b/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/AbstractNetconfOperationTest.java @@ -29,12 +29,12 @@ import org.custommonkey.xmlunit.Diff; import org.custommonkey.xmlunit.XMLUnit; import org.junit.Before; import org.mockito.MockitoAnnotations; -import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.md.sal.dom.broker.impl.SerializedDOMDataBroker; import org.opendaylight.controller.md.sal.dom.store.impl.InMemoryDOMDataStoreFactory; import org.opendaylight.controller.sal.core.api.model.SchemaService; import org.opendaylight.controller.sal.core.spi.data.DOMStore; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.mapping.api.NetconfOperation; import org.opendaylight.netconf.mapping.api.NetconfOperationChainedExecution; import org.opendaylight.netconf.mdsal.connector.CurrentSchemaContext; @@ -233,4 +233,4 @@ abstract class AbstractNetconfOperationTest { new StreamResult(writer)); LOG.warn(writer.getBuffer().toString()); } -} \ No newline at end of file +} diff --git a/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/CopyConfigTest.java b/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/CopyConfigTest.java index e634dc4cc5..14c177b806 100644 --- a/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/CopyConfigTest.java +++ b/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/CopyConfigTest.java @@ -13,10 +13,10 @@ import static org.junit.Assert.fail; import static org.opendaylight.yangtools.yang.test.util.YangParserTestUtils.parseYangResources; import org.junit.Test; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorSeverity; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorTag; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorType; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.DocumentedException.ErrorSeverity; +import org.opendaylight.netconf.api.DocumentedException.ErrorTag; +import org.opendaylight.netconf.api.DocumentedException.ErrorType; import org.opendaylight.netconf.util.test.XmlFileLoader; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.w3c.dom.Document; @@ -206,4 +206,4 @@ public class CopyConfigTest extends AbstractNetconfOperationTest { getTransactionProvider()); return executeOperation(copyConfig, resource); } -} \ No newline at end of file +} diff --git a/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/NetconfMDSalMappingTest.java b/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/NetconfMDSalMappingTest.java index a7709ecd0e..3361ec5ea4 100644 --- a/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/NetconfMDSalMappingTest.java +++ b/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/NetconfMDSalMappingTest.java @@ -21,12 +21,12 @@ import javax.xml.transform.stream.StreamResult; import org.junit.Assert; import org.junit.Test; import org.mockito.Mockito; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorSeverity; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorTag; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorType; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.DocumentedException.ErrorSeverity; +import org.opendaylight.netconf.api.DocumentedException.ErrorTag; +import org.opendaylight.netconf.api.DocumentedException.ErrorType; +import org.opendaylight.netconf.api.xml.XmlElement; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.mdsal.connector.CurrentSchemaContext; import org.opendaylight.netconf.mdsal.connector.TransactionProvider; import org.opendaylight.netconf.mdsal.connector.ops.get.GetConfig; diff --git a/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/RuntimeRpcTest.java b/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/RuntimeRpcTest.java index 60ac65ab68..28508dbad5 100644 --- a/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/RuntimeRpcTest.java +++ b/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/RuntimeRpcTest.java @@ -32,17 +32,17 @@ import org.custommonkey.xmlunit.examples.RecursiveElementNameAndTextQualifier; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorSeverity; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorTag; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorType; -import org.opendaylight.controller.config.util.xml.XmlUtil; 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.controller.sal.core.api.model.SchemaService; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.DocumentedException.ErrorSeverity; +import org.opendaylight.netconf.api.DocumentedException.ErrorTag; +import org.opendaylight.netconf.api.DocumentedException.ErrorType; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.mapping.api.HandlingPriority; import org.opendaylight.netconf.mapping.api.NetconfOperationChainedExecution; import org.opendaylight.netconf.mdsal.connector.CurrentSchemaContext; diff --git a/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/get/Bug8084.java b/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/get/Bug8084.java index d90e31b071..779d493482 100644 --- a/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/get/Bug8084.java +++ b/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/get/Bug8084.java @@ -16,8 +16,8 @@ import java.math.BigInteger; import java.util.HashMap; import java.util.Map; import org.junit.Test; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.xml.XmlElement; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.mdsal.connector.CurrentSchemaContext; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; diff --git a/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/get/FilterContentValidatorTest.java b/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/get/FilterContentValidatorTest.java index cec6855c46..04a3a1414c 100644 --- a/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/get/FilterContentValidatorTest.java +++ b/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/get/FilterContentValidatorTest.java @@ -28,8 +28,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.model.InitializationError; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.xml.XmlElement; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.mdsal.connector.CurrentSchemaContext; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; diff --git a/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/get/Netconf506Test.java b/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/get/Netconf506Test.java index de4f801ab4..7aa7df12cf 100644 --- a/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/get/Netconf506Test.java +++ b/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/get/Netconf506Test.java @@ -14,8 +14,8 @@ import static org.mockito.Mockito.mock; import java.util.HashMap; import java.util.Map; import org.junit.Test; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.xml.XmlElement; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.mdsal.connector.CurrentSchemaContext; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; diff --git a/netconf/mdsal-netconf-connector/src/test/resources/filter/expected.txt b/netconf/mdsal-netconf-connector/src/test/resources/filter/expected.txt index 95e7a12cb6..873fa7bf99 100644 --- a/netconf/mdsal-netconf-connector/src/test/resources/filter/expected.txt +++ b/netconf/mdsal-netconf-connector/src/test/resources/filter/expected.txt @@ -1,13 +1,13 @@ -error=org.opendaylight.controller.config.util.xml.DocumentedException +error=org.opendaylight.netconf.api.DocumentedException success=/(urn:dummy:mod-0?revision=2016-03-01)mainroot success=/(urn:dummy:mod-0?revision=2016-03-01)mainroot/choiceList success=/(urn:dummy:mod-0?revision=2016-03-01)mainroot/maincontent success=/(urn:dummy:mod-0?revision=2016-03-01)mainroot/choiceList success=/(urn:dummy:mod-0?revision=2016-03-01)mainroot success=/(urn:dummy:mod-0?revision=2016-03-01)mainroot/(urn:dummy:aug?revision=1999-08-17)augmented-leaf -error=org.opendaylight.controller.config.util.xml.DocumentedException +error=org.opendaylight.netconf.api.DocumentedException success=/(urn:dummy:mod-0?revision=2016-03-01)mainroot/choiceList/choiceList[{(urn:dummy:mod-0?revision=2016-03-01)name=aaa}] success=/(urn:dummy:mod-0?revision=2016-03-01)mainroot/multi-key-list success=/(urn:dummy:mod-0?revision=2016-03-01)mainroot/multi-key-list/multi-key-list[{(urn:dummy:mod-0?revision=2016-03-01)id1=aaa, (urn:dummy:mod-0?revision=2016-03-01)id2=bbb}] success=/(urn:dummy:mod-0?revision=2016-03-01)mainroot/multi-key-list -success=/(urn:dummy:mod-0?revision=2016-03-01)mainroot/inner/inner-multi-key-list/inner-multi-key-list[{(urn:dummy:mod-0?revision=2016-03-01)id1=aaa, (urn:dummy:mod-0?revision=2016-03-01)id2=bbb}] \ No newline at end of file +success=/(urn:dummy:mod-0?revision=2016-03-01)mainroot/inner/inner-multi-key-list/inner-multi-key-list[{(urn:dummy:mod-0?revision=2016-03-01)id1=aaa, (urn:dummy:mod-0?revision=2016-03-01)id2=bbb}] diff --git a/netconf/mdsal-netconf-monitoring/src/main/java/org/opendaylight/controller/config/yang/netconf/mdsal/monitoring/MdsalMonitoringMapperFactory.java b/netconf/mdsal-netconf-monitoring/src/main/java/org/opendaylight/controller/config/yang/netconf/mdsal/monitoring/MdsalMonitoringMapperFactory.java index a163dd7540..cb98d40892 100644 --- a/netconf/mdsal-netconf-monitoring/src/main/java/org/opendaylight/controller/config/yang/netconf/mdsal/monitoring/MdsalMonitoringMapperFactory.java +++ b/netconf/mdsal-netconf-monitoring/src/main/java/org/opendaylight/controller/config/yang/netconf/mdsal/monitoring/MdsalMonitoringMapperFactory.java @@ -9,8 +9,8 @@ package org.opendaylight.controller.config.yang.netconf.mdsal.monitoring; import java.util.Collections; import java.util.Set; -import org.opendaylight.controller.config.util.capability.Capability; import org.opendaylight.controller.sal.common.util.NoopAutoCloseable; +import org.opendaylight.netconf.api.capability.Capability; import org.opendaylight.netconf.api.monitoring.CapabilityListener; import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService; import org.opendaylight.netconf.mapping.api.NetconfOperation; @@ -77,4 +77,4 @@ public class MdsalMonitoringMapperFactory implements NetconfOperationServiceFact netconfOperationServiceFactoryListener.onRemoveNetconfOperationServiceFactory(this); } -} \ No newline at end of file +} diff --git a/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/NetconfNotificationOperationServiceFactory.java b/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/NetconfNotificationOperationServiceFactory.java index b6c92d0a85..1846494aa8 100644 --- a/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/NetconfNotificationOperationServiceFactory.java +++ b/netconf/mdsal-netconf-notification/src/main/java/org/opendaylight/netconf/mdsal/notification/NetconfNotificationOperationServiceFactory.java @@ -10,8 +10,8 @@ package org.opendaylight.netconf.mdsal.notification; import java.util.Collections; import java.util.Set; -import org.opendaylight.controller.config.util.capability.Capability; import org.opendaylight.controller.sal.common.util.NoopAutoCloseable; +import org.opendaylight.netconf.api.capability.Capability; import org.opendaylight.netconf.api.monitoring.CapabilityListener; import org.opendaylight.netconf.mapping.api.NetconfOperationService; import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory; diff --git a/netconf/messagebus-netconf/src/main/java/org/opendaylight/netconf/messagebus/eventsources/netconf/NetconfEventSource.java b/netconf/messagebus-netconf/src/main/java/org/opendaylight/netconf/messagebus/eventsources/netconf/NetconfEventSource.java index a8959888a0..cdaa00bc13 100644 --- a/netconf/messagebus-netconf/src/main/java/org/opendaylight/netconf/messagebus/eventsources/netconf/NetconfEventSource.java +++ b/netconf/messagebus-netconf/src/main/java/org/opendaylight/netconf/messagebus/eventsources/netconf/NetconfEventSource.java @@ -30,7 +30,6 @@ import java.util.regex.Pattern; import javax.xml.stream.XMLStreamException; import javax.xml.transform.dom.DOMResult; import javax.xml.transform.dom.DOMSource; -import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; import org.opendaylight.controller.md.sal.dom.api.DOMEvent; import org.opendaylight.controller.md.sal.dom.api.DOMNotification; @@ -39,6 +38,7 @@ import org.opendaylight.controller.md.sal.dom.api.DOMNotificationPublishService; import org.opendaylight.controller.messagebus.app.util.TopicDOMNotification; import org.opendaylight.controller.messagebus.app.util.Util; import org.opendaylight.controller.messagebus.spi.EventSource; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.util.NetconfUtil; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.messagebus.eventaggregator.rev141202.NotificationPattern; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.messagebus.eventaggregator.rev141202.TopicId; diff --git a/netconf/netconf-api/pom.xml b/netconf/netconf-api/pom.xml index c6f90377fd..84fcfd0112 100644 --- a/netconf/netconf-api/pom.xml +++ b/netconf/netconf-api/pom.xml @@ -22,18 +22,6 @@ ${project.artifactId} bundle - - - - org.opendaylight.controller - config-artifacts - 0.9.0-SNAPSHOT - pom - import - - - - ${project.groupId} @@ -47,10 +35,6 @@ ${project.groupId} protocol-framework - - org.opendaylight.controller - config-util - org.opendaylight.mdsal.model ietf-inet-types-2013-07-15 @@ -59,9 +43,18 @@ org.opendaylight.mdsal.model ietf-yang-types-20130715 + + org.opendaylight.yangtools + yang-model-api + org.opendaylight.yangtools mockito-configuration + + xmlunit + xmlunit + test + diff --git a/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/DocumentedException.java b/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/DocumentedException.java new file mode 100644 index 0000000000..ec6b0606e9 --- /dev/null +++ b/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/DocumentedException.java @@ -0,0 +1,324 @@ +/* + * Copyright (c) 2015 Cisco Systems, Inc. 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.api; + +import static org.opendaylight.netconf.api.xml.XmlNetconfConstants.RPC_REPLY_KEY; +import static org.opendaylight.netconf.api.xml.XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0; + +import com.google.common.base.Preconditions; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.Map.Entry; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.w3c.dom.Document; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +/** + * Checked exception to communicate an error that needs to be sent to the + * netconf client. + */ +public class DocumentedException extends Exception { + + public static final String RPC_ERROR = "rpc-error"; + public static final String ERROR_TYPE = "error-type"; + public static final String ERROR_TAG = "error-tag"; + public static final String ERROR_SEVERITY = "error-severity"; + public static final String ERROR_APP_TAG = "error-app-tag"; + public static final String ERROR_PATH = "error-path"; + public static final String ERROR_MESSAGE = "error-message"; + public static final String ERROR_INFO = "error-info"; + + private static final long serialVersionUID = 1L; + + private static final Logger LOG = LoggerFactory.getLogger(DocumentedException.class); + + private static final DocumentBuilderFactory BUILDER_FACTORY; + + static { + BUILDER_FACTORY = DocumentBuilderFactory.newInstance(); + try { + BUILDER_FACTORY.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true); + BUILDER_FACTORY.setFeature("http://xml.org/sax/features/external-general-entities", false); + BUILDER_FACTORY.setFeature("http://xml.org/sax/features/external-parameter-entities", false); + BUILDER_FACTORY.setXIncludeAware(false); + BUILDER_FACTORY.setExpandEntityReferences(false); + } catch (final ParserConfigurationException e) { + throw new ExceptionInInitializerError(e); + } + BUILDER_FACTORY.setNamespaceAware(true); + BUILDER_FACTORY.setCoalescing(true); + BUILDER_FACTORY.setIgnoringElementContentWhitespace(true); + BUILDER_FACTORY.setIgnoringComments(true); + } + + public enum ErrorType { + TRANSPORT("transport"), RPC("rpc"), PROTOCOL("protocol"), APPLICATION("application"); + + private final String typeValue; + + ErrorType(final String typeValue) { + this.typeValue = Preconditions.checkNotNull(typeValue); + } + + public String getTypeValue() { + return this.typeValue; + } + + public static ErrorType from(final String text) { + for (ErrorType e : values()) { + if (e.getTypeValue().equalsIgnoreCase(text)) { + return e; + } + } + + return APPLICATION; + } + } + + public enum ErrorTag { + ACCESS_DENIED("access-denied"), + BAD_ATTRIBUTE("bad-attribute"), + BAD_ELEMENT("bad-element"), + DATA_EXISTS("data-exists"), + DATA_MISSING("data-missing"), + IN_USE("in-use"), + INVALID_VALUE("invalid-value"), + LOCK_DENIED("lock-denied"), + MALFORMED_MESSAGE("malformed-message"), + MISSING_ATTRIBUTE("missing-attribute"), + MISSING_ELEMENT("missing-element"), + OPERATION_FAILED("operation-failed"), + OPERATION_NOT_SUPPORTED("operation-not-supported"), + RESOURCE_DENIED("resource-denied"), + ROLLBCK_FAILED("rollback-failed"), + TOO_BIG("too-big"), + UNKNOWN_ATTRIBUTE("unknown-attribute"), + UNKNOWN_ELEMENT("unknown-element"), + UNKNOWN_NAMESPACE("unknown-namespace"); + + private final String tagValue; + + ErrorTag(final String tagValue) { + this.tagValue = tagValue; + } + + public String getTagValue() { + return this.tagValue; + } + + public static ErrorTag from(final String text) { + for (ErrorTag e : values()) { + if (e.getTagValue().equals(text)) { + return e; + } + } + + return OPERATION_FAILED; + } + } + + public enum ErrorSeverity { + ERROR("error"), WARNING("warning"); + + private final String severityValue; + + ErrorSeverity(final String severityValue) { + this.severityValue = Preconditions.checkNotNull(severityValue); + } + + public String getSeverityValue() { + return this.severityValue; + } + + public static ErrorSeverity from(final String text) { + for (ErrorSeverity e : values()) { + if (e.getSeverityValue().equalsIgnoreCase(text)) { + return e; + } + } + + return ERROR; + } + } + + private final ErrorType errorType; + private final ErrorTag errorTag; + private final ErrorSeverity errorSeverity; + private final Map errorInfo; + + public DocumentedException(final String message) { + this(message, DocumentedException.ErrorType.APPLICATION, DocumentedException.ErrorTag.INVALID_VALUE, + DocumentedException.ErrorSeverity.ERROR); + } + + public DocumentedException(final String message, final Exception cause) { + this(message, cause, DocumentedException.ErrorType.APPLICATION, DocumentedException.ErrorTag.INVALID_VALUE, + DocumentedException.ErrorSeverity.ERROR); + } + + public DocumentedException(final String message, final ErrorType errorType, final ErrorTag errorTag, + final ErrorSeverity errorSeverity) { + this(message, errorType, errorTag, errorSeverity, Collections.emptyMap()); + } + + public DocumentedException(final String message, final ErrorType errorType, final ErrorTag errorTag, + final ErrorSeverity errorSeverity, final Map errorInfo) { + super(message); + this.errorType = errorType; + this.errorTag = errorTag; + this.errorSeverity = errorSeverity; + this.errorInfo = errorInfo; + } + + public DocumentedException(final String message, final Exception cause, final ErrorType errorType, + final ErrorTag errorTag, final ErrorSeverity errorSeverity) { + this(message, cause, errorType, errorTag, errorSeverity, Collections.emptyMap()); + } + + public DocumentedException(final String message, final Exception cause, final ErrorType errorType, + final ErrorTag errorTag, final ErrorSeverity errorSeverity, final Map errorInfo) { + super(message, cause); + this.errorType = errorType; + this.errorTag = errorTag; + this.errorSeverity = errorSeverity; + this.errorInfo = errorInfo; + } + + public static DocumentedException wrap(final E exception) throws DocumentedException { + final Map errorInfo = new HashMap<>(); + errorInfo.put(ErrorTag.OPERATION_FAILED.name(), "Exception thrown"); + throw new DocumentedException(exception.getMessage(), exception, ErrorType.APPLICATION, + ErrorTag.OPERATION_FAILED, ErrorSeverity.ERROR, errorInfo); + } + + public static DocumentedException fromXMLDocument(final Document fromDoc) { + + ErrorType errorType = ErrorType.APPLICATION; + ErrorTag errorTag = ErrorTag.OPERATION_FAILED; + ErrorSeverity errorSeverity = ErrorSeverity.ERROR; + Map errorInfo = null; + String errorMessage = ""; + + Node rpcReply = fromDoc.getDocumentElement(); + + // FIXME: BUG? - we only handle one rpc-error. + + NodeList replyChildren = rpcReply.getChildNodes(); + for (int i = 0; i < replyChildren.getLength(); i++) { + Node replyChild = replyChildren.item(i); + if (RPC_ERROR.equals(replyChild.getNodeName())) { + NodeList rpcErrorChildren = replyChild.getChildNodes(); + for (int j = 0; j < rpcErrorChildren.getLength(); j++) { + Node rpcErrorChild = rpcErrorChildren.item(j); + if (ERROR_TYPE.equals(rpcErrorChild.getNodeName())) { + errorType = ErrorType.from(rpcErrorChild.getTextContent()); + } else if (ERROR_TAG.equals(rpcErrorChild.getNodeName())) { + errorTag = ErrorTag.from(rpcErrorChild.getTextContent()); + } else if (ERROR_SEVERITY.equals(rpcErrorChild.getNodeName())) { + errorSeverity = ErrorSeverity.from(rpcErrorChild.getTextContent()); + } else if (ERROR_MESSAGE.equals(rpcErrorChild.getNodeName())) { + errorMessage = rpcErrorChild.getTextContent(); + } else if (ERROR_INFO.equals(rpcErrorChild.getNodeName())) { + errorInfo = parseErrorInfo(rpcErrorChild); + } + } + + break; + } + } + + return new DocumentedException(errorMessage, errorType, errorTag, errorSeverity, errorInfo); + } + + private static Map parseErrorInfo(final Node node) { + Map infoMap = new HashMap<>(); + NodeList children = node.getChildNodes(); + for (int i = 0; i < children.getLength(); i++) { + Node child = children.item(i); + if (child.getNodeType() == Node.ELEMENT_NODE) { + infoMap.put(child.getNodeName(), child.getTextContent()); + } + } + + return infoMap; + } + + public ErrorType getErrorType() { + return this.errorType; + } + + public ErrorTag getErrorTag() { + return this.errorTag; + } + + public ErrorSeverity getErrorSeverity() { + return this.errorSeverity; + } + + public Map getErrorInfo() { + return this.errorInfo; + } + + public Document toXMLDocument() { + Document doc = null; + try { + doc = BUILDER_FACTORY.newDocumentBuilder().newDocument(); + + Node rpcReply = doc.createElementNS(URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0, RPC_REPLY_KEY); + doc.appendChild(rpcReply); + + Node rpcError = doc.createElementNS(URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0, RPC_ERROR); + rpcReply.appendChild(rpcError); + + rpcError.appendChild(createTextNode(doc, ERROR_TYPE, getErrorType().getTypeValue())); + rpcError.appendChild(createTextNode(doc, ERROR_TAG, getErrorTag().getTagValue())); + rpcError.appendChild(createTextNode(doc, ERROR_SEVERITY, getErrorSeverity().getSeverityValue())); + rpcError.appendChild(createTextNode(doc, ERROR_MESSAGE, getLocalizedMessage())); + + Map errorInfoMap = getErrorInfo(); + if (errorInfoMap != null && !errorInfoMap.isEmpty()) { + /* + * message-id + * rpc + */ + + Node errorInfoNode = doc.createElementNS(URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0, ERROR_INFO); + errorInfoNode.setPrefix(rpcReply.getPrefix()); + rpcError.appendChild(errorInfoNode); + + for (Entry entry : errorInfoMap.entrySet()) { + errorInfoNode.appendChild(createTextNode(doc, entry.getKey(), entry.getValue())); + } + } + } catch (final ParserConfigurationException e) { + // this shouldn't happen + LOG.error("Error outputting to XML document", e); + } + + return doc; + } + + private Node createTextNode(final Document doc, final String tag, final String textContent) { + Node node = doc.createElementNS(URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0, tag); + node.setTextContent(textContent); + return node; + } + + @Override + public String toString() { + return "NetconfDocumentedException{" + "message=" + getMessage() + ", errorType=" + this.errorType + + ", errorTag=" + this.errorTag + ", errorSeverity=" + this.errorSeverity + ", errorInfo=" + + this.errorInfo + '}'; + } +} diff --git a/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/NetconfDocumentedException.java b/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/NetconfDocumentedException.java index 2adb4984b8..87b2ac7298 100644 --- a/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/NetconfDocumentedException.java +++ b/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/NetconfDocumentedException.java @@ -10,7 +10,6 @@ package org.opendaylight.netconf.api; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.Map; -import org.opendaylight.controller.config.util.xml.DocumentedException; import org.w3c.dom.Document; /** diff --git a/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/capability/BasicCapability.java b/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/capability/BasicCapability.java new file mode 100644 index 0000000000..ea025d8b26 --- /dev/null +++ b/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/capability/BasicCapability.java @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2015 Cisco Systems, Inc. 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.api.capability; + +import com.google.common.base.Optional; +import java.util.Collection; +import java.util.Collections; + +/** + * Capability representing a basic, one-line, string based capability. + */ +public class BasicCapability implements Capability { + + private final String capability; + + public BasicCapability(final String capability) { + this.capability = capability; + } + + @Override + public String getCapabilityUri() { + return capability; + } + + @Override + public Optional getModuleNamespace() { + return Optional.absent(); + } + + @Override + public Optional getModuleName() { + return Optional.absent(); + } + + @Override + public Optional getRevision() { + return Optional.absent(); + } + + @Override + public Optional getCapabilitySchema() { + return Optional.absent(); + } + + @Override + public Collection getLocation() { + return Collections.emptyList(); + } + + @Override + public String toString() { + return capability; + } +} diff --git a/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/capability/Capability.java b/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/capability/Capability.java new file mode 100644 index 0000000000..f17ce50707 --- /dev/null +++ b/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/capability/Capability.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2015 Cisco Systems, Inc. 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.api.capability; + +import com.google.common.base.Optional; +import java.util.Collection; + +/** + * Contains capability URI announced by server hello message and optionally its + * corresponding yang schema that can be retrieved by get-schema rpc. + */ +public interface Capability { + + String getCapabilityUri(); + + Optional getModuleNamespace(); + + Optional getModuleName(); + + Optional getRevision(); + + Optional getCapabilitySchema(); + + Collection getLocation(); +} diff --git a/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/capability/YangModuleCapability.java b/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/capability/YangModuleCapability.java new file mode 100644 index 0000000000..6546f660b3 --- /dev/null +++ b/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/capability/YangModuleCapability.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2015 Cisco Systems, Inc. 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.api.capability; + +import com.google.common.base.Optional; +import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.model.api.Module; + +/** + * Yang model representing capability. + */ +public final class YangModuleCapability extends BasicCapability { + + private final String content; + private final String revision; + private final String moduleName; + private final String moduleNamespace; + + public YangModuleCapability(final Module module, final String moduleContent) { + super(toCapabilityURI(module)); + this.content = moduleContent; + this.moduleName = module.getName(); + this.moduleNamespace = module.getNamespace().toString(); + this.revision = module.getRevision().map(Revision::toString).orElse(null); + } + + @Override + public Optional getCapabilitySchema() { + return Optional.of(content); + } + + private static String toCapabilityURI(final Module module) { + final StringBuilder sb = new StringBuilder(); + sb.append(module.getNamespace()).append("?module=").append(module.getName()); + + final java.util.Optional rev = module.getRevision(); + if (rev.isPresent()) { + sb.append("&revision=").append(rev.get()); + } + return sb.toString(); + } + + @Override + public Optional getModuleName() { + return Optional.of(moduleName); + } + + @Override + public Optional getModuleNamespace() { + return Optional.of(moduleNamespace); + } + + @Override + public Optional getRevision() { + return Optional.of(revision); + } +} diff --git a/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/messages/NetconfHelloMessage.java b/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/messages/NetconfHelloMessage.java index f3266968f0..d450672638 100644 --- a/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/messages/NetconfHelloMessage.java +++ b/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/messages/NetconfHelloMessage.java @@ -11,11 +11,11 @@ package org.opendaylight.netconf.api.messages; import com.google.common.base.Optional; import com.google.common.collect.Sets; import java.util.Set; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.netconf.api.NetconfDocumentedException; import org.opendaylight.netconf.api.NetconfMessage; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.yangtools.util.xml.UntrustedXML; import org.w3c.dom.Document; import org.w3c.dom.Element; diff --git a/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/monitoring/CapabilityListener.java b/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/monitoring/CapabilityListener.java index 77f73cc913..360a588826 100644 --- a/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/monitoring/CapabilityListener.java +++ b/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/monitoring/CapabilityListener.java @@ -9,7 +9,7 @@ package org.opendaylight.netconf.api.monitoring; import java.util.Set; -import org.opendaylight.controller.config.util.capability.Capability; +import org.opendaylight.netconf.api.capability.Capability; public interface CapabilityListener { diff --git a/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/xml/MissingNameSpaceException.java b/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/xml/MissingNameSpaceException.java new file mode 100644 index 0000000000..d5ab5d0648 --- /dev/null +++ b/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/xml/MissingNameSpaceException.java @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2013 Cisco Systems, Inc. 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.api.xml; + +import java.util.Collections; +import java.util.Map; +import org.opendaylight.netconf.api.DocumentedException; + +public class MissingNameSpaceException extends DocumentedException { + private static final long serialVersionUID = 1L; + + public MissingNameSpaceException(final String message, final DocumentedException.ErrorType errorType, + final DocumentedException.ErrorTag errorTag, final DocumentedException.ErrorSeverity errorSeverity) { + this(message, errorType, errorTag, errorSeverity, Collections.emptyMap()); + } + + public MissingNameSpaceException(final String message, final DocumentedException.ErrorType errorType, + final DocumentedException.ErrorTag errorTag, final DocumentedException.ErrorSeverity errorSeverity, + final Map errorInfo) { + super(message, errorType, errorTag, errorSeverity, errorInfo); + } +} diff --git a/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/xml/UnexpectedElementException.java b/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/xml/UnexpectedElementException.java new file mode 100644 index 0000000000..ec31b9e615 --- /dev/null +++ b/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/xml/UnexpectedElementException.java @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2013 Cisco Systems, Inc. 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.api.xml; + +import java.util.Collections; +import java.util.Map; +import org.opendaylight.netconf.api.DocumentedException; + +public class UnexpectedElementException extends DocumentedException { + private static final long serialVersionUID = 1L; + + public UnexpectedElementException(final String message, final DocumentedException.ErrorType errorType, + final DocumentedException.ErrorTag errorTag, final DocumentedException.ErrorSeverity errorSeverity) { + this(message, errorType, errorTag, errorSeverity, Collections.emptyMap()); + } + + public UnexpectedElementException(final String message, final DocumentedException.ErrorType errorType, + final DocumentedException.ErrorTag errorTag, final DocumentedException.ErrorSeverity errorSeverity, + final Map errorInfo) { + super(message, errorType, errorTag, errorSeverity, errorInfo); + } +} diff --git a/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/xml/UnexpectedNamespaceException.java b/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/xml/UnexpectedNamespaceException.java new file mode 100644 index 0000000000..4152e261b3 --- /dev/null +++ b/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/xml/UnexpectedNamespaceException.java @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2013 Cisco Systems, Inc. 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.api.xml; + +import java.util.Collections; +import java.util.Map; +import org.opendaylight.netconf.api.DocumentedException; + +public class UnexpectedNamespaceException extends DocumentedException { + private static final long serialVersionUID = 1L; + + public UnexpectedNamespaceException(final String message, final DocumentedException.ErrorType errorType, + final DocumentedException.ErrorTag errorTag, final DocumentedException.ErrorSeverity errorSeverity) { + this(message, errorType, errorTag, errorSeverity, Collections.emptyMap()); + } + + public UnexpectedNamespaceException(final String message, final DocumentedException.ErrorType errorType, + final DocumentedException.ErrorTag errorTag, final DocumentedException.ErrorSeverity errorSeverity, + final Map errorInfo) { + super(message, errorType, errorTag, errorSeverity, errorInfo); + } +} diff --git a/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/xml/XmlElement.java b/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/xml/XmlElement.java new file mode 100644 index 0000000000..ad90fb3cb2 --- /dev/null +++ b/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/xml/XmlElement.java @@ -0,0 +1,503 @@ +/* + * Copyright (c) 2015 Cisco Systems, Inc. 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.api.xml; + +import com.google.common.base.Optional; +import com.google.common.base.Strings; +import com.google.common.collect.Collections2; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.opendaylight.netconf.api.DocumentedException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.w3c.dom.Attr; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NamedNodeMap; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.w3c.dom.Text; +import org.xml.sax.SAXException; + +public final class XmlElement { + + public static final String DEFAULT_NAMESPACE_PREFIX = ""; + + private final Element element; + private static final Logger LOG = LoggerFactory.getLogger(XmlElement.class); + + private XmlElement(final Element element) { + this.element = element; + } + + public static XmlElement fromDomElement(final Element element) { + return new XmlElement(element); + } + + public static XmlElement fromDomDocument(final Document xml) { + return new XmlElement(xml.getDocumentElement()); + } + + public static XmlElement fromString(final String str) throws DocumentedException { + try { + return new XmlElement(XmlUtil.readXmlToElement(str)); + } catch (IOException | SAXException e) { + throw DocumentedException.wrap(e); + } + } + + public static XmlElement fromDomElementWithExpected(final Element element, final String expectedName) + throws DocumentedException { + XmlElement xmlElement = XmlElement.fromDomElement(element); + xmlElement.checkName(expectedName); + return xmlElement; + } + + public static XmlElement fromDomElementWithExpected(final Element element, final String expectedName, + final String expectedNamespace) throws DocumentedException { + XmlElement xmlElement = XmlElement.fromDomElementWithExpected(element, expectedName); + xmlElement.checkNamespace(expectedNamespace); + return xmlElement; + } + + private Map extractNamespaces() throws DocumentedException { + Map namespaces = new HashMap<>(); + NamedNodeMap attributes = element.getAttributes(); + for (int i = 0; i < attributes.getLength(); i++) { + Node attribute = attributes.item(i); + String attribKey = attribute.getNodeName(); + if (attribKey.startsWith(XmlUtil.XMLNS_ATTRIBUTE_KEY)) { + String prefix; + if (attribKey.equals(XmlUtil.XMLNS_ATTRIBUTE_KEY)) { + prefix = DEFAULT_NAMESPACE_PREFIX; + } else { + if (!attribKey.startsWith(XmlUtil.XMLNS_ATTRIBUTE_KEY + ":")) { + throw new DocumentedException("Attribute doesn't start with :", + DocumentedException.ErrorType.APPLICATION, + DocumentedException.ErrorTag.INVALID_VALUE, + DocumentedException.ErrorSeverity.ERROR); + } + prefix = attribKey.substring(XmlUtil.XMLNS_ATTRIBUTE_KEY.length() + 1); + } + namespaces.put(prefix, attribute.getNodeValue()); + } + } + + // namespace does not have to be defined on this element but inherited + if (!namespaces.containsKey(DEFAULT_NAMESPACE_PREFIX)) { + Optional namespaceOptionally = getNamespaceOptionally(); + if (namespaceOptionally.isPresent()) { + namespaces.put(DEFAULT_NAMESPACE_PREFIX, namespaceOptionally.get()); + } + } + + return namespaces; + } + + public void checkName(final String expectedName) throws UnexpectedElementException { + if (!getName().equals(expectedName)) { + throw new UnexpectedElementException(String.format("Expected %s xml element but was %s", expectedName, + getName()), + DocumentedException.ErrorType.APPLICATION, + DocumentedException.ErrorTag.OPERATION_FAILED, + DocumentedException.ErrorSeverity.ERROR); + } + } + + public void checkNamespaceAttribute(final String expectedNamespace) + throws UnexpectedNamespaceException, MissingNameSpaceException { + if (!getNamespaceAttribute().equals(expectedNamespace)) { + throw new UnexpectedNamespaceException(String.format("Unexpected namespace %s should be %s", + getNamespaceAttribute(), + expectedNamespace), + DocumentedException.ErrorType.APPLICATION, + DocumentedException.ErrorTag.OPERATION_FAILED, + DocumentedException.ErrorSeverity.ERROR); + } + } + + public void checkNamespace(final String expectedNamespace) + throws UnexpectedNamespaceException, MissingNameSpaceException { + if (!getNamespace().equals(expectedNamespace)) { + throw new UnexpectedNamespaceException(String.format("Unexpected namespace %s should be %s", + getNamespace(), + expectedNamespace), + DocumentedException.ErrorType.APPLICATION, + DocumentedException.ErrorTag.OPERATION_FAILED, + DocumentedException.ErrorSeverity.ERROR); + } + } + + public String getName() { + final String localName = element.getLocalName(); + if (!Strings.isNullOrEmpty(localName)) { + return localName; + } + return element.getTagName(); + } + + public String getAttribute(final String attributeName) { + return element.getAttribute(attributeName); + } + + public String getAttribute(final String attributeName, final String namespace) { + return element.getAttributeNS(namespace, attributeName); + } + + public NodeList getElementsByTagName(final String name) { + return element.getElementsByTagName(name); + } + + public void appendChild(final Element toAppend) { + this.element.appendChild(toAppend); + } + + public Element getDomElement() { + return element; + } + + public Map getAttributes() { + + Map mappedAttributes = Maps.newHashMap(); + + NamedNodeMap attributes = element.getAttributes(); + for (int i = 0; i < attributes.getLength(); i++) { + Attr attr = (Attr) attributes.item(i); + mappedAttributes.put(attr.getNodeName(), attr); + } + + return mappedAttributes; + } + + /** + * Non recursive. + */ + private List getChildElementsInternal(final ElementFilteringStrategy strat) { + NodeList childNodes = element.getChildNodes(); + final List result = new ArrayList<>(); + for (int i = 0; i < childNodes.getLength(); i++) { + Node item = childNodes.item(i); + if (!(item instanceof Element)) { + continue; + } + if (strat.accept((Element) item)) { + result.add(new XmlElement((Element) item)); + } + } + + return result; + } + + public List getChildElements() { + return getChildElementsInternal(e -> true); + } + + /** + * Returns the child elements for the given tag. + * + * @param tagName tag name without prefix + * @return List of child elements + */ + public List getChildElements(final String tagName) { + return getChildElementsInternal(e -> { + // localName returns pure localName without prefix + return e.getLocalName().equals(tagName); + }); + } + + public List getChildElementsWithinNamespace(final String childName, final String namespace) { + return Lists.newArrayList(Collections2.filter(getChildElementsWithinNamespace(namespace), + xmlElement -> xmlElement.getName().equals(childName))); + } + + public List getChildElementsWithinNamespace(final String namespace) { + return getChildElementsInternal(e -> { + try { + return XmlElement.fromDomElement(e).getNamespace().equals(namespace); + } catch (final MissingNameSpaceException e1) { + return false; + } + }); + } + + public Optional getOnlyChildElementOptionally(final String childName) { + List nameElements = getChildElements(childName); + if (nameElements.size() != 1) { + return Optional.absent(); + } + return Optional.of(nameElements.get(0)); + } + + public Optional getOnlyChildElementOptionally(final String childName, final String namespace) { + List children = getChildElementsWithinNamespace(namespace); + children = Lists.newArrayList(Collections2.filter(children, + xmlElement -> xmlElement.getName().equals(childName))); + if (children.size() != 1) { + return Optional.absent(); + } + return Optional.of(children.get(0)); + } + + public Optional getOnlyChildElementOptionally() { + List children = getChildElements(); + if (children.size() != 1) { + return Optional.absent(); + } + return Optional.of(children.get(0)); + } + + public XmlElement getOnlyChildElementWithSameNamespace(final String childName) throws DocumentedException { + return getOnlyChildElement(childName, getNamespace()); + } + + public XmlElement getOnlyChildElementWithSameNamespace() throws DocumentedException { + XmlElement childElement = getOnlyChildElement(); + childElement.checkNamespace(getNamespace()); + return childElement; + } + + public Optional getOnlyChildElementWithSameNamespaceOptionally(final String childName) { + Optional namespace = getNamespaceOptionally(); + if (namespace.isPresent()) { + List children = getChildElementsWithinNamespace(namespace.get()); + children = Lists.newArrayList(Collections2.filter(children, + xmlElement -> xmlElement.getName().equals(childName))); + if (children.size() != 1) { + return Optional.absent(); + } + return Optional.of(children.get(0)); + } + return Optional.absent(); + } + + public Optional getOnlyChildElementWithSameNamespaceOptionally() { + Optional child = getOnlyChildElementOptionally(); + if (child.isPresent() + && child.get().getNamespaceOptionally().isPresent() + && getNamespaceOptionally().isPresent() + && getNamespaceOptionally().get().equals(child.get().getNamespaceOptionally().get())) { + return child; + } + return Optional.absent(); + } + + public XmlElement getOnlyChildElement(final String childName, final String namespace) throws DocumentedException { + List children = getChildElementsWithinNamespace(namespace); + children = Lists.newArrayList(Collections2.filter(children, + xmlElement -> xmlElement.getName().equals(childName))); + if (children.size() != 1) { + throw new DocumentedException(String.format("One element %s:%s expected in %s but was %s", namespace, + childName, toString(), children.size()), + DocumentedException.ErrorType.APPLICATION, + DocumentedException.ErrorTag.INVALID_VALUE, + DocumentedException.ErrorSeverity.ERROR); + } + + return children.get(0); + } + + public XmlElement getOnlyChildElement(final String childName) throws DocumentedException { + List nameElements = getChildElements(childName); + if (nameElements.size() != 1) { + throw new DocumentedException("One element " + childName + " expected in " + toString(), + DocumentedException.ErrorType.APPLICATION, + DocumentedException.ErrorTag.INVALID_VALUE, + DocumentedException.ErrorSeverity.ERROR); + } + return nameElements.get(0); + } + + public XmlElement getOnlyChildElement() throws DocumentedException { + List children = getChildElements(); + if (children.size() != 1) { + throw new DocumentedException(String.format("One element expected in %s but was %s", toString(), + children.size()), + DocumentedException.ErrorType.APPLICATION, + DocumentedException.ErrorTag.INVALID_VALUE, + DocumentedException.ErrorSeverity.ERROR); + } + return children.get(0); + } + + public String getTextContent() throws DocumentedException { + NodeList childNodes = element.getChildNodes(); + if (childNodes.getLength() == 0) { + return DEFAULT_NAMESPACE_PREFIX; + } + for (int i = 0; i < childNodes.getLength(); i++) { + Node textChild = childNodes.item(i); + if (textChild instanceof Text) { + String content = textChild.getTextContent(); + return content.trim(); + } + } + throw new DocumentedException(getName() + " should contain text.", + DocumentedException.ErrorType.APPLICATION, + DocumentedException.ErrorTag.INVALID_VALUE, + DocumentedException.ErrorSeverity.ERROR + ); + } + + public Optional getOnlyTextContentOptionally() { + // only return text content if this node has exactly one Text child node + if (element.getChildNodes().getLength() == 1) { + Node item = element.getChildNodes().item(0); + if (item instanceof Text) { + return Optional.of(((Text) item).getWholeText()); + } + } + return Optional.absent(); + } + + public String getNamespaceAttribute() throws MissingNameSpaceException { + String attribute = element.getAttribute(XmlUtil.XMLNS_ATTRIBUTE_KEY); + if (attribute.isEmpty() || attribute.equals(DEFAULT_NAMESPACE_PREFIX)) { + throw new MissingNameSpaceException(String.format("Element %s must specify namespace", + toString()), + DocumentedException.ErrorType.APPLICATION, + DocumentedException.ErrorTag.OPERATION_FAILED, + DocumentedException.ErrorSeverity.ERROR); + } + return attribute; + } + + public Optional getNamespaceAttributeOptionally() { + String attribute = element.getAttribute(XmlUtil.XMLNS_ATTRIBUTE_KEY); + if (attribute.isEmpty() || attribute.equals(DEFAULT_NAMESPACE_PREFIX)) { + return Optional.absent(); + } + return Optional.of(attribute); + } + + public Optional getNamespaceOptionally() { + String namespaceURI = element.getNamespaceURI(); + if (Strings.isNullOrEmpty(namespaceURI)) { + return Optional.absent(); + } else { + return Optional.of(namespaceURI); + } + } + + public String getNamespace() throws MissingNameSpaceException { + Optional namespaceURI = getNamespaceOptionally(); + if (!namespaceURI.isPresent()) { + throw new MissingNameSpaceException(String.format("No namespace defined for %s", this), + DocumentedException.ErrorType.APPLICATION, + DocumentedException.ErrorTag.OPERATION_FAILED, + DocumentedException.ErrorSeverity.ERROR); + } + return namespaceURI.get(); + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("XmlElement{"); + sb.append("name='").append(getName()).append('\''); + if (element.getNamespaceURI() != null) { + try { + sb.append(", namespace='").append(getNamespace()).append('\''); + } catch (final MissingNameSpaceException e) { + LOG.trace("Missing namespace for element."); + } + } + sb.append('}'); + return sb.toString(); + } + + /** + * Search for element's attributes defining namespaces. Look for the one + * namespace that matches prefix of element's text content. E.g. + * + *
+     * <type
+     * xmlns:th-java="urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl">
+     *     th-java:threadfactory-naming</type>
+     * 
+ * + *

+ * returns {"th-java","urn:.."}. If no prefix is matched, then default + * namespace is returned with empty string as key. If no default namespace + * is found value will be null. + */ + public Map.Entry findNamespaceOfTextContent() + throws DocumentedException { + Map namespaces = extractNamespaces(); + String textContent = getTextContent(); + int indexOfColon = textContent.indexOf(':'); + String prefix; + if (indexOfColon > -1) { + prefix = textContent.substring(0, indexOfColon); + } else { + prefix = DEFAULT_NAMESPACE_PREFIX; + } + if (!namespaces.containsKey(prefix)) { + throw new IllegalArgumentException("Cannot find namespace for " + XmlUtil.toString(element) + + ". Prefix from content is " + prefix + ". Found namespaces " + namespaces); + } + return Maps.immutableEntry(prefix, namespaces.get(prefix)); + } + + public List getChildElementsWithSameNamespace(final String childName) throws MissingNameSpaceException { + List children = getChildElementsWithinNamespace(getNamespace()); + return Lists.newArrayList(Collections2.filter(children, xmlElement -> xmlElement.getName().equals(childName))); + } + + public void checkUnrecognisedElements(final List recognisedElements, + final XmlElement... additionalRecognisedElements) throws DocumentedException { + List childElements = getChildElements(); + childElements.removeAll(recognisedElements); + for (XmlElement additionalRecognisedElement : additionalRecognisedElements) { + childElements.remove(additionalRecognisedElement); + } + if (!childElements.isEmpty()) { + throw new DocumentedException(String.format("Unrecognised elements %s in %s", childElements, this), + DocumentedException.ErrorType.APPLICATION, + DocumentedException.ErrorTag.INVALID_VALUE, + DocumentedException.ErrorSeverity.ERROR); + } + } + + public void checkUnrecognisedElements(final XmlElement... additionalRecognisedElements) throws DocumentedException { + checkUnrecognisedElements(Collections.emptyList(), additionalRecognisedElements); + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) { + return true; + } + if (obj == null || getClass() != obj.getClass()) { + return false; + } + + XmlElement that = (XmlElement) obj; + + return element.isEqualNode(that.element); + + } + + @Override + public int hashCode() { + return element.hashCode(); + } + + public boolean hasNamespace() { + return getNamespaceAttributeOptionally().isPresent() || getNamespaceOptionally().isPresent(); + } + + private interface ElementFilteringStrategy { + boolean accept(Element element); + } +} diff --git a/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/xml/XmlNetconfConstants.java b/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/xml/XmlNetconfConstants.java index 955127c938..d34838559b 100644 --- a/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/xml/XmlNetconfConstants.java +++ b/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/xml/XmlNetconfConstants.java @@ -7,8 +7,6 @@ */ package org.opendaylight.netconf.api.xml; -import org.opendaylight.controller.config.util.xml.XmlMappingConstants; - public final class XmlNetconfConstants { private XmlNetconfConstants() {} @@ -25,6 +23,7 @@ public final class XmlNetconfConstants { public static final String RPC_KEY = "rpc"; public static final String NOTIFICATION_ELEMENT_NAME = "notification"; public static final String EVENT_TIME = "eventTime"; + public static final String PREFIX = "prefix"; public static final String MESSAGE_ID = "message-id"; public static final String SESSION_ID = "session-id"; @@ -32,8 +31,9 @@ public final class XmlNetconfConstants { public static final String GET = "get"; public static final String GET_CONFIG = "get-config"; - public static final String URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0 = - XmlMappingConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0; + public static final String RPC_REPLY_KEY = "rpc-reply"; + + public static final String URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0 = "urn:ietf:params:xml:ns:netconf:base:1.0"; public static final String URN_IETF_PARAMS_NETCONF_BASE_1_0 = "urn:ietf:params:netconf:base:1.0"; public static final String URN_IETF_PARAMS_NETCONF_BASE_1_1 = "urn:ietf:params:netconf:base:1.1"; public static final String URN_IETF_PARAMS_XML_NS_NETCONF_EXI_1_0 = "urn:ietf:params:xml:ns:netconf:exi:1.0"; diff --git a/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/xml/XmlUtil.java b/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/xml/XmlUtil.java new file mode 100644 index 0000000000..a080889aee --- /dev/null +++ b/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/xml/XmlUtil.java @@ -0,0 +1,226 @@ +/* + * Copyright (c) 2015 Cisco Systems, Inc. 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.api.xml; + +import com.google.common.base.Optional; +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.StringWriter; +import java.nio.charset.StandardCharsets; +import javax.xml.XMLConstants; +import javax.xml.namespace.QName; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Source; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.TransformerFactoryConfigurationError; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; +import javax.xml.transform.stream.StreamSource; +import javax.xml.validation.Schema; +import javax.xml.validation.SchemaFactory; +import javax.xml.xpath.XPathExpression; +import javax.xml.xpath.XPathExpressionException; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.xml.sax.SAXException; + +public final class XmlUtil { + + public static final String XMLNS_ATTRIBUTE_KEY = "xmlns"; + public static final String XMLNS_URI = "http://www.w3.org/2000/xmlns/"; + private static final DocumentBuilderFactory BUILDER_FACTORY; + private static final TransformerFactory TRANSFORMER_FACTORY = TransformerFactory.newInstance(); + private static final SchemaFactory SCHEMA_FACTORY = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); + + static { + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + try { + factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true); + factory.setFeature("http://xml.org/sax/features/external-general-entities", false); + factory.setFeature("http://xml.org/sax/features/external-parameter-entities", false); + factory.setXIncludeAware(false); + factory.setExpandEntityReferences(false); + // Performance improvement for messages with size <10k according to + // https://xerces.apache.org/xerces2-j/faq-performance.html + factory.setFeature("http://apache.org/xml/features/dom/defer-node-expansion", false); + } catch (final ParserConfigurationException e) { + throw new ExceptionInInitializerError(e); + } + factory.setNamespaceAware(true); + factory.setCoalescing(true); + factory.setIgnoringElementContentWhitespace(true); + factory.setIgnoringComments(true); + BUILDER_FACTORY = factory; + } + + private static final ThreadLocal DEFAULT_DOM_BUILDER = new ThreadLocal() { + @Override + protected DocumentBuilder initialValue() { + try { + return BUILDER_FACTORY.newDocumentBuilder(); + } catch (final ParserConfigurationException e) { + throw new IllegalStateException("Failed to create threadLocal dom builder", e); + } + } + + @Override + public void set(final DocumentBuilder value) { + throw new UnsupportedOperationException(); + } + }; + + private XmlUtil() { + throw new UnsupportedOperationException("Utility class"); + } + + public static Element readXmlToElement(final File xmlFile) throws SAXException, IOException { + return readXmlToDocument(new FileInputStream(xmlFile)).getDocumentElement(); + } + + public static Element readXmlToElement(final String xmlContent) throws SAXException, IOException { + Document doc = readXmlToDocument(xmlContent); + return doc.getDocumentElement(); + } + + public static Element readXmlToElement(final InputStream xmlContent) throws SAXException, IOException { + Document doc = readXmlToDocument(xmlContent); + return doc.getDocumentElement(); + } + + public static Document readXmlToDocument(final String xmlContent) throws SAXException, IOException { + return readXmlToDocument(new ByteArrayInputStream(xmlContent.getBytes(StandardCharsets.UTF_8))); + } + + // TODO improve exceptions throwing + // along with XmlElement + + public static Document readXmlToDocument(final InputStream xmlContent) throws SAXException, IOException { + Document doc = DEFAULT_DOM_BUILDER.get().parse(xmlContent); + + doc.getDocumentElement().normalize(); + return doc; + } + + public static Document newDocument() { + return DEFAULT_DOM_BUILDER.get().newDocument(); + } + + public static Element createElement(final Document document, final String qmame, + final Optional namespaceURI) { + if (namespaceURI.isPresent()) { + final Element element = document.createElementNS(namespaceURI.get(), qmame); + String name = XMLNS_ATTRIBUTE_KEY; + if (element.getPrefix() != null) { + name += ":" + element.getPrefix(); + } + element.setAttributeNS(XMLNS_URI, name, namespaceURI.get()); + return element; + } + return document.createElement(qmame); + } + + public static Element createTextElement(final Document document, final String qname, final String content, + final Optional namespaceURI) { + Element typeElement = createElement(document, qname, namespaceURI); + typeElement.appendChild(document.createTextNode(content)); + return typeElement; + } + + public static Element createTextElementWithNamespacedContent(final Document document, final String qname, + final String prefix, final String namespace, final String contentWithoutPrefix) { + + return createTextElementWithNamespacedContent(document, qname, prefix, namespace, contentWithoutPrefix, + Optional.absent()); + } + + public static Element createTextElementWithNamespacedContent(final Document document, final String qname, + final String prefix, final String namespace, final String contentWithoutPrefix, + final Optional namespaceURI) { + + String content = createPrefixedValue(XmlNetconfConstants.PREFIX, contentWithoutPrefix); + Element element = createTextElement(document, qname, content, namespaceURI); + String prefixedNamespaceAttr = createPrefixedValue(XMLNS_ATTRIBUTE_KEY, prefix); + element.setAttributeNS(XMLNS_URI, prefixedNamespaceAttr, namespace); + return element; + } + + public static String createPrefixedValue(final String prefix, final String value) { + return prefix + ":" + value; + } + + public static String toString(final Document document) { + return toString(document.getDocumentElement()); + } + + public static String toString(final Element xml) { + return toString(xml, false); + } + + public static String toString(final XmlElement xmlElement) { + return toString(xmlElement.getDomElement(), false); + } + + public static String toString(final Element xml, final boolean addXmlDeclaration) { + try { + Transformer transformer = TRANSFORMER_FACTORY.newTransformer(); + transformer.setOutputProperty(OutputKeys.INDENT, "yes"); + transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, addXmlDeclaration ? "no" : "yes"); + + StreamResult result = new StreamResult(new StringWriter()); + DOMSource source = new DOMSource(xml); + transformer.transform(source, result); + + return result.getWriter().toString(); + } catch (TransformerFactoryConfigurationError | TransformerException e) { + throw new IllegalStateException("Unable to serialize xml element " + xml, e); + } + } + + public static String toString(final Document doc, final boolean addXmlDeclaration) { + return toString(doc.getDocumentElement(), addXmlDeclaration); + } + + public static Schema loadSchema(final InputStream... fromStreams) { + Source[] sources = new Source[fromStreams.length]; + int index = 0; + for (InputStream stream : fromStreams) { + sources[index++] = new StreamSource(stream); + } + + try { + return SCHEMA_FACTORY.newSchema(sources); + } catch (final SAXException e) { + throw new IllegalStateException("Failed to instantiate XML schema", e); + } + } + + public static Object evaluateXPath(final XPathExpression expr, final Object rootNode, final QName returnType) { + try { + return expr.evaluate(rootNode, returnType); + } catch (final XPathExpressionException e) { + throw new IllegalStateException("Error while evaluating xpath expression " + expr, e); + } + } + + public static Document createDocumentCopy(final Document original) { + final Document copiedDocument = newDocument(); + final Node copiedRoot = copiedDocument.importNode(original.getDocumentElement(), true); + copiedDocument.appendChild(copiedRoot); + return copiedDocument; + } +} diff --git a/netconf/netconf-api/src/test/java/org/opendaylight/netconf/api/NetconfDocumentedExceptionTest.java b/netconf/netconf-api/src/test/java/org/opendaylight/netconf/api/NetconfDocumentedExceptionTest.java index 7876a5cadb..d1e8506737 100644 --- a/netconf/netconf-api/src/test/java/org/opendaylight/netconf/api/NetconfDocumentedExceptionTest.java +++ b/netconf/netconf-api/src/test/java/org/opendaylight/netconf/api/NetconfDocumentedExceptionTest.java @@ -21,7 +21,6 @@ import javax.xml.xpath.XPathExpressionException; import javax.xml.xpath.XPathFactory; import org.junit.Before; import org.junit.Test; -import org.opendaylight.controller.config.util.xml.DocumentedException; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; import org.w3c.dom.Document; import org.w3c.dom.Node; diff --git a/netconf/netconf-api/src/test/java/org/opendaylight/netconf/api/xml/XmlElementTest.java b/netconf/netconf-api/src/test/java/org/opendaylight/netconf/api/xml/XmlElementTest.java new file mode 100644 index 0000000000..fac88d679b --- /dev/null +++ b/netconf/netconf-api/src/test/java/org/opendaylight/netconf/api/xml/XmlElementTest.java @@ -0,0 +1,150 @@ +/* + * Copyright (c) 2014 Cisco Systems, Inc. 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.api.xml; + +import static org.hamcrest.CoreMatchers.both; +import static org.hamcrest.CoreMatchers.containsString; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThat; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import com.google.common.base.Optional; +import java.util.Map; +import org.junit.Before; +import org.junit.Test; +import org.opendaylight.netconf.api.DocumentedException; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +public class XmlElementTest { + + private final String elementAsString = + "" + + "" + "deepValue" + "" + + "innerNamespaceValue" + + "b:valueWithPrefix" + ""; + private Document document; + private Element element; + private XmlElement xmlElement; + + @Before + public void setUp() throws Exception { + document = XmlUtil.readXmlToDocument(elementAsString); + element = document.getDocumentElement(); + xmlElement = XmlElement.fromDomElement(element); + } + + @Test + public void testConstruct() throws Exception { + final XmlElement fromString = XmlElement.fromString(elementAsString); + assertEquals(fromString, xmlElement); + XmlElement.fromDomDocument(document); + XmlElement.fromDomElement(element); + XmlElement.fromDomElementWithExpected(element, "top"); + XmlElement.fromDomElementWithExpected(element, "top", "namespace"); + + try { + XmlElement.fromString("notXml"); + fail(); + } catch (final DocumentedException e) { + // expected + } + + try { + XmlElement.fromDomElementWithExpected(element, "notTop"); + fail(); + } catch (final DocumentedException e) { + // expected + } + + try { + XmlElement.fromDomElementWithExpected(element, "top", "notNamespace"); + fail(); + } catch (final DocumentedException e) { + // expected + } + } + + @Test + public void testGetters() throws Exception { + assertEquals(element, xmlElement.getDomElement()); + assertEquals(element.getElementsByTagName("inner").getLength(), + xmlElement.getElementsByTagName("inner").getLength()); + + assertEquals("top", xmlElement.getName()); + assertTrue(xmlElement.hasNamespace()); + assertEquals("namespace", xmlElement.getNamespace()); + assertEquals("namespace", xmlElement.getNamespaceAttribute()); + assertEquals(Optional.of("namespace"), xmlElement.getNamespaceOptionally()); + + assertEquals("value1", xmlElement.getAttribute("attr1", "attrNamespace")); + assertEquals("value2", xmlElement.getAttribute("attr2")); + assertEquals(2 + 2/*Namespace definition*/, xmlElement.getAttributes().size()); + + assertEquals(3, xmlElement.getChildElements().size()); + assertEquals(1, xmlElement.getChildElements("inner").size()); + assertTrue(xmlElement.getOnlyChildElementOptionally("inner").isPresent()); + assertTrue(xmlElement.getOnlyChildElementWithSameNamespaceOptionally("inner").isPresent()); + assertEquals(0, xmlElement.getChildElements("unknown").size()); + assertFalse(xmlElement.getOnlyChildElementOptionally("unknown").isPresent()); + assertEquals(1, xmlElement.getChildElementsWithSameNamespace("inner").size()); + assertEquals(0, xmlElement.getChildElementsWithSameNamespace("innerNamespace").size()); + assertEquals(1, xmlElement.getChildElementsWithinNamespace("innerNamespace", "innerNamespace").size()); + assertTrue(xmlElement.getOnlyChildElementOptionally("innerNamespace", "innerNamespace").isPresent()); + assertFalse(xmlElement.getOnlyChildElementOptionally("innerNamespace", "unknownNamespace").isPresent()); + + final XmlElement noNamespaceElement = XmlElement.fromString(""); + assertFalse(noNamespaceElement.hasNamespace()); + try { + noNamespaceElement.getNamespace(); + fail(); + } catch (final MissingNameSpaceException e) { + // expected + } + + final XmlElement inner = xmlElement.getOnlyChildElement("inner"); + final XmlElement deepInner = inner.getOnlyChildElementWithSameNamespaceOptionally().get(); + assertEquals(deepInner, inner.getOnlyChildElementWithSameNamespace()); + assertEquals(Optional.absent(), xmlElement.getOnlyChildElementOptionally("unknown")); + assertEquals("deepValue", deepInner.getTextContent()); + assertEquals("deepValue", deepInner.getOnlyTextContentOptionally().get()); + assertEquals("deepValue", deepInner.getOnlyTextContentOptionally().get()); + } + + @Test + public void testExtractNamespaces() throws Exception { + final XmlElement innerPrefixed = xmlElement.getOnlyChildElement("innerPrefixed"); + Map.Entry namespaceOfTextContent = innerPrefixed.findNamespaceOfTextContent(); + + assertNotNull(namespaceOfTextContent); + assertEquals("b", namespaceOfTextContent.getKey()); + assertEquals("prefixedValueNamespace", namespaceOfTextContent.getValue()); + final XmlElement innerNamespace = xmlElement.getOnlyChildElement("innerNamespace"); + namespaceOfTextContent = innerNamespace.findNamespaceOfTextContent(); + + assertEquals("", namespaceOfTextContent.getKey()); + assertEquals("innerNamespace", namespaceOfTextContent.getValue()); + } + + @Test + public void testUnrecognisedElements() throws Exception { + xmlElement.checkUnrecognisedElements(xmlElement.getOnlyChildElement("inner"), + xmlElement.getOnlyChildElement("innerPrefixed"), xmlElement.getOnlyChildElement("innerNamespace")); + + try { + xmlElement.checkUnrecognisedElements(xmlElement.getOnlyChildElement("inner")); + fail(); + } catch (final DocumentedException e) { + assertThat(e.getMessage(), both(containsString("innerNamespace")).and(containsString("innerNamespace"))); + } + } +} diff --git a/netconf/netconf-api/src/test/java/org/opendaylight/netconf/api/xml/XmlUtilTest.java b/netconf/netconf-api/src/test/java/org/opendaylight/netconf/api/xml/XmlUtilTest.java new file mode 100644 index 0000000000..c45d7f4f69 --- /dev/null +++ b/netconf/netconf-api/src/test/java/org/opendaylight/netconf/api/xml/XmlUtilTest.java @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2014 Cisco Systems, Inc. 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.api.xml; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import com.google.common.base.Optional; +import java.io.ByteArrayInputStream; +import org.custommonkey.xmlunit.Diff; +import org.custommonkey.xmlunit.XMLUnit; +import org.junit.Test; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.xml.sax.SAXParseException; + +public class XmlUtilTest { + + private final String xml = "\n" + "value\n" + + "prefix:value\n" + + "prefix:value" + + "\n" + + ""; + + @Test + public void testCreateElement() throws Exception { + final Document document = XmlUtil.newDocument(); + final Element top = XmlUtil.createElement(document, "top", Optional.of("namespace")); + + top.appendChild(XmlUtil.createTextElement(document, "innerText", "value", Optional.of("namespace"))); + top.appendChild(XmlUtil.createTextElementWithNamespacedContent(document, "innerPrefixedText", "pref", + "prefixNamespace", "value", Optional.of("namespace"))); + top.appendChild(XmlUtil.createTextElementWithNamespacedContent(document, "innerPrefixedText", "pref", + "prefixNamespace", "value", Optional.of("randomNamespace"))); + + document.appendChild(top); + assertEquals("top", XmlUtil.createDocumentCopy(document).getDocumentElement().getTagName()); + + XMLUnit.setIgnoreAttributeOrder(true); + XMLUnit.setIgnoreWhitespace(true); + + final Diff diff = XMLUnit.compareXML(XMLUnit.buildControlDocument(xml), document); + assertTrue(diff.toString(), diff.similar()); + } + + @Test + public void testLoadSchema() throws Exception { + XmlUtil.loadSchema(); + try { + XmlUtil.loadSchema(new ByteArrayInputStream(xml.getBytes())); + fail("Input stream does not contain xsd"); + } catch (final IllegalStateException e) { + assertTrue(e.getCause() instanceof SAXParseException); + } + + } + + @Test(expected = SAXParseException.class) + public void testXXEFlaw() throws Exception { + XmlUtil.readXmlToDocument( + "\n" + "]>\n" + + "\n" + " \n" + + " urn:ietf:params:netconf:base:1.0 &xxe;\n" + + " \n" + " ]]>]]>"); + } + +} diff --git a/netconf/netconf-client/src/main/java/org/opendaylight/netconf/client/NetconfClientSessionNegotiator.java b/netconf/netconf-client/src/main/java/org/opendaylight/netconf/client/NetconfClientSessionNegotiator.java index 19091f6d60..3212754c26 100644 --- a/netconf/netconf-client/src/main/java/org/opendaylight/netconf/client/NetconfClientSessionNegotiator.java +++ b/netconf/netconf-client/src/main/java/org/opendaylight/netconf/client/NetconfClientSessionNegotiator.java @@ -23,12 +23,12 @@ import io.netty.util.concurrent.Promise; import java.util.Set; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathExpression; -import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.netconf.api.NetconfClientSessionPreferences; import org.opendaylight.netconf.api.NetconfDocumentedException; import org.opendaylight.netconf.api.NetconfMessage; import org.opendaylight.netconf.api.messages.NetconfHelloMessage; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.nettyutil.AbstractChannelInitializer; import org.opendaylight.netconf.nettyutil.AbstractNetconfSessionNegotiator; import org.opendaylight.netconf.nettyutil.handler.exi.NetconfStartExiMessage; diff --git a/netconf/netconf-client/src/test/java/org/opendaylight/netconf/client/NetconfClientSessionNegotiatorTest.java b/netconf/netconf-client/src/test/java/org/opendaylight/netconf/client/NetconfClientSessionNegotiatorTest.java index 0b9bba0f6f..874b0a17ba 100644 --- a/netconf/netconf-client/src/test/java/org/opendaylight/netconf/client/NetconfClientSessionNegotiatorTest.java +++ b/netconf/netconf-client/src/test/java/org/opendaylight/netconf/client/NetconfClientSessionNegotiatorTest.java @@ -40,11 +40,11 @@ import java.util.Set; import org.junit.Before; import org.junit.Test; import org.mockito.internal.util.collections.Sets; -import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.netconf.api.NetconfClientSessionPreferences; import org.opendaylight.netconf.api.NetconfDocumentedException; import org.opendaylight.netconf.api.NetconfMessage; import org.opendaylight.netconf.api.messages.NetconfHelloMessage; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.nettyutil.handler.ChunkedFramingMechanismEncoder; import org.opendaylight.netconf.nettyutil.handler.NetconfXMLToHelloMessageDecoder; import org.opendaylight.netconf.nettyutil.handler.NetconfXMLToMessageDecoder; diff --git a/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionListener.java b/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionListener.java index 943edd7365..026a481ae0 100644 --- a/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionListener.java +++ b/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSessionListener.java @@ -10,8 +10,7 @@ package org.opendaylight.netconf.impl; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableMap; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; import org.opendaylight.netconf.api.NetconfMessage; import org.opendaylight.netconf.api.NetconfSessionListener; import org.opendaylight.netconf.api.NetconfTerminationReason; @@ -19,6 +18,7 @@ import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService; import org.opendaylight.netconf.api.monitoring.SessionEvent; import org.opendaylight.netconf.api.monitoring.SessionListener; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.impl.osgi.NetconfOperationRouter; import org.opendaylight.netconf.notifications.NetconfNotification; import org.opendaylight.netconf.util.messages.SendErrorExceptionUtil; diff --git a/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultCloseSession.java b/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultCloseSession.java index 1cf2d41c08..1a018363e5 100644 --- a/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultCloseSession.java +++ b/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultCloseSession.java @@ -11,10 +11,10 @@ package org.opendaylight.netconf.impl.mapping.operations; import com.google.common.base.Optional; import com.google.common.base.Preconditions; import java.util.Collections; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.impl.NetconfServerSession; import org.opendaylight.netconf.util.mapping.AbstractSingletonNetconfOperation; import org.slf4j.Logger; diff --git a/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultStartExi.java b/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultStartExi.java index db75e6e0f5..f1f57c204a 100644 --- a/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultStartExi.java +++ b/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultStartExi.java @@ -7,14 +7,14 @@ */ package org.opendaylight.netconf.impl.mapping.operations; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorSeverity; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorTag; -import org.opendaylight.controller.config.util.xml.DocumentedException.ErrorType; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.DocumentedException.ErrorSeverity; +import org.opendaylight.netconf.api.DocumentedException.ErrorTag; +import org.opendaylight.netconf.api.DocumentedException.ErrorType; import org.opendaylight.netconf.api.NetconfMessage; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.impl.NetconfServerSession; import org.opendaylight.netconf.mapping.api.NetconfOperationChainedExecution; import org.opendaylight.netconf.util.mapping.AbstractSingletonNetconfOperation; diff --git a/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultStopExi.java b/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultStopExi.java index 600f63743d..a60ffb756a 100644 --- a/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultStopExi.java +++ b/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/mapping/operations/DefaultStopExi.java @@ -7,10 +7,10 @@ */ package org.opendaylight.netconf.impl.mapping.operations; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.impl.NetconfServerSession; import org.opendaylight.netconf.util.mapping.AbstractSingletonNetconfOperation; import org.slf4j.Logger; diff --git a/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/AggregatedNetconfOperationServiceFactory.java b/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/AggregatedNetconfOperationServiceFactory.java index 5c292b1f6e..cd3aa6104e 100644 --- a/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/AggregatedNetconfOperationServiceFactory.java +++ b/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/AggregatedNetconfOperationServiceFactory.java @@ -20,7 +20,7 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; -import org.opendaylight.controller.config.util.capability.Capability; +import org.opendaylight.netconf.api.capability.Capability; import org.opendaylight.netconf.api.monitoring.CapabilityListener; import org.opendaylight.netconf.mapping.api.NetconfOperation; import org.opendaylight.netconf.mapping.api.NetconfOperationService; @@ -95,15 +95,12 @@ public class AggregatedNetconfOperationServiceFactory } listeners.add(listener); - return new AutoCloseable() { - @Override - public void close() throws Exception { - synchronized (AggregatedNetconfOperationServiceFactory.this) { - listeners.remove(listener); - CloseableUtil.closeAll(regs.values()); - for (final Map.Entry reg : regs.entrySet()) { - registrations.remove(reg.getKey(), reg.getValue()); - } + return () -> { + synchronized (AggregatedNetconfOperationServiceFactory.this) { + listeners.remove(listener); + CloseableUtil.closeAll(regs.values()); + for (final Map.Entry reg : regs.entrySet()) { + registrations.remove(reg.getKey(), reg.getValue()); } } }; diff --git a/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfCapabilityMonitoringService.java b/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfCapabilityMonitoringService.java index 78041d00ba..6259ba28a3 100644 --- a/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfCapabilityMonitoringService.java +++ b/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfCapabilityMonitoringService.java @@ -23,8 +23,8 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; -import org.opendaylight.controller.config.util.capability.BasicCapability; -import org.opendaylight.controller.config.util.capability.Capability; +import org.opendaylight.netconf.api.capability.BasicCapability; +import org.opendaylight.netconf.api.capability.Capability; import org.opendaylight.netconf.api.monitoring.CapabilityListener; import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService; import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory; diff --git a/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfOperationRouter.java b/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfOperationRouter.java index e66df69c05..1e07ed2d61 100644 --- a/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfOperationRouter.java +++ b/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfOperationRouter.java @@ -8,7 +8,7 @@ package org.opendaylight.netconf.impl.osgi; -import org.opendaylight.controller.config.util.xml.DocumentedException; +import org.opendaylight.netconf.api.DocumentedException; import org.opendaylight.netconf.impl.NetconfServerSession; import org.w3c.dom.Document; diff --git a/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfOperationRouterImpl.java b/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfOperationRouterImpl.java index bc1618b0d4..ee712b78c3 100644 --- a/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfOperationRouterImpl.java +++ b/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/osgi/NetconfOperationRouterImpl.java @@ -16,9 +16,9 @@ import java.util.HashSet; import java.util.NavigableMap; import java.util.Set; import java.util.TreeMap; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.impl.NetconfServerSession; import org.opendaylight.netconf.impl.mapping.operations.DefaultCloseSession; import org.opendaylight.netconf.impl.mapping.operations.DefaultNetconfOperation; diff --git a/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/util/DeserializerExceptionHandler.java b/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/util/DeserializerExceptionHandler.java index ad99674856..18b490ab13 100644 --- a/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/util/DeserializerExceptionHandler.java +++ b/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/util/DeserializerExceptionHandler.java @@ -12,7 +12,7 @@ import com.google.common.collect.Maps; import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelHandlerContext; import java.util.Map; -import org.opendaylight.controller.config.util.xml.DocumentedException; +import org.opendaylight.netconf.api.DocumentedException; import org.opendaylight.netconf.util.messages.SendErrorExceptionUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/ConcurrentClientsTest.java b/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/ConcurrentClientsTest.java index c49b3ad978..cfa1915e3e 100644 --- a/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/ConcurrentClientsTest.java +++ b/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/ConcurrentClientsTest.java @@ -47,16 +47,16 @@ import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; -import org.opendaylight.controller.config.util.capability.Capability; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; import org.opendaylight.netconf.api.NetconfMessage; +import org.opendaylight.netconf.api.capability.Capability; import org.opendaylight.netconf.api.messages.NetconfHelloMessageAdditionalHeader; import org.opendaylight.netconf.api.monitoring.CapabilityListener; import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService; import org.opendaylight.netconf.api.monitoring.SessionEvent; import org.opendaylight.netconf.api.monitoring.SessionListener; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.client.NetconfClientDispatcher; import org.opendaylight.netconf.client.NetconfClientDispatcherImpl; import org.opendaylight.netconf.client.SimpleNetconfClientSessionListener; @@ -88,9 +88,9 @@ public class ConcurrentClientsTest { private static final int CONCURRENCY = 32; private static final InetSocketAddress NETCONF_ADDRESS = new InetSocketAddress("127.0.0.1", 8303); - private int nettyThreads; - private Class clientRunnable; - private Set serverCaps; + private final int nettyThreads; + private final Class clientRunnable; + private final Set serverCaps; public ConcurrentClientsTest(int nettyThreads, Class clientRunnable, Set serverCaps) { this.nettyThreads = nettyThreads; @@ -124,11 +124,8 @@ public class ConcurrentClientsTest { doNothing().when(sessionListener).onSessionUp(any(NetconfServerSession.class)); doNothing().when(sessionListener).onSessionDown(any(NetconfServerSession.class)); doNothing().when(sessionListener).onSessionEvent(any(SessionEvent.class)); - doReturn(new AutoCloseable() { - @Override - public void close() throws Exception { + doReturn((AutoCloseable) () -> { - } }).when(monitoring).registerCapabilitiesListener(any(NetconfMonitoringService.CapabilitiesListener.class)); doReturn(sessionListener).when(monitoring).getSessionListener(); doReturn(new CapabilitiesBuilder().setCapability(Collections.emptyList()).build()).when(monitoring) @@ -289,10 +286,7 @@ public class ConcurrentClientsTest { @Override public AutoCloseable registerCapabilityListener(final CapabilityListener listener) { - return new AutoCloseable() { - @Override - public void close() throws Exception { - } + return () -> { }; } diff --git a/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfServerSessionListenerTest.java b/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfServerSessionListenerTest.java index 37e17659fc..493326281f 100644 --- a/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfServerSessionListenerTest.java +++ b/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfServerSessionListenerTest.java @@ -25,12 +25,12 @@ import org.junit.BeforeClass; import org.junit.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.netconf.api.NetconfMessage; import org.opendaylight.netconf.api.NetconfTerminationReason; import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService; import org.opendaylight.netconf.api.monitoring.SessionEvent; import org.opendaylight.netconf.api.monitoring.SessionListener; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.impl.osgi.NetconfOperationRouter; import org.opendaylight.netconf.notifications.NetconfNotification; import org.w3c.dom.Document; @@ -167,4 +167,4 @@ public class NetconfServerSessionListenerTest { }; } -} \ No newline at end of file +} diff --git a/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfServerSessionTest.java b/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfServerSessionTest.java index 3d44cdb23e..6e44086436 100644 --- a/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfServerSessionTest.java +++ b/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/NetconfServerSessionTest.java @@ -22,9 +22,9 @@ import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.netconf.api.NetconfMessage; import org.opendaylight.netconf.api.messages.NetconfHelloMessageAdditionalHeader; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.nettyutil.AbstractChannelInitializer; import org.opendaylight.netconf.nettyutil.handler.NetconfEXICodec; import org.opendaylight.netconf.nettyutil.handler.NetconfEXIToMessageDecoder; diff --git a/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/mapping/operations/DefaultCloseSessionTest.java b/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/mapping/operations/DefaultCloseSessionTest.java index 79247b45e1..1293329456 100644 --- a/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/mapping/operations/DefaultCloseSessionTest.java +++ b/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/mapping/operations/DefaultCloseSessionTest.java @@ -23,13 +23,13 @@ import io.netty.channel.ChannelPromise; import io.netty.channel.EventLoop; import io.netty.util.concurrent.GenericFutureListener; import org.junit.Test; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; import org.opendaylight.netconf.api.NetconfDocumentedException; import org.opendaylight.netconf.api.NetconfMessage; import org.opendaylight.netconf.api.NetconfTerminationReason; import org.opendaylight.netconf.api.messages.NetconfHelloMessageAdditionalHeader; +import org.opendaylight.netconf.api.xml.XmlElement; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.impl.NetconfServerSession; import org.opendaylight.netconf.impl.NetconfServerSessionListener; import org.w3c.dom.Document; diff --git a/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/mapping/operations/DefaultStopExiTest.java b/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/mapping/operations/DefaultStopExiTest.java index e181cc6227..8459874f8e 100644 --- a/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/mapping/operations/DefaultStopExiTest.java +++ b/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/mapping/operations/DefaultStopExiTest.java @@ -9,8 +9,8 @@ package org.opendaylight.netconf.impl.mapping.operations; import static org.junit.Assert.assertNotNull; -import static org.mockito.Mockito.any; -import static org.mockito.Mockito.anyString; +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; @@ -20,8 +20,8 @@ import io.netty.channel.Channel; import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelPipeline; import org.junit.Test; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.xml.XmlElement; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.impl.NetconfServerSession; import org.w3c.dom.Document; diff --git a/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/AggregatedNetconfOperationServiceFactoryTest.java b/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/AggregatedNetconfOperationServiceFactoryTest.java index bf078e2200..d3b0fcd76a 100644 --- a/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/AggregatedNetconfOperationServiceFactoryTest.java +++ b/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/AggregatedNetconfOperationServiceFactoryTest.java @@ -20,16 +20,16 @@ import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import org.opendaylight.controller.config.util.capability.BasicCapability; -import org.opendaylight.controller.config.util.capability.Capability; +import org.opendaylight.netconf.api.capability.BasicCapability; +import org.opendaylight.netconf.api.capability.Capability; import org.opendaylight.netconf.api.monitoring.CapabilityListener; import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory; public class AggregatedNetconfOperationServiceFactoryTest { - private Set factory1Caps = new HashSet<>(); - private Set factory2Caps = new HashSet<>(); + private final Set factory1Caps = new HashSet<>(); + private final Set factory2Caps = new HashSet<>(); @Mock private CapabilityListener listener1; @@ -124,4 +124,4 @@ public class AggregatedNetconfOperationServiceFactoryTest { verify(autoCloseable2, times(2)).close(); } -} \ No newline at end of file +} diff --git a/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfCapabilityMonitoringServiceTest.java b/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfCapabilityMonitoringServiceTest.java index c322737993..54d3cb3b7c 100644 --- a/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfCapabilityMonitoringServiceTest.java +++ b/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfCapabilityMonitoringServiceTest.java @@ -26,9 +26,9 @@ import org.junit.Test; import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import org.opendaylight.controller.config.util.capability.BasicCapability; -import org.opendaylight.controller.config.util.capability.Capability; -import org.opendaylight.controller.config.util.capability.YangModuleCapability; +import org.opendaylight.netconf.api.capability.BasicCapability; +import org.opendaylight.netconf.api.capability.Capability; +import org.opendaylight.netconf.api.capability.YangModuleCapability; import org.opendaylight.netconf.api.monitoring.NetconfManagementSession; import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService; import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory; diff --git a/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfOperationRouterImplTest.java b/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfOperationRouterImplTest.java index 1736c72f93..8b1afec0a8 100644 --- a/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfOperationRouterImplTest.java +++ b/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfOperationRouterImplTest.java @@ -23,8 +23,8 @@ import org.junit.Test; import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.mapping.api.HandlingPriority; import org.opendaylight.netconf.mapping.api.NetconfOperation; import org.opendaylight.netconf.mapping.api.NetconfOperationChainedExecution; @@ -122,4 +122,4 @@ public class NetconfOperationRouterImplTest { verify(operationService).close(); } -} \ No newline at end of file +} diff --git a/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfSessionMonitoringServiceTest.java b/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfSessionMonitoringServiceTest.java index 305c20ab5a..860aa36e8b 100644 --- a/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfSessionMonitoringServiceTest.java +++ b/netconf/netconf-impl/src/test/java/org/opendaylight/netconf/impl/osgi/NetconfSessionMonitoringServiceTest.java @@ -26,8 +26,8 @@ import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.opendaylight.controller.config.threadpool.ScheduledThreadPool; -import org.opendaylight.controller.config.util.capability.BasicCapability; -import org.opendaylight.controller.config.util.capability.Capability; +import org.opendaylight.netconf.api.capability.BasicCapability; +import org.opendaylight.netconf.api.capability.Capability; import org.opendaylight.netconf.api.monitoring.NetconfManagementSession; import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService; import org.opendaylight.netconf.api.monitoring.SessionEvent; diff --git a/netconf/netconf-mapping-api/src/main/java/org/opendaylight/netconf/mapping/api/NetconfOperation.java b/netconf/netconf-mapping-api/src/main/java/org/opendaylight/netconf/mapping/api/NetconfOperation.java index 445eb6d3d6..7a9523cae2 100644 --- a/netconf/netconf-mapping-api/src/main/java/org/opendaylight/netconf/mapping/api/NetconfOperation.java +++ b/netconf/netconf-mapping-api/src/main/java/org/opendaylight/netconf/mapping/api/NetconfOperation.java @@ -8,7 +8,7 @@ package org.opendaylight.netconf.mapping.api; -import org.opendaylight.controller.config.util.xml.DocumentedException; +import org.opendaylight.netconf.api.DocumentedException; import org.w3c.dom.Document; /** diff --git a/netconf/netconf-mapping-api/src/main/java/org/opendaylight/netconf/mapping/api/NetconfOperationChainedExecution.java b/netconf/netconf-mapping-api/src/main/java/org/opendaylight/netconf/mapping/api/NetconfOperationChainedExecution.java index 1e57fc7021..b7fae22c00 100644 --- a/netconf/netconf-mapping-api/src/main/java/org/opendaylight/netconf/mapping/api/NetconfOperationChainedExecution.java +++ b/netconf/netconf-mapping-api/src/main/java/org/opendaylight/netconf/mapping/api/NetconfOperationChainedExecution.java @@ -7,7 +7,7 @@ */ package org.opendaylight.netconf.mapping.api; -import org.opendaylight.controller.config.util.xml.DocumentedException; +import org.opendaylight.netconf.api.DocumentedException; import org.w3c.dom.Document; /** diff --git a/netconf/netconf-mapping-api/src/main/java/org/opendaylight/netconf/mapping/api/NetconfOperationServiceFactory.java b/netconf/netconf-mapping-api/src/main/java/org/opendaylight/netconf/mapping/api/NetconfOperationServiceFactory.java index 57d896e6ea..9458476e83 100644 --- a/netconf/netconf-mapping-api/src/main/java/org/opendaylight/netconf/mapping/api/NetconfOperationServiceFactory.java +++ b/netconf/netconf-mapping-api/src/main/java/org/opendaylight/netconf/mapping/api/NetconfOperationServiceFactory.java @@ -9,7 +9,7 @@ package org.opendaylight.netconf.mapping.api; import java.util.Set; -import org.opendaylight.controller.config.util.capability.Capability; +import org.opendaylight.netconf.api.capability.Capability; import org.opendaylight.netconf.api.monitoring.CapabilityListener; /** diff --git a/netconf/netconf-monitoring/pom.xml b/netconf/netconf-monitoring/pom.xml index a0164f9be4..80a56f6c63 100644 --- a/netconf/netconf-monitoring/pom.xml +++ b/netconf/netconf-monitoring/pom.xml @@ -54,6 +54,10 @@ org.slf4j slf4j-api + + org.osgi + org.osgi.core + diff --git a/netconf/netconf-monitoring/src/main/java/org/opendaylight/netconf/monitoring/Get.java b/netconf/netconf-monitoring/src/main/java/org/opendaylight/netconf/monitoring/Get.java index 9e122e36c3..7aa2c2a4d7 100644 --- a/netconf/netconf-monitoring/src/main/java/org/opendaylight/netconf/monitoring/Get.java +++ b/netconf/netconf-monitoring/src/main/java/org/opendaylight/netconf/monitoring/Get.java @@ -8,10 +8,9 @@ package org.opendaylight.netconf.monitoring; import java.util.Collections; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlMappingConstants; +import org.opendaylight.netconf.api.DocumentedException; import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; import org.opendaylight.netconf.mapping.api.HandlingPriority; import org.opendaylight.netconf.mapping.api.NetconfOperationChainedExecution; @@ -36,7 +35,7 @@ public class Get extends AbstractNetconfOperation { private Element getPlaceholder(final Document innerResult) throws DocumentedException { final XmlElement rootElement = XmlElement.fromDomElementWithExpected( - innerResult.getDocumentElement(), XmlMappingConstants.RPC_REPLY_KEY, + innerResult.getDocumentElement(), XmlNetconfConstants.RPC_REPLY_KEY, XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0); return rootElement.getOnlyChildElement(XmlNetconfConstants.DATA_KEY).getDomElement(); } diff --git a/netconf/netconf-monitoring/src/main/java/org/opendaylight/netconf/monitoring/GetSchema.java b/netconf/netconf-monitoring/src/main/java/org/opendaylight/netconf/monitoring/GetSchema.java index c3527a29be..bc42da5b08 100644 --- a/netconf/netconf-monitoring/src/main/java/org/opendaylight/netconf/monitoring/GetSchema.java +++ b/netconf/netconf-monitoring/src/main/java/org/opendaylight/netconf/monitoring/GetSchema.java @@ -11,11 +11,11 @@ package org.opendaylight.netconf.monitoring; import com.google.common.base.Optional; import com.google.common.collect.Maps; import java.util.Map; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.util.mapping.AbstractSingletonNetconfOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/netconf/netconf-monitoring/src/main/java/org/opendaylight/netconf/monitoring/osgi/NetconfMonitoringActivator.java b/netconf/netconf-monitoring/src/main/java/org/opendaylight/netconf/monitoring/osgi/NetconfMonitoringActivator.java index 24d9066ba2..3db158af2e 100644 --- a/netconf/netconf-monitoring/src/main/java/org/opendaylight/netconf/monitoring/osgi/NetconfMonitoringActivator.java +++ b/netconf/netconf-monitoring/src/main/java/org/opendaylight/netconf/monitoring/osgi/NetconfMonitoringActivator.java @@ -10,7 +10,7 @@ package org.opendaylight.netconf.monitoring.osgi; import java.util.Collections; import java.util.Set; -import org.opendaylight.controller.config.util.capability.Capability; +import org.opendaylight.netconf.api.capability.Capability; import org.opendaylight.netconf.api.monitoring.CapabilityListener; import org.opendaylight.netconf.mapping.api.NetconfOperationService; import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory; @@ -48,11 +48,8 @@ public class NetconfMonitoringActivator implements BundleActivator { private final NetconfMonitoringOperationService operationService; - private static final AutoCloseable AUTO_CLOSEABLE = new AutoCloseable() { - @Override - public void close() throws Exception { - // NOOP - } + private static final AutoCloseable AUTO_CLOSEABLE = () -> { + // NOOP }; public NetconfMonitoringOperationServiceFactory(final NetconfMonitoringOperationService operationService) { diff --git a/netconf/netconf-monitoring/src/test/java/org/opendaylight/netconf/monitoring/GetSchemaTest.java b/netconf/netconf-monitoring/src/test/java/org/opendaylight/netconf/monitoring/GetSchemaTest.java index d452fd5a85..5ced56c5e6 100644 --- a/netconf/netconf-monitoring/src/test/java/org/opendaylight/netconf/monitoring/GetSchemaTest.java +++ b/netconf/netconf-monitoring/src/test/java/org/opendaylight/netconf/monitoring/GetSchemaTest.java @@ -18,10 +18,10 @@ import static org.mockito.Mockito.mock; import com.google.common.base.Optional; import org.junit.Before; import org.junit.Test; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService; +import org.opendaylight.netconf.api.xml.XmlElement; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.w3c.dom.Document; public class GetSchemaTest { @@ -59,4 +59,4 @@ public class GetSchemaTest { XmlElement.fromDomElement(XmlUtil.readXmlToElement(getSchema)))); } -} \ No newline at end of file +} diff --git a/netconf/netconf-monitoring/src/test/java/org/opendaylight/netconf/monitoring/GetTest.java b/netconf/netconf-monitoring/src/test/java/org/opendaylight/netconf/monitoring/GetTest.java index 397e1d21e1..012d729198 100644 --- a/netconf/netconf-monitoring/src/test/java/org/opendaylight/netconf/monitoring/GetTest.java +++ b/netconf/netconf-monitoring/src/test/java/org/opendaylight/netconf/monitoring/GetTest.java @@ -21,9 +21,9 @@ import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.mapping.api.HandlingPriority; import org.opendaylight.netconf.mapping.api.NetconfOperationChainedExecution; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.SchemasBuilder; diff --git a/netconf/netconf-monitoring/src/test/java/org/opendaylight/netconf/monitoring/xml/JaxBSerializerTest.java b/netconf/netconf-monitoring/src/test/java/org/opendaylight/netconf/monitoring/xml/JaxBSerializerTest.java index bfc0f8504f..0a3bdabbf2 100644 --- a/netconf/netconf-monitoring/src/test/java/org/opendaylight/netconf/monitoring/xml/JaxBSerializerTest.java +++ b/netconf/netconf-monitoring/src/test/java/org/opendaylight/netconf/monitoring/xml/JaxBSerializerTest.java @@ -18,8 +18,8 @@ import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.monitoring.xml.model.NetconfState; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Host; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; diff --git a/netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/AbstractNetconfSession.java b/netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/AbstractNetconfSession.java index 8b070a0b66..707312abdd 100644 --- a/netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/AbstractNetconfSession.java +++ b/netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/AbstractNetconfSession.java @@ -16,12 +16,12 @@ import io.netty.channel.ChannelPromise; import io.netty.handler.codec.ByteToMessageDecoder; import io.netty.handler.codec.MessageToByteEncoder; import java.io.IOException; -import org.opendaylight.controller.config.util.xml.XmlElement; import org.opendaylight.netconf.api.NetconfExiSession; import org.opendaylight.netconf.api.NetconfMessage; import org.opendaylight.netconf.api.NetconfSession; import org.opendaylight.netconf.api.NetconfSessionListener; import org.opendaylight.netconf.api.NetconfTerminationReason; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.nettyutil.handler.NetconfEXICodec; import org.opendaylight.netconf.nettyutil.handler.NetconfEXIToMessageDecoder; import org.opendaylight.netconf.nettyutil.handler.NetconfMessageToEXIEncoder; diff --git a/netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/handler/NetconfXMLToHelloMessageDecoder.java b/netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/handler/NetconfXMLToHelloMessageDecoder.java index 5ca4e491d8..82f707572c 100644 --- a/netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/handler/NetconfXMLToHelloMessageDecoder.java +++ b/netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/handler/NetconfXMLToHelloMessageDecoder.java @@ -21,11 +21,11 @@ import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; import java.util.Arrays; import java.util.List; -import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.netconf.api.NetconfDocumentedException; import org.opendaylight.netconf.api.NetconfMessage; import org.opendaylight.netconf.api.messages.NetconfHelloMessage; import org.opendaylight.netconf.api.messages.NetconfHelloMessageAdditionalHeader; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.w3c.dom.Document; diff --git a/netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/handler/NetconfXMLToMessageDecoder.java b/netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/handler/NetconfXMLToMessageDecoder.java index 60a8dd1fb0..ee8f1ad5b7 100644 --- a/netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/handler/NetconfXMLToMessageDecoder.java +++ b/netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/handler/NetconfXMLToMessageDecoder.java @@ -15,9 +15,9 @@ import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.ByteToMessageDecoder; import java.io.IOException; import java.util.List; -import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.netconf.api.FailedNetconfMessage; import org.opendaylight.netconf.api.NetconfMessage; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.xml.sax.SAXException; diff --git a/netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/handler/exi/EXIParameters.java b/netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/handler/exi/EXIParameters.java index 088f638aa6..8d8ccd9fb7 100644 --- a/netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/handler/exi/EXIParameters.java +++ b/netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/handler/exi/EXIParameters.java @@ -16,7 +16,7 @@ import com.siemens.ct.exi.FidelityOptions; import com.siemens.ct.exi.exceptions.UnsupportedOption; import com.siemens.ct.exi.helpers.DefaultEXIFactory; import java.util.Objects; -import org.opendaylight.controller.config.util.xml.XmlElement; +import org.opendaylight.netconf.api.xml.XmlElement; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.w3c.dom.Element; diff --git a/netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/handler/exi/NetconfStartExiMessage.java b/netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/handler/exi/NetconfStartExiMessage.java index f7524f8fbf..b3f158b12b 100644 --- a/netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/handler/exi/NetconfStartExiMessage.java +++ b/netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/handler/exi/NetconfStartExiMessage.java @@ -11,9 +11,9 @@ package org.opendaylight.netconf.nettyutil.handler.exi; import com.google.common.annotations.VisibleForTesting; import java.util.ArrayList; import java.util.List; -import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.netconf.api.NetconfMessage; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.w3c.dom.Document; import org.w3c.dom.Element; diff --git a/netconf/netconf-netty-util/src/test/java/org/opendaylight/netconf/nettyutil/AbstractNetconfSessionNegotiatorTest.java b/netconf/netconf-netty-util/src/test/java/org/opendaylight/netconf/nettyutil/AbstractNetconfSessionNegotiatorTest.java index af64d29015..a2e628366c 100644 --- a/netconf/netconf-netty-util/src/test/java/org/opendaylight/netconf/nettyutil/AbstractNetconfSessionNegotiatorTest.java +++ b/netconf/netconf-netty-util/src/test/java/org/opendaylight/netconf/nettyutil/AbstractNetconfSessionNegotiatorTest.java @@ -41,12 +41,12 @@ import org.junit.Test; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; -import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.netconf.api.NetconfDocumentedException; import org.opendaylight.netconf.api.NetconfSessionListener; import org.opendaylight.netconf.api.NetconfSessionPreferences; import org.opendaylight.netconf.api.messages.NetconfHelloMessage; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.nettyutil.handler.ChunkedFramingMechanismEncoder; import org.opendaylight.netconf.nettyutil.handler.EOMFramingMechanismEncoder; import org.opendaylight.netconf.nettyutil.handler.FramingMechanismHandlerFactory; @@ -192,4 +192,4 @@ public class AbstractNetconfSessionNegotiatorTest { } -} \ No newline at end of file +} diff --git a/netconf/netconf-netty-util/src/test/java/org/opendaylight/netconf/nettyutil/handler/NetconfEXIHandlersTest.java b/netconf/netconf-netty-util/src/test/java/org/opendaylight/netconf/nettyutil/handler/NetconfEXIHandlersTest.java index a6c5f0d3a4..193f87ce8f 100644 --- a/netconf/netconf-netty-util/src/test/java/org/opendaylight/netconf/nettyutil/handler/NetconfEXIHandlersTest.java +++ b/netconf/netconf-netty-util/src/test/java/org/opendaylight/netconf/nettyutil/handler/NetconfEXIHandlersTest.java @@ -26,8 +26,8 @@ import javax.xml.transform.sax.SAXResult; import org.custommonkey.xmlunit.XMLUnit; import org.junit.Before; import org.junit.Test; -import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.netconf.api.NetconfMessage; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.nettyutil.handler.exi.EXIParameters; public class NetconfEXIHandlersTest { @@ -76,4 +76,4 @@ public class NetconfEXIHandlersTest { XMLUnit.compareXML(msg.getDocument(), ((NetconfMessage) out.get(0)).getDocument()); } -} \ No newline at end of file +} diff --git a/netconf/netconf-netty-util/src/test/java/org/opendaylight/netconf/nettyutil/handler/NetconfHelloMessageToXMLEncoderTest.java b/netconf/netconf-netty-util/src/test/java/org/opendaylight/netconf/nettyutil/handler/NetconfHelloMessageToXMLEncoderTest.java index 794ce8dad2..899208a670 100644 --- a/netconf/netconf-netty-util/src/test/java/org/opendaylight/netconf/nettyutil/handler/NetconfHelloMessageToXMLEncoderTest.java +++ b/netconf/netconf-netty-util/src/test/java/org/opendaylight/netconf/nettyutil/handler/NetconfHelloMessageToXMLEncoderTest.java @@ -19,10 +19,10 @@ import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.netconf.api.NetconfMessage; import org.opendaylight.netconf.api.messages.NetconfHelloMessage; import org.opendaylight.netconf.api.messages.NetconfHelloMessageAdditionalHeader; +import org.opendaylight.netconf.api.xml.XmlUtil; public class NetconfHelloMessageToXMLEncoderTest { @@ -65,4 +65,4 @@ public class NetconfHelloMessageToXMLEncoderTest { "")); new NetconfHelloMessageToXMLEncoder().encode(ctx, msg, null); } -} \ No newline at end of file +} diff --git a/netconf/netconf-netty-util/src/test/java/org/opendaylight/netconf/nettyutil/handler/NetconfXMLToHelloMessageDecoderTest.java b/netconf/netconf-netty-util/src/test/java/org/opendaylight/netconf/nettyutil/handler/NetconfXMLToHelloMessageDecoderTest.java index fc20f9585d..1581377f90 100644 --- a/netconf/netconf-netty-util/src/test/java/org/opendaylight/netconf/nettyutil/handler/NetconfXMLToHelloMessageDecoderTest.java +++ b/netconf/netconf-netty-util/src/test/java/org/opendaylight/netconf/nettyutil/handler/NetconfXMLToHelloMessageDecoderTest.java @@ -20,8 +20,8 @@ import io.netty.buffer.Unpooled; import java.util.List; import org.hamcrest.CoreMatchers; import org.junit.Test; -import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.netconf.api.messages.NetconfHelloMessage; +import org.opendaylight.netconf.api.xml.XmlUtil; public class NetconfXMLToHelloMessageDecoderTest { @@ -83,4 +83,4 @@ public class NetconfXMLToHelloMessageDecoderTest { NetconfXMLToHelloMessageDecoder decoder = new NetconfXMLToHelloMessageDecoder(); decoder.decode(null, msg1, out); } -} \ No newline at end of file +} diff --git a/netconf/netconf-netty-util/src/test/java/org/opendaylight/netconf/nettyutil/handler/exi/EXIParametersTest.java b/netconf/netconf-netty-util/src/test/java/org/opendaylight/netconf/nettyutil/handler/exi/EXIParametersTest.java index 272d5b30e4..018acdbc7f 100644 --- a/netconf/netconf-netty-util/src/test/java/org/opendaylight/netconf/nettyutil/handler/exi/EXIParametersTest.java +++ b/netconf/netconf-netty-util/src/test/java/org/opendaylight/netconf/nettyutil/handler/exi/EXIParametersTest.java @@ -17,8 +17,8 @@ import java.util.Arrays; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.xml.XmlElement; +import org.opendaylight.netconf.api.xml.XmlUtil; @RunWith(Parameterized.class) public class EXIParametersTest { @@ -77,4 +77,4 @@ public class EXIParametersTest { assertEquals(fidelity, factory.getFidelityOptions()); assertEquals(coding, factory.getCodingMode()); } -} \ No newline at end of file +} diff --git a/netconf/netconf-notifications-impl/pom.xml b/netconf/netconf-notifications-impl/pom.xml index a3ba09d626..152d234897 100644 --- a/netconf/netconf-notifications-impl/pom.xml +++ b/netconf/netconf-notifications-impl/pom.xml @@ -52,6 +52,10 @@ com.google.guava guava + + org.osgi + org.osgi.core + org.slf4j slf4j-api diff --git a/netconf/netconf-notifications-impl/src/main/java/org/opendaylight/netconf/notifications/impl/ops/CreateSubscription.java b/netconf/netconf-notifications-impl/src/main/java/org/opendaylight/netconf/notifications/impl/ops/CreateSubscription.java index 9f79caf3f0..9860de76bb 100644 --- a/netconf/netconf-notifications-impl/src/main/java/org/opendaylight/netconf/notifications/impl/ops/CreateSubscription.java +++ b/netconf/netconf-notifications-impl/src/main/java/org/opendaylight/netconf/notifications/impl/ops/CreateSubscription.java @@ -13,11 +13,11 @@ import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import java.util.Date; import java.util.List; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; import org.opendaylight.netconf.api.NetconfSession; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.mapping.api.SessionAwareNetconfOperation; import org.opendaylight.netconf.notifications.NetconfNotification; import org.opendaylight.netconf.notifications.NetconfNotificationListener; diff --git a/netconf/netconf-notifications-impl/src/main/java/org/opendaylight/netconf/notifications/impl/ops/Get.java b/netconf/netconf-notifications-impl/src/main/java/org/opendaylight/netconf/notifications/impl/ops/Get.java index 0ff934b39d..bd7c9d17f9 100644 --- a/netconf/netconf-notifications-impl/src/main/java/org/opendaylight/netconf/notifications/impl/ops/Get.java +++ b/netconf/netconf-notifications-impl/src/main/java/org/opendaylight/netconf/notifications/impl/ops/Get.java @@ -12,9 +12,8 @@ import com.google.common.base.Preconditions; import java.io.IOException; import javax.xml.stream.XMLStreamException; import javax.xml.transform.dom.DOMResult; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlMappingConstants; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; import org.opendaylight.netconf.mapping.api.HandlingPriority; import org.opendaylight.netconf.mapping.api.NetconfOperationChainedExecution; @@ -89,7 +88,7 @@ public class Get extends AbstractNetconfOperation implements AutoCloseable { private static Element getPlaceholder(final Document innerResult) throws DocumentedException { final XmlElement rootElement = XmlElement.fromDomElementWithExpected(innerResult.getDocumentElement(), - XmlMappingConstants.RPC_REPLY_KEY, XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0); + XmlNetconfConstants.RPC_REPLY_KEY, XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0); return rootElement.getOnlyChildElement(XmlNetconfConstants.DATA_KEY).getDomElement(); } diff --git a/netconf/netconf-notifications-impl/src/main/java/org/opendaylight/netconf/notifications/impl/ops/NotificationsTransformUtil.java b/netconf/netconf-notifications-impl/src/main/java/org/opendaylight/netconf/notifications/impl/ops/NotificationsTransformUtil.java index a657e34a1c..4da6e82868 100644 --- a/netconf/netconf-notifications-impl/src/main/java/org/opendaylight/netconf/notifications/impl/ops/NotificationsTransformUtil.java +++ b/netconf/netconf-notifications-impl/src/main/java/org/opendaylight/netconf/notifications/impl/ops/NotificationsTransformUtil.java @@ -18,12 +18,12 @@ import java.util.Date; import javassist.ClassPool; import javax.xml.stream.XMLStreamException; import javax.xml.transform.dom.DOMResult; -import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.mdsal.binding.dom.codec.gen.impl.StreamWriterGenerator; import org.opendaylight.mdsal.binding.dom.codec.impl.BindingNormalizedNodeCodecRegistry; import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext; import org.opendaylight.mdsal.binding.generator.util.BindingRuntimeContext; import org.opendaylight.mdsal.binding.generator.util.JavassistUtils; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.notifications.NetconfNotification; import org.opendaylight.netconf.util.NetconfUtil; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.$YangModuleInfoImpl; diff --git a/netconf/netconf-notifications-impl/src/main/java/org/opendaylight/netconf/notifications/impl/osgi/Activator.java b/netconf/netconf-notifications-impl/src/main/java/org/opendaylight/netconf/notifications/impl/osgi/Activator.java index 146f5e7116..21b7d0d83d 100644 --- a/netconf/netconf-notifications-impl/src/main/java/org/opendaylight/netconf/notifications/impl/osgi/Activator.java +++ b/netconf/netconf-notifications-impl/src/main/java/org/opendaylight/netconf/notifications/impl/osgi/Activator.java @@ -14,8 +14,8 @@ import java.util.Collections; import java.util.Dictionary; import java.util.Hashtable; import java.util.Set; -import org.opendaylight.controller.config.util.capability.BasicCapability; -import org.opendaylight.controller.config.util.capability.Capability; +import org.opendaylight.netconf.api.capability.BasicCapability; +import org.opendaylight.netconf.api.capability.Capability; import org.opendaylight.netconf.api.monitoring.CapabilityListener; import org.opendaylight.netconf.api.util.NetconfConstants; import org.opendaylight.netconf.mapping.api.NetconfOperation; @@ -62,12 +62,7 @@ public class Activator implements BundleActivator { @Override public AutoCloseable registerCapabilityListener(final CapabilityListener listener) { listener.onCapabilitiesChanged(capabilities, Collections.emptySet()); - return new AutoCloseable() { - @Override - public void close() { - listener.onCapabilitiesChanged(Collections.emptySet(), capabilities); - } - }; + return () -> listener.onCapabilitiesChanged(Collections.emptySet(), capabilities); } @Override diff --git a/netconf/netconf-notifications-impl/src/test/java/org/opendaylight/netconf/notifications/impl/ops/CreateSubscriptionTest.java b/netconf/netconf-notifications-impl/src/test/java/org/opendaylight/netconf/notifications/impl/ops/CreateSubscriptionTest.java index 69bdb1fb84..c27723e05d 100644 --- a/netconf/netconf-notifications-impl/src/test/java/org/opendaylight/netconf/notifications/impl/ops/CreateSubscriptionTest.java +++ b/netconf/netconf-notifications-impl/src/test/java/org/opendaylight/netconf/notifications/impl/ops/CreateSubscriptionTest.java @@ -18,9 +18,9 @@ import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.netconf.api.NetconfSession; +import org.opendaylight.netconf.api.xml.XmlElement; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.notifications.NetconfNotificationListener; import org.opendaylight.netconf.notifications.NetconfNotificationRegistry; import org.opendaylight.netconf.notifications.NotificationListenerRegistration; @@ -59,4 +59,4 @@ public class CreateSubscriptionTest { Assert.assertThat(XmlUtil.toString(element), CoreMatchers.containsString("ok")); } -} \ No newline at end of file +} diff --git a/netconf/netconf-notifications-impl/src/test/java/org/opendaylight/netconf/notifications/impl/ops/GetTest.java b/netconf/netconf-notifications-impl/src/test/java/org/opendaylight/netconf/notifications/impl/ops/GetTest.java index 0abf5cbf9c..90c975df4c 100644 --- a/netconf/netconf-notifications-impl/src/test/java/org/opendaylight/netconf/notifications/impl/ops/GetTest.java +++ b/netconf/netconf-notifications-impl/src/test/java/org/opendaylight/netconf/notifications/impl/ops/GetTest.java @@ -11,7 +11,7 @@ package org.opendaylight.netconf.notifications.impl.ops; import com.google.common.collect.Lists; import java.io.IOException; import org.junit.Test; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.notification._1._0.rev080714.StreamNameType; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.netconf.Streams; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.netconf.StreamsBuilder; @@ -60,4 +60,4 @@ public class GetTest { + "\n" + ""); } -} \ No newline at end of file +} diff --git a/netconf/netconf-notifications-impl/src/test/java/org/opendaylight/netconf/notifications/impl/ops/NotificationsTransformUtilTest.java b/netconf/netconf-notifications-impl/src/test/java/org/opendaylight/netconf/notifications/impl/ops/NotificationsTransformUtilTest.java index 4ae9d85316..c48590496b 100644 --- a/netconf/netconf-notifications-impl/src/test/java/org/opendaylight/netconf/notifications/impl/ops/NotificationsTransformUtilTest.java +++ b/netconf/netconf-notifications-impl/src/test/java/org/opendaylight/netconf/notifications/impl/ops/NotificationsTransformUtilTest.java @@ -18,7 +18,7 @@ import org.custommonkey.xmlunit.Diff; import org.custommonkey.xmlunit.XMLUnit; import org.custommonkey.xmlunit.examples.RecursiveElementNameAndTextQualifier; import org.junit.Test; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.notifications.NetconfNotification; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfCapabilityChange; diff --git a/netconf/netconf-notifications-impl/src/test/java/org/opendaylight/netconf/notifications/impl/osgi/ActivatorTest.java b/netconf/netconf-notifications-impl/src/test/java/org/opendaylight/netconf/notifications/impl/osgi/ActivatorTest.java index 66e9370c6d..cce998a32a 100644 --- a/netconf/netconf-notifications-impl/src/test/java/org/opendaylight/netconf/notifications/impl/osgi/ActivatorTest.java +++ b/netconf/netconf-notifications-impl/src/test/java/org/opendaylight/netconf/notifications/impl/osgi/ActivatorTest.java @@ -23,8 +23,8 @@ import java.util.Hashtable; import java.util.Set; import org.junit.Test; import org.mockito.ArgumentCaptor; -import org.opendaylight.controller.config.util.capability.BasicCapability; -import org.opendaylight.controller.config.util.capability.Capability; +import org.opendaylight.netconf.api.capability.BasicCapability; +import org.opendaylight.netconf.api.capability.Capability; import org.opendaylight.netconf.api.monitoring.CapabilityListener; import org.opendaylight.netconf.api.util.NetconfConstants; import org.opendaylight.netconf.mapping.api.NetconfOperation; diff --git a/netconf/netconf-tcp/pom.xml b/netconf/netconf-tcp/pom.xml index 9ef64bdf81..040bd49646 100644 --- a/netconf/netconf-tcp/pom.xml +++ b/netconf/netconf-tcp/pom.xml @@ -44,5 +44,9 @@ org.osgi org.osgi.compendium + + org.osgi + org.osgi.core + diff --git a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/utils/NetconfTopologyUtils.java b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/utils/NetconfTopologyUtils.java index dae2c40d80..21ff001052 100644 --- a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/utils/NetconfTopologyUtils.java +++ b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/utils/NetconfTopologyUtils.java @@ -14,7 +14,7 @@ import java.math.BigDecimal; import java.net.InetSocketAddress; import java.util.HashMap; import java.util.Map; -import org.opendaylight.controller.config.util.xml.DocumentedException; +import org.opendaylight.netconf.api.DocumentedException; import org.opendaylight.netconf.sal.connect.netconf.NetconfDevice; import org.opendaylight.netconf.sal.connect.netconf.NetconfStateSchemasResolverImpl; import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; diff --git a/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/tx/ProxyReadTransactionTest.java b/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/tx/ProxyReadTransactionTest.java index b9a1bad196..12adb7c9b1 100644 --- a/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/tx/ProxyReadTransactionTest.java +++ b/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/tx/ProxyReadTransactionTest.java @@ -20,9 +20,9 @@ import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; -import org.opendaylight.controller.config.util.xml.DocumentedException; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; +import org.opendaylight.netconf.api.DocumentedException; import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; import org.opendaylight.netconf.topology.singleton.messages.NormalizedNodeMessage; import org.opendaylight.netconf.topology.singleton.messages.transactions.EmptyReadResponse; @@ -121,4 +121,4 @@ public class ProxyReadTransactionTest { } } -} \ No newline at end of file +} diff --git a/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/tx/ProxyReadWriteTransactionTest.java b/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/tx/ProxyReadWriteTransactionTest.java index ee692518db..54b887cbb8 100644 --- a/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/tx/ProxyReadWriteTransactionTest.java +++ b/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/tx/ProxyReadWriteTransactionTest.java @@ -22,10 +22,10 @@ import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; -import org.opendaylight.controller.config.util.xml.DocumentedException; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException; +import org.opendaylight.netconf.api.DocumentedException; import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; import org.opendaylight.netconf.topology.singleton.messages.NormalizedNodeMessage; import org.opendaylight.netconf.topology.singleton.messages.transactions.CancelRequest; diff --git a/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/NetconfUtil.java b/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/NetconfUtil.java index 134aefecc2..46bb6cbcd3 100644 --- a/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/NetconfUtil.java +++ b/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/NetconfUtil.java @@ -13,11 +13,10 @@ import javax.xml.stream.XMLOutputFactory; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamWriter; import javax.xml.transform.dom.DOMResult; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlMappingConstants; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter; import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter; @@ -42,7 +41,7 @@ public final class NetconfUtil { public static Document checkIsMessageOk(final Document response) throws DocumentedException { XmlElement element = XmlElement.fromDomDocument(response); - Preconditions.checkState(element.getName().equals(XmlMappingConstants.RPC_REPLY_KEY)); + Preconditions.checkState(element.getName().equals(XmlNetconfConstants.RPC_REPLY_KEY)); element = element.getOnlyChildElement(); if (element.getName().equals(XmlNetconfConstants.OK)) { return response; diff --git a/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/mapping/AbstractLastNetconfOperation.java b/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/mapping/AbstractLastNetconfOperation.java index e66e59f3e7..ef78be50cc 100644 --- a/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/mapping/AbstractLastNetconfOperation.java +++ b/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/mapping/AbstractLastNetconfOperation.java @@ -7,8 +7,8 @@ */ package org.opendaylight.netconf.util.mapping; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlElement; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.mapping.api.HandlingPriority; import org.opendaylight.netconf.mapping.api.NetconfOperationChainedExecution; import org.w3c.dom.Document; diff --git a/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/mapping/AbstractNetconfOperation.java b/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/mapping/AbstractNetconfOperation.java index 4d988112ea..fb6a8ed26e 100644 --- a/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/mapping/AbstractNetconfOperation.java +++ b/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/mapping/AbstractNetconfOperation.java @@ -10,11 +10,10 @@ package org.opendaylight.netconf.util.mapping; import com.google.common.base.Optional; import java.util.Map; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlMappingConstants; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.mapping.api.HandlingPriority; import org.opendaylight.netconf.mapping.api.NetconfOperation; import org.opendaylight.netconf.mapping.api.NetconfOperationChainedExecution; @@ -102,7 +101,7 @@ public abstract class AbstractNetconfOperation implements NetconfOperation { Map attributes = requestElement.getAttributes(); Element response = handle(document, operationElement, subsequentOperation); - Element rpcReply = XmlUtil.createElement(document, XmlMappingConstants.RPC_REPLY_KEY, + Element rpcReply = XmlUtil.createElement(document, XmlNetconfConstants.RPC_REPLY_KEY, Optional.of(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0)); if (XmlElement.fromDomElement(response).hasNamespace()) { diff --git a/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/mapping/AbstractSingletonNetconfOperation.java b/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/mapping/AbstractSingletonNetconfOperation.java index 34ab61f96e..77d4bb3400 100644 --- a/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/mapping/AbstractSingletonNetconfOperation.java +++ b/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/mapping/AbstractSingletonNetconfOperation.java @@ -7,8 +7,8 @@ */ package org.opendaylight.netconf.util.mapping; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlElement; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.mapping.api.HandlingPriority; import org.opendaylight.netconf.mapping.api.NetconfOperationChainedExecution; import org.w3c.dom.Document; diff --git a/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/messages/NetconfMessageUtil.java b/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/messages/NetconfMessageUtil.java index 967633f357..a3f37d6c92 100644 --- a/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/messages/NetconfMessageUtil.java +++ b/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/messages/NetconfMessageUtil.java @@ -13,10 +13,10 @@ import com.google.common.collect.Collections2; import java.util.Collection; import java.util.List; import javax.annotation.Nonnull; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlElement; +import org.opendaylight.netconf.api.DocumentedException; import org.opendaylight.netconf.api.NetconfDocumentedException; import org.opendaylight.netconf.api.NetconfMessage; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/messages/SendErrorExceptionUtil.java b/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/messages/SendErrorExceptionUtil.java index 4768fad00e..f09ca513b3 100644 --- a/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/messages/SendErrorExceptionUtil.java +++ b/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/messages/SendErrorExceptionUtil.java @@ -12,12 +12,11 @@ import com.google.common.base.Preconditions; import io.netty.channel.Channel; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelFutureListener; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlMappingConstants; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; import org.opendaylight.netconf.api.NetconfMessage; import org.opendaylight.netconf.api.NetconfSession; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.w3c.dom.Attr; @@ -66,8 +65,8 @@ public final class SendErrorExceptionUtil { "Missing %s element", XmlNetconfConstants.RPC_KEY); final Element rpcReply = errorDocument.getDocumentElement(); - Preconditions.checkState(rpcReply.getTagName().equals(XmlMappingConstants.RPC_REPLY_KEY), - "Missing %s element", XmlMappingConstants.RPC_REPLY_KEY); + Preconditions.checkState(rpcReply.getTagName().equals(XmlNetconfConstants.RPC_REPLY_KEY), + "Missing %s element", XmlNetconfConstants.RPC_REPLY_KEY); final NamedNodeMap incomingAttributes = incommingRpc.getAttributes(); for (int i = 0; i < incomingAttributes.getLength(); i++) { diff --git a/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/messages/SubtreeFilter.java b/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/messages/SubtreeFilter.java index 373d7095b5..3b803b6a43 100644 --- a/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/messages/SubtreeFilter.java +++ b/netconf/netconf-util/src/main/java/org/opendaylight/netconf/util/messages/SubtreeFilter.java @@ -10,10 +10,10 @@ package org.opendaylight.netconf.util.messages; import com.google.common.base.Optional; import java.util.Map; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.util.mapping.AbstractNetconfOperation.OperationNameAndNamespace; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/NetconfUtilTest.java b/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/NetconfUtilTest.java index c263a07692..1a8ebca07d 100644 --- a/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/NetconfUtilTest.java +++ b/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/NetconfUtilTest.java @@ -18,8 +18,8 @@ import org.custommonkey.xmlunit.XMLUnit; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; -import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.$YangModuleInfoImpl; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.NetconfState; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Sessions; diff --git a/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/mapping/AbstractLastNetconfOperationTest.java b/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/mapping/AbstractLastNetconfOperationTest.java index f9de09342a..59d5ce4e1b 100644 --- a/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/mapping/AbstractLastNetconfOperationTest.java +++ b/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/mapping/AbstractLastNetconfOperationTest.java @@ -15,8 +15,8 @@ import static org.mockito.Mockito.mock; import org.junit.Before; import org.junit.Test; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlElement; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.mapping.api.HandlingPriority; import org.opendaylight.netconf.mapping.api.NetconfOperationChainedExecution; import org.w3c.dom.Document; diff --git a/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/mapping/AbstractNetconfOperationTest.java b/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/mapping/AbstractNetconfOperationTest.java index 75b870f7f6..ad3ab9eaa0 100644 --- a/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/mapping/AbstractNetconfOperationTest.java +++ b/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/mapping/AbstractNetconfOperationTest.java @@ -16,9 +16,9 @@ import static org.mockito.Mockito.mock; import java.io.IOException; import org.junit.Before; import org.junit.Test; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.xml.XmlElement; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.mapping.api.HandlingPriority; import org.opendaylight.netconf.mapping.api.NetconfOperationChainedExecution; import org.opendaylight.netconf.util.test.XmlFileLoader; diff --git a/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/mapping/AbstractSingletonNetconfOperationTest.java b/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/mapping/AbstractSingletonNetconfOperationTest.java index 9ba35770e4..7c2c9e86fe 100644 --- a/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/mapping/AbstractSingletonNetconfOperationTest.java +++ b/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/mapping/AbstractSingletonNetconfOperationTest.java @@ -11,8 +11,8 @@ package org.opendaylight.netconf.util.mapping; import static org.junit.Assert.assertEquals; import org.junit.Test; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlElement; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.mapping.api.HandlingPriority; import org.w3c.dom.Document; import org.w3c.dom.Element; diff --git a/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/messages/SendErrorExceptionUtilTest.java b/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/messages/SendErrorExceptionUtilTest.java index 4109756949..ef375b1990 100644 --- a/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/messages/SendErrorExceptionUtilTest.java +++ b/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/messages/SendErrorExceptionUtilTest.java @@ -19,7 +19,7 @@ import io.netty.channel.ChannelFuture; import io.netty.util.concurrent.GenericFutureListener; import org.junit.Before; import org.junit.Test; -import org.opendaylight.controller.config.util.xml.DocumentedException; +import org.opendaylight.netconf.api.DocumentedException; import org.opendaylight.netconf.api.NetconfMessage; import org.opendaylight.netconf.api.NetconfSession; import org.opendaylight.netconf.util.test.XmlFileLoader; diff --git a/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/messages/SubtreeFilterNotificationTest.java b/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/messages/SubtreeFilterNotificationTest.java index 96f179a112..341c1c46e8 100644 --- a/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/messages/SubtreeFilterNotificationTest.java +++ b/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/messages/SubtreeFilterNotificationTest.java @@ -23,8 +23,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.xml.XmlElement; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.w3c.dom.Document; diff --git a/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/messages/SubtreeFilterRpcTest.java b/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/messages/SubtreeFilterRpcTest.java index d5b4a24a84..aa701658b5 100644 --- a/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/messages/SubtreeFilterRpcTest.java +++ b/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/messages/SubtreeFilterRpcTest.java @@ -21,7 +21,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.w3c.dom.Document; diff --git a/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/test/XmlFileLoader.java b/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/test/XmlFileLoader.java index d62d40df5e..e21820839c 100644 --- a/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/test/XmlFileLoader.java +++ b/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/test/XmlFileLoader.java @@ -14,8 +14,8 @@ import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; import javax.xml.parsers.ParserConfigurationException; -import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.netconf.api.NetconfMessage; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.xml.sax.SAXException; diff --git a/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/test/XmlUnitUtil.java b/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/test/XmlUnitUtil.java index 6677a42c8f..78fc364032 100644 --- a/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/test/XmlUnitUtil.java +++ b/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/test/XmlUnitUtil.java @@ -16,7 +16,7 @@ import org.custommonkey.xmlunit.AbstractNodeTester; import org.custommonkey.xmlunit.NodeTest; import org.custommonkey.xmlunit.NodeTestException; import org.custommonkey.xmlunit.NodeTester; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; diff --git a/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/xml/XMLNetconfUtilTest.java b/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/xml/XMLNetconfUtilTest.java index 3ca07d4dd4..bf3c573c1f 100644 --- a/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/xml/XMLNetconfUtilTest.java +++ b/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/xml/XMLNetconfUtilTest.java @@ -15,7 +15,7 @@ import static org.junit.Assert.fail; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathExpression; import org.junit.Test; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.w3c.dom.Element; public class XMLNetconfUtilTest { @@ -34,4 +34,4 @@ public class XMLNetconfUtilTest { assertEquals("value", ((Element) value).getTextContent()); } -} \ No newline at end of file +} 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 28dc94ed49..5e9b33efab 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 @@ -11,9 +11,9 @@ import com.google.common.base.Optional; import com.google.common.base.Preconditions; import java.util.LinkedList; import java.util.List; -import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.controller.md.sal.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.RemoteDeviceHandler; import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/listener/NetconfDeviceCommunicator.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/listener/NetconfDeviceCommunicator.java index 8b67f56db2..0e240dde64 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/listener/NetconfDeviceCommunicator.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/listener/NetconfDeviceCommunicator.java @@ -22,13 +22,13 @@ import java.util.concurrent.Semaphore; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.netconf.api.FailedNetconfMessage; import org.opendaylight.netconf.api.NetconfDocumentedException; import org.opendaylight.netconf.api.NetconfMessage; import org.opendaylight.netconf.api.NetconfTerminationReason; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.client.NetconfClientDispatcher; import org.opendaylight.netconf.client.NetconfClientSession; import org.opendaylight.netconf.client.NetconfClientSessionListener; diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/AbstractWriteTx.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/AbstractWriteTx.java index c4e01f37b0..cc0d037e00 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/AbstractWriteTx.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/AbstractWriteTx.java @@ -19,11 +19,11 @@ import com.google.common.util.concurrent.SettableFuture; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; import javax.annotation.Nonnull; -import org.opendaylight.controller.config.util.xml.DocumentedException; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException; import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction; import org.opendaylight.controller.md.sal.dom.api.DOMRpcResult; +import org.opendaylight.netconf.api.DocumentedException; import org.opendaylight.netconf.api.NetconfDocumentedException; import org.opendaylight.netconf.sal.connect.netconf.util.NetconfBaseOps; import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; 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 cbf1f03a25..aff7f8327b 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,12 +13,12 @@ import java.util.Map; import javax.xml.stream.XMLStreamException; import javax.xml.transform.dom.DOMResult; import javax.xml.transform.dom.DOMSource; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.controller.md.sal.dom.api.DOMNotification; import org.opendaylight.controller.md.sal.dom.api.DOMRpcResult; import org.opendaylight.controller.md.sal.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.netconf.util.NetconfMessageTransformUtil; import org.opendaylight.netconf.sal.connect.util.MessageCounter; @@ -74,7 +74,7 @@ public class BaseRpcSchemalessTransformer implements MessageTransformeremptySet()); - return new AutoCloseable() { - @Override - public void close() throws Exception { - } + return () -> { }; } diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/client/stress/AsyncExecutionStrategy.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/client/stress/AsyncExecutionStrategy.java index 4bfd765ab4..c5833ddef5 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/client/stress/AsyncExecutionStrategy.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/client/stress/AsyncExecutionStrategy.java @@ -16,8 +16,8 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import java.util.concurrent.atomic.AtomicInteger; -import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.netconf.api.NetconfMessage; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfDeviceCommunicator; import org.opendaylight.yangtools.yang.common.RpcResult; import org.slf4j.Logger; @@ -39,7 +39,7 @@ class AsyncExecutionStrategy extends AbstractExecutionStrategy { int batchI = 0; for (final Integer editBatch : getEditBatches()) { for (int i = 0; i < editBatch; i++) { - final int msgId = i + (batchI * getParams().editBatchSize); + final int msgId = i + batchI * getParams().editBatchSize; final NetconfMessage msg = getPreparedMessages().get(msgId); LOG.debug("Sending message {}", msgId); if (LOG.isDebugEnabled()) { diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/client/stress/StressClient.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/client/stress/StressClient.java index 4af92b7018..763a7b8b67 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/client/stress/StressClient.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/client/stress/StressClient.java @@ -27,8 +27,8 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import net.sourceforge.argparse4j.inf.ArgumentParser; import net.sourceforge.argparse4j.inf.ArgumentParserException; -import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.netconf.api.NetconfMessage; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.client.NetconfClientDispatcherImpl; import org.opendaylight.netconf.nettyutil.handler.ssh.client.AsyncSshHandler; import org.opendaylight.netconf.sal.connect.api.RemoteDevice; diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/client/stress/SyncExecutionStrategy.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/client/stress/SyncExecutionStrategy.java index e0f13da038..087eeb0937 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/client/stress/SyncExecutionStrategy.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/client/stress/SyncExecutionStrategy.java @@ -15,8 +15,8 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import java.util.concurrent.atomic.AtomicInteger; -import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.netconf.api.NetconfMessage; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfDeviceCommunicator; import org.opendaylight.yangtools.yang.common.RpcResult; import org.slf4j.Logger; @@ -30,13 +30,14 @@ class SyncExecutionStrategy extends AbstractExecutionStrategy { super(params, preparedMessages, sessionListener); } + @Override public void invoke() { final AtomicInteger responseCounter = new AtomicInteger(0); int batchI = 0; for (final Integer editBatch : getEditBatches()) { for (int i = 0; i < editBatch; i++) { - final int msgId = i + (batchI * getParams().editBatchSize); + final int msgId = i + batchI * getParams().editBatchSize; final NetconfMessage msg = getPreparedMessages().get(msgId); LOG.debug("Sending message {}", msgId); if (LOG.isDebugEnabled()) { diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/customrpc/RpcMapping.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/customrpc/RpcMapping.java index 3b6722f76f..c62107f492 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/customrpc/RpcMapping.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/customrpc/RpcMapping.java @@ -18,9 +18,9 @@ import java.util.Map; import java.util.Optional; import java.util.stream.Stream; import javax.xml.bind.JAXB; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.xml.XmlElement; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.w3c.dom.Attr; import org.w3c.dom.Document; diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/customrpc/SettableOperationProvider.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/customrpc/SettableOperationProvider.java index d0e19cef97..480643c674 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/customrpc/SettableOperationProvider.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/customrpc/SettableOperationProvider.java @@ -11,7 +11,7 @@ package org.opendaylight.netconf.test.tool.customrpc; import java.io.File; import java.util.Collections; import java.util.Set; -import org.opendaylight.controller.config.util.capability.Capability; +import org.opendaylight.netconf.api.capability.Capability; import org.opendaylight.netconf.api.monitoring.CapabilityListener; import org.opendaylight.netconf.mapping.api.NetconfOperation; import org.opendaylight.netconf.mapping.api.NetconfOperationService; diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/customrpc/SettableRpc.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/customrpc/SettableRpc.java index 49a60da37f..d806f768df 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/customrpc/SettableRpc.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/customrpc/SettableRpc.java @@ -10,10 +10,10 @@ package org.opendaylight.netconf.test.tool.customrpc; import java.io.File; import java.util.Optional; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.mapping.api.HandlingPriority; import org.opendaylight.netconf.mapping.api.NetconfOperation; import org.opendaylight.netconf.mapping.api.NetconfOperationChainedExecution; diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/operations/DefaultOperationsCreator.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/operations/DefaultOperationsCreator.java index d528df5b51..edfdf6ef74 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/operations/DefaultOperationsCreator.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/operations/DefaultOperationsCreator.java @@ -11,7 +11,7 @@ package org.opendaylight.netconf.test.tool.operations; import com.google.common.base.Optional; import com.google.common.collect.Sets; import java.util.Set; -import org.opendaylight.controller.config.util.capability.Capability; +import org.opendaylight.netconf.api.capability.Capability; import org.opendaylight.netconf.impl.SessionIdProvider; import org.opendaylight.netconf.mapping.api.NetconfOperation; import org.opendaylight.netconf.mapping.api.NetconfOperationService; diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/operations/OperationsCreator.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/operations/OperationsCreator.java index 0cf0d47687..cdf5860363 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/operations/OperationsCreator.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/operations/OperationsCreator.java @@ -9,7 +9,7 @@ package org.opendaylight.netconf.test.tool.operations; import java.util.Set; -import org.opendaylight.controller.config.util.capability.Capability; +import org.opendaylight.netconf.api.capability.Capability; import org.opendaylight.netconf.impl.SessionIdProvider; import org.opendaylight.netconf.mapping.api.NetconfOperationService; diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/operations/OperationsProvider.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/operations/OperationsProvider.java index 91384f6e9e..b93f59a41f 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/operations/OperationsProvider.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/operations/OperationsProvider.java @@ -10,7 +10,7 @@ package org.opendaylight.netconf.test.tool.operations; import java.util.Collections; import java.util.Set; -import org.opendaylight.controller.config.util.capability.Capability; +import org.opendaylight.netconf.api.capability.Capability; import org.opendaylight.netconf.api.monitoring.CapabilityListener; import org.opendaylight.netconf.impl.SessionIdProvider; import org.opendaylight.netconf.mapping.api.NetconfOperationService; @@ -45,10 +45,7 @@ public class OperationsProvider implements NetconfOperationServiceFactory { public AutoCloseable registerCapabilityListener( final CapabilityListener listener) { listener.onCapabilitiesChanged(caps, Collections.emptySet()); - return new AutoCloseable() { - @Override - public void close() throws Exception { - } + return () -> { }; } diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/DataList.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/DataList.java index 7dfacea1a9..2743e88be7 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/DataList.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/DataList.java @@ -10,7 +10,7 @@ package org.opendaylight.netconf.test.tool.rpc; import java.util.Collections; import java.util.List; -import org.opendaylight.controller.config.util.xml.XmlElement; +import org.opendaylight.netconf.api.xml.XmlElement; public class DataList { diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedCommit.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedCommit.java index 218c495da9..4276e5fb2f 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedCommit.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedCommit.java @@ -9,10 +9,10 @@ package org.opendaylight.netconf.test.tool.rpc; import com.google.common.base.Optional; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.util.mapping.AbstractLastNetconfOperation; import org.w3c.dom.Document; import org.w3c.dom.Element; diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedCreateSubscription.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedCreateSubscription.java index 682723af17..c6f7fac0db 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedCreateSubscription.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedCreateSubscription.java @@ -25,11 +25,11 @@ import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Unmarshaller; import javax.xml.bind.annotation.XmlRootElement; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; import org.opendaylight.netconf.api.NetconfMessage; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.impl.NetconfServerSession; import org.opendaylight.netconf.impl.mapping.operations.DefaultNetconfOperation; import org.opendaylight.netconf.util.mapping.AbstractLastNetconfOperation; diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedDiscardChanges.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedDiscardChanges.java index 639ff11f04..ef5d06beb2 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedDiscardChanges.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedDiscardChanges.java @@ -9,10 +9,10 @@ package org.opendaylight.netconf.test.tool.rpc; import com.google.common.base.Optional; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.util.mapping.AbstractLastNetconfOperation; import org.w3c.dom.Document; import org.w3c.dom.Element; diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedEditConfig.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedEditConfig.java index 44cacc29e1..2e902c054c 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedEditConfig.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedEditConfig.java @@ -9,10 +9,10 @@ package org.opendaylight.netconf.test.tool.rpc; import com.google.common.base.Optional; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.util.mapping.AbstractLastNetconfOperation; import org.w3c.dom.Attr; import org.w3c.dom.Document; diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedGet.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedGet.java index 785e4ee254..83897d0c98 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedGet.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedGet.java @@ -9,10 +9,10 @@ package org.opendaylight.netconf.test.tool.rpc; import com.google.common.base.Optional; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.util.mapping.AbstractLastNetconfOperation; import org.w3c.dom.Document; import org.w3c.dom.Element; diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedGetConfig.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedGetConfig.java index 47c2687c39..572fd961b7 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedGetConfig.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedGetConfig.java @@ -12,10 +12,10 @@ import com.google.common.base.Optional; import java.io.File; import java.io.IOException; import java.util.List; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.util.mapping.AbstractLastNetconfOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedLock.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedLock.java index efc526f31f..c7d4e0c13a 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedLock.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedLock.java @@ -9,10 +9,10 @@ package org.opendaylight.netconf.test.tool.rpc; import com.google.common.base.Optional; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.util.mapping.AbstractLastNetconfOperation; import org.w3c.dom.Document; import org.w3c.dom.Element; diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedUnLock.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedUnLock.java index 44e2566e80..ce06534a9c 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedUnLock.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedUnLock.java @@ -9,10 +9,10 @@ package org.opendaylight.netconf.test.tool.rpc; import com.google.common.base.Optional; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.util.mapping.AbstractLastNetconfOperation; import org.w3c.dom.Document; import org.w3c.dom.Element; diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpchandler/RpcHandler.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpchandler/RpcHandler.java index ec0105b779..44a15f65cf 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpchandler/RpcHandler.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpchandler/RpcHandler.java @@ -8,7 +8,7 @@ package org.opendaylight.netconf.test.tool.rpchandler; import java.util.Optional; -import org.opendaylight.controller.config.util.xml.XmlElement; +import org.opendaylight.netconf.api.xml.XmlElement; import org.w3c.dom.Document; public interface RpcHandler { diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpchandler/RpcHandlerDefault.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpchandler/RpcHandlerDefault.java index f817575d26..04a34b3cb2 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpchandler/RpcHandlerDefault.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpchandler/RpcHandlerDefault.java @@ -8,7 +8,7 @@ package org.opendaylight.netconf.test.tool.rpchandler; import java.util.Optional; -import org.opendaylight.controller.config.util.xml.XmlElement; +import org.opendaylight.netconf.api.xml.XmlElement; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.w3c.dom.Document; diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpchandler/SettableOperationRpcProvider.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpchandler/SettableOperationRpcProvider.java index ed36c44398..dc74c9d604 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpchandler/SettableOperationRpcProvider.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpchandler/SettableOperationRpcProvider.java @@ -10,7 +10,7 @@ package org.opendaylight.netconf.test.tool.rpchandler; import java.util.Collections; import java.util.Set; -import org.opendaylight.controller.config.util.capability.Capability; +import org.opendaylight.netconf.api.capability.Capability; import org.opendaylight.netconf.api.monitoring.CapabilityListener; import org.opendaylight.netconf.mapping.api.NetconfOperation; import org.opendaylight.netconf.mapping.api.NetconfOperationService; diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpchandler/SettableRpc.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpchandler/SettableRpc.java index a85136564a..a3e449f05a 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpchandler/SettableRpc.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpchandler/SettableRpc.java @@ -9,10 +9,10 @@ package org.opendaylight.netconf.test.tool.rpchandler; import java.util.Optional; -import org.opendaylight.controller.config.util.xml.DocumentedException; -import org.opendaylight.controller.config.util.xml.XmlElement; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.mapping.api.HandlingPriority; import org.opendaylight.netconf.mapping.api.NetconfOperation; import org.opendaylight.netconf.mapping.api.NetconfOperationChainedExecution; -- 2.36.6