From: Robert Varga Date: Mon, 27 Jun 2022 09:13:41 +0000 (+0200) Subject: Bump upstream versions X-Git-Tag: v4.0.0~28 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=netconf.git;a=commitdiff_plain;h=29c57bb8a9d5f6cecd2c890c614709b83a7f516e Bump upstream versions Adopt: - odlparent-11.0.0 - infrautils-4.0.0 - yangtools-9.0.0 - mdsal-10.0.0 - controller-6.0.0 - aaa-0.16.0-SNAPSHOT Change-Id: I2541823f98942f6cf03331416a57777539dfb9f8 Signed-off-by: Robert Varga --- diff --git a/artifacts/pom.xml b/artifacts/pom.xml index 579479d0b9..40735ecaa7 100644 --- a/artifacts/pom.xml +++ b/artifacts/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.odlparent odlparent-lite - 10.0.2 + 11.0.0 diff --git a/features/netconf-connector/features-netconf-connector/pom.xml b/features/netconf-connector/features-netconf-connector/pom.xml index b53e335e82..d27446cfbb 100644 --- a/features/netconf-connector/features-netconf-connector/pom.xml +++ b/features/netconf-connector/features-netconf-connector/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent feature-repo-parent - 10.0.2 + 11.0.0 diff --git a/features/netconf-connector/odl-netconf-connector/src/main/feature/feature.xml b/features/netconf-connector/odl-netconf-connector/src/main/feature/feature.xml index f565b54ce2..9a0862db59 100644 --- a/features/netconf-connector/odl-netconf-connector/src/main/feature/feature.xml +++ b/features/netconf-connector/odl-netconf-connector/src/main/feature/feature.xml @@ -8,8 +8,8 @@ --> - odl-mdsal-model-draft-clemm-netmod-yang-network-topo-01-minimal - odl-mdsal-broker - odl-aaa-encryption-service + odl-mdsal-model-draft-clemm-netmod-yang-network-topo-01-minimal + odl-mdsal-broker + odl-aaa-encryption-service diff --git a/features/netconf-connector/pom.xml b/features/netconf-connector/pom.xml index 578dcdfa6e..532f3808c7 100644 --- a/features/netconf-connector/pom.xml +++ b/features/netconf-connector/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 10.0.2 + 11.0.0 diff --git a/features/netconf/features-netconf-testing/pom.xml b/features/netconf/features-netconf-testing/pom.xml index 1e578fd7de..9a29a1f957 100644 --- a/features/netconf/features-netconf-testing/pom.xml +++ b/features/netconf/features-netconf-testing/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent feature-repo-parent - 10.0.2 + 11.0.0 diff --git a/features/netconf/features-netconf/pom.xml b/features/netconf/features-netconf/pom.xml index afe5dac501..42bb4e0015 100644 --- a/features/netconf/features-netconf/pom.xml +++ b/features/netconf/features-netconf/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent feature-repo-parent - 10.0.2 + 11.0.0 diff --git a/features/netconf/odl-aaa-netconf-plugin-no-cluster/src/main/feature/feature.xml b/features/netconf/odl-aaa-netconf-plugin-no-cluster/src/main/feature/feature.xml index d7d146821b..9345a76b88 100644 --- a/features/netconf/odl-aaa-netconf-plugin-no-cluster/src/main/feature/feature.xml +++ b/features/netconf/odl-aaa-netconf-plugin-no-cluster/src/main/feature/feature.xml @@ -7,6 +7,6 @@ --> - odl-aaa-shiro + odl-aaa-shiro diff --git a/features/netconf/odl-aaa-netconf-plugin/src/main/feature/feature.xml b/features/netconf/odl-aaa-netconf-plugin/src/main/feature/feature.xml index bcc78644b4..cd3ca70937 100644 --- a/features/netconf/odl-aaa-netconf-plugin/src/main/feature/feature.xml +++ b/features/netconf/odl-aaa-netconf-plugin/src/main/feature/feature.xml @@ -7,6 +7,6 @@ --> - odl-aaa-shiro + odl-aaa-shiro diff --git a/features/netconf/odl-netconf-api/src/main/feature/feature.xml b/features/netconf/odl-netconf-api/src/main/feature/feature.xml index 8123c421da..786b687a70 100644 --- a/features/netconf/odl-netconf-api/src/main/feature/feature.xml +++ b/features/netconf/odl-netconf-api/src/main/feature/feature.xml @@ -8,9 +8,9 @@ --> - odl-netty-4 - odl-yangtools-parser-api - odl-mdsal-model-rfc8525 - odl-mdsal-model-rfc8342 + odl-netty-4 + odl-yangtools-parser-api + odl-mdsal-model-rfc8525 + odl-mdsal-model-rfc8342 diff --git a/features/netconf/odl-netconf-client/src/main/feature/feature.xml b/features/netconf/odl-netconf-client/src/main/feature/feature.xml index 24626f7747..cc61a746a2 100644 --- a/features/netconf/odl-netconf-client/src/main/feature/feature.xml +++ b/features/netconf/odl-netconf-client/src/main/feature/feature.xml @@ -8,6 +8,6 @@ --> - odl-controller-exp-netty-config + odl-controller-exp-netty-config diff --git a/features/netconf/odl-netconf-impl/src/main/feature/feature.xml b/features/netconf/odl-netconf-impl/src/main/feature/feature.xml index 079d313ac3..6879fa02cf 100644 --- a/features/netconf/odl-netconf-impl/src/main/feature/feature.xml +++ b/features/netconf/odl-netconf-impl/src/main/feature/feature.xml @@ -8,6 +8,6 @@ --> - odl-controller-exp-netty-config + odl-controller-exp-netty-config diff --git a/features/netconf/odl-netconf-netty-util/src/main/feature/feature.xml b/features/netconf/odl-netconf-netty-util/src/main/feature/feature.xml index 820474f2d3..eaaeaddbda 100644 --- a/features/netconf/odl-netconf-netty-util/src/main/feature/feature.xml +++ b/features/netconf/odl-netconf-netty-util/src/main/feature/feature.xml @@ -1,7 +1,7 @@ - odl-netty-4 - odl-aaa-encryption-service + odl-netty-4 + odl-aaa-encryption-service diff --git a/features/netconf/odl-netconf-notifications-impl/src/main/feature/feature.xml b/features/netconf/odl-netconf-notifications-impl/src/main/feature/feature.xml index f1c196c69c..1cfadb90f3 100644 --- a/features/netconf/odl-netconf-notifications-impl/src/main/feature/feature.xml +++ b/features/netconf/odl-netconf-notifications-impl/src/main/feature/feature.xml @@ -1,6 +1,6 @@ - odl-mdsal-binding-runtime + odl-mdsal-binding-runtime diff --git a/features/netconf/odl-netconf-util/src/main/feature/feature.xml b/features/netconf/odl-netconf-util/src/main/feature/feature.xml index dbd89fba65..1360892d2a 100644 --- a/features/netconf/odl-netconf-util/src/main/feature/feature.xml +++ b/features/netconf/odl-netconf-util/src/main/feature/feature.xml @@ -11,6 +11,6 @@ mvn:org.opendaylight.netconf/netconf-util/${project.version}/cfg/config - odl-yangtools-codec + odl-yangtools-codec diff --git a/features/netconf/pom.xml b/features/netconf/pom.xml index 80bcb12bc0..a2afd4c9e8 100644 --- a/features/netconf/pom.xml +++ b/features/netconf/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 10.0.2 + 11.0.0 diff --git a/features/parent/pom.xml b/features/parent/pom.xml index 391b70663d..3bee6d6ba8 100644 --- a/features/parent/pom.xml +++ b/features/parent/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent single-feature-parent - 10.0.2 + 11.0.0 diff --git a/features/pom.xml b/features/pom.xml index c187a77348..93d56dfbab 100644 --- a/features/pom.xml +++ b/features/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 10.0.2 + 11.0.0 diff --git a/features/restconf/features-restconf/pom.xml b/features/restconf/features-restconf/pom.xml index f00e3f7304..67d09380b8 100644 --- a/features/restconf/features-restconf/pom.xml +++ b/features/restconf/features-restconf/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent feature-repo-parent - 10.0.2 + 11.0.0 diff --git a/features/restconf/odl-mdsal-apidocs/src/main/feature/feature.xml b/features/restconf/odl-mdsal-apidocs/src/main/feature/feature.xml index 8ecc61262b..decd7c3c9b 100644 --- a/features/restconf/odl-mdsal-apidocs/src/main/feature/feature.xml +++ b/features/restconf/odl-mdsal-apidocs/src/main/feature/feature.xml @@ -8,6 +8,6 @@ --> - odl-jackson-2.13 + odl-jackson-2.13 diff --git a/features/restconf/odl-restconf-common/src/main/feature/feature.xml b/features/restconf/odl-restconf-common/src/main/feature/feature.xml index db2a6470fe..db506a9076 100644 --- a/features/restconf/odl-restconf-common/src/main/feature/feature.xml +++ b/features/restconf/odl-restconf-common/src/main/feature/feature.xml @@ -8,11 +8,11 @@ --> - odl-karaf-feat-jetty - odl-yangtools-export - odl-mdsal-model-rfc8040 - odl-mdsal-model-rfc8525 - odl-mdsal-broker - odl-aaa-shiro + odl-karaf-feat-jetty + odl-yangtools-export + odl-mdsal-model-rfc8040 + odl-mdsal-model-rfc8525 + odl-mdsal-broker + odl-aaa-shiro diff --git a/features/restconf/odl-restconf-nb-rfc8040/src/main/feature/feature.xml b/features/restconf/odl-restconf-nb-rfc8040/src/main/feature/feature.xml index 6cf0fa9d65..0eb58dd191 100644 --- a/features/restconf/odl-restconf-nb-rfc8040/src/main/feature/feature.xml +++ b/features/restconf/odl-restconf-nb-rfc8040/src/main/feature/feature.xml @@ -8,8 +8,8 @@ --> - odl-mdsal-model-rfc8072 - odl-controller-exp-netty-config + odl-mdsal-model-rfc8072 + odl-controller-exp-netty-config mvn:org.opendaylight.netconf/restconf-nb-rfc8040/${project.version}/cfg/config diff --git a/features/restconf/pom.xml b/features/restconf/pom.xml index 64eba9444f..6227c4002d 100644 --- a/features/restconf/pom.xml +++ b/features/restconf/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 10.0.2 + 11.0.0 diff --git a/features/yanglib/features-yanglib/pom.xml b/features/yanglib/features-yanglib/pom.xml index aa7b33ffee..709b15d170 100644 --- a/features/yanglib/features-yanglib/pom.xml +++ b/features/yanglib/features-yanglib/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent feature-repo-parent - 10.0.2 + 11.0.0 diff --git a/features/yanglib/odl-yanglib/src/main/feature/feature.xml b/features/yanglib/odl-yanglib/src/main/feature/feature.xml index 246a253956..48b5b3f8d7 100644 --- a/features/yanglib/odl-yanglib/src/main/feature/feature.xml +++ b/features/yanglib/odl-yanglib/src/main/feature/feature.xml @@ -8,7 +8,7 @@ --> - odl-karaf-feat-jetty - odl-mdsal-model-rfc8525 + odl-karaf-feat-jetty + odl-mdsal-model-rfc8525 diff --git a/features/yanglib/pom.xml b/features/yanglib/pom.xml index 0fec13b615..17d87220de 100644 --- a/features/yanglib/pom.xml +++ b/features/yanglib/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 10.0.2 + 11.0.0 diff --git a/karaf-static/pom.xml b/karaf-static/pom.xml index 1e10f203a8..3953862e6b 100644 --- a/karaf-static/pom.xml +++ b/karaf-static/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent karaf-dist-static - 10.0.2 + 11.0.0 diff --git a/karaf/pom.xml b/karaf/pom.xml index aa62a6c37d..f0de601be3 100644 --- a/karaf/pom.xml +++ b/karaf/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent karaf4-parent - 10.0.2 + 11.0.0 org.opendaylight.netconf @@ -24,7 +24,7 @@ org.opendaylight.controller controller-artifacts - 5.0.4 + 6.0.0 pom import @@ -40,7 +40,7 @@ org.opendaylight.infrautils infrautils-artifacts - 3.0.1 + 4.0.0 pom import diff --git a/netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/IetfZeroTouchCallHomeServerProvider.java b/netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/IetfZeroTouchCallHomeServerProvider.java index d8a2c36e4f..1bf3100a60 100644 --- a/netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/IetfZeroTouchCallHomeServerProvider.java +++ b/netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/IetfZeroTouchCallHomeServerProvider.java @@ -15,8 +15,8 @@ import io.netty.channel.nio.NioEventLoopGroup; import java.io.IOException; import java.net.InetSocketAddress; import java.util.Collection; -import java.util.Collections; import java.util.HashSet; +import java.util.Map; import java.util.Optional; import java.util.Set; import java.util.concurrent.ExecutionException; @@ -74,8 +74,8 @@ public class IetfZeroTouchCallHomeServerProvider implements AutoCloseable, DataT final CallHomeMountDispatcher mountDispacher) { this.dataBroker = dataBroker; this.mountDispacher = mountDispacher; - this.authProvider = new CallHomeAuthProviderImpl(dataBroker); - this.statusReporter = new CallhomeStatusReporter(dataBroker); + authProvider = new CallHomeAuthProviderImpl(dataBroker); + statusReporter = new CallhomeStatusReporter(dataBroker); } public void init() { @@ -108,7 +108,7 @@ public class IetfZeroTouchCallHomeServerProvider implements AutoCloseable, DataT private void initializeServer() throws IOException { LOG.info("Initializing Call Home server instance"); - CallHomeAuthorizationProvider provider = this.getCallHomeAuthorization(); + CallHomeAuthorizationProvider provider = getCallHomeAuthorization(); NetconfCallHomeServerBuilder builder = new NetconfCallHomeServerBuilder(provider, mountDispacher, statusReporter); if (port > 0) { @@ -124,8 +124,8 @@ public class IetfZeroTouchCallHomeServerProvider implements AutoCloseable, DataT @VisibleForTesting void assertValid(final Object obj, final String description) { if (obj == null) { - throw new RuntimeException( - String.format("Failed to find %s in IetfZeroTouchCallHomeProvider.initialize()", description)); + throw new IllegalStateException( + "Failed to find " + description + " in IetfZeroTouchCallHomeProvider.initialize()"); } } @@ -135,7 +135,7 @@ public class IetfZeroTouchCallHomeServerProvider implements AutoCloseable, DataT statusReporter.close(); // FIXME unbind the server - if (this.listenerReg != null) { + if (listenerReg != null) { listenerReg.close(); } if (server != null) { @@ -208,7 +208,7 @@ public class IetfZeroTouchCallHomeServerProvider implements AutoCloseable, DataT private static Collection getReadDevices(final ListenableFuture> devicesFuture) throws InterruptedException, ExecutionException { - return devicesFuture.get().map(AllowedDevices::nonnullDevice).orElse(Collections.emptyMap()).values(); + return devicesFuture.get().map(AllowedDevices::nonnullDevice).orElse(Map.of()).values(); } private void readAndUpdateStatus(final Device cfgDevice) throws InterruptedException, ExecutionException { diff --git a/netconf/callhome-provider/src/test/java/org/opendaylight/netconf/callhome/mount/ContextKeyTest.java b/netconf/callhome-provider/src/test/java/org/opendaylight/netconf/callhome/mount/ContextKeyTest.java index 09fc7e1ab4..ca863ebd50 100644 --- a/netconf/callhome-provider/src/test/java/org/opendaylight/netconf/callhome/mount/ContextKeyTest.java +++ b/netconf/callhome-provider/src/test/java/org/opendaylight/netconf/callhome/mount/ContextKeyTest.java @@ -5,7 +5,6 @@ * 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.callhome.mount; import static org.junit.Assert.assertFalse; @@ -24,7 +23,7 @@ import org.junit.Test; import org.opendaylight.netconf.client.NetconfClientSession; 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; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode; import org.opendaylight.yangtools.yang.common.Uint16; @@ -46,8 +45,8 @@ public class ContextKeyTest { @Before public void setup() { - address1 = IpAddressBuilder.getDefaultInstance("1.2.3.4"); - address2 = IpAddressBuilder.getDefaultInstance("5.6.7.8"); + address1 = new IpAddress(new Ipv4Address("1.2.3.4")); + address2 = new IpAddress(new Ipv4Address("5.6.7.8")); port1 = new PortNumber(Uint16.valueOf(123)); port2 = new PortNumber(Uint16.valueOf(456)); 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 d20a903225..c46dfb51d9 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 @@ -17,7 +17,7 @@ import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.dom.api.DOMSchemaService; import org.opendaylight.netconf.api.capability.Capability; import org.opendaylight.netconf.api.monitoring.CapabilityListener; -import org.opendaylight.yangtools.concepts.ListenerRegistration; +import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextListener; import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; @@ -27,10 +27,11 @@ import org.opendaylight.yangtools.yang.model.repo.spi.SchemaSourceProvider; @SuppressWarnings("checkstyle:FinalClass") public class CurrentSchemaContext implements EffectiveModelContextListener, AutoCloseable { private final AtomicReference currentContext = new AtomicReference<>(); - private ListenerRegistration schemaContextListenerListenerRegistration; private final Set listeners1 = Collections.synchronizedSet(new HashSet<>()); private final SchemaSourceProvider rootSchemaSourceProvider; + private Registration schemaContextListenerListenerRegistration; + private CurrentSchemaContext(final SchemaSourceProvider rootSchemaSourceProvider) { this.rootSchemaSourceProvider = rootSchemaSourceProvider; } @@ -39,13 +40,12 @@ public class CurrentSchemaContext implements EffectiveModelContextListener, Auto public static CurrentSchemaContext create(final DOMSchemaService schemaService, final SchemaSourceProvider rootSchemaSourceProvider) { var context = new CurrentSchemaContext(rootSchemaSourceProvider); - final ListenerRegistration registration = - schemaService.registerSchemaContextListener(context); + final Registration registration = schemaService.registerSchemaContextListener(context); context.setRegistration(registration); return context; } - private void setRegistration(ListenerRegistration registration) { + private void setRegistration(final Registration registration) { schemaContextListenerListenerRegistration = registration; } 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 61e571fe54..d8b5ad86d3 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 @@ -30,11 +30,11 @@ 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; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.ModuleLike; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.Submodule; -import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; import org.opendaylight.yangtools.yang.model.repo.spi.SchemaSourceProvider; @@ -63,9 +63,9 @@ public final class MdsalNetconfOperationServiceFactory implements NetconfOperati this.dataBroker = dataBroker; this.rpcService = rpcService; - this.rootSchemaSourceProviderDependency = schemaService.getExtensions() + rootSchemaSourceProviderDependency = schemaService.getExtensions() .getInstance(DOMYangTextSourceProvider.class); - this.currentSchemaContext = CurrentSchemaContext.create(requireNonNull(schemaService), + currentSchemaContext = CurrentSchemaContext.create(requireNonNull(schemaService), rootSchemaSourceProviderDependency); this.netconfOperationServiceFactoryListener = netconfOperationServiceFactoryListener; } @@ -135,8 +135,8 @@ public final class MdsalNetconfOperationServiceFactory implements NetconfOperati private static Optional moduleToCapability(final ModuleLike module, final SchemaSourceProvider rootSchemaSourceProviderDependency) { - final SourceIdentifier moduleSourceIdentifier = RevisionSourceIdentifier.create(module.getName(), - module.getRevision()); + final SourceIdentifier moduleSourceIdentifier = new SourceIdentifier(module.getName(), + module.getRevision().map(Revision::toString).orElse(null)); InputStream sourceStream = null; String source; 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 f4b0ec2935..501116572e 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 @@ -202,7 +202,8 @@ public final class CopyConfig extends AbstractEdit { nnWriter.flush(); xmlWriter.flush(); } catch (XMLStreamException | IOException e) { - throw new RuntimeException(e); + // FIXME: throw DocumentedException + throw new IllegalStateException(e); } return result.getNode(); } 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 5a80e167bc..cfa079b08b 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 @@ -216,6 +216,7 @@ public class RuntimeRpc extends AbstractSingletonNetconfOperation { nnStreamWriter.close(); xmlWriter.close(); } catch (IOException | XMLStreamException e) { + // FIXME: throw DocumentedException LOG.warn("Error while closing streams", e); } @@ -226,7 +227,7 @@ public class RuntimeRpc extends AbstractSingletonNetconfOperation { try { return XML_OUTPUT_FACTORY.createXMLStreamWriter(result); } catch (final XMLStreamException e) { - throw new RuntimeException(e); + throw new IllegalStateException(e); } } @@ -237,7 +238,8 @@ public class RuntimeRpc extends AbstractSingletonNetconfOperation { nnWriter.flush(); xmlWriter.flush(); } catch (XMLStreamException | IOException e) { - throw new RuntimeException(e); + // FIXME: throw DocumentedException + throw new IllegalStateException(e); } } 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 c3bc2765c9..0d243f67ce 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 @@ -73,7 +73,8 @@ abstract class AbstractGet extends AbstractSingletonNetconfOperation { write(nnStreamWriter, currentContext, dataRoot.coerceParent(), data); } } catch (IOException e) { - throw new RuntimeException(e); + // FIXME: throw DocumentedException + throw new IllegalStateException(e); } return result.getNode(); @@ -104,7 +105,8 @@ abstract class AbstractGet extends AbstractSingletonNetconfOperation { try { return XML_OUTPUT_FACTORY.createXMLStreamWriter(result); } catch (final XMLStreamException e) { - throw new RuntimeException(e); + // FIXME: throw DocumentedException + throw new IllegalStateException(e); } } 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 03f1ace3d7..61a2a10825 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 @@ -74,7 +74,8 @@ public class FilterContentValidator { try { namespace = XMLNamespace.of(filterContent.getNamespace()); } catch (final IllegalArgumentException e) { - throw new RuntimeException("Wrong namespace in element + " + filterContent.toString(), e); + // FIXME: throw DocumentedException + throw new IllegalArgumentException("Wrong namespace in element + " + filterContent.toString(), e); } try { @@ -123,8 +124,7 @@ public class FilterContentValidator { */ private FilterTree validateNode(final XmlElement element, final DataSchemaNode parentNodeSchema, final FilterTree tree) throws ValidationException { - final List childElements = element.getChildElements(); - for (final XmlElement childElement : childElements) { + for (final XmlElement childElement : element.getChildElements()) { try { final Deque path = findSchemaNodeByNameAndNamespace(parentNodeSchema, childElement.getName(), XMLNamespace.of(childElement.getNamespace())); @@ -138,7 +138,7 @@ public class FilterContentValidator { final DataSchemaNode childSchema = path.getLast(); validateNode(childElement, childSchema, subtree); } catch (IllegalArgumentException | MissingNameSpaceException e) { - throw new RuntimeException("Wrong namespace in element + " + childElement.toString(), e); + throw new IllegalArgumentException("Wrong namespace in element + " + childElement.toString(), e); } } return tree; diff --git a/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/NetconfNotificationManagerTest.java b/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/NetconfNotificationManagerTest.java index 5fbc48a919..0b93fd944c 100644 --- a/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/NetconfNotificationManagerTest.java +++ b/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/NetconfNotificationManagerTest.java @@ -28,7 +28,7 @@ import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.junit.MockitoJUnitRunner; -import org.opendaylight.mdsal.binding.dom.codec.impl.DefaultBindingDOMCodecFactory; +import org.opendaylight.mdsal.binding.dom.codec.impl.di.DefaultBindingDOMCodecFactory; import org.opendaylight.mdsal.binding.generator.impl.DefaultBindingRuntimeGenerator; import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.mdsal.notification.impl.ops.NotificationsTransformUtil; diff --git a/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/SessionNotificationProducerTest.java b/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/SessionNotificationProducerTest.java index dc18c6ad5c..17eb4be0c6 100644 --- a/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/SessionNotificationProducerTest.java +++ b/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/SessionNotificationProducerTest.java @@ -30,7 +30,9 @@ import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.netconf.notifications.BaseNotificationPublisherRegistration; import org.opendaylight.netconf.notifications.NetconfNotificationCollector; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.HostBuilder; +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; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.sessions.Session; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.sessions.SessionBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfSessionEnd; @@ -119,7 +121,7 @@ public class SessionNotificationProducerTest { private static Session createSessionWithInRpcCount(final Uint32 id, final Uint32 inRpc) { return new SessionBuilder() .setSessionId(id) - .setSourceHost(HostBuilder.getDefaultInstance("0.0.0.0")) + .setSourceHost(new Host(new IpAddress(new Ipv4Address("0.0.0.0")))) .setUsername("user") .setInRpcs(new ZeroBasedCounter32(inRpc)) .build(); diff --git a/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/ops/NotificationsTransformUtilTest.java b/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/ops/NotificationsTransformUtilTest.java index db4c9873f0..6f0e58dfde 100644 --- a/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/ops/NotificationsTransformUtilTest.java +++ b/netconf/mdsal-netconf-notification/src/test/java/org/opendaylight/netconf/mdsal/notification/impl/ops/NotificationsTransformUtilTest.java @@ -18,7 +18,7 @@ import org.custommonkey.xmlunit.XMLUnit; import org.custommonkey.xmlunit.examples.RecursiveElementNameAndTextQualifier; import org.junit.BeforeClass; import org.junit.Test; -import org.opendaylight.mdsal.binding.dom.codec.impl.DefaultBindingDOMCodecFactory; +import org.opendaylight.mdsal.binding.dom.codec.impl.di.DefaultBindingDOMCodecFactory; import org.opendaylight.mdsal.binding.generator.impl.DefaultBindingRuntimeGenerator; import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.notifications.NetconfNotification; diff --git a/netconf/mdsal-netconf-ssh/src/main/java/org/opendaylight/netconf/ssh/NetconfNorthboundSshServer.java b/netconf/mdsal-netconf-ssh/src/main/java/org/opendaylight/netconf/ssh/NetconfNorthboundSshServer.java index 915cd93c0e..b0c73e013f 100644 --- a/netconf/mdsal-netconf-ssh/src/main/java/org/opendaylight/netconf/ssh/NetconfNorthboundSshServer.java +++ b/netconf/mdsal-netconf-ssh/src/main/java/org/opendaylight/netconf/ssh/NetconfNorthboundSshServer.java @@ -20,7 +20,6 @@ import org.opendaylight.netconf.auth.AuthProvider; import org.opendaylight.netconf.shaded.sshd.server.keyprovider.SimpleGeneratorHostKeyProvider; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IetfInetUtil; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressBuilder; import org.osgi.framework.ServiceReference; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -64,17 +63,17 @@ public class NetconfNorthboundSshServer { sshProxyServer.bind(sshProxyServerConfigurationBuilder.createSshProxyServerConfiguration()); LOG.info("Netconf SSH endpoint started successfully at {}", bindingAddress); } catch (final IOException e) { - throw new RuntimeException("Unable to start SSH netconf server", e); + throw new IllegalStateException("Unable to start SSH netconf server", e); } } else { LOG.warn("Unable to start SSH netconf server at {}", bindingAddress, future.cause()); - throw new RuntimeException("Unable to start SSH netconf server", future.cause()); + throw new IllegalStateException("Unable to start SSH netconf server", future.cause()); } }); } private static InetSocketAddress getInetAddress(final String bindingAddress, final String portNumber) { - IpAddress ipAddress = IpAddressBuilder.getDefaultInstance(bindingAddress); + final IpAddress ipAddress = IetfInetUtil.ipAddressFor(bindingAddress); final InetAddress inetAd = IetfInetUtil.INSTANCE.inetAddressFor(ipAddress); return new InetSocketAddress(inetAd, Integer.parseInt(portNumber)); } diff --git a/netconf/mdsal-netconf-tcp/src/main/java/org/opendaylight/netconf/tcp/NetconfNorthboundTcpServer.java b/netconf/mdsal-netconf-tcp/src/main/java/org/opendaylight/netconf/tcp/NetconfNorthboundTcpServer.java index f3200c9b3a..423e65e14e 100644 --- a/netconf/mdsal-netconf-tcp/src/main/java/org/opendaylight/netconf/tcp/NetconfNorthboundTcpServer.java +++ b/netconf/mdsal-netconf-tcp/src/main/java/org/opendaylight/netconf/tcp/NetconfNorthboundTcpServer.java @@ -13,7 +13,6 @@ import java.net.InetSocketAddress; import org.opendaylight.netconf.api.NetconfServerDispatcher; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IetfInetUtil; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -21,7 +20,6 @@ import org.slf4j.LoggerFactory; * Create an MD-SAL NETCONF server using TCP. */ public class NetconfNorthboundTcpServer implements AutoCloseable { - private static final Logger LOG = LoggerFactory.getLogger(NetconfNorthboundTcpServer.class); private final ChannelFuture tcpServer; @@ -35,13 +33,13 @@ public class NetconfNorthboundTcpServer implements AutoCloseable { LOG.info("Netconf TCP endpoint started successfully at {}", inetAddress); } else { LOG.warn("Unable to start TCP netconf server at {}", inetAddress, future.cause()); - throw new RuntimeException("Unable to start TCP netconf server", future.cause()); + throw new IllegalStateException("Unable to start TCP netconf server", future.cause()); } }); } private static InetSocketAddress getInetAddress(final String bindingAddress, final String portNumber) { - final IpAddress ipAddress = IpAddressBuilder.getDefaultInstance(bindingAddress); + final IpAddress ipAddress = IetfInetUtil.ipAddressFor(bindingAddress); final InetAddress inetAd = IetfInetUtil.INSTANCE.inetAddressFor(ipAddress); return new InetSocketAddress(inetAd, Integer.parseInt(portNumber)); } diff --git a/netconf/mdsal-netconf-yang-library/pom.xml b/netconf/mdsal-netconf-yang-library/pom.xml index 74c54d81f2..0d4e8b8583 100644 --- a/netconf/mdsal-netconf-yang-library/pom.xml +++ b/netconf/mdsal-netconf-yang-library/pom.xml @@ -51,8 +51,8 @@ true - javax.annotation - javax.annotation-api + jakarta.annotation + jakarta.annotation-api true diff --git a/netconf/mdsal-netconf-yang-library/src/main/java/org/opendaylight/netconf/mdsal/yang/library/YangLibraryWriter.java b/netconf/mdsal-netconf-yang-library/src/main/java/org/opendaylight/netconf/mdsal/yang/library/YangLibraryWriter.java index 44bcfad374..e30d407215 100644 --- a/netconf/mdsal-netconf-yang-library/src/main/java/org/opendaylight/netconf/mdsal/yang/library/YangLibraryWriter.java +++ b/netconf/mdsal-netconf-yang-library/src/main/java/org/opendaylight/netconf/mdsal/yang/library/YangLibraryWriter.java @@ -27,19 +27,19 @@ import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.mdsal.dom.api.DOMSchemaService; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.datastores.rev180214.Operational; 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.yang.library.rev190104.LegacyRevisionUtils; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.ModulesState; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.ModulesStateBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.RevisionUtils; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.YangLibrary; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.YangLibraryBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.list.CommonLeafsRevisionBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.list.Module.ConformanceType; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.set.parameters.ImportOnlyModuleRevisionBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.set.parameters.module.SubmoduleBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.yang.library.parameters.DatastoreBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.yang.library.parameters.ModuleSetBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.yang.library.parameters.SchemaBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.YangIdentifier; -import org.opendaylight.yangtools.concepts.ListenerRegistration; +import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.binding.util.BindingMap; import org.opendaylight.yangtools.yang.common.Revision; @@ -76,7 +76,7 @@ public final class YangLibraryWriter implements EffectiveModelContextListener, A @GuardedBy("this") private long moduleSetId; @GuardedBy("this") - private ListenerRegistration reg; + private Registration reg; @Inject @Activate @@ -167,8 +167,8 @@ public final class YangLibraryWriter implements EffectiveModelContextListener, A final var submoduleMap = module.getSubmodules().stream() .map(subModule -> new SubmoduleBuilder() .setName(new YangIdentifier(subModule.getName())) - .setRevision(ImportOnlyModuleRevisionBuilder.fromYangCommon(subModule.getQNameModule() - .getRevision()).getRevisionIdentifier()) + .setRevision(RevisionUtils.fromYangCommon(subModule.getQNameModule().getRevision()) + .getRevisionIdentifier()) .build()) .collect(BindingMap.toMap()); @@ -177,7 +177,7 @@ public final class YangLibraryWriter implements EffectiveModelContextListener, A .setName(new YangIdentifier(module.getName() + "_" // FIXME: 'orElse' seems to be wrong here + module.getRevision().map(Revision::toString).orElse(null))) - .setRevision(ImportOnlyModuleRevisionBuilder.fromYangCommon(module.getQNameModule().getRevision()) + .setRevision(RevisionUtils.fromYangCommon(module.getQNameModule().getRevision()) .getRevisionIdentifier()) .setNamespace(new Uri(module.getNamespace().toString())) .setFeature(extractFeatures(module)) @@ -198,7 +198,7 @@ public final class YangLibraryWriter implements EffectiveModelContextListener, A .setModuleSet(Set.of(MODULE_SET_NAME)) .build())) .setDatastore(BindingMap.of(new DatastoreBuilder() - .setName(Operational.class) + .setName(Operational.VALUE) .setSchema(SCHEMA_NAME) .build())) .setContentId(String.valueOf(moduleSetId)) @@ -214,7 +214,7 @@ public final class YangLibraryWriter implements EffectiveModelContextListener, A .map(subModule -> new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library .rev190104.module.list.module.SubmoduleBuilder() .setName(new YangIdentifier(subModule.getName())) - .setRevision(CommonLeafsRevisionBuilder.fromYangCommon(subModule.getQNameModule() + .setRevision(LegacyRevisionUtils.fromYangCommon(subModule.getQNameModule() .getRevision())) .build()) .collect(BindingMap.toMap()); @@ -222,7 +222,7 @@ public final class YangLibraryWriter implements EffectiveModelContextListener, A return new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library .rev190104.module.list.ModuleBuilder() .setName(new YangIdentifier(module.getName())) - .setRevision(CommonLeafsRevisionBuilder.fromYangCommon(module.getQNameModule().getRevision())) + .setRevision(LegacyRevisionUtils.fromYangCommon(module.getQNameModule().getRevision())) .setNamespace(new Uri(module.getNamespace().toString())) // FIXME: Conformance type is always set to Implement value, but it should it really be like this? .setConformanceType(ConformanceType.Implement) diff --git a/netconf/mdsal-netconf-yang-library/src/test/java/org/opendaylight/netconf/mdsal/yang/library/ModulesStateTest.java b/netconf/mdsal-netconf-yang-library/src/test/java/org/opendaylight/netconf/mdsal/yang/library/ModulesStateTest.java index e8868e7fd8..1bdf65b1c7 100644 --- a/netconf/mdsal-netconf-yang-library/src/test/java/org/opendaylight/netconf/mdsal/yang/library/ModulesStateTest.java +++ b/netconf/mdsal-netconf-yang-library/src/test/java/org/opendaylight/netconf/mdsal/yang/library/ModulesStateTest.java @@ -12,11 +12,11 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.junit.MockitoJUnitRunner; 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.yang.library.rev190104.LegacyRevisionUtils; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.ModulesState; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.ModulesStateBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.RevisionIdentifier; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.list.CommonLeafs.Revision; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.list.CommonLeafsRevisionBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.list.Module; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.list.ModuleBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.list.module.SubmoduleBuilder; @@ -36,7 +36,7 @@ public class ModulesStateTest extends AbstractYangLibraryWriterTest { .setRevision(new Revision(new RevisionIdentifier("2013-07-22"))) .setSubmodule(BindingMap.of(new SubmoduleBuilder() .setName(new YangIdentifier("test-submodule")) - .setRevision(CommonLeafsRevisionBuilder.emptyRevision()) + .setRevision(LegacyRevisionUtils.emptyRevision()) .build())) .setConformanceType(Module.ConformanceType.Implement) .setFeature(Set.of()) diff --git a/netconf/mdsal-netconf-yang-library/src/test/java/org/opendaylight/netconf/mdsal/yang/library/YangLibraryTest.java b/netconf/mdsal-netconf-yang-library/src/test/java/org/opendaylight/netconf/mdsal/yang/library/YangLibraryTest.java index df6f80dd00..b73f488daf 100644 --- a/netconf/mdsal-netconf-yang-library/src/test/java/org/opendaylight/netconf/mdsal/yang/library/YangLibraryTest.java +++ b/netconf/mdsal-netconf-yang-library/src/test/java/org/opendaylight/netconf/mdsal/yang/library/YangLibraryTest.java @@ -15,9 +15,9 @@ import org.mockito.junit.MockitoJUnitRunner; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.datastores.rev180214.Operational; 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.yang.library.rev190104.RevisionIdentifier; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.RevisionUtils; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.YangLibrary; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.YangLibraryBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.set.parameters.ImportOnlyModuleRevisionBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.set.parameters.Module; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.set.parameters.ModuleBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.set.parameters.module.Submodule; @@ -42,7 +42,7 @@ public class YangLibraryTest extends AbstractYangLibraryWriterTest { private static YangLibrary createTestModuleSet() { Submodule sub = new SubmoduleBuilder() .setName(new YangIdentifier("test-submodule")) - .setRevision(ImportOnlyModuleRevisionBuilder.emptyRevision().getRevisionIdentifier()) + .setRevision(RevisionUtils.emptyRevision().getRevisionIdentifier()) .build(); Module modules = new ModuleBuilder().setName(new YangIdentifier("test-module_2013-07-22")) @@ -68,7 +68,7 @@ public class YangLibraryTest extends AbstractYangLibraryWriterTest { .setModuleSet(Set.of(modulesSet.getName())) .build(); - Datastore datastore = new DatastoreBuilder().setName(Operational.class) + Datastore datastore = new DatastoreBuilder().setName(Operational.VALUE) .setSchema(schema.getName()) .build(); diff --git a/netconf/models/ietf-netconf-nmda/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/netconf/nmda/rev190107/GetDataInputMaxDepthBuilder.java b/netconf/models/ietf-netconf-nmda/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/netconf/nmda/rev190107/GetDataInputMaxDepthBuilder.java index eb68018605..f385f69f5e 100644 --- a/netconf/models/ietf-netconf-nmda/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/netconf/nmda/rev190107/GetDataInputMaxDepthBuilder.java +++ b/netconf/models/ietf-netconf-nmda/src/main/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/netconf/nmda/rev190107/GetDataInputMaxDepthBuilder.java @@ -7,7 +7,6 @@ */ package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.nmda.rev190107; -import java.util.Optional; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.nmda.rev190107.GetDataInput.MaxDepth; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.nmda.rev190107.GetDataInput.MaxDepth.Enumeration; import org.opendaylight.yangtools.yang.common.Uint16; @@ -21,9 +20,9 @@ public final class GetDataInputMaxDepthBuilder { } public static MaxDepth getDefaultInstance(final String defaultValue) { - final Optional optEnum = Enumeration.forName(defaultValue); - if (optEnum.isPresent()) { - return new MaxDepth(optEnum.get()); + final var optEnum = Enumeration.forName(defaultValue); + if (optEnum != null) { + return new MaxDepth(optEnum); } // FIXME: consider being stricter about number formats here return new MaxDepth(Uint16.valueOf(defaultValue)); diff --git a/netconf/models/pom.xml b/netconf/models/pom.xml index 417c7d535f..f181b27a36 100644 --- a/netconf/models/pom.xml +++ b/netconf/models/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 10.0.2 + 11.0.0 diff --git a/netconf/netconf-config/pom.xml b/netconf/netconf-config/pom.xml index 6a7b8e6b64..5f0e879791 100644 --- a/netconf/netconf-config/pom.xml +++ b/netconf/netconf-config/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent bundle-parent - 10.0.2 + 11.0.0 diff --git a/netconf/netconf-console/src/test/java/org/opendaylight/netconf/console/impl/NetconfCommandsImplTest.java b/netconf/netconf-console/src/test/java/org/opendaylight/netconf/console/impl/NetconfCommandsImplTest.java index 90a3924cf4..6ace0f7216 100644 --- a/netconf/netconf-console/src/test/java/org/opendaylight/netconf/console/impl/NetconfCommandsImplTest.java +++ b/netconf/netconf-console/src/test/java/org/opendaylight/netconf/console/impl/NetconfCommandsImplTest.java @@ -37,7 +37,8 @@ import org.opendaylight.netconf.console.utils.NetconfConsoleConstants; import org.opendaylight.netconf.console.utils.NetconfConsoleUtils; import org.opendaylight.netconf.console.utils.NetconfIidFactory; 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.HostBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeBuilder; @@ -126,7 +127,8 @@ public class NetconfCommandsImplTest { @Test public void testConnectDisconnectDevice() throws InterruptedException, TimeoutException, ExecutionException { final NetconfNode netconfNode = new NetconfNodeBuilder() - .setPort(new PortNumber(Uint16.valueOf(7777))).setHost(HostBuilder.getDefaultInstance("10.10.1.1")) + .setPort(new PortNumber(Uint16.valueOf(7777))) + .setHost(new Host(new IpAddress(new Ipv4Address("10.10.1.1")))) .build(); createTopology(LogicalDatastoreType.CONFIGURATION); @@ -217,7 +219,7 @@ public class NetconfCommandsImplTest { private static Node getNetconfNode(final String nodeIdent, final String ip, final int portNumber, final NetconfNodeConnectionStatus.ConnectionStatus cs, final String notificationCapabilityPrefix) { - final Host host = HostBuilder.getDefaultInstance(ip); + final Host host = new Host(new IpAddress(new Ipv4Address(ip))); final PortNumber port = new PortNumber(Uint16.valueOf(portNumber)); final List avCapList = new ArrayList<>(); diff --git a/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSession.java b/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSession.java index df7dcd1900..19601fcdca 100644 --- a/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSession.java +++ b/netconf/netconf-impl/src/main/java/org/opendaylight/netconf/impl/NetconfServerSession.java @@ -82,7 +82,7 @@ public final class NetconfServerSession extends AbstractNetconfSession getTransportForString(final String transport) { - switch (transport) { - case "ssh": - return NetconfSsh.class; - case "tcp": - return NetconfTcp.class; - default: - throw new IllegalArgumentException("Unknown transport type " + transport); - } + private static Transport getTransportForString(final String transport) { + return switch (transport) { + case "ssh" -> NetconfSsh.VALUE; + case "tcp" -> NetconfTcp.VALUE; + default -> throw new IllegalArgumentException("Unknown transport type " + transport); + }; } @Override 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 11f1521c93..5cc087248a 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 @@ -12,6 +12,7 @@ import static org.opendaylight.netconf.api.xml.XmlNetconfConstants.URN_IETF_PARA import static org.opendaylight.netconf.api.xml.XmlNetconfConstants.URN_IETF_PARAMS_NETCONF_CAPABILITY_URL_1_0; import com.google.common.base.Function; +import com.google.common.base.Throwables; import com.google.common.collect.Collections2; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Maps; @@ -67,9 +68,8 @@ final class NetconfCapabilityMonitoringService implements CapabilityListener, Au synchronized Schemas getSchemas() { try { return transformSchemas(netconfOperationProvider.getCapabilities()); - } catch (final RuntimeException e) { - throw e; } catch (final Exception e) { + Throwables.throwIfUnchecked(e); throw new IllegalStateException("Exception while closing", e); } } @@ -142,11 +142,11 @@ final class NetconfCapabilityMonitoringService implements CapabilityListener, Au final Map schemas = Maps.newHashMapWithExpectedSize(caps.size()); for (final Capability cap : caps) { if (isValidModuleCapability(cap)) { - final SchemaKey key = new SchemaKey(Yang.class, cap.getModuleName().get(), + final SchemaKey key = new SchemaKey(Yang.VALUE, cap.getModuleName().orElseThrow(), cap.getRevision().orElse("")); schemas.put(key, new SchemaBuilder() .withKey(key) - .setNamespace(new Uri(cap.getModuleNamespace().get())) + .setNamespace(new Uri(cap.getModuleNamespace().orElseThrow())) .setLocation(transformLocations(cap.getLocation())) .build()); } 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 ab8904f9fa..9609dde637 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 @@ -104,9 +104,9 @@ public class NetconfServerSessionTest { @Test public void testOnIncommingRpcSuccess() throws Exception { session.sessionUp(); - final Session managementSession = this.session.toManagementSession(); - this.session.onIncommingRpcSuccess(); - final Session afterRpcSuccess = this.session.toManagementSession(); + final Session managementSession = session.toManagementSession(); + session.onIncommingRpcSuccess(); + final Session afterRpcSuccess = session.toManagementSession(); assertEquals(managementSession.getInRpcs().getValue().toJava() + 1, afterRpcSuccess.getInRpcs().getValue().longValue()); } @@ -114,9 +114,9 @@ public class NetconfServerSessionTest { @Test public void testOnIncommingRpcFail() throws Exception { session.sessionUp(); - final Session managementSession = this.session.toManagementSession(); - this.session.onIncommingRpcFail(); - final Session afterRpcSuccess = this.session.toManagementSession(); + final Session managementSession = session.toManagementSession(); + session.onIncommingRpcFail(); + final Session afterRpcSuccess = session.toManagementSession(); assertEquals(managementSession.getInBadRpcs().getValue().toJava() + 1, afterRpcSuccess.getInBadRpcs().getValue().longValue()); } @@ -124,9 +124,9 @@ public class NetconfServerSessionTest { @Test public void testOnOutgoingRpcError() throws Exception { session.sessionUp(); - final Session managementSession = this.session.toManagementSession(); - this.session.onOutgoingRpcError(); - final Session afterRpcSuccess = this.session.toManagementSession(); + final Session managementSession = session.toManagementSession(); + session.onOutgoingRpcError(); + final Session afterRpcSuccess = session.toManagementSession(); assertEquals(managementSession.getOutRpcErrors().getValue().toJava() + 1, afterRpcSuccess.getOutRpcErrors().getValue().longValue()); } @@ -140,9 +140,9 @@ public class NetconfServerSessionTest { tcpSession.sessionUp(); final Session managementSession = tcpSession.toManagementSession(); assertEquals(HOST, managementSession.getSourceHost().getIpAddress().getIpv4Address().getValue()); - assertEquals(managementSession.getUsername(), USER); - assertEquals(managementSession.getSessionId().toString(), SESSION_ID); - assertEquals(managementSession.getTransport(), NetconfTcp.class); + assertEquals(USER, managementSession.getUsername()); + assertEquals(SESSION_ID, managementSession.getSessionId().toString()); + assertEquals(NetconfTcp.VALUE, managementSession.getTransport()); } @Test(expected = IllegalArgumentException.class) @@ -165,9 +165,9 @@ public class NetconfServerSessionTest { tcpSession.sessionUp(); final Session managementSession = tcpSession.toManagementSession(); assertEquals("::1", managementSession.getSourceHost().getIpAddress().getIpv6Address().getValue()); - assertEquals(managementSession.getUsername(), USER); - assertEquals(managementSession.getSessionId().toString(), SESSION_ID); - assertEquals(managementSession.getTransport(), NetconfSsh.class); + assertEquals(USER, managementSession.getUsername()); + assertEquals(SESSION_ID, managementSession.getSessionId().toString()); + assertEquals(NetconfSsh.VALUE, managementSession.getTransport()); } @Test 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 dcb4654c78..3064b0649a 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 @@ -36,7 +36,9 @@ import org.opendaylight.netconf.api.monitoring.NetconfManagementSession; import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService; import org.opendaylight.netconf.api.monitoring.SessionEvent; import org.opendaylight.netconf.notifications.BaseNotificationPublisherRegistration; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.HostBuilder; +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; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.sessions.Session; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.sessions.SessionBuilder; import org.opendaylight.yangtools.yang.common.Uint32; @@ -46,12 +48,12 @@ public class NetconfSessionMonitoringServiceTest { private static final Session SESSION_1 = new SessionBuilder() .setSessionId(Uint32.valueOf(1)) - .setSourceHost(HostBuilder.getDefaultInstance("0.0.0.0")) + .setSourceHost(new Host(new IpAddress(new Ipv4Address("0.0.0.0")))) .setUsername("admin") .build(); private static final Session SESSION_2 = new SessionBuilder() .setSessionId(Uint32.valueOf(2)) - .setSourceHost(HostBuilder.getDefaultInstance("0.0.0.0")) + .setSourceHost(new Host(new IpAddress(new Ipv4Address("0.0.0.0")))) .setUsername("admin") .build(); 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 d8c0697ae5..2c328df37e 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 @@ -176,7 +176,7 @@ public abstract class AbstractNetconfSession TOPOLOGY_PATH = InstanceIdentifier.create(NetworkTopology.class) @@ -56,7 +59,7 @@ public class NetconfConnectorFactoryImpl implements NetconfConnectorFactory { final Node node = new NodeBuilder() .withKey(nodeKey) .addAugmentation(new NetconfNodeBuilder() - .setHost(HostBuilder.getDefaultInstance(address)) + .setHost(createHost(address)) .setPort(new PortNumber(Uint16.valueOf(port))) .setCredentials(new LoginPwBuilder() .setLoginPassword(new LoginPasswordBuilder() @@ -85,4 +88,18 @@ public class NetconfConnectorFactoryImpl implements NetconfConnectorFactory { }, MoreExecutors.directExecutor()); return node; } -} \ No newline at end of file + + private static Host createHost(final String host) { + try { + return new Host(new IpAddress(new Ipv4Address(host))); + } catch (IllegalArgumentException e) { + LOG.debug("Cannot interpret {} as an Ipv4Address", host, e); + } + try { + return new Host(new IpAddress(new Ipv6Address(host))); + } catch (IllegalArgumentException e) { + LOG.debug("Cannot interpret {} as an Ipv6Address", host, e); + } + return new Host(new DomainName(host)); + } +} diff --git a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/MasterSalFacade.java b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/MasterSalFacade.java index 44727a0c6e..9c7780ac2b 100644 --- a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/MasterSalFacade.java +++ b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/MasterSalFacade.java @@ -16,7 +16,6 @@ import akka.dispatch.OnComplete; import akka.pattern.Patterns; import akka.util.Timeout; import java.util.List; -import java.util.stream.Collectors; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.dom.api.DOMActionService; import org.opendaylight.mdsal.dom.api.DOMDataBroker; @@ -34,7 +33,6 @@ import org.opendaylight.netconf.sal.connect.netconf.sal.NetconfDeviceSalProvider import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; import org.opendaylight.netconf.topology.singleton.messages.CreateInitialMasterActorData; import org.opendaylight.yangtools.rfc8528.data.api.MountPointContext; -import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; import org.opendaylight.yangtools.yang.model.util.SchemaContextUtil; import org.slf4j.Logger; @@ -65,7 +63,7 @@ class MasterSalFacade implements AutoCloseable, RemoteDeviceHandler sendInitialDataToActor() { - final List sourceIdentifiers = SchemaContextUtil.getConstituentModuleIdentifiers( - currentMountContext.getEffectiveModelContext()).stream() - .map(mi -> RevisionSourceIdentifier.create(mi.getName(), mi.getRevision())) - .collect(Collectors.toList()); + final List sourceIdentifiers = List.copyOf(SchemaContextUtil.getConstituentModuleIdentifiers( + currentMountContext.getEffectiveModelContext())); LOG.debug("{}: Sending CreateInitialMasterActorData with sourceIdentifiers {} to {}", id, sourceIdentifiers, masterActorRef); diff --git a/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/MountPointEndToEndTest.java b/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/MountPointEndToEndTest.java index 8d8ea11537..44fcf748e1 100644 --- a/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/MountPointEndToEndTest.java +++ b/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/MountPointEndToEndTest.java @@ -142,6 +142,7 @@ import org.opendaylight.yangtools.yang.binding.YangModuleInfo; import org.opendaylight.yangtools.yang.common.ErrorTag; import org.opendaylight.yangtools.yang.common.ErrorType; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.common.RpcError; import org.opendaylight.yangtools.yang.common.RpcResultBuilder; import org.opendaylight.yangtools.yang.common.Uint16; @@ -156,7 +157,7 @@ import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.RpcDefinition; -import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier; +import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; import org.opendaylight.yangtools.yang.model.repo.spi.PotentialSchemaSource; import org.opendaylight.yangtools.yang.parser.impl.DefaultYangParserFactory; @@ -286,8 +287,9 @@ public class MountPointEndToEndTest extends AbstractBaseSchemasTest { resources.getSchemaRegistry().registerSchemaSource( id -> Futures.immediateFuture(YangTextSchemaSource.delegateForByteSource(id, topModuleInfo.getYangTextByteSource())), - PotentialSchemaSource.create(RevisionSourceIdentifier.create(TOP_MODULE_NAME, - topModuleInfo.getName().getRevision()), YangTextSchemaSource.class, 1)); + PotentialSchemaSource.create(new SourceIdentifier(TOP_MODULE_NAME, + topModuleInfo.getName().getRevision().map(Revision::toString).orElse(null)), + YangTextSchemaSource.class, 1)); masterNetconfTopologyManager = new NetconfTopologyManager(BASE_SCHEMAS, masterDataBroker, mockRpcProviderRegistry, mockActionProviderRegistry, masterClusterSingletonServiceProvider, @@ -737,7 +739,7 @@ public class MountPointEndToEndTest extends AbstractBaseSchemasTest { } void init(final FluentFuture retFuture) { - this.returnFuture = retFuture; + returnFuture = retFuture; rpcInvokedFuture = SettableFuture.create(); } diff --git a/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/NetconfNodeActorTest.java b/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/NetconfNodeActorTest.java index c6b995d59d..8952dfd449 100644 --- a/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/NetconfNodeActorTest.java +++ b/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/NetconfNodeActorTest.java @@ -44,7 +44,6 @@ import akka.testkit.TestActorRef; import akka.testkit.javadsl.TestKit; import akka.util.Timeout; import com.google.common.collect.ImmutableList; -import com.google.common.collect.Lists; import com.google.common.io.ByteSource; import com.google.common.net.InetAddresses; import com.google.common.util.concurrent.FluentFuture; @@ -118,7 +117,6 @@ import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute; import org.opendaylight.yangtools.yang.model.repo.api.EffectiveModelContextFactory; import org.opendaylight.yangtools.yang.model.repo.api.MissingSchemaSourceException; -import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.SchemaRepository; import org.opendaylight.yangtools.yang.model.repo.api.SchemaResolutionException; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; @@ -135,8 +133,8 @@ import scala.concurrent.Future; public class NetconfNodeActorTest extends AbstractBaseSchemasTest { private static final Timeout TIMEOUT = Timeout.create(Duration.ofSeconds(5)); - private static final RevisionSourceIdentifier SOURCE_IDENTIFIER1 = RevisionSourceIdentifier.create("yang1"); - private static final RevisionSourceIdentifier SOURCE_IDENTIFIER2 = RevisionSourceIdentifier.create("yang2"); + private static final SourceIdentifier SOURCE_IDENTIFIER1 = new SourceIdentifier("yang1"); + private static final SourceIdentifier SOURCE_IDENTIFIER2 = new SourceIdentifier("yang2"); private ActorSystem system = ActorSystem.create(); private final TestKit testKit = new TestKit(system); @@ -256,7 +254,7 @@ public class NetconfNodeActorTest extends AbstractBaseSchemasTest { // Now initialize - master should send the RegisterMountPoint message. - List sourceIdentifiers = Lists.newArrayList(RevisionSourceIdentifier.create("testID")); + List sourceIdentifiers = List.of(new SourceIdentifier("testID")); initializeMaster(sourceIdentifiers); masterRef.tell(new AskForMasterMountPoint(kit.getRef()), kit.getRef()); @@ -430,7 +428,7 @@ public class NetconfNodeActorTest extends AbstractBaseSchemasTest { final Props props = NetconfNodeActor.props(setup, remoteDeviceId, TIMEOUT, mockMountPointService); ActorRef actor = TestActorRef.create(system, props, "master_messages_2"); - final SourceIdentifier sourceIdentifier = RevisionSourceIdentifier.create("testID"); + final SourceIdentifier sourceIdentifier = new SourceIdentifier("testID"); final ProxyYangTextSourceProvider proxyYangProvider = new ProxyYangTextSourceProvider(actor, system.dispatcher(), TIMEOUT); @@ -442,7 +440,7 @@ public class NetconfNodeActorTest extends AbstractBaseSchemasTest { @Test public void testYangTextSchemaSourceRequest() throws Exception { - final SourceIdentifier sourceIdentifier = RevisionSourceIdentifier.create("testID"); + final SourceIdentifier sourceIdentifier = new SourceIdentifier("testID"); final ProxyYangTextSourceProvider proxyYangProvider = new ProxyYangTextSourceProvider(masterRef, system.dispatcher(), TIMEOUT); @@ -481,10 +479,7 @@ public class NetconfNodeActorTest extends AbstractBaseSchemasTest { @Test public void testSlaveInvokeRpc() throws Exception { - final List sourceIdentifiers = - Lists.newArrayList(RevisionSourceIdentifier.create("testID")); - - initializeMaster(sourceIdentifiers); + initializeMaster(List.of(new SourceIdentifier("testID"))); registerSlaveMountPoint(); ArgumentCaptor domRPCServiceCaptor = ArgumentCaptor.forClass(DOMRpcService.class); @@ -551,9 +546,7 @@ public class NetconfNodeActorTest extends AbstractBaseSchemasTest { @Test public void testSlaveInvokeAction() throws Exception { - final List sourceIdentifiers = Lists - .newArrayList(RevisionSourceIdentifier.create("testActionID")); - initializeMaster(sourceIdentifiers); + initializeMaster(List.of(new SourceIdentifier("testActionID"))); registerSlaveMountPoint(); ArgumentCaptor domActionServiceCaptor = ArgumentCaptor.forClass(DOMActionService.class); diff --git a/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/NetconfNodeManagerTest.java b/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/NetconfNodeManagerTest.java index 114402dc0e..071e4a594f 100644 --- a/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/NetconfNodeManagerTest.java +++ b/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/NetconfNodeManagerTest.java @@ -29,13 +29,11 @@ import akka.dispatch.Dispatchers; import akka.testkit.TestActorRef; import akka.testkit.javadsl.TestKit; import akka.util.Timeout; -import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import com.google.common.io.ByteSource; import com.google.common.util.concurrent.Futures; import com.typesafe.config.ConfigFactory; import java.net.InetSocketAddress; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.concurrent.CompletableFuture; @@ -88,7 +86,6 @@ import org.opendaylight.yangtools.concepts.ObjectRegistration; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.Uint16; import org.opendaylight.yangtools.yang.model.repo.api.EffectiveModelContextFactory; -import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; import org.opendaylight.yangtools.yang.model.repo.spi.PotentialSchemaSource; @@ -104,8 +101,7 @@ import org.opendaylight.yangtools.yang.parser.rfc7950.repo.TextToIRTransformer; public class NetconfNodeManagerTest extends AbstractBaseSchemasTest { private static final String ACTOR_SYSTEM_NAME = "test"; private static final RemoteDeviceId DEVICE_ID = new RemoteDeviceId("device", new InetSocketAddress(65535)); - private static final List SOURCE_IDENTIFIERS = - ImmutableList.of(RevisionSourceIdentifier.create("testID")); + private static final List SOURCE_IDENTIFIERS = List.of(new SourceIdentifier("testID")); @Mock private DOMMountPointService mockMountPointService; @@ -156,16 +152,16 @@ public class NetconfNodeManagerTest extends AbstractBaseSchemasTest { masterSchemaRepository.registerSchemaSourceListener( TextToIRTransformer.create(masterSchemaRepository, masterSchemaRepository)); - String yangTemplate = - "module ID {" - + " namespace \"ID\";" - + " prefix ID;" - + "}"; + final String yangTemplate = """ + module ID {\ + namespace "ID";\ + prefix ID;\ + }"""; SOURCE_IDENTIFIERS.stream().map( sourceId -> masterSchemaRepository.registerSchemaSource( id -> Futures.immediateFuture(YangTextSchemaSource.delegateForByteSource(id, - ByteSource.wrap(yangTemplate.replaceAll("ID", id.getName()).getBytes(UTF_8)))), + ByteSource.wrap(yangTemplate.replaceAll("ID", id.name().getLocalName()).getBytes(UTF_8)))), PotentialSchemaSource.create(sourceId, YangTextSchemaSource.class, 1))) .collect(Collectors.toList()); @@ -227,7 +223,7 @@ public class NetconfNodeManagerTest extends AbstractBaseSchemasTest { doReturn(WRITE).when(mockDataObjModification).getModificationType(); doReturn(node).when(mockDataObjModification).getDataAfter(); - netconfNodeManager.onDataTreeChanged(Collections.singletonList( + netconfNodeManager.onDataTreeChanged(List.of( new NetconfTopologyManagerTest.CustomTreeModification(DataTreeIdentifier.create( LogicalDatastoreType.OPERATIONAL, nodeListPath), mockDataObjModification))); @@ -241,7 +237,7 @@ public class NetconfNodeManagerTest extends AbstractBaseSchemasTest { doReturn(DELETE).when(mockDataObjModification).getModificationType(); - netconfNodeManager.onDataTreeChanged(Collections.singletonList( + netconfNodeManager.onDataTreeChanged(List.of( new NetconfTopologyManagerTest.CustomTreeModification(DataTreeIdentifier.create( LogicalDatastoreType.OPERATIONAL, nodeListPath), mockDataObjModification))); @@ -255,7 +251,7 @@ public class NetconfNodeManagerTest extends AbstractBaseSchemasTest { doReturn(null).when(mockDataObjModification).getDataBefore(); doReturn(node).when(mockDataObjModification).getDataAfter(); - netconfNodeManager.onDataTreeChanged(Collections.singletonList( + netconfNodeManager.onDataTreeChanged(List.of( new NetconfTopologyManagerTest.CustomTreeModification(DataTreeIdentifier.create( LogicalDatastoreType.OPERATIONAL, nodeListPath), mockDataObjModification))); @@ -268,7 +264,7 @@ public class NetconfNodeManagerTest extends AbstractBaseSchemasTest { doReturn(node).when(mockDataObjModification).getDataBefore(); - netconfNodeManager.onDataTreeChanged(Collections.singletonList( + netconfNodeManager.onDataTreeChanged(List.of( new NetconfTopologyManagerTest.CustomTreeModification(DataTreeIdentifier.create( LogicalDatastoreType.OPERATIONAL, nodeListPath), mockDataObjModification))); @@ -291,7 +287,7 @@ public class NetconfNodeManagerTest extends AbstractBaseSchemasTest { doReturn(node).when(mockDataObjModification).getDataBefore(); doReturn(updatedNode).when(mockDataObjModification).getDataAfter(); - netconfNodeManager.onDataTreeChanged(Collections.singletonList( + netconfNodeManager.onDataTreeChanged(List.of( new NetconfTopologyManagerTest.CustomTreeModification(DataTreeIdentifier.create( LogicalDatastoreType.OPERATIONAL, nodeListPath), mockDataObjModification))); @@ -321,7 +317,7 @@ public class NetconfNodeManagerTest extends AbstractBaseSchemasTest { // First try the registration where the perceived master hasn't been initialized as the master. - netconfNodeManager.onDataTreeChanged(Collections.singletonList( + netconfNodeManager.onDataTreeChanged(List.of( new NetconfTopologyManagerTest.CustomTreeModification(DataTreeIdentifier.create( LogicalDatastoreType.OPERATIONAL, nodeListPath), mockDataObjModification))); @@ -336,7 +332,7 @@ public class NetconfNodeManagerTest extends AbstractBaseSchemasTest { testMasterActorRef.underlyingActor().messagesToDrop.put(YangTextSchemaSourceRequest.class, yangTextSchemaSourceRequestFuture); - netconfNodeManager.onDataTreeChanged(Collections.singletonList( + netconfNodeManager.onDataTreeChanged(List.of( new NetconfTopologyManagerTest.CustomTreeModification(DataTreeIdentifier.create( LogicalDatastoreType.OPERATIONAL, nodeListPath), mockDataObjModification))); @@ -352,7 +348,7 @@ public class NetconfNodeManagerTest extends AbstractBaseSchemasTest { testMasterActorRef.underlyingActor().messagesToDrop.put(AskForMasterMountPoint.class, askForMasterMountPointFuture); - netconfNodeManager.onDataTreeChanged(Collections.singletonList( + netconfNodeManager.onDataTreeChanged(List.of( new NetconfTopologyManagerTest.CustomTreeModification(DataTreeIdentifier.create( LogicalDatastoreType.OPERATIONAL, nodeListPath), mockDataObjModification))); diff --git a/netconf/pom.xml b/netconf/pom.xml index c5ee48fd1f..04b2635af5 100644 --- a/netconf/pom.xml +++ b/netconf/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent odlparent-lite - 10.0.2 + 11.0.0 diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/DeviceSources.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/DeviceSources.java index 132468f1b6..1c771cf346 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/DeviceSources.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/DeviceSources.java @@ -13,7 +13,7 @@ import com.google.common.collect.Collections2; import java.util.Collection; import java.util.Set; import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; import org.opendaylight.yangtools.yang.model.repo.spi.SchemaSourceProvider; @@ -54,6 +54,6 @@ final class DeviceSources { } private static SourceIdentifier toSourceId(final QName input) { - return RevisionSourceIdentifier.create(input.getLocalName(), input.getRevision()); + return new SourceIdentifier(input.getLocalName(), input.getRevision().map(Revision::toString).orElse(null)); } } \ No newline at end of file diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/LibraryModulesSchemas.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/LibraryModulesSchemas.java index fcdf01a692..c7b7fc2f13 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/LibraryModulesSchemas.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/LibraryModulesSchemas.java @@ -72,7 +72,6 @@ import org.opendaylight.yangtools.yang.data.impl.schema.Builders; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter; import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; -import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack; import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference; @@ -127,8 +126,8 @@ public final class LibraryModulesSchemas implements NetconfDeviceSchemas { public Map getAvailableModels() { final Map result = new HashMap<>(); for (final Entry entry : availableModels.entrySet()) { - final SourceIdentifier sId = RevisionSourceIdentifier.create(entry.getKey().getLocalName(), - entry.getKey().getRevision()); + final SourceIdentifier sId = new SourceIdentifier(entry.getKey().getLocalName(), + entry.getKey().getRevision().map(Revision::toString).orElse(null)); result.put(sId, entry.getValue()); } @@ -169,7 +168,7 @@ public final class LibraryModulesSchemas implements NetconfDeviceSchemas { deviceRpc.invokeRpc(NETCONF_GET_QNAME, GET_MODULES_STATE_MODULE_LIST_RPC).get(); } catch (final InterruptedException e) { Thread.currentThread().interrupt(); - throw new RuntimeException(deviceId + ": Interrupted while waiting for response to " + throw new IllegalStateException(deviceId + ": Interrupted while waiting for response to " + MODULES_STATE_MODULE_LIST, e); } catch (final ExecutionException e) { LOG.warn("{}: Unable to detect available schemas, get to {} failed", deviceId, diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDevice.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDevice.java index 31d2961d12..4ffafe55b2 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDevice.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDevice.java @@ -28,6 +28,7 @@ import java.util.Collection; import java.util.Collections; import java.util.LinkedList; import java.util.List; +import java.util.Objects; import java.util.Optional; import java.util.Set; import java.util.concurrent.ExecutionException; @@ -140,13 +141,13 @@ public class NetconfDevice this.node = node; this.eventExecutor = eventExecutor; this.nodeOptional = nodeOptional; - this.schemaRegistry = schemaResourcesDTO.getSchemaRegistry(); - this.schemaRepository = schemaResourcesDTO.getSchemaRepository(); - this.schemaContextFactory = schemaResourcesDTO.getSchemaContextFactory(); + schemaRegistry = schemaResourcesDTO.getSchemaRegistry(); + schemaRepository = schemaResourcesDTO.getSchemaRepository(); + schemaContextFactory = schemaResourcesDTO.getSchemaContextFactory(); this.salFacade = salFacade; - this.stateSchemasResolver = schemaResourcesDTO.getStateSchemasResolver(); - this.processingExecutor = requireNonNull(globalProcessingExecutor); - this.notificationHandler = new NotificationHandler(salFacade, id); + stateSchemasResolver = schemaResourcesDTO.getStateSchemasResolver(); + processingExecutor = requireNonNull(globalProcessingExecutor); + notificationHandler = new NotificationHandler(salFacade, id); } @Override @@ -253,14 +254,14 @@ public class NetconfDevice //NetconfDevice.SchemaSetup can complete after NetconfDeviceCommunicator was closed. In that case do nothing, //since salFacade.onDeviceDisconnected was already called. if (connected) { - this.messageTransformer = new NetconfMessageTransformer(result, true, + messageTransformer = new NetconfMessageTransformer(result, true, resolveBaseSchema(remoteSessionCapabilities.isNotificationsSupported())); // salFacade.onDeviceConnected has to be called before the notification handler is initialized - this.salFacade.onDeviceConnected(result, remoteSessionCapabilities, deviceRpc, - this.deviceActionFactory == null ? null : this.deviceActionFactory.createDeviceAction( - this.messageTransformer, listener, result.getEffectiveModelContext())); - this.notificationHandler.onRemoteSchemaUp(this.messageTransformer); + salFacade.onDeviceConnected(result, remoteSessionCapabilities, deviceRpc, + deviceActionFactory == null ? null : deviceActionFactory.createDeviceAction( + messageTransformer, listener, result.getEffectiveModelContext())); + notificationHandler.onRemoteSchemaUp(messageTransformer); LOG.info("{}: Netconf connector initialized successfully", id); } else { @@ -388,7 +389,7 @@ public class NetconfDevice this.schemaRegistry = requireNonNull(schemaRegistry); this.schemaRepository = requireNonNull(schemaRepository); this.schemaContextFactory = requireNonNull(schemaContextFactory); - this.stateSchemasResolver = requireNonNull(deviceSchemasResolver); + stateSchemasResolver = requireNonNull(deviceSchemasResolver); } public SchemaSourceRegistry getSchemaRegistry() { @@ -436,7 +437,7 @@ public class NetconfDevice SchemaSetup(final DeviceSources deviceSources, final NetconfSessionPreferences remoteSessionCapabilities) { this.deviceSources = deviceSources; this.remoteSessionCapabilities = remoteSessionCapabilities; - this.capabilities = remoteSessionCapabilities.getNetconfDeviceCapabilities(); + capabilities = remoteSessionCapabilities.getNetconfDeviceCapabilities(); // If device supports notifications and does not contain necessary modules, add them automatically if (remoteSessionCapabilities.containsNonModuleCapability( @@ -591,11 +592,11 @@ public class NetconfDevice private QName getQNameFromSourceIdentifier(final SourceIdentifier identifier) { // Required sources are all required and provided merged in DeviceSourcesResolver for (final QName qname : deviceSources.getRequiredSourcesQName()) { - if (!qname.getLocalName().equals(identifier.getName())) { + if (!qname.getLocalName().equals(identifier.name().getLocalName())) { continue; } - if (identifier.getRevision().equals(qname.getRevision())) { + if (Objects.equals(identifier.revision(), qname.getRevision().orElse(null))) { return qname; } } diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfStateSchemas.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfStateSchemas.java index 7baf4c371f..c94ecb424f 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfStateSchemas.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfStateSchemas.java @@ -130,7 +130,7 @@ public final class NetconfStateSchemas implements NetconfDeviceSchemas { schemasNodeResult = deviceRpc.invokeRpc(NETCONF_GET_QNAME, GET_SCHEMAS_RPC).get(); } catch (final InterruptedException e) { Thread.currentThread().interrupt(); - throw new RuntimeException(id + throw new IllegalStateException(id + ": Interrupted while waiting for response to " + STATE_SCHEMAS_IDENTIFIER, e); } catch (final ExecutionException e) { LOG.warn("{}: Unable to detect available schemas, get to {} failed", id, STATE_SCHEMAS_IDENTIFIER, e); diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceNotificationService.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceNotificationService.java index c55643e625..799bb63ab9 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceNotificationService.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceNotificationService.java @@ -11,11 +11,13 @@ import com.google.common.collect.HashMultimap; import com.google.common.collect.Lists; import com.google.common.collect.Multimap; import java.util.Collection; +import java.util.Map; import org.opendaylight.mdsal.dom.api.DOMNotification; import org.opendaylight.mdsal.dom.api.DOMNotificationListener; import org.opendaylight.mdsal.dom.api.DOMNotificationService; import org.opendaylight.yangtools.concepts.AbstractListenerRegistration; import org.opendaylight.yangtools.concepts.ListenerRegistration; +import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -62,4 +64,11 @@ public class NetconfDeviceNotificationService implements DOMNotificationService final T listener, final Absolute... types) { return registerNotificationListener(listener, Lists.newArrayList(types)); } + + @Override + public synchronized Registration registerNotificationListeners( + final Map typeToListener) { + // FIXME: implement this + throw new UnsupportedOperationException(); + } } diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/NetconfRemoteSchemaYangSourceProvider.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/NetconfRemoteSchemaYangSourceProvider.java index 94af0ce587..e567d9d624 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/NetconfRemoteSchemaYangSourceProvider.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/NetconfRemoteSchemaYangSourceProvider.java @@ -98,9 +98,9 @@ public final class NetconfRemoteSchemaYangSourceProvider implements SchemaSource @Override public ListenableFuture getSource(final SourceIdentifier sourceIdentifier) { - final String moduleName = sourceIdentifier.getName(); + final String moduleName = sourceIdentifier.name().getLocalName(); - final Optional revision = sourceIdentifier.getRevision().map(Revision::toString); + final Optional revision = Optional.ofNullable(sourceIdentifier.revision()).map(Revision::toString); final ContainerNode getSchemaRequest = createGetSchemaRequest(moduleName, revision); LOG.trace("{}: Loading YANG schema source for {}:{}", id, moduleName, revision); return Futures.transform( diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/BaseNetconfSchemas.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/BaseNetconfSchemas.java index 666d529af8..632fe93fdd 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/BaseNetconfSchemas.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/BaseNetconfSchemas.java @@ -9,11 +9,11 @@ package org.opendaylight.netconf.sal.connect.netconf.schema.mapping; import com.google.common.annotations.Beta; import org.eclipse.jdt.annotation.NonNullByDefault; -import org.opendaylight.yangtools.concepts.Immutable; @Beta @NonNullByDefault -public interface BaseNetconfSchemas extends Immutable { +// FIXME: implements Immutable once we do not use Blueprint, or ARIES-2078 is fixed +public interface BaseNetconfSchemas { BaseSchema getBaseSchema(); diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/util/RemoteDeviceId.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/util/RemoteDeviceId.java index 39b4f9bf9c..3693441209 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/util/RemoteDeviceId.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/util/RemoteDeviceId.java @@ -11,8 +11,9 @@ import static java.util.Objects.requireNonNull; import java.net.InetSocketAddress; import java.util.Objects; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.DomainName; 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.HostBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IetfInetUtil; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.network.topology.topology.topology.types.TopologyNetconf; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; @@ -48,20 +49,21 @@ public final class RemoteDeviceId { private RemoteDeviceId(final String name) { this.name = requireNonNull(name); - this.topologyPath = DEFAULT_TOPOLOGY_NODE - .node(NodeIdentifierWithPredicates.of(Node.QNAME, NODE_ID_QNAME, name)); - this.key = new NodeKey(new NodeId(name)); - this.topologyBindingPath = DEFAULT_TOPOLOGY_IID.child(Node.class, key); + topologyPath = DEFAULT_TOPOLOGY_NODE.node(NodeIdentifierWithPredicates.of(Node.QNAME, NODE_ID_QNAME, name)); + key = new NodeKey(new NodeId(name)); + topologyBindingPath = DEFAULT_TOPOLOGY_IID.child(Node.class, key); } public RemoteDeviceId(final String name, final InetSocketAddress address) { this(name); this.address = address; - this.host = buildHost(); + host = buildHost(); } private Host buildHost() { - return HostBuilder.getDefaultInstance(address.getHostString()); + final var addr = address.getAddress(); + return addr != null ? new Host(IetfInetUtil.INSTANCE.ipAddressFor(addr)) + : new Host(new DomainName(address.getHostString())); } public String getName() { @@ -95,14 +97,8 @@ public final class RemoteDeviceId { @Override public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (!(obj instanceof RemoteDeviceId)) { - return false; - } - final RemoteDeviceId that = (RemoteDeviceId) obj; - return name.equals(that.name) && topologyBindingPath.equals(that.topologyBindingPath); + return this == obj || obj instanceof RemoteDeviceId other + && name.equals(other.name) && topologyBindingPath.equals(other.topologyBindingPath); } @Override diff --git a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/LibraryModulesSchemasTest.java b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/LibraryModulesSchemasTest.java index a8c233ecff..81a3c99f1e 100644 --- a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/LibraryModulesSchemasTest.java +++ b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/LibraryModulesSchemasTest.java @@ -17,8 +17,6 @@ import java.net.URL; import java.util.Collections; import java.util.Map; import org.junit.Test; -import org.opendaylight.yangtools.yang.common.Revision; -import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; public class LibraryModulesSchemasTest { @@ -42,22 +40,17 @@ public class LibraryModulesSchemasTest { final Map resolvedModulesSchema = libraryModulesSchemas.getAvailableModels(); assertThat(resolvedModulesSchema.size(), is(3)); - assertTrue(resolvedModulesSchema.containsKey(RevisionSourceIdentifier.create("module-with-revision", - Revision.of("2014-04-08")))); - assertThat(resolvedModulesSchema.get( - RevisionSourceIdentifier.create("module-with-revision", Revision.of("2014-04-08"))), + assertTrue(resolvedModulesSchema.containsKey(new SourceIdentifier("module-with-revision", "2014-04-08"))); + assertThat(resolvedModulesSchema.get(new SourceIdentifier("module-with-revision", "2014-04-08")), is(new URL("http://localhost:8181/yanglib/schemas/module-with-revision/2014-04-08"))); assertTrue(resolvedModulesSchema.containsKey( - RevisionSourceIdentifier.create("another-module-with-revision", Revision.of("2013-10-21")))); - assertThat(resolvedModulesSchema.get( - RevisionSourceIdentifier.create("another-module-with-revision", Revision.of("2013-10-21"))), + new SourceIdentifier("another-module-with-revision", "2013-10-21"))); + assertThat(resolvedModulesSchema.get(new SourceIdentifier("another-module-with-revision", "2013-10-21")), is(new URL("http://localhost:8181/yanglib/schemas/another-module-with-revision/2013-10-21"))); - assertTrue(resolvedModulesSchema.containsKey( - RevisionSourceIdentifier.create("module-without-revision"))); - assertThat(resolvedModulesSchema.get( - RevisionSourceIdentifier.create("module-without-revision")), + assertTrue(resolvedModulesSchema.containsKey(new SourceIdentifier("module-without-revision"))); + assertThat(resolvedModulesSchema.get(new SourceIdentifier("module-without-revision")), is(new URL("http://localhost:8181/yanglib/schemas/module-without-revision/"))); } @@ -69,11 +62,11 @@ public class LibraryModulesSchemasTest { final Map resolvedModulesSchema = libraryModulesSchemas.getAvailableModels(); assertThat(resolvedModulesSchema.size(), is(1)); - assertFalse(resolvedModulesSchema.containsKey(RevisionSourceIdentifier.create("module-with-bad-url"))); + assertFalse(resolvedModulesSchema.containsKey(new SourceIdentifier("module-with-bad-url"))); //See BUG 8071 https://bugs.opendaylight.org/show_bug.cgi?id=8071 //assertFalse(resolvedModulesSchema.containsKey( // RevisionSourceIdentifier.create("module-with-bad-revision", "bad-revision"))); - assertTrue(resolvedModulesSchema.containsKey(RevisionSourceIdentifier.create("good-ol-module"))); + assertTrue(resolvedModulesSchema.containsKey(new SourceIdentifier("good-ol-module"))); } @Test diff --git a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDeviceTest.java b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDeviceTest.java index fca46b3943..656b669787 100644 --- a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDeviceTest.java +++ b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDeviceTest.java @@ -65,14 +65,12 @@ import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.available.capabilities.AvailableCapability; import org.opendaylight.yangtools.rfc8528.data.api.MountPointContext; import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.repo.api.EffectiveModelContextFactory; import org.opendaylight.yangtools.yang.model.repo.api.MissingSchemaSourceException; -import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.SchemaRepository; import org.opendaylight.yangtools.yang.model.repo.api.SchemaResolutionException; import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceRepresentation; @@ -103,13 +101,11 @@ public class NetconfDeviceTest extends AbstractTestModelTest { public static final String TEST_NAMESPACE = "test:namespace"; public static final String TEST_MODULE = "test-module"; public static final String TEST_REVISION = "2013-07-22"; - public static final SourceIdentifier TEST_SID = - RevisionSourceIdentifier.create(TEST_MODULE, Revision.of(TEST_REVISION)); + public static final SourceIdentifier TEST_SID = new SourceIdentifier(TEST_MODULE, TEST_REVISION); public static final String TEST_CAPABILITY = TEST_NAMESPACE + "?module=" + TEST_MODULE + "&revision=" + TEST_REVISION; - public static final SourceIdentifier TEST_SID2 = - RevisionSourceIdentifier.create(TEST_MODULE + "2", Revision.of(TEST_REVISION)); + public static final SourceIdentifier TEST_SID2 = new SourceIdentifier(TEST_MODULE + "2", TEST_REVISION); public static final String TEST_CAPABILITY2 = TEST_NAMESPACE + "?module=" + TEST_MODULE + "2" + "&revision=" + TEST_REVISION; diff --git a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/schema/NetconfRemoteSchemaYangSourceProviderTest.java b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/schema/NetconfRemoteSchemaYangSourceProviderTest.java index ee0f78aac6..3a178a446e 100644 --- a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/schema/NetconfRemoteSchemaYangSourceProviderTest.java +++ b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/schema/NetconfRemoteSchemaYangSourceProviderTest.java @@ -14,6 +14,7 @@ import static org.mockito.Mockito.verify; import com.google.common.util.concurrent.FluentFuture; import java.net.InetSocketAddress; +import java.util.Optional; import java.util.Set; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.dom.DOMSource; @@ -30,12 +31,10 @@ import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; import org.opendaylight.yangtools.util.concurrent.FluentFutures; import org.opendaylight.yangtools.util.xml.UntrustedXML; import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableAnyXmlNodeBuilder; import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder; -import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; import org.w3c.dom.Document; @@ -61,13 +60,11 @@ public class NetconfRemoteSchemaYangSourceProviderTest { @Test public void testGetSource() throws Exception { - final SourceIdentifier identifier = RevisionSourceIdentifier.create("test", Revision.of("2016-02-08")); + final SourceIdentifier identifier = new SourceIdentifier("test", "2016-02-08"); final YangTextSchemaSource source = provider.getSource(identifier).get(); assertEquals(identifier, source.getIdentifier()); verify(service).invokeRpc(NetconfMessageTransformUtil.GET_SCHEMA_QNAME, - NetconfRemoteSchemaYangSourceProvider.createGetSchemaRequest(identifier.getName(), - identifier.getRevision().map(Revision::toString)) - ); + NetconfRemoteSchemaYangSourceProvider.createGetSchemaRequest("test", Optional.of("2016-02-08"))); } private static ContainerNode getNode() throws ParserConfigurationException { diff --git a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/schema/YangLibrarySchemaYangSourceProviderTest.java b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/schema/YangLibrarySchemaYangSourceProviderTest.java index 1634c1db44..ef0ba92525 100644 --- a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/schema/YangLibrarySchemaYangSourceProviderTest.java +++ b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/schema/YangLibrarySchemaYangSourceProviderTest.java @@ -19,12 +19,10 @@ import java.net.URL; import java.nio.charset.StandardCharsets; import java.util.Collections; import java.util.Map; -import java.util.Optional; import java.util.concurrent.ExecutionException; import org.junit.Before; import org.junit.Test; import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; -import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceException; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; @@ -36,7 +34,7 @@ public class YangLibrarySchemaYangSourceProviderTest { @Before public void setUp() throws Exception { final URL url = getClass().getResource("/schemas/config-test-rpc.yang"); - workingSid = RevisionSourceIdentifier.create("abc", Optional.empty()); + workingSid = new SourceIdentifier("abc"); final Map sourceIdentifierURLMap = Collections.singletonMap(workingSid, url); final RemoteDeviceId id = new RemoteDeviceId("id", new InetSocketAddress("localhost", 22)); yangLibrarySchemaYangSourceProvider = new YangLibrarySchemaYangSourceProvider(id, sourceIdentifierURLMap); @@ -65,8 +63,8 @@ public class YangLibrarySchemaYangSourceProviderTest { } @Test - public void testGetSourceNotAvailable() throws Exception { + public void testGetSourceNotAvailable() { assertThrows(IllegalArgumentException.class, - () -> yangLibrarySchemaYangSourceProvider.getSource(RevisionSourceIdentifier.create("aaaaa"))); + () -> yangLibrarySchemaYangSourceProvider.getSource(new SourceIdentifier("aaaaa"))); } } diff --git a/netconf/shaded-exificient-jar/pom.xml b/netconf/shaded-exificient-jar/pom.xml index c1bd09aca0..c58d46f77f 100644 --- a/netconf/shaded-exificient-jar/pom.xml +++ b/netconf/shaded-exificient-jar/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent - 10.0.2 + 11.0.0 diff --git a/netconf/shaded-exificient/pom.xml b/netconf/shaded-exificient/pom.xml index 248cbb197a..fb09ce2958 100644 --- a/netconf/shaded-exificient/pom.xml +++ b/netconf/shaded-exificient/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent bundle-parent - 10.0.2 + 11.0.0 diff --git a/netconf/shaded-sshd-jar/pom.xml b/netconf/shaded-sshd-jar/pom.xml index 598b908d92..b2aca15098 100644 --- a/netconf/shaded-sshd-jar/pom.xml +++ b/netconf/shaded-sshd-jar/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent odlparent - 10.0.2 + 11.0.0 diff --git a/netconf/shaded-sshd/pom.xml b/netconf/shaded-sshd/pom.xml index f7233cab00..495893b7e6 100644 --- a/netconf/shaded-sshd/pom.xml +++ b/netconf/shaded-sshd/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent bundle-parent - 10.0.2 + 11.0.0 diff --git a/netconf/tools/netconf-test-perf/pom.xml b/netconf/tools/netconf-test-perf/pom.xml index 768f7a16d4..ca0609235f 100644 --- a/netconf/tools/netconf-test-perf/pom.xml +++ b/netconf/tools/netconf-test-perf/pom.xml @@ -49,8 +49,8 @@ true - javax.annotation - javax.annotation-api + jakarta.annotation + jakarta.annotation-api provided true diff --git a/netconf/tools/netconf-testtool/pom.xml b/netconf/tools/netconf-testtool/pom.xml index a6e455a997..36ae46df4a 100644 --- a/netconf/tools/netconf-testtool/pom.xml +++ b/netconf/tools/netconf-testtool/pom.xml @@ -35,7 +35,6 @@ net.sourceforge.argparse4j argparse4j - 0.9.0 ch.qos.logback @@ -130,7 +129,6 @@ org.apache.karaf.features org.apache.karaf.features.core - ${karaf.version} org.xmlunit diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/DummyMonitoringService.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/DummyMonitoringService.java index b4d71cf690..d3b185d245 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/DummyMonitoringService.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/DummyMonitoringService.java @@ -46,10 +46,10 @@ public class DummyMonitoringService implements NetconfMonitoringService { private static final Function CAPABILITY_SCHEMA_FUNCTION = capability -> new SchemaBuilder() .setIdentifier(capability.getModuleName().get()) .setNamespace(new Uri(capability.getModuleNamespace().get())) - .setFormat(Yang.class) + .setFormat(Yang.VALUE) .setVersion(capability.getRevision().orElse("")) .setLocation(Set.of(new Location(Enumeration.NETCONF))) - .withKey(new SchemaKey(Yang.class, capability.getModuleName().get(), + .withKey(new SchemaKey(Yang.VALUE, capability.getModuleName().get(), capability.getRevision().orElse(""))) .build(); diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/Execution.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/Execution.java index 75aefea37f..a13ad52906 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/Execution.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/Execution.java @@ -68,9 +68,9 @@ final class Execution implements Callable { public Void call() { final List requests = prepareRequests(); if (isAsync) { - this.sendAsync(requests); + sendAsync(requests); } else { - this.sendSync(requests); + sendSync(requests); } return null; } @@ -101,7 +101,7 @@ final class Execution implements Callable { } LOG.info("Requests sent, waiting for responses"); try { - semaphore.acquire(this.throttle); + semaphore.acquire(throttle); } catch (final InterruptedException e) { LOG.warn("Semaphore acquire interrupted"); } @@ -119,7 +119,7 @@ final class Execution implements Callable { } } catch (final InterruptedException | IOException e) { LOG.error("Failed to execute request: {}", request, e); - throw new RuntimeException("Failed to execute request", e); + throw new IllegalStateException("Failed to execute request", e); } } LOG.info("End sending sync requests"); diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/Main.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/Main.java index b5984a65fa..89a03dbab0 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/Main.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/Main.java @@ -85,7 +85,7 @@ public final class Main { try { netconfDeviceSimulator.wait(); } catch (final InterruptedException e) { - throw new RuntimeException(e); + throw new IllegalStateException("Interrupted while waiting", e); } } } diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/NetconfDeviceSimulator.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/NetconfDeviceSimulator.java index ca7208953e..c776114b72 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/NetconfDeviceSimulator.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/NetconfDeviceSimulator.java @@ -60,7 +60,6 @@ import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.ModuleLike; import org.opendaylight.yangtools.yang.model.api.Submodule; -import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceRepresentation; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; @@ -95,8 +94,7 @@ public class NetconfDeviceSimulator implements Closeable { hashedWheelTimer = new HashedWheelTimer(); minaTimerExecutor = Executors.newScheduledThreadPool(configuration.getThreadPoolSize(), new ThreadFactoryBuilder().setNameFormat("netconf-ssh-server-mina-timers-%d").build()); - nioExecutor = ThreadUtils - .newFixedThreadPool("netconf-ssh-server-nio-group", configuration.getThreadPoolSize()); + nioExecutor = ThreadUtils.newFixedThreadPool("netconf-ssh-server-nio-group", configuration.getThreadPoolSize()); } private NetconfServerDispatcherImpl createDispatcher(final Set capabilities, @@ -232,7 +230,7 @@ public class NetconfDeviceSimulator implements Closeable { try { server.get(); } catch (final InterruptedException e) { - throw new RuntimeException(e); + throw new IllegalStateException("Interrupted while waiting for server", e); } catch (final ExecutionException e) { LOG.warn("Cannot start ssh simulated device on {}, skipping", address, e); continue; @@ -247,7 +245,7 @@ public class NetconfDeviceSimulator implements Closeable { try { server.get(); } catch (final InterruptedException e) { - throw new RuntimeException(e); + throw new IllegalStateException("Interrupted while waiting for server", e); } catch (final ExecutionException e) { LOG.warn("Cannot start tcp simulated device on {}, skipping", address, e); continue; @@ -321,8 +319,7 @@ public class NetconfDeviceSimulator implements Closeable { } configuration.getDefaultYangResources().forEach(r -> { - final SourceIdentifier sourceIdentifier = RevisionSourceIdentifier.create(r.getModuleName(), - Revision.ofNullable(r.getRevision())); + final SourceIdentifier sourceIdentifier = new SourceIdentifier(r.getModuleName(), r.getRevision()); registerSource(consumer, r.getResourcePath(), sourceIdentifier); }); @@ -331,8 +328,8 @@ public class NetconfDeviceSimulator implements Closeable { schemaContext = consumer.createEffectiveModelContextFactory() .createEffectiveModelContext(loadedSources).get(); } catch (final InterruptedException | ExecutionException e) { - throw new RuntimeException("Cannot parse schema context. " - + "Please read stack trace and check YANG files in schema directory.", e); + throw new IllegalStateException( + "Cannot parse schema context. Please read stack trace and check YANG files in schema directory.", e); } final Set capabilities = new HashSet<>(); @@ -348,16 +345,16 @@ public class NetconfDeviceSimulator implements Closeable { private static void addModuleCapability(final SharedSchemaRepository consumer, final Set capabilities, final ModuleLike module) { - final SourceIdentifier moduleSourceIdentifier = RevisionSourceIdentifier.create(module.getName(), - module.getRevision()); + final SourceIdentifier moduleSourceIdentifier = new SourceIdentifier(module.getName(), + module.getRevision().map(Revision::toString).orElse(null)); try { final String moduleContent = new String( consumer.getSchemaSource(moduleSourceIdentifier, YangTextSchemaSource.class).get().read()); capabilities.add(new YangModuleCapability(module, moduleContent)); //IOException would be thrown in creating SchemaContext already } catch (final ExecutionException | InterruptedException | IOException e) { - throw new RuntimeException("Cannot retrieve schema source for module " - + moduleSourceIdentifier.toString() + " from schema repository", e); + throw new IllegalStateException( + "Cannot retrieve schema source for module " + moduleSourceIdentifier + " from schema repository", e); } } @@ -373,7 +370,7 @@ public class NetconfDeviceSimulator implements Closeable { try { return new InetSocketAddress(Inet4Address.getByName(ip), port); } catch (final UnknownHostException e) { - throw new RuntimeException(e); + throw new IllegalArgumentException("Cannot resolve address " + ip, e); } } diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/PayloadCreator.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/PayloadCreator.java index 9bca8bba77..49166e97f5 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/PayloadCreator.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/PayloadCreator.java @@ -7,9 +7,6 @@ */ package org.opendaylight.netconf.test.tool; -import static org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; -import static org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; - import com.google.common.collect.ImmutableList; import com.google.gson.stream.JsonWriter; import java.io.IOException; @@ -24,6 +21,8 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.Uint16; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode; import org.opendaylight.yangtools.yang.data.api.schema.LeafNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; @@ -91,7 +90,7 @@ final class PayloadCreator { nodeWriter.write(node); } catch (final IOException e) { LOG.error("Failed to serialize node: {} to JSON", node, e); - throw new RuntimeException("Failed to serialize node to JSON", e); + throw new IllegalStateException("Failed to serialize node to JSON", e); } return writer.toString(); } diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/ScaleUtil.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/ScaleUtil.java index 3b4f522f68..9e838bf367 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/ScaleUtil.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/ScaleUtil.java @@ -9,6 +9,7 @@ package org.opendaylight.netconf.test.tool; import ch.qos.logback.classic.Level; import com.google.common.base.Stopwatch; +import com.google.common.base.Throwables; import com.google.common.io.CharStreams; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.BufferedReader; @@ -125,7 +126,7 @@ public final class ScaleUtil { SEMAPHORE.acquire(); root.warn("semaphore released"); } catch (InterruptedException e) { - throw new RuntimeException(e); + throw new IllegalStateException("Interrupted while waiting for semaphore", e); } timeoutGuardFuture.cancel(false); @@ -176,10 +177,8 @@ public final class ScaleUtil { for (File f : files) { if (f.isDirectory()) { deleteFolder(f); - } else { - if (!f.delete()) { - root.warn("Failed to delete {}", f); - } + } else if (!f.delete()) { + root.warn("Failed to delete {}", f); } } } @@ -191,7 +190,7 @@ public final class ScaleUtil { private static void waitNetconfTopologyReady(final TesttoolParameters params) { root.info("Wait for Netconf topology to be accessible via Restconf"); HttpResponse response = requestNetconfTopology(params); - while (response == null || (response.statusCode() != 200 && response.statusCode() != 204)) { + while (response == null || response.statusCode() != 200 && response.statusCode() != 204) { if (response == null) { root.warn("Failed to get response from controller, going to sleep..."); } else { @@ -199,10 +198,10 @@ public final class ScaleUtil { } try { Thread.sleep(1000L); - response = requestNetconfTopology(params); } catch (InterruptedException e) { - throw new RuntimeException(e); + throw new IllegalStateException("Sleep interrupted", e); } + response = requestNetconfTopology(params); } root.info("Returned status code {}, Netconf topology is accessible", response.statusCode()); } @@ -230,7 +229,7 @@ public final class ScaleUtil { root.warn(e.getMessage()); return null; } catch (InterruptedException e) { - throw new RuntimeException(e); + throw new IllegalStateException("Interrupted while waiting for response", e); } } @@ -305,7 +304,6 @@ public final class ScaleUtil { } } - @SuppressWarnings("checkstyle:illegalCatch") public static class LoggingWrapperExecutor extends ScheduledThreadPoolExecutor { public LoggingWrapperExecutor(final int corePoolSize) { super(corePoolSize); @@ -324,15 +322,16 @@ public final class ScaleUtil { } @Override + @SuppressWarnings("checkstyle:illegalCatch") public T call() { try { return theCallable.call(); } catch (Exception e) { // log root.warn("error in executing: " + theCallable + ". It will no longer be run!", e); - + Throwables.throwIfUnchecked(e); // rethrow so that the executor can do it's thing - throw new RuntimeException(e); + throw new IllegalStateException(e); } } } 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 5cfebdcdc8..be48d1cd8e 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 @@ -68,9 +68,9 @@ class AsyncExecutionStrategy extends AbstractExecutionStrategy { LOG.warn("Request failed {}", netconfMessageRpcResult); } } catch (final InterruptedException e) { - throw new RuntimeException(e); + throw new IllegalStateException(e); } catch (final ExecutionException | TimeoutException e) { - throw new RuntimeException("Request not finished", e); + throw new IllegalStateException("Request not finished", e); } } 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 6d02ba259a..967f8ae34f 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 @@ -174,12 +174,12 @@ public final class StressClient { try { future.get(4L, TimeUnit.MINUTES); } catch (ExecutionException | TimeoutException e) { - throw new RuntimeException(e); + throw new IllegalStateException(e); } } executorService.shutdownNow(); } catch (final InterruptedException e) { - throw new RuntimeException("Unable to execute requests", e); + throw new IllegalStateException("Unable to execute requests", e); } started.stop(); @@ -238,12 +238,10 @@ public final class StressClient { } else { netconfClientDispatcher = ConfigurableClientDispatcher.createChunkedExi(nioGroup, nioGroup, timer); } + } else if (params.legacyFraming) { + netconfClientDispatcher = ConfigurableClientDispatcher.createLegacy(nioGroup, nioGroup, timer); } else { - if (params.legacyFraming) { - netconfClientDispatcher = ConfigurableClientDispatcher.createLegacy(nioGroup, nioGroup, timer); - } else { - netconfClientDispatcher = ConfigurableClientDispatcher.createChunked(nioGroup, nioGroup, timer); - } + netconfClientDispatcher = ConfigurableClientDispatcher.createChunked(nioGroup, nioGroup, timer); } return netconfClientDispatcher; } diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/client/stress/StressClientCallable.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/client/stress/StressClientCallable.java index d808f2bf5d..62733ba816 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/client/stress/StressClientCallable.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/client/stress/StressClientCallable.java @@ -5,7 +5,6 @@ * 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.test.tool.client.stress; import io.netty.util.concurrent.GlobalEventExecutor; @@ -43,17 +42,17 @@ public class StressClientCallable implements Callable { final NetconfClientDispatcherImpl netconfClientDispatcher, final List preparedMessages) { this.params = params; - this.sessionListener = getSessionListener(params.getInetAddress(), params.concurrentMessageLimit); + sessionListener = getSessionListener(params.getInetAddress(), params.concurrentMessageLimit); this.netconfClientDispatcher = netconfClientDispatcher; - cfg = getNetconfClientConfiguration(this.params, this.sessionListener); + cfg = getNetconfClientConfiguration(this.params, sessionListener); LOG.info("Connecting to netconf server {}:{}", params.ip, params.port); try { netconfClientSession = netconfClientDispatcher.createClient(cfg).get(); } catch (final InterruptedException e) { - throw new RuntimeException(e); + throw new IllegalStateException(e); } catch (final ExecutionException e) { - throw new RuntimeException("Unable to connect", e); + throw new IllegalStateException("Unable to connect", e); } executionStrategy = getExecutionStrategy(params, preparedMessages, sessionListener); } @@ -89,7 +88,7 @@ public class StressClientCallable implements Callable { netconfClientConfigurationBuilder.withSessionListener(sessionListener); netconfClientConfigurationBuilder.withAddress(params.getInetAddress()); if (params.tcpHeader != null) { - final String header = params.tcpHeader.replaceAll("\"", "").trim() + "\n"; + final String header = params.tcpHeader.replace("\"", "").trim() + "\n"; netconfClientConfigurationBuilder.withAdditionalHeader( new NetconfHelloMessageAdditionalHeader(null, null, null, null, null) { @Override 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 087eeb0937..e33ad5ec66 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 @@ -78,9 +78,9 @@ class SyncExecutionStrategy extends AbstractExecutionStrategy { } } catch (final InterruptedException e) { - throw new RuntimeException(e); + throw new IllegalStateException(e); } catch (final ExecutionException | TimeoutException e) { - throw new RuntimeException("Request not finished", e); + throw new IllegalStateException("Request not finished", e); } } } diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/monitoring/JaxBSerializer.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/monitoring/JaxBSerializer.java index 736633b6b5..8cd629ce86 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/monitoring/JaxBSerializer.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/monitoring/JaxBSerializer.java @@ -35,7 +35,7 @@ public class JaxBSerializer { res = new DOMResult(); marshaller.marshal(monitoringModel, res); } catch (final JAXBException e) { - throw new RuntimeException("Unable to serialize netconf state " + monitoringModel, e); + throw new IllegalStateException("Unable to serialize netconf state " + monitoringModel, e); } return ((Document) res.getNode()).getDocumentElement(); } diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/monitoring/MonitoringSchema.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/monitoring/MonitoringSchema.java index 32ef6ae3c9..25fbd77c81 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/monitoring/MonitoringSchema.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/monitoring/MonitoringSchema.java @@ -5,10 +5,10 @@ * 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.test.tool.monitoring; -import com.google.common.base.Preconditions; +import static com.google.common.base.Preconditions.checkState; + import com.google.common.collect.Collections2; import java.util.Collection; import javax.xml.bind.annotation.XmlElement; @@ -45,8 +45,8 @@ final class MonitoringSchema { @XmlElement(name = "format") public String getFormat() { - Preconditions.checkState(schema.getFormat() == Yang.class, "Only yang format permitted, but was %s", - schema.getFormat()); + final var format = schema.getFormat(); + checkState(Yang.VALUE.equals(format), "Only yang format permitted, but was %s", format); return "yang"; } } \ No newline at end of file diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/monitoring/MonitoringSession.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/monitoring/MonitoringSession.java index 94d46c18cc..30c1efbc1e 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/monitoring/MonitoringSession.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/monitoring/MonitoringSession.java @@ -10,6 +10,7 @@ package org.opendaylight.netconf.test.tool.monitoring; import com.google.common.base.Joiner; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlTransient; +import org.opendaylight.mdsal.binding.spec.naming.BindingMapping; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.extension.rev131210.Session1; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.sessions.Session; @@ -74,7 +75,8 @@ final class MonitoringSession { @XmlElement(name = "transport") public String getTransport() { try { - final QName qualifiedName = (QName) managementSession.getTransport().getField("QNAME").get(null); + final QName qualifiedName = (QName) managementSession.getTransport().implementedInterface() + .getField(BindingMapping.QNAME_STATIC_FIELD_NAME).get(null); // Add extension prefix if transport type is from extension yang module if (qualifiedName.getNamespace().toString().equals(MonitoringConstants.EXTENSION_NAMESPACE)) { return Joiner.on(':').join(MonitoringConstants.EXTENSION_NAMESPACE_PREFIX, diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/schemacache/SchemaSourceCache.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/schemacache/SchemaSourceCache.java index 2dd3882c91..7e8c852314 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/schemacache/SchemaSourceCache.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/schemacache/SchemaSourceCache.java @@ -15,8 +15,9 @@ import java.util.Map; import java.util.Set; import java.util.stream.Collectors; import org.opendaylight.yangtools.yang.binding.YangModuleInfo; +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.repo.api.MissingSchemaSourceException; -import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceRepresentation; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; @@ -59,9 +60,9 @@ public final class SchemaSourceCache exten // creation of source identifiers for all yang module info cachedSchemas = allModulesInfo.stream() .map(yangModuleInfo -> { - final RevisionSourceIdentifier revisionSourceIdentifier = RevisionSourceIdentifier.create( - yangModuleInfo.getName().getLocalName(), - yangModuleInfo.getName().getRevision()); + final QName name = yangModuleInfo.getName(); + final SourceIdentifier revisionSourceIdentifier = new SourceIdentifier( + name.getLocalName(), name.getRevision().map(Revision::toString).orElse(null)); return new AbstractMap.SimpleEntry<>(revisionSourceIdentifier, yangModuleInfo); }) .collect(Collectors.toMap(AbstractMap.SimpleEntry::getKey, AbstractMap.SimpleEntry::getValue)); diff --git a/netconf/tools/pom.xml b/netconf/tools/pom.xml index c4fcb17757..add5859ff7 100644 --- a/netconf/tools/pom.xml +++ b/netconf/tools/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 10.0.2 + 11.0.0 diff --git a/netconf/yanglib/src/main/java/org/opendaylight/yanglib/impl/WebInitializer.java b/netconf/yanglib/src/main/java/org/opendaylight/yanglib/impl/WebInitializer.java index 87fe75cd49..de50df1f6d 100644 --- a/netconf/yanglib/src/main/java/org/opendaylight/yanglib/impl/WebInitializer.java +++ b/netconf/yanglib/src/main/java/org/opendaylight/yanglib/impl/WebInitializer.java @@ -12,10 +12,10 @@ import javax.ws.rs.core.Application; import org.opendaylight.aaa.web.ServletDetails; import org.opendaylight.aaa.web.WebContext; import org.opendaylight.aaa.web.WebContextBuilder; -import org.opendaylight.aaa.web.WebContextRegistration; import org.opendaylight.aaa.web.WebContextSecurer; import org.opendaylight.aaa.web.WebServer; import org.opendaylight.aaa.web.servlet.ServletSupport; +import org.opendaylight.yangtools.concepts.Registration; /** * Initializes the wep app. @@ -23,7 +23,7 @@ import org.opendaylight.aaa.web.servlet.ServletSupport; * @author Thomas Pantelis */ public class WebInitializer { - private final WebContextRegistration registration; + private final Registration registration; public WebInitializer(WebServer webServer, WebContextSecurer webContextSecurer, ServletSupport servletSupport, Application webApp) throws ServletException { diff --git a/netconf/yanglib/src/main/java/org/opendaylight/yanglib/impl/YangLibProvider.java b/netconf/yanglib/src/main/java/org/opendaylight/yanglib/impl/YangLibProvider.java index e523dd81d6..f306467533 100644 --- a/netconf/yanglib/src/main/java/org/opendaylight/yanglib/impl/YangLibProvider.java +++ b/netconf/yanglib/src/main/java/org/opendaylight/yanglib/impl/YangLibProvider.java @@ -22,15 +22,16 @@ import java.io.IOException; import java.nio.charset.Charset; import java.util.HashMap; import java.util.Map; +import java.util.Optional; import java.util.concurrent.ExecutionException; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.WriteTransaction; import org.opendaylight.mdsal.common.api.CommitInfo; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; 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.yang.library.rev190104.LegacyRevisionUtils; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.ModulesState; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.ModulesStateBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.list.CommonLeafsRevisionBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.list.Module; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.list.ModuleBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.list.ModuleKey; @@ -38,8 +39,6 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types. import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.yanglib.impl.rev141210.YanglibConfig; import org.opendaylight.yanglib.api.YangLibService; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.common.Revision; -import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceRepresentation; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; @@ -112,12 +111,13 @@ public class YangLibProvider implements AutoCloseable, SchemaSourceListener, Yan final Map newModules = new HashMap<>(); for (PotentialSchemaSource potentialYangSource : Iterables.filter(sources, YANG_SCHEMA_SOURCE)) { - final YangIdentifier moduleName = new YangIdentifier(potentialYangSource.getSourceIdentifier().getName()); + final YangIdentifier moduleName = + new YangIdentifier(potentialYangSource.getSourceIdentifier().name().getLocalName()); final Module newModule = new ModuleBuilder() .setName(moduleName) - .setRevision(CommonLeafsRevisionBuilder.fromYangCommon( - potentialYangSource.getSourceIdentifier().getRevision())) + .setRevision(LegacyRevisionUtils.fromYangCommon( + Optional.ofNullable(potentialYangSource.getSourceIdentifier().revision()))) .setSchema(getUrlForModule(potentialYangSource.getSourceIdentifier())) .build(); @@ -156,8 +156,8 @@ public class YangLibProvider implements AutoCloseable, SchemaSourceListener, Yan WriteTransaction tx = dataBroker.newWriteOnlyTransaction(); tx.delete(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(ModulesState.class) - .child(Module.class, new ModuleKey(new YangIdentifier(source.getSourceIdentifier().getName()), - CommonLeafsRevisionBuilder.fromYangCommon(source.getSourceIdentifier().getRevision())))); + .child(Module.class, new ModuleKey(new YangIdentifier(source.getSourceIdentifier().name().getLocalName()), + LegacyRevisionUtils.fromYangCommon(Optional.ofNullable(source.getSourceIdentifier().revision()))))); tx.commit().addCallback(new FutureCallback() { @Override @@ -175,8 +175,7 @@ public class YangLibProvider implements AutoCloseable, SchemaSourceListener, Yan @Override public String getSchema(final String name, final String revision) { LOG.debug("Attempting load for schema source {}:{}", name, revision); - final SourceIdentifier sourceId = RevisionSourceIdentifier.create(name, - revision.isEmpty() ? null : Revision.of(revision)); + final SourceIdentifier sourceId = new SourceIdentifier(name, revision.isEmpty() ? null : revision); final ListenableFuture sourceFuture = schemaRepository.getSchemaSource(sourceId, YangTextSchemaSource.class); @@ -191,10 +190,11 @@ public class YangLibProvider implements AutoCloseable, SchemaSourceListener, Yan private Uri getUrlForModule(final SourceIdentifier sourceIdentifier) { return new Uri("http://" + yanglibConfig.getBindingAddr() + ':' + yanglibConfig.getBindingPort() - + "/yanglib/schemas/" + sourceIdentifier.getName() + '/' + revString(sourceIdentifier)); + + "/yanglib/schemas/" + sourceIdentifier.name().getLocalName() + '/' + revString(sourceIdentifier)); } private static String revString(final SourceIdentifier id) { - return id.getRevision().map(Revision::toString).orElse(""); + final var rev = id.revision(); + return rev != null ? rev.toString() : ""; } } diff --git a/netconf/yanglib/src/test/java/org/opendaylight/yanglib/impl/YangLibProviderTest.java b/netconf/yanglib/src/test/java/org/opendaylight/yanglib/impl/YangLibProviderTest.java index 1b1adfe581..3dea286301 100644 --- a/netconf/yanglib/src/test/java/org/opendaylight/yanglib/impl/YangLibProviderTest.java +++ b/netconf/yanglib/src/test/java/org/opendaylight/yanglib/impl/YangLibProviderTest.java @@ -38,11 +38,11 @@ import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.WriteTransaction; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; 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.yang.library.rev190104.LegacyRevisionUtils; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.ModulesState; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.ModulesStateBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.RevisionIdentifier; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.list.CommonLeafs.Revision; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.list.CommonLeafsRevisionBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.list.Module; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.list.ModuleBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.list.ModuleKey; @@ -51,7 +51,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controll import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.yanglib.impl.rev141210.YanglibConfigBuilder; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.Uint32; -import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier; +import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; import org.opendaylight.yangtools.yang.model.repo.api.YinSchemaSourceRepresentation; import org.opendaylight.yangtools.yang.model.repo.spi.PotentialSchemaSource; @@ -106,14 +106,11 @@ public class YangLibProviderTest { List> list = new ArrayList<>(); list.add( - PotentialSchemaSource.create( - RevisionSourceIdentifier.create("no-revision"), + PotentialSchemaSource.create(new SourceIdentifier("no-revision"), YangTextSchemaSource.class, PotentialSchemaSource.Costs.IMMEDIATE.getValue())); list.add( - PotentialSchemaSource.create( - RevisionSourceIdentifier.create("with-revision", - org.opendaylight.yangtools.yang.common.Revision.of("2016-04-28")), + PotentialSchemaSource.create(new SourceIdentifier("with-revision", "2016-04-28"), YangTextSchemaSource.class, PotentialSchemaSource.Costs.IMMEDIATE.getValue())); doReturn(emptyFluentFuture()).when(writeTransaction).commit(); @@ -123,7 +120,7 @@ public class YangLibProviderTest { Module newModule = new ModuleBuilder() .setName(new YangIdentifier("no-revision")) - .setRevision(CommonLeafsRevisionBuilder.emptyRevision()) + .setRevision(LegacyRevisionUtils.emptyRevision()) .setSchema(new Uri("http://www.fake.com:300/yanglib/schemas/no-revision/")) .build(); @@ -158,13 +155,11 @@ public class YangLibProviderTest { // expected behavior is to do nothing potentialSources = new ArrayList<>(); potentialSources.add( - PotentialSchemaSource.create( - RevisionSourceIdentifier.create("yin-source-representation"), + PotentialSchemaSource.create(new SourceIdentifier("yin-source-representation"), YinSchemaSourceRepresentation.class, PotentialSchemaSource.Costs.IMMEDIATE.getValue())); potentialSources.add( - PotentialSchemaSource.create( - RevisionSourceIdentifier.create("asts-schema-source"), + PotentialSchemaSource.create(new SourceIdentifier("asts-schema-source"), IRSchemaSource.class, PotentialSchemaSource.Costs.IMMEDIATE.getValue())); yangLibProvider.schemaSourceRegistered(potentialSources); @@ -172,8 +167,7 @@ public class YangLibProviderTest { // add yang schema source to list potentialSources.add( - PotentialSchemaSource.create( - RevisionSourceIdentifier.create("yang-schema-source"), + PotentialSchemaSource.create(new SourceIdentifier("yang-schema-source"), YangTextSchemaSource.class, PotentialSchemaSource.Costs.IMMEDIATE.getValue())); when(dataBroker.newWriteOnlyTransaction()).thenReturn(writeTransaction); @@ -193,8 +187,7 @@ public class YangLibProviderTest { yangLibProvider.init(); final PotentialSchemaSource nonYangSource = - PotentialSchemaSource.create( - RevisionSourceIdentifier.create("yin-source-representation"), + PotentialSchemaSource.create(new SourceIdentifier("yin-source-representation"), YinSchemaSourceRepresentation.class, PotentialSchemaSource.Costs.IMMEDIATE.getValue()); yangLibProvider.schemaSourceUnregistered(nonYangSource); @@ -214,9 +207,8 @@ public class YangLibProviderTest { doReturn(emptyFluentFuture()).when(writeTransaction).commit(); PotentialSchemaSource yangUnregistererSource = - PotentialSchemaSource.create( - RevisionSourceIdentifier.create("unregistered-yang-schema-without-revision"), - YangTextSchemaSource.class, PotentialSchemaSource.Costs.LOCAL_IO.getValue()); + PotentialSchemaSource.create(new SourceIdentifier("unregistered-yang-schema-without-revision"), + YangTextSchemaSource.class, PotentialSchemaSource.Costs.LOCAL_IO.getValue()); yangLibProvider.schemaSourceUnregistered(yangUnregistererSource); @@ -225,14 +217,12 @@ public class YangLibProviderTest { eq(InstanceIdentifier.create(ModulesState.class) .child(Module.class, new ModuleKey(new YangIdentifier("unregistered-yang-schema-without-revision"), - CommonLeafsRevisionBuilder.emptyRevision())))); + LegacyRevisionUtils.emptyRevision())))); verify(writeTransaction).commit(); yangUnregistererSource = - PotentialSchemaSource.create( - RevisionSourceIdentifier.create("unregistered-yang-with-revision", - org.opendaylight.yangtools.yang.common.Revision.of("2016-04-28")), + PotentialSchemaSource.create(new SourceIdentifier("unregistered-yang-with-revision", "2016-04-28"), YangTextSchemaSource.class, PotentialSchemaSource.Costs.LOCAL_IO.getValue()); yangLibProvider.schemaSourceUnregistered(yangUnregistererSource); diff --git a/parent/pom.xml b/parent/pom.xml index 014c08a462..a59e57b51b 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.mdsal binding-parent - 9.0.3 + 10.0.0 @@ -25,21 +25,21 @@ org.opendaylight.aaa aaa-artifacts - 0.15.4 + 0.16.0-SNAPSHOT pom import org.opendaylight.controller bundle-parent - 5.0.4 + 6.0.0 pom import org.opendaylight.infrautils infrautils-artifacts - 3.0.1 + 4.0.0 pom import diff --git a/pom.xml b/pom.xml index e75425c37c..e6b8ca8087 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent odlparent-lite - 10.0.2 + 11.0.0 diff --git a/restconf/pom.xml b/restconf/pom.xml index 7cfdc455c9..14366430ec 100644 --- a/restconf/pom.xml +++ b/restconf/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 10.0.2 + 11.0.0 diff --git a/restconf/restconf-common/pom.xml b/restconf/restconf-common/pom.xml index 8ed5a775f0..c74ef8bfd0 100644 --- a/restconf/restconf-common/pom.xml +++ b/restconf/restconf-common/pom.xml @@ -72,8 +72,8 @@ mdsal-dom-api - javax.ws.rs - javax.ws.rs-api + jakarta.ws.rs + jakarta.ws.rs-api diff --git a/restconf/restconf-common/src/main/java/org/opendaylight/restconf/common/util/AbstractOperationsModule.java b/restconf/restconf-common/src/main/java/org/opendaylight/restconf/common/util/AbstractOperationsModule.java index be8dcf2f73..ac61f7a50b 100644 --- a/restconf/restconf-common/src/main/java/org/opendaylight/restconf/common/util/AbstractOperationsModule.java +++ b/restconf/restconf-common/src/main/java/org/opendaylight/restconf/common/util/AbstractOperationsModule.java @@ -12,7 +12,6 @@ import java.util.Collections; import java.util.Map; import java.util.Optional; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.yangtools.concepts.SemVer; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.UnresolvedQName; import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified; @@ -115,11 +114,6 @@ abstract class AbstractOperationsModule implements Module, ModuleEffectiveStatem return Collections.emptySet(); } - @Override - public final Optional getSemanticVersion() { - return Optional.empty(); - } - @Override public final Optional getOrganization() { return Optional.empty(); diff --git a/restconf/restconf-models/pom.xml b/restconf/restconf-models/pom.xml index e1e806c925..899c5f2c2b 100644 --- a/restconf/restconf-models/pom.xml +++ b/restconf/restconf-models/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 10.0.2 + 11.0.0 diff --git a/restconf/restconf-nb-rfc8040/pom.xml b/restconf/restconf-nb-rfc8040/pom.xml index 6361123c31..39c4147116 100644 --- a/restconf/restconf-nb-rfc8040/pom.xml +++ b/restconf/restconf-nb-rfc8040/pom.xml @@ -35,12 +35,12 @@ javax.servlet-api - javax.ws.rs - javax.ws.rs-api + jakarta.ws.rs + jakarta.ws.rs-api - javax.annotation - javax.annotation-api + jakarta.annotation + jakarta.annotation-api true @@ -245,6 +245,7 @@ org.skyscreamer jsonassert + 1.5.0 test diff --git a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/handlers/SchemaContextHandler.java b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/handlers/SchemaContextHandler.java index 4178ed1fb5..56454db073 100644 --- a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/handlers/SchemaContextHandler.java +++ b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/handlers/SchemaContextHandler.java @@ -43,7 +43,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.librar import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.list.Module.ConformanceType; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.list.module.Deviation; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.list.module.Submodule; -import org.opendaylight.yangtools.concepts.ListenerRegistration; +import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; @@ -100,7 +100,7 @@ public class SchemaContextHandler implements EffectiveModelContextListener, Auto private final DOMDataBroker domDataBroker; private final DOMSchemaService domSchemaService; - private ListenerRegistration listenerRegistration; + private Registration listenerRegistration; private volatile EffectiveModelContext schemaContext; diff --git a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/jersey/providers/YangSchemaExportBodyWriter.java b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/jersey/providers/YangSchemaExportBodyWriter.java index 29f8fac185..70de8d359e 100644 --- a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/jersey/providers/YangSchemaExportBodyWriter.java +++ b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/jersey/providers/YangSchemaExportBodyWriter.java @@ -18,8 +18,10 @@ import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MultivaluedMap; import javax.ws.rs.ext.Provider; import org.opendaylight.restconf.common.schema.SchemaExportContext; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.common.YangConstants; -import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier; +import org.opendaylight.yangtools.yang.model.api.Module; +import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; @Provider @@ -29,8 +31,9 @@ public class YangSchemaExportBodyWriter extends AbstractSchemaExportBodyWriter { public void writeTo(final SchemaExportContext context, final Class type, final Type genericType, final Annotation[] annotations, final MediaType mediaType, final MultivaluedMap httpHeaders, final OutputStream entityStream) throws IOException { - final RevisionSourceIdentifier sourceId = RevisionSourceIdentifier.create(context.getModule().getName(), - context.getModule().getQNameModule().getRevision()); + final Module module = context.getModule(); + final SourceIdentifier sourceId = new SourceIdentifier(module.getName(), + module.getQNameModule().getRevision().map(Revision::toString).orElse(null)); final YangTextSchemaSource yangTextSchemaSource; try { yangTextSchemaSource = context.getSourceProvider().getSource(sourceId).get(); diff --git a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/jersey/providers/patch/JsonPatchBodyReader.java b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/jersey/providers/patch/JsonPatchBodyReader.java index c581243ab3..95190882a7 100644 --- a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/jersey/providers/patch/JsonPatchBodyReader.java +++ b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/jersey/providers/patch/JsonPatchBodyReader.java @@ -89,19 +89,19 @@ public class JsonPatchBodyReader extends AbstractPatchBodyReader { } @SuppressWarnings("checkstyle:IllegalCatch") - public PatchContext readFrom(final String uriPath, final InputStream entityStream) throws - RestconfDocumentedException { + public PatchContext readFrom(final String uriPath, final InputStream entityStream) + throws RestconfDocumentedException { try { return readFrom( ParserIdentifier.toInstanceIdentifier(uriPath, getSchemaContext(), Optional.ofNullable(getMountPointService())), entityStream); } catch (final Exception e) { - propagateExceptionAs(e); - return null; // no-op + throw propagateExceptionAs(e); } } - private static RuntimeException propagateExceptionAs(final Exception exception) throws RestconfDocumentedException { + private static RestconfDocumentedException propagateExceptionAs(final Exception exception) + throws RestconfDocumentedException { Throwables.throwIfInstanceOf(exception, RestconfDocumentedException.class); LOG.debug("Error parsing json input", exception); diff --git a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/CreateStreamUtil.java b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/CreateStreamUtil.java index a209d05f8c..1d290ec737 100644 --- a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/CreateStreamUtil.java +++ b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/CreateStreamUtil.java @@ -152,7 +152,7 @@ final class CreateStreamUtil { final String scopeName = extractStringLeaf(data, SCOPE_NODEID); // FIXME: this is not really used - final Scope scope = scopeName != null ? Scope.forName(scopeName).orElseThrow() : Scope.BASE; + final Scope scope = scopeName != null ? Scope.ofName(scopeName) : Scope.BASE; return RestconfStreamsConstants.DATA_SUBSCRIPTION + "/" + ListenersBroker.createStreamNameFromUri(IdentifierCodec.serialize(path, schemaContext) diff --git a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/web/WebInitializer.java b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/web/WebInitializer.java index 03eec66926..3d8016c266 100644 --- a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/web/WebInitializer.java +++ b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/web/WebInitializer.java @@ -18,7 +18,6 @@ import org.opendaylight.aaa.web.FilterDetails; import org.opendaylight.aaa.web.ServletDetails; import org.opendaylight.aaa.web.WebContext; import org.opendaylight.aaa.web.WebContextBuilder; -import org.opendaylight.aaa.web.WebContextRegistration; import org.opendaylight.aaa.web.WebContextSecurer; import org.opendaylight.aaa.web.WebServer; import org.opendaylight.aaa.web.servlet.ServletSupport; @@ -28,6 +27,7 @@ import org.opendaylight.restconf.nb.rfc8040.RootFoundApplication; import org.opendaylight.restconf.nb.rfc8040.rests.utils.RestconfStreamsConstants; import org.opendaylight.restconf.nb.rfc8040.streams.WebSocketInitializer; import org.opendaylight.restconf.nb.rfc8040.utils.RestconfConstants; +import org.opendaylight.yangtools.concepts.Registration; /** * Initializes the rfc8040 web app endpoint. @@ -36,7 +36,7 @@ import org.opendaylight.restconf.nb.rfc8040.utils.RestconfConstants; */ @Singleton public class WebInitializer { - private final WebContextRegistration registration; + private final Registration registration; @Inject public WebInitializer(final WebServer webServer, final WebContextSecurer webContextSecurer, diff --git a/restconf/sal-rest-connector-config/pom.xml b/restconf/sal-rest-connector-config/pom.xml index 4b671975ab..ec55738ff5 100644 --- a/restconf/sal-rest-connector-config/pom.xml +++ b/restconf/sal-rest-connector-config/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 10.0.2 + 11.0.0 diff --git a/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/jaxrs/WebInitializer.java b/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/jaxrs/WebInitializer.java index ad105049e9..56e8ba9cea 100644 --- a/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/jaxrs/WebInitializer.java +++ b/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/jaxrs/WebInitializer.java @@ -13,10 +13,10 @@ import org.opendaylight.aaa.web.ResourceDetails; import org.opendaylight.aaa.web.ServletDetails; import org.opendaylight.aaa.web.WebContext; import org.opendaylight.aaa.web.WebContextBuilder; -import org.opendaylight.aaa.web.WebContextRegistration; import org.opendaylight.aaa.web.WebContextSecurer; import org.opendaylight.aaa.web.WebServer; import org.opendaylight.aaa.web.servlet.ServletSupport; +import org.opendaylight.yangtools.concepts.Registration; /** * Initializes the wep app. @@ -24,7 +24,7 @@ import org.opendaylight.aaa.web.servlet.ServletSupport; * @author Thomas Pantelis */ public class WebInitializer { - private final WebContextRegistration registration; + private final Registration registration; public WebInitializer(WebServer webServer, WebContextSecurer webContextSecurer, ServletSupport servletSupport, Application webApp) throws ServletException { diff --git a/restconf/wadl-generator/src/main/java/org/opendaylight/netconf/restconf/wadl/generator/WadlTemplate.java b/restconf/wadl-generator/src/main/java/org/opendaylight/netconf/restconf/wadl/generator/WadlTemplate.java index f28de9d50e..4f0de88b22 100644 --- a/restconf/wadl-generator/src/main/java/org/opendaylight/netconf/restconf/wadl/generator/WadlTemplate.java +++ b/restconf/wadl-generator/src/main/java/org/opendaylight/netconf/restconf/wadl/generator/WadlTemplate.java @@ -172,7 +172,8 @@ final class WadlTemplate { builder.append("xmlns:"); builder.append(imprt.getPrefix()); builder.append("=\""); - builder.append(context.findModule(imprt.getModuleName(), imprt.getRevision()).get().getNamespace()); + builder.append(context.findModule(imprt.getModuleName().getLocalName(), + imprt.getRevision()).get().getNamespace()); builder.append("\""); builder.newLineIfNotEmpty(); } @@ -212,8 +213,7 @@ final class WadlTemplate { private String createPath(final DataSchemaNode schemaNode) { pathListParams = new ArrayList<>(); StringBuilder path = new StringBuilder().append(schemaNode.getQName().getLocalName()); - if (schemaNode instanceof ListSchemaNode) { - final var listNode = (ListSchemaNode) schemaNode; + if (schemaNode instanceof ListSchemaNode listNode) { for (final QName listKey : listNode.getKeyDefinition()) { pathListParams.add((LeafSchemaNode) listNode.getDataChildByName(listKey)); path.append("'/{").append(listKey.getLocalName()).append('}');