summary |
shortlog |
log |
commit | commitdiff |
review |
tree
raw |
patch |
inline | side by side (from parent 1:
429abad)
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 <robert.varga@pantheon.tech>
110 files changed:
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>10.0.2</version>
+ <version>11.0.0</version>
<relativePath/>
</parent>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>feature-repo-parent</artifactId>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>feature-repo-parent</artifactId>
- <version>10.0.2</version>
+ <version>11.0.0</version>
<relativePath/>
</parent>
<relativePath/>
</parent>
-->
<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-netconf-${project.version}">
<feature name="odl-netconf-connector" version="${project.version}">
-->
<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-netconf-${project.version}">
<feature name="odl-netconf-connector" version="${project.version}">
- <feature version="[9,10)">odl-mdsal-model-draft-clemm-netmod-yang-network-topo-01-minimal</feature>
- <feature version="[5,6)">odl-mdsal-broker</feature>
- <feature version="[0.15,1)">odl-aaa-encryption-service</feature>
+ <feature version="[10,11)">odl-mdsal-model-draft-clemm-netmod-yang-network-topo-01-minimal</feature>
+ <feature version="[6,7)">odl-mdsal-broker</feature>
+ <feature version="[0.16,1)">odl-aaa-encryption-service</feature>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>10.0.2</version>
+ <version>11.0.0</version>
<relativePath/>
</parent>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>feature-repo-parent</artifactId>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>feature-repo-parent</artifactId>
- <version>10.0.2</version>
+ <version>11.0.0</version>
<relativePath/>
</parent>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>feature-repo-parent</artifactId>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>feature-repo-parent</artifactId>
- <version>10.0.2</version>
+ <version>11.0.0</version>
<relativePath/>
</parent>
<relativePath/>
</parent>
-->
<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-aaa-netconf-plugin-no-cluster">
<feature name="odl-aaa-netconf-plugin-no-cluster">
-->
<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-aaa-netconf-plugin-no-cluster">
<feature name="odl-aaa-netconf-plugin-no-cluster">
- <feature version="[0.15,1)">odl-aaa-shiro</feature>
+ <feature version="[0.16,1)">odl-aaa-shiro</feature>
-->
<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-aaa-netconf-plugin">
<feature name="odl-aaa-netconf-plugin">
-->
<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-aaa-netconf-plugin">
<feature name="odl-aaa-netconf-plugin">
- <feature version="[0.15,1)">odl-aaa-shiro</feature>
+ <feature version="[0.16,1)">odl-aaa-shiro</feature>
-->
<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-netconf-${project.version}">
<feature name="odl-netconf-api" version="${project.version}">
-->
<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-netconf-${project.version}">
<feature name="odl-netconf-api" version="${project.version}">
- <feature version="[10,11)">odl-netty-4</feature>
- <feature version="[8,9)">odl-yangtools-parser-api</feature>
- <feature version="[9,10)">odl-mdsal-model-rfc8525</feature>
- <feature version="[9,10)">odl-mdsal-model-rfc8342</feature>
+ <feature version="[11,12)">odl-netty-4</feature>
+ <feature version="[9,10)">odl-yangtools-parser-api</feature>
+ <feature version="[10,11)">odl-mdsal-model-rfc8525</feature>
+ <feature version="[10,11)">odl-mdsal-model-rfc8342</feature>
-->
<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-netconf-client-${project.version}">
<feature name="odl-netconf-client" version="${project.version}">
-->
<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-netconf-client-${project.version}">
<feature name="odl-netconf-client" version="${project.version}">
- <feature version="[5,6)">odl-controller-exp-netty-config</feature>
+ <feature version="[6,7)">odl-controller-exp-netty-config</feature>
-->
<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-netconf-impl-${project.version}">
<feature name="odl-netconf-impl" version="${project.version}">
-->
<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-netconf-impl-${project.version}">
<feature name="odl-netconf-impl" version="${project.version}">
- <feature version="[5,6)">odl-controller-exp-netty-config</feature>
+ <feature version="[6,7)">odl-controller-exp-netty-config</feature>
<?xml version="1.0" encoding="UTF-8"?>
<features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="odl-netconf-netty-util-${project.version}">
<feature name="odl-netconf-netty-util" version="${project.version}">
<?xml version="1.0" encoding="UTF-8"?>
<features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="odl-netconf-netty-util-${project.version}">
<feature name="odl-netconf-netty-util" version="${project.version}">
- <feature version="[10,11)">odl-netty-4</feature>
- <feature version="[0.15,1)">odl-aaa-encryption-service</feature>
+ <feature version="[11,12)">odl-netty-4</feature>
+ <feature version="[0.16,1)">odl-aaa-encryption-service</feature>
<?xml version="1.0" encoding="UTF-8"?>
<features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="odl-netconf-notifications-impl-${project.version}">
<feature name="odl-netconf-notifications-impl" version="${project.version}">
<?xml version="1.0" encoding="UTF-8"?>
<features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="odl-netconf-notifications-impl-${project.version}">
<feature name="odl-netconf-notifications-impl" version="${project.version}">
- <feature version="[9,10)">odl-mdsal-binding-runtime</feature>
+ <feature version="[10,11)">odl-mdsal-binding-runtime</feature>
<configfile finalname="etc/netconf.cfg">
mvn:org.opendaylight.netconf/netconf-util/${project.version}/cfg/config
</configfile>
<configfile finalname="etc/netconf.cfg">
mvn:org.opendaylight.netconf/netconf-util/${project.version}/cfg/config
</configfile>
- <feature version="[8,9)">odl-yangtools-codec</feature>
+ <feature version="[9,10)">odl-yangtools-codec</feature>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>10.0.2</version>
+ <version>11.0.0</version>
<relativePath/>
</parent>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>single-feature-parent</artifactId>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>single-feature-parent</artifactId>
- <version>10.0.2</version>
+ <version>11.0.0</version>
<relativePath/>
</parent>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>10.0.2</version>
+ <version>11.0.0</version>
<relativePath/>
</parent>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>feature-repo-parent</artifactId>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>feature-repo-parent</artifactId>
- <version>10.0.2</version>
+ <version>11.0.0</version>
<relativePath/>
</parent>
<relativePath/>
</parent>
-->
<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-netconf-${project.version}">
<feature name="odl-mdsal-apidocs" version="${project.version}">
-->
<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-netconf-${project.version}">
<feature name="odl-mdsal-apidocs" version="${project.version}">
- <feature version="[10,11)">odl-jackson-2.13</feature>
+ <feature version="[11,12)">odl-jackson-2.13</feature>
-->
<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-netconf-${project.version}">
<feature name="odl-restconf-common" version="${project.version}">
-->
<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-netconf-${project.version}">
<feature name="odl-restconf-common" version="${project.version}">
- <feature version="[10,11)">odl-karaf-feat-jetty</feature>
- <feature version="[8,9)">odl-yangtools-export</feature>
- <feature version="[9,10)">odl-mdsal-model-rfc8040</feature>
- <feature version="[9,10)">odl-mdsal-model-rfc8525</feature>
- <feature version="[5,6)">odl-mdsal-broker</feature>
- <feature version="[0.15,1)">odl-aaa-shiro</feature>
+ <feature version="[11,12)">odl-karaf-feat-jetty</feature>
+ <feature version="[9,10)">odl-yangtools-export</feature>
+ <feature version="[10,11)">odl-mdsal-model-rfc8040</feature>
+ <feature version="[10,11)">odl-mdsal-model-rfc8525</feature>
+ <feature version="[6,7)">odl-mdsal-broker</feature>
+ <feature version="[0.16,1)">odl-aaa-shiro</feature>
-->
<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-restconf-nb-rfc8040-${project.version}">
<feature name="odl-restconf-nb-rfc8040" version="${project.version}">
-->
<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-restconf-nb-rfc8040-${project.version}">
<feature name="odl-restconf-nb-rfc8040" version="${project.version}">
- <feature version="[9,10)">odl-mdsal-model-rfc8072</feature>
- <feature version="[5,6)">odl-controller-exp-netty-config</feature>
+ <feature version="[10,11)">odl-mdsal-model-rfc8072</feature>
+ <feature version="[6,7)">odl-controller-exp-netty-config</feature>
<configfile finalname="etc/org.opendaylight.restconf.nb.rfc8040.cfg">
mvn:org.opendaylight.netconf/restconf-nb-rfc8040/${project.version}/cfg/config
</configfile>
<configfile finalname="etc/org.opendaylight.restconf.nb.rfc8040.cfg">
mvn:org.opendaylight.netconf/restconf-nb-rfc8040/${project.version}/cfg/config
</configfile>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>10.0.2</version>
+ <version>11.0.0</version>
<relativePath/>
</parent>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>feature-repo-parent</artifactId>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>feature-repo-parent</artifactId>
- <version>10.0.2</version>
+ <version>11.0.0</version>
<relativePath/>
</parent>
<relativePath/>
</parent>
-->
<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-netconf-${project.version}">
<feature name="odl-yanglib" version="${project.version}">
-->
<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-netconf-${project.version}">
<feature name="odl-yanglib" version="${project.version}">
- <feature version="[10,11)">odl-karaf-feat-jetty</feature>
- <feature version="[9,10)">odl-mdsal-model-rfc8525</feature>
+ <feature version="[11,12)">odl-karaf-feat-jetty</feature>
+ <feature version="[10,11)">odl-mdsal-model-rfc8525</feature>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>10.0.2</version>
+ <version>11.0.0</version>
<relativePath/>
</parent>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>karaf-dist-static</artifactId>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>karaf-dist-static</artifactId>
- <version>10.0.2</version>
+ <version>11.0.0</version>
<relativePath/>
</parent>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>karaf4-parent</artifactId>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>karaf4-parent</artifactId>
- <version>10.0.2</version>
+ <version>11.0.0</version>
<relativePath/>
</parent>
<groupId>org.opendaylight.netconf</groupId>
<relativePath/>
</parent>
<groupId>org.opendaylight.netconf</groupId>
<dependency>
<groupId>org.opendaylight.controller</groupId>
<artifactId>controller-artifacts</artifactId>
<dependency>
<groupId>org.opendaylight.controller</groupId>
<artifactId>controller-artifacts</artifactId>
- <version>5.0.4</version>
+ <version>6.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.opendaylight.infrautils</groupId>
<artifactId>infrautils-artifacts</artifactId>
<dependency>
<groupId>org.opendaylight.infrautils</groupId>
<artifactId>infrautils-artifacts</artifactId>
- <version>3.0.1</version>
+ <version>4.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<type>pom</type>
<scope>import</scope>
</dependency>
import java.io.IOException;
import java.net.InetSocketAddress;
import java.util.Collection;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.util.Collection;
-import java.util.Collections;
import java.util.HashSet;
import java.util.HashSet;
import java.util.Optional;
import java.util.Set;
import java.util.concurrent.ExecutionException;
import java.util.Optional;
import java.util.Set;
import java.util.concurrent.ExecutionException;
final CallHomeMountDispatcher mountDispacher) {
this.dataBroker = dataBroker;
this.mountDispacher = mountDispacher;
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);
private void initializeServer() throws IOException {
LOG.info("Initializing Call Home server instance");
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) {
NetconfCallHomeServerBuilder builder = new NetconfCallHomeServerBuilder(provider, mountDispacher,
statusReporter);
if (port > 0) {
@VisibleForTesting
void assertValid(final Object obj, final String description) {
if (obj == null) {
@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()");
statusReporter.close();
// FIXME unbind the server
statusReporter.close();
// FIXME unbind the server
- if (this.listenerReg != null) {
+ if (listenerReg != null) {
listenerReg.close();
}
if (server != null) {
listenerReg.close();
}
if (server != null) {
private static Collection<Device> getReadDevices(final ListenableFuture<Optional<AllowedDevices>> devicesFuture)
throws InterruptedException, ExecutionException {
private static Collection<Device> getReadDevices(final ListenableFuture<Optional<AllowedDevices>> 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 {
}
private void readAndUpdateStatus(final Device cfgDevice) throws InterruptedException, ExecutionException {
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
* 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;
package org.opendaylight.netconf.callhome.mount;
import static org.junit.Assert.assertFalse;
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.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;
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;
@Before
public void setup() {
@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));
port1 = new PortNumber(Uint16.valueOf(123));
port2 = new PortNumber(Uint16.valueOf(456));
import org.opendaylight.mdsal.dom.api.DOMSchemaService;
import org.opendaylight.netconf.api.capability.Capability;
import org.opendaylight.netconf.api.monitoring.CapabilityListener;
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;
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;
@SuppressWarnings("checkstyle:FinalClass")
public class CurrentSchemaContext implements EffectiveModelContextListener, AutoCloseable {
private final AtomicReference<EffectiveModelContext> currentContext = new AtomicReference<>();
@SuppressWarnings("checkstyle:FinalClass")
public class CurrentSchemaContext implements EffectiveModelContextListener, AutoCloseable {
private final AtomicReference<EffectiveModelContext> currentContext = new AtomicReference<>();
- private ListenerRegistration<?> schemaContextListenerListenerRegistration;
private final Set<CapabilityListener> listeners1 = Collections.synchronizedSet(new HashSet<>());
private final SchemaSourceProvider<YangTextSchemaSource> rootSchemaSourceProvider;
private final Set<CapabilityListener> listeners1 = Collections.synchronizedSet(new HashSet<>());
private final SchemaSourceProvider<YangTextSchemaSource> rootSchemaSourceProvider;
+ private Registration schemaContextListenerListenerRegistration;
+
private CurrentSchemaContext(final SchemaSourceProvider<YangTextSchemaSource> rootSchemaSourceProvider) {
this.rootSchemaSourceProvider = rootSchemaSourceProvider;
}
private CurrentSchemaContext(final SchemaSourceProvider<YangTextSchemaSource> rootSchemaSourceProvider) {
this.rootSchemaSourceProvider = rootSchemaSourceProvider;
}
public static CurrentSchemaContext create(final DOMSchemaService schemaService,
final SchemaSourceProvider<YangTextSchemaSource> rootSchemaSourceProvider) {
var context = new CurrentSchemaContext(rootSchemaSourceProvider);
public static CurrentSchemaContext create(final DOMSchemaService schemaService,
final SchemaSourceProvider<YangTextSchemaSource> rootSchemaSourceProvider) {
var context = new CurrentSchemaContext(rootSchemaSourceProvider);
- final ListenerRegistration<EffectiveModelContextListener> registration =
- schemaService.registerSchemaContextListener(context);
+ final Registration registration = schemaService.registerSchemaContextListener(context);
context.setRegistration(registration);
return context;
}
context.setRegistration(registration);
return context;
}
- private void setRegistration(ListenerRegistration<EffectiveModelContextListener> registration) {
+ private void setRegistration(final Registration registration) {
schemaContextListenerListenerRegistration = registration;
}
schemaContextListenerListenerRegistration = registration;
}
import org.opendaylight.netconf.api.monitoring.CapabilityListener;
import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactoryListener;
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.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;
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;
this.dataBroker = dataBroker;
this.rpcService = rpcService;
this.dataBroker = dataBroker;
this.rpcService = rpcService;
- this.rootSchemaSourceProviderDependency = schemaService.getExtensions()
+ rootSchemaSourceProviderDependency = schemaService.getExtensions()
.getInstance(DOMYangTextSourceProvider.class);
.getInstance(DOMYangTextSourceProvider.class);
- this.currentSchemaContext = CurrentSchemaContext.create(requireNonNull(schemaService),
+ currentSchemaContext = CurrentSchemaContext.create(requireNonNull(schemaService),
rootSchemaSourceProviderDependency);
this.netconfOperationServiceFactoryListener = netconfOperationServiceFactoryListener;
}
rootSchemaSourceProviderDependency);
this.netconfOperationServiceFactoryListener = netconfOperationServiceFactoryListener;
}
private static Optional<YangModuleCapability> moduleToCapability(final ModuleLike module,
final SchemaSourceProvider<YangTextSchemaSource> rootSchemaSourceProviderDependency) {
private static Optional<YangModuleCapability> moduleToCapability(final ModuleLike module,
final SchemaSourceProvider<YangTextSchemaSource> 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;
InputStream sourceStream = null;
String source;
nnWriter.flush();
xmlWriter.flush();
} catch (XMLStreamException | IOException e) {
nnWriter.flush();
xmlWriter.flush();
} catch (XMLStreamException | IOException e) {
- throw new RuntimeException(e);
+ // FIXME: throw DocumentedException
+ throw new IllegalStateException(e);
}
return result.getNode();
}
}
return result.getNode();
}
nnStreamWriter.close();
xmlWriter.close();
} catch (IOException | XMLStreamException e) {
nnStreamWriter.close();
xmlWriter.close();
} catch (IOException | XMLStreamException e) {
+ // FIXME: throw DocumentedException
LOG.warn("Error while closing streams", e);
}
LOG.warn("Error while closing streams", e);
}
try {
return XML_OUTPUT_FACTORY.createXMLStreamWriter(result);
} catch (final XMLStreamException e) {
try {
return XML_OUTPUT_FACTORY.createXMLStreamWriter(result);
} catch (final XMLStreamException e) {
- throw new RuntimeException(e);
+ throw new IllegalStateException(e);
nnWriter.flush();
xmlWriter.flush();
} catch (XMLStreamException | IOException e) {
nnWriter.flush();
xmlWriter.flush();
} catch (XMLStreamException | IOException e) {
- throw new RuntimeException(e);
+ // FIXME: throw DocumentedException
+ throw new IllegalStateException(e);
write(nnStreamWriter, currentContext, dataRoot.coerceParent(), data);
}
} catch (IOException e) {
write(nnStreamWriter, currentContext, dataRoot.coerceParent(), data);
}
} catch (IOException e) {
- throw new RuntimeException(e);
+ // FIXME: throw DocumentedException
+ throw new IllegalStateException(e);
}
return result.getNode();
}
return result.getNode();
try {
return XML_OUTPUT_FACTORY.createXMLStreamWriter(result);
} catch (final XMLStreamException e) {
try {
return XML_OUTPUT_FACTORY.createXMLStreamWriter(result);
} catch (final XMLStreamException e) {
- throw new RuntimeException(e);
+ // FIXME: throw DocumentedException
+ throw new IllegalStateException(e);
try {
namespace = XMLNamespace.of(filterContent.getNamespace());
} catch (final IllegalArgumentException e) {
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);
*/
private FilterTree validateNode(final XmlElement element, final DataSchemaNode parentNodeSchema,
final FilterTree tree) throws ValidationException {
*/
private FilterTree validateNode(final XmlElement element, final DataSchemaNode parentNodeSchema,
final FilterTree tree) throws ValidationException {
- final List<XmlElement> childElements = element.getChildElements();
- for (final XmlElement childElement : childElements) {
+ for (final XmlElement childElement : element.getChildElements()) {
try {
final Deque<DataSchemaNode> path = findSchemaNodeByNameAndNamespace(parentNodeSchema,
childElement.getName(), XMLNamespace.of(childElement.getNamespace()));
try {
final Deque<DataSchemaNode> path = findSchemaNodeByNameAndNamespace(parentNodeSchema,
childElement.getName(), XMLNamespace.of(childElement.getNamespace()));
final DataSchemaNode childSchema = path.getLast();
validateNode(childElement, childSchema, subtree);
} catch (IllegalArgumentException | MissingNameSpaceException e) {
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);
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.junit.MockitoJUnitRunner;
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;
import org.opendaylight.mdsal.binding.generator.impl.DefaultBindingRuntimeGenerator;
import org.opendaylight.netconf.api.xml.XmlUtil;
import org.opendaylight.netconf.mdsal.notification.impl.ops.NotificationsTransformUtil;
import org.opendaylight.mdsal.binding.api.DataTreeModification;
import org.opendaylight.netconf.notifications.BaseNotificationPublisherRegistration;
import org.opendaylight.netconf.notifications.NetconfNotificationCollector;
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;
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;
private static Session createSessionWithInRpcCount(final Uint32 id, final Uint32 inRpc) {
return new SessionBuilder()
.setSessionId(id)
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();
.setUsername("user")
.setInRpcs(new ZeroBasedCounter32(inRpc))
.build();
import org.custommonkey.xmlunit.examples.RecursiveElementNameAndTextQualifier;
import org.junit.BeforeClass;
import org.junit.Test;
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;
import org.opendaylight.mdsal.binding.generator.impl.DefaultBindingRuntimeGenerator;
import org.opendaylight.netconf.api.xml.XmlUtil;
import org.opendaylight.netconf.notifications.NetconfNotification;
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.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;
import org.osgi.framework.ServiceReference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
sshProxyServer.bind(sshProxyServerConfigurationBuilder.createSshProxyServerConfiguration());
LOG.info("Netconf SSH endpoint started successfully at {}", bindingAddress);
} catch (final IOException e) {
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());
}
} 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) {
}
});
}
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));
}
final InetAddress inetAd = IetfInetUtil.INSTANCE.inetAddressFor(ipAddress);
return new InetSocketAddress(inetAd, Integer.parseInt(portNumber));
}
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.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;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
* Create an MD-SAL NETCONF server using TCP.
*/
public class NetconfNorthboundTcpServer implements AutoCloseable {
* 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;
private static final Logger LOG = LoggerFactory.getLogger(NetconfNorthboundTcpServer.class);
private final ChannelFuture tcpServer;
LOG.info("Netconf TCP endpoint started successfully at {}", inetAddress);
} else {
LOG.warn("Unable to start TCP netconf server at {}", inetAddress, future.cause());
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) {
}
});
}
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));
}
final InetAddress inetAd = IetfInetUtil.INSTANCE.inetAddressFor(ipAddress);
return new InetSocketAddress(inetAd, Integer.parseInt(portNumber));
}
<optional>true</optional>
</dependency>
<dependency>
<optional>true</optional>
</dependency>
<dependency>
- <groupId>javax.annotation</groupId>
- <artifactId>javax.annotation-api</artifactId>
+ <groupId>jakarta.annotation</groupId>
+ <artifactId>jakarta.annotation-api</artifactId>
<optional>true</optional>
</dependency>
<optional>true</optional>
</dependency>
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.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.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.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.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.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;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.binding.util.BindingMap;
import org.opendaylight.yangtools.yang.common.Revision;
@GuardedBy("this")
private long moduleSetId;
@GuardedBy("this")
@GuardedBy("this")
private long moduleSetId;
@GuardedBy("this")
- private ListenerRegistration<?> reg;
+ private Registration reg;
final var submoduleMap = module.getSubmodules().stream()
.map(subModule -> new SubmoduleBuilder()
.setName(new YangIdentifier(subModule.getName()))
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());
.build())
.collect(BindingMap.toMap());
.setName(new YangIdentifier(module.getName() + "_"
// FIXME: 'orElse' seems to be wrong here
+ module.getRevision().map(Revision::toString).orElse(null)))
.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))
.getRevisionIdentifier())
.setNamespace(new Uri(module.getNamespace().toString()))
.setFeature(extractFeatures(module))
.setModuleSet(Set.of(MODULE_SET_NAME))
.build()))
.setDatastore(BindingMap.of(new DatastoreBuilder()
.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))
.setSchema(SCHEMA_NAME)
.build()))
.setContentId(String.valueOf(moduleSetId))
.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()))
.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());
.getRevision()))
.build())
.collect(BindingMap.toMap());
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()))
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)
.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)
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.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.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;
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;
.setRevision(new Revision(new RevisionIdentifier("2013-07-22")))
.setSubmodule(BindingMap.of(new SubmoduleBuilder()
.setName(new YangIdentifier("test-submodule"))
.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())
.build()))
.setConformanceType(Module.ConformanceType.Implement)
.setFeature(Set.of())
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.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.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;
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;
private static YangLibrary createTestModuleSet() {
Submodule sub = new SubmoduleBuilder()
.setName(new YangIdentifier("test-submodule"))
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"))
.build();
Module modules = new ModuleBuilder().setName(new YangIdentifier("test-module_2013-07-22"))
.setModuleSet(Set.of(modulesSet.getName()))
.build();
.setModuleSet(Set.of(modulesSet.getName()))
.build();
- Datastore datastore = new DatastoreBuilder().setName(Operational.class)
+ Datastore datastore = new DatastoreBuilder().setName(Operational.VALUE)
.setSchema(schema.getName())
.build();
.setSchema(schema.getName())
.build();
*/
package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.nmda.rev190107;
*/
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;
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;
}
public static MaxDepth getDefaultInstance(final String defaultValue) {
}
public static MaxDepth getDefaultInstance(final String defaultValue) {
- final Optional<Enumeration> 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));
}
// FIXME: consider being stricter about number formats here
return new MaxDepth(Uint16.valueOf(defaultValue));
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>10.0.2</version>
+ <version>11.0.0</version>
<relativePath/>
</parent>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>bundle-parent</artifactId>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>bundle-parent</artifactId>
- <version>10.0.2</version>
+ <version>11.0.0</version>
<relativePath/>
</parent>
<relativePath/>
</parent>
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.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;
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;
@Test
public void testConnectDisconnectDevice() throws InterruptedException, TimeoutException, ExecutionException {
final NetconfNode netconfNode = new NetconfNodeBuilder()
@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);
.build();
createTopology(LogicalDatastoreType.CONFIGURATION);
private static Node getNetconfNode(final String nodeIdent, final String ip, final int portNumber,
final NetconfNodeConnectionStatus.ConnectionStatus cs, final String notificationCapabilityPrefix) {
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<AvailableCapability> avCapList = new ArrayList<>();
final PortNumber port = new PortNumber(Uint16.valueOf(portNumber));
final List<AvailableCapability> avCapList = new ArrayList<>();
@Override
protected void sessionUp() {
checkState(loginTime == null, "Session is already up");
@Override
protected void sessionUp() {
checkState(loginTime == null, "Session is already up");
- this.loginTime = Instant.now().atZone(ZoneId.systemDefault());
+ loginTime = Instant.now().atZone(ZoneId.systemDefault());
* Suitable for close rpc that needs to send ok response before the session is closed.
*/
public void delayedClose() {
* Suitable for close rpc that needs to send ok response before the session is closed.
*/
public void delayedClose() {
- this.delayedClose = true;
- private static Class<? extends Transport> 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);
+ };
import static org.opendaylight.netconf.api.xml.XmlNetconfConstants.URN_IETF_PARAMS_NETCONF_CAPABILITY_URL_1_0;
import com.google.common.base.Function;
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;
import com.google.common.collect.Collections2;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Maps;
synchronized Schemas getSchemas() {
try {
return transformSchemas(netconfOperationProvider.getCapabilities());
synchronized Schemas getSchemas() {
try {
return transformSchemas(netconfOperationProvider.getCapabilities());
- } catch (final RuntimeException e) {
- throw e;
} catch (final Exception e) {
} catch (final Exception e) {
+ Throwables.throwIfUnchecked(e);
throw new IllegalStateException("Exception while closing", e);
}
}
throw new IllegalStateException("Exception while closing", e);
}
}
final Map<SchemaKey, Schema> schemas = Maps.newHashMapWithExpectedSize(caps.size());
for (final Capability cap : caps) {
if (isValidModuleCapability(cap)) {
final Map<SchemaKey, Schema> 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)
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());
}
.setLocation(transformLocations(cap.getLocation()))
.build());
}
@Test
public void testOnIncommingRpcSuccess() throws Exception {
session.sessionUp();
@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());
}
assertEquals(managementSession.getInRpcs().getValue().toJava() + 1,
afterRpcSuccess.getInRpcs().getValue().longValue());
}
@Test
public void testOnIncommingRpcFail() throws Exception {
session.sessionUp();
@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());
}
assertEquals(managementSession.getInBadRpcs().getValue().toJava() + 1,
afterRpcSuccess.getInBadRpcs().getValue().longValue());
}
@Test
public void testOnOutgoingRpcError() throws Exception {
session.sessionUp();
@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());
}
assertEquals(managementSession.getOutRpcErrors().getValue().toJava() + 1,
afterRpcSuccess.getOutRpcErrors().getValue().longValue());
}
tcpSession.sessionUp();
final Session managementSession = tcpSession.toManagementSession();
assertEquals(HOST, managementSession.getSourceHost().getIpAddress().getIpv4Address().getValue());
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)
}
@Test(expected = IllegalArgumentException.class)
tcpSession.sessionUp();
final Session managementSession = tcpSession.toManagementSession();
assertEquals("::1", managementSession.getSourceHost().getIpAddress().getIpv6Address().getValue());
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());
import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
import org.opendaylight.netconf.api.monitoring.SessionEvent;
import org.opendaylight.netconf.notifications.BaseNotificationPublisherRegistration;
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;
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;
private static final Session SESSION_1 = new SessionBuilder()
.setSessionId(Uint32.valueOf(1))
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))
.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();
.setUsername("admin")
.build();
// channel handler of reconnect promise
super.channelInactive(ctx);
} catch (final Exception e) {
// channel handler of reconnect promise
super.channelInactive(ctx);
} catch (final Exception e) {
- throw new RuntimeException("Failed to delegate channel inactive event on channel " + ctx.channel(), e);
+ throw new IllegalStateException("Failed to delegate channel inactive event on channel " + ctx.channel(), e);
import org.opendaylight.mdsal.common.api.CommitInfo;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.netconf.topology.api.NetconfConnectorFactory;
import org.opendaylight.mdsal.common.api.CommitInfo;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.netconf.topology.api.NetconfConnectorFactory;
-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.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.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.Ipv6Address;
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.NetconfNodeBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.LoginPwBuilder;
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.NetconfNodeBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.LoginPwBuilder;
* Created by adetalhouet on 2016-11-03.
*/
public class NetconfConnectorFactoryImpl implements NetconfConnectorFactory {
* Created by adetalhouet on 2016-11-03.
*/
public class NetconfConnectorFactoryImpl implements NetconfConnectorFactory {
private static final Logger LOG = LoggerFactory.getLogger(NetconfConnectorFactoryImpl.class);
private static final InstanceIdentifier<Topology> TOPOLOGY_PATH = InstanceIdentifier.create(NetworkTopology.class)
private static final Logger LOG = LoggerFactory.getLogger(NetconfConnectorFactoryImpl.class);
private static final InstanceIdentifier<Topology> TOPOLOGY_PATH = InstanceIdentifier.create(NetworkTopology.class)
final Node node = new NodeBuilder()
.withKey(nodeKey)
.addAugmentation(new NetconfNodeBuilder()
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()
.setPort(new PortNumber(Uint16.valueOf(port)))
.setCredentials(new LoginPwBuilder()
.setLoginPassword(new LoginPasswordBuilder()
}, MoreExecutors.directExecutor());
return node;
}
}, 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));
+ }
+}
import akka.pattern.Patterns;
import akka.util.Timeout;
import java.util.List;
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;
import org.opendaylight.mdsal.binding.api.DataBroker;
import org.opendaylight.mdsal.dom.api.DOMActionService;
import org.opendaylight.mdsal.dom.api.DOMDataBroker;
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.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;
import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
import org.opendaylight.yangtools.yang.model.util.SchemaContextUtil;
import org.slf4j.Logger;
final DOMMountPointService mountService,
final DataBroker dataBroker) {
this.id = id;
final DOMMountPointService mountService,
final DataBroker dataBroker) {
this.id = id;
- this.salProvider = new NetconfDeviceSalProvider(id, mountService, dataBroker);
+ salProvider = new NetconfDeviceSalProvider(id, mountService, dataBroker);
this.actorSystem = actorSystem;
this.masterActorRef = masterActorRef;
this.actorResponseWaitTime = actorResponseWaitTime;
this.actorSystem = actorSystem;
this.masterActorRef = masterActorRef;
this.actorResponseWaitTime = actorResponseWaitTime;
public void onDeviceConnected(final MountPointContext mountContext,
final NetconfSessionPreferences sessionPreferences,
final DOMRpcService domRpcService, final DOMActionService domActionService) {
public void onDeviceConnected(final MountPointContext mountContext,
final NetconfSessionPreferences sessionPreferences,
final DOMRpcService domRpcService, final DOMActionService domActionService) {
- this.deviceAction = domActionService;
+ deviceAction = domActionService;
LOG.debug("{}: YANG 1.1 actions are supported in clustered netconf topology, "
+ "DOMActionService exposed for the device", id);
onDeviceConnected(mountContext, sessionPreferences, domRpcService);
LOG.debug("{}: YANG 1.1 actions are supported in clustered netconf topology, "
+ "DOMActionService exposed for the device", id);
onDeviceConnected(mountContext, sessionPreferences, domRpcService);
public void onDeviceConnected(final MountPointContext mountContext,
final NetconfSessionPreferences sessionPreferences,
final DOMRpcService domRpcService) {
public void onDeviceConnected(final MountPointContext mountContext,
final NetconfSessionPreferences sessionPreferences,
final DOMRpcService domRpcService) {
- this.currentMountContext = mountContext;
- this.netconfSessionPreferences = sessionPreferences;
- this.deviceRpc = domRpcService;
+ currentMountContext = mountContext;
+ netconfSessionPreferences = sessionPreferences;
+ deviceRpc = domRpcService;
LOG.info("Device {} connected - registering master mount point", id);
LOG.info("Device {} connected - registering master mount point", id);
}
private Future<Object> sendInitialDataToActor() {
}
private Future<Object> sendInitialDataToActor() {
- final List<SourceIdentifier> sourceIdentifiers = SchemaContextUtil.getConstituentModuleIdentifiers(
- currentMountContext.getEffectiveModelContext()).stream()
- .map(mi -> RevisionSourceIdentifier.create(mi.getName(), mi.getRevision()))
- .collect(Collectors.toList());
+ final List<SourceIdentifier> sourceIdentifiers = List.copyOf(SchemaContextUtil.getConstituentModuleIdentifiers(
+ currentMountContext.getEffectiveModelContext()));
LOG.debug("{}: Sending CreateInitialMasterActorData with sourceIdentifiers {} to {}", id, sourceIdentifiers,
masterActorRef);
LOG.debug("{}: Sending CreateInitialMasterActorData with sourceIdentifiers {} to {}", id, sourceIdentifiers,
masterActorRef);
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.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;
import org.opendaylight.yangtools.yang.common.RpcError;
import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
import org.opendaylight.yangtools.yang.common.Uint16;
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.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;
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;
resources.getSchemaRegistry().registerSchemaSource(
id -> Futures.immediateFuture(YangTextSchemaSource.delegateForByteSource(id,
topModuleInfo.getYangTextByteSource())),
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,
masterNetconfTopologyManager = new NetconfTopologyManager(BASE_SCHEMAS, masterDataBroker,
mockRpcProviderRegistry, mockActionProviderRegistry, masterClusterSingletonServiceProvider,
}
void init(final FluentFuture<DOMRpcResult> retFuture) {
}
void init(final FluentFuture<DOMRpcResult> retFuture) {
- this.returnFuture = retFuture;
+ returnFuture = retFuture;
rpcInvokedFuture = SettableFuture.create();
}
rpcInvokedFuture = SettableFuture.create();
}
import akka.testkit.javadsl.TestKit;
import akka.util.Timeout;
import com.google.common.collect.ImmutableList;
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;
import com.google.common.io.ByteSource;
import com.google.common.net.InetAddresses;
import com.google.common.util.concurrent.FluentFuture;
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.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;
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;
public class NetconfNodeActorTest extends AbstractBaseSchemasTest {
private static final Timeout TIMEOUT = Timeout.create(Duration.ofSeconds(5));
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);
private ActorSystem system = ActorSystem.create();
private final TestKit testKit = new TestKit(system);
// Now initialize - master should send the RegisterMountPoint message.
// Now initialize - master should send the RegisterMountPoint message.
- List<SourceIdentifier> sourceIdentifiers = Lists.newArrayList(RevisionSourceIdentifier.create("testID"));
+ List<SourceIdentifier> sourceIdentifiers = List.of(new SourceIdentifier("testID"));
initializeMaster(sourceIdentifiers);
masterRef.tell(new AskForMasterMountPoint(kit.getRef()), kit.getRef());
initializeMaster(sourceIdentifiers);
masterRef.tell(new AskForMasterMountPoint(kit.getRef()), kit.getRef());
final Props props = NetconfNodeActor.props(setup, remoteDeviceId, TIMEOUT, mockMountPointService);
ActorRef actor = TestActorRef.create(system, props, "master_messages_2");
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);
final ProxyYangTextSourceProvider proxyYangProvider =
new ProxyYangTextSourceProvider(actor, system.dispatcher(), TIMEOUT);
@Test
public void testYangTextSchemaSourceRequest() throws Exception {
@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);
final ProxyYangTextSourceProvider proxyYangProvider =
new ProxyYangTextSourceProvider(masterRef, system.dispatcher(), TIMEOUT);
@Test
public void testSlaveInvokeRpc() throws Exception {
@Test
public void testSlaveInvokeRpc() throws Exception {
- final List<SourceIdentifier> sourceIdentifiers =
- Lists.newArrayList(RevisionSourceIdentifier.create("testID"));
-
- initializeMaster(sourceIdentifiers);
+ initializeMaster(List.of(new SourceIdentifier("testID")));
registerSlaveMountPoint();
ArgumentCaptor<DOMRpcService> domRPCServiceCaptor = ArgumentCaptor.forClass(DOMRpcService.class);
registerSlaveMountPoint();
ArgumentCaptor<DOMRpcService> domRPCServiceCaptor = ArgumentCaptor.forClass(DOMRpcService.class);
@Test
public void testSlaveInvokeAction() throws Exception {
@Test
public void testSlaveInvokeAction() throws Exception {
- final List<SourceIdentifier> sourceIdentifiers = Lists
- .newArrayList(RevisionSourceIdentifier.create("testActionID"));
- initializeMaster(sourceIdentifiers);
+ initializeMaster(List.of(new SourceIdentifier("testActionID")));
registerSlaveMountPoint();
ArgumentCaptor<DOMActionService> domActionServiceCaptor = ArgumentCaptor.forClass(DOMActionService.class);
registerSlaveMountPoint();
ArgumentCaptor<DOMActionService> domActionServiceCaptor = ArgumentCaptor.forClass(DOMActionService.class);
import akka.testkit.TestActorRef;
import akka.testkit.javadsl.TestKit;
import akka.util.Timeout;
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 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;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
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.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;
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;
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));
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<SourceIdentifier> SOURCE_IDENTIFIERS =
- ImmutableList.of(RevisionSourceIdentifier.create("testID"));
+ private static final List<SourceIdentifier> SOURCE_IDENTIFIERS = List.of(new SourceIdentifier("testID"));
@Mock
private DOMMountPointService mockMountPointService;
@Mock
private DOMMountPointService mockMountPointService;
masterSchemaRepository.registerSchemaSourceListener(
TextToIRTransformer.create(masterSchemaRepository, masterSchemaRepository));
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,
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());
PotentialSchemaSource.create(sourceId, YangTextSchemaSource.class, 1)))
.collect(Collectors.toList());
doReturn(WRITE).when(mockDataObjModification).getModificationType();
doReturn(node).when(mockDataObjModification).getDataAfter();
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)));
new NetconfTopologyManagerTest.CustomTreeModification(DataTreeIdentifier.create(
LogicalDatastoreType.OPERATIONAL, nodeListPath), mockDataObjModification)));
doReturn(DELETE).when(mockDataObjModification).getModificationType();
doReturn(DELETE).when(mockDataObjModification).getModificationType();
- netconfNodeManager.onDataTreeChanged(Collections.singletonList(
+ netconfNodeManager.onDataTreeChanged(List.of(
new NetconfTopologyManagerTest.CustomTreeModification(DataTreeIdentifier.create(
LogicalDatastoreType.OPERATIONAL, nodeListPath), mockDataObjModification)));
new NetconfTopologyManagerTest.CustomTreeModification(DataTreeIdentifier.create(
LogicalDatastoreType.OPERATIONAL, nodeListPath), mockDataObjModification)));
doReturn(null).when(mockDataObjModification).getDataBefore();
doReturn(node).when(mockDataObjModification).getDataAfter();
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)));
new NetconfTopologyManagerTest.CustomTreeModification(DataTreeIdentifier.create(
LogicalDatastoreType.OPERATIONAL, nodeListPath), mockDataObjModification)));
doReturn(node).when(mockDataObjModification).getDataBefore();
doReturn(node).when(mockDataObjModification).getDataBefore();
- netconfNodeManager.onDataTreeChanged(Collections.singletonList(
+ netconfNodeManager.onDataTreeChanged(List.of(
new NetconfTopologyManagerTest.CustomTreeModification(DataTreeIdentifier.create(
LogicalDatastoreType.OPERATIONAL, nodeListPath), mockDataObjModification)));
new NetconfTopologyManagerTest.CustomTreeModification(DataTreeIdentifier.create(
LogicalDatastoreType.OPERATIONAL, nodeListPath), mockDataObjModification)));
doReturn(node).when(mockDataObjModification).getDataBefore();
doReturn(updatedNode).when(mockDataObjModification).getDataAfter();
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)));
new NetconfTopologyManagerTest.CustomTreeModification(DataTreeIdentifier.create(
LogicalDatastoreType.OPERATIONAL, nodeListPath), mockDataObjModification)));
// First try the registration where the perceived master hasn't been initialized as the master.
// 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)));
new NetconfTopologyManagerTest.CustomTreeModification(DataTreeIdentifier.create(
LogicalDatastoreType.OPERATIONAL, nodeListPath), mockDataObjModification)));
testMasterActorRef.underlyingActor().messagesToDrop.put(YangTextSchemaSourceRequest.class,
yangTextSchemaSourceRequestFuture);
testMasterActorRef.underlyingActor().messagesToDrop.put(YangTextSchemaSourceRequest.class,
yangTextSchemaSourceRequestFuture);
- netconfNodeManager.onDataTreeChanged(Collections.singletonList(
+ netconfNodeManager.onDataTreeChanged(List.of(
new NetconfTopologyManagerTest.CustomTreeModification(DataTreeIdentifier.create(
LogicalDatastoreType.OPERATIONAL, nodeListPath), mockDataObjModification)));
new NetconfTopologyManagerTest.CustomTreeModification(DataTreeIdentifier.create(
LogicalDatastoreType.OPERATIONAL, nodeListPath), mockDataObjModification)));
testMasterActorRef.underlyingActor().messagesToDrop.put(AskForMasterMountPoint.class,
askForMasterMountPointFuture);
testMasterActorRef.underlyingActor().messagesToDrop.put(AskForMasterMountPoint.class,
askForMasterMountPointFuture);
- netconfNodeManager.onDataTreeChanged(Collections.singletonList(
+ netconfNodeManager.onDataTreeChanged(List.of(
new NetconfTopologyManagerTest.CustomTreeModification(DataTreeIdentifier.create(
LogicalDatastoreType.OPERATIONAL, nodeListPath), mockDataObjModification)));
new NetconfTopologyManagerTest.CustomTreeModification(DataTreeIdentifier.create(
LogicalDatastoreType.OPERATIONAL, nodeListPath), mockDataObjModification)));
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>10.0.2</version>
+ <version>11.0.0</version>
<relativePath/>
</parent>
<relativePath/>
</parent>
import java.util.Collection;
import java.util.Set;
import org.opendaylight.yangtools.yang.common.QName;
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;
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;
}
private static SourceIdentifier toSourceId(final QName input) {
}
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
}
}
\ No newline at end of file
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.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;
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;
public Map<SourceIdentifier, URL> getAvailableModels() {
final Map<SourceIdentifier, URL> result = new HashMap<>();
for (final Entry<QName, URL> entry : availableModels.entrySet()) {
public Map<SourceIdentifier, URL> getAvailableModels() {
final Map<SourceIdentifier, URL> result = new HashMap<>();
for (final Entry<QName, URL> 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());
}
result.put(sId, entry.getValue());
}
deviceRpc.invokeRpc(NETCONF_GET_QNAME, GET_MODULES_STATE_MODULE_LIST_RPC).get();
} catch (final InterruptedException e) {
Thread.currentThread().interrupt();
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,
+ MODULES_STATE_MODULE_LIST, e);
} catch (final ExecutionException e) {
LOG.warn("{}: Unable to detect available schemas, get to {} failed", deviceId,
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
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;
import java.util.Optional;
import java.util.Set;
import java.util.concurrent.ExecutionException;
this.node = node;
this.eventExecutor = eventExecutor;
this.nodeOptional = nodeOptional;
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.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);
//NetconfDevice.SchemaSetup can complete after NetconfDeviceCommunicator was closed. In that case do nothing,
//since salFacade.onDeviceDisconnected was already called.
if (connected) {
//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
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 {
LOG.info("{}: Netconf connector initialized successfully", id);
} else {
this.schemaRegistry = requireNonNull(schemaRegistry);
this.schemaRepository = requireNonNull(schemaRepository);
this.schemaContextFactory = requireNonNull(schemaContextFactory);
this.schemaRegistry = requireNonNull(schemaRegistry);
this.schemaRepository = requireNonNull(schemaRepository);
this.schemaContextFactory = requireNonNull(schemaContextFactory);
- this.stateSchemasResolver = requireNonNull(deviceSchemasResolver);
+ stateSchemasResolver = requireNonNull(deviceSchemasResolver);
}
public SchemaSourceRegistry getSchemaRegistry() {
}
public SchemaSourceRegistry getSchemaRegistry() {
SchemaSetup(final DeviceSources deviceSources, final NetconfSessionPreferences remoteSessionCapabilities) {
this.deviceSources = deviceSources;
this.remoteSessionCapabilities = remoteSessionCapabilities;
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(
// If device supports notifications and does not contain necessary modules, add them automatically
if (remoteSessionCapabilities.containsNonModuleCapability(
private QName getQNameFromSourceIdentifier(final SourceIdentifier identifier) {
// Required sources are all required and provided merged in DeviceSourcesResolver
for (final QName qname : deviceSources.getRequiredSourcesQName()) {
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())) {
- if (identifier.getRevision().equals(qname.getRevision())) {
+ if (Objects.equals(identifier.revision(), qname.getRevision().orElse(null))) {
schemasNodeResult = deviceRpc.invokeRpc(NETCONF_GET_QNAME, GET_SCHEMAS_RPC).get();
} catch (final InterruptedException e) {
Thread.currentThread().interrupt();
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);
+ ": 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);
import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;
import java.util.Collection;
import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;
import java.util.Collection;
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.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;
import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
final T listener, final Absolute... types) {
return registerNotificationListener(listener, Lists.newArrayList(types));
}
final T listener, final Absolute... types) {
return registerNotificationListener(listener, Lists.newArrayList(types));
}
+
+ @Override
+ public synchronized Registration registerNotificationListeners(
+ final Map<Absolute, DOMNotificationListener> typeToListener) {
+ // FIXME: implement this
+ throw new UnsupportedOperationException();
+ }
@Override
public ListenableFuture<YangTextSchemaSource> getSource(final SourceIdentifier sourceIdentifier) {
@Override
public ListenableFuture<YangTextSchemaSource> getSource(final SourceIdentifier sourceIdentifier) {
- final String moduleName = sourceIdentifier.getName();
+ final String moduleName = sourceIdentifier.name().getLocalName();
- final Optional<String> revision = sourceIdentifier.getRevision().map(Revision::toString);
+ final Optional<String> 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(
final ContainerNode getSchemaRequest = createGetSchemaRequest(moduleName, revision);
LOG.trace("{}: Loading YANG schema source for {}:{}", id, moduleName, revision);
return Futures.transform(
import com.google.common.annotations.Beta;
import org.eclipse.jdt.annotation.NonNullByDefault;
import com.google.common.annotations.Beta;
import org.eclipse.jdt.annotation.NonNullByDefault;
-import org.opendaylight.yangtools.concepts.Immutable;
-public interface BaseNetconfSchemas extends Immutable {
+// FIXME: implements Immutable once we do not use Blueprint, or ARIES-2078 is fixed
+public interface BaseNetconfSchemas {
BaseSchema getBaseSchema();
BaseSchema getBaseSchema();
import java.net.InetSocketAddress;
import java.util.Objects;
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.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;
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;
private RemoteDeviceId(final String name) {
this.name = requireNonNull(name);
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;
}
public RemoteDeviceId(final String name, final InetSocketAddress address) {
this(name);
this.address = address;
- this.host = buildHost();
}
private 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() {
}
public String getName() {
@Override
public boolean equals(final Object obj) {
@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);
import java.util.Collections;
import java.util.Map;
import org.junit.Test;
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 {
import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
public class LibraryModulesSchemasTest {
final Map<SourceIdentifier, URL> resolvedModulesSchema = libraryModulesSchemas.getAvailableModels();
assertThat(resolvedModulesSchema.size(), is(3));
final Map<SourceIdentifier, URL> 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(
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")));
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/")));
}
is(new URL("http://localhost:8181/yanglib/schemas/module-without-revision/")));
}
final Map<SourceIdentifier, URL> resolvedModulesSchema = libraryModulesSchemas.getAvailableModels();
assertThat(resolvedModulesSchema.size(), is(1));
final Map<SourceIdentifier, URL> 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")));
//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")));
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.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.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;
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;
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 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 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;
public static final String TEST_CAPABILITY2 =
TEST_NAMESPACE + "?module=" + TEST_MODULE + "2" + "&revision=" + TEST_REVISION;
import com.google.common.util.concurrent.FluentFuture;
import java.net.InetSocketAddress;
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;
import java.util.Set;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.dom.DOMSource;
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.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.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;
import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource;
import org.w3c.dom.Document;
@Test
public void testGetSource() throws Exception {
@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,
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 {
}
private static ContainerNode getNode() throws ParserConfigurationException {
import java.nio.charset.StandardCharsets;
import java.util.Collections;
import java.util.Map;
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 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;
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;
@Before
public void setUp() throws Exception {
final URL url = getClass().getResource("/schemas/config-test-rpc.yang");
@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<SourceIdentifier, URL> sourceIdentifierURLMap = Collections.singletonMap(workingSid, url);
final RemoteDeviceId id = new RemoteDeviceId("id", new InetSocketAddress("localhost", 22));
yangLibrarySchemaYangSourceProvider = new YangLibrarySchemaYangSourceProvider(id, sourceIdentifierURLMap);
final Map<SourceIdentifier, URL> sourceIdentifierURLMap = Collections.singletonMap(workingSid, url);
final RemoteDeviceId id = new RemoteDeviceId("id", new InetSocketAddress("localhost", 22));
yangLibrarySchemaYangSourceProvider = new YangLibrarySchemaYangSourceProvider(id, sourceIdentifierURLMap);
- public void testGetSourceNotAvailable() throws Exception {
+ public void testGetSourceNotAvailable() {
assertThrows(IllegalArgumentException.class,
assertThrows(IllegalArgumentException.class,
- () -> yangLibrarySchemaYangSourceProvider.getSource(RevisionSourceIdentifier.create("aaaaa")));
+ () -> yangLibrarySchemaYangSourceProvider.getSource(new SourceIdentifier("aaaaa")));
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent</artifactId>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent</artifactId>
- <version>10.0.2</version>
+ <version>11.0.0</version>
<relativePath/>
</parent>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>bundle-parent</artifactId>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>bundle-parent</artifactId>
- <version>10.0.2</version>
+ <version>11.0.0</version>
<relativePath/>
</parent>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent</artifactId>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent</artifactId>
- <version>10.0.2</version>
+ <version>11.0.0</version>
<relativePath/>
</parent>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>bundle-parent</artifactId>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>bundle-parent</artifactId>
- <version>10.0.2</version>
+ <version>11.0.0</version>
<relativePath/>
</parent>
<relativePath/>
</parent>
<optional>true</optional>
</dependency>
<dependency>
<optional>true</optional>
</dependency>
<dependency>
- <groupId>javax.annotation</groupId>
- <artifactId>javax.annotation-api</artifactId>
+ <groupId>jakarta.annotation</groupId>
+ <artifactId>jakarta.annotation-api</artifactId>
<scope>provided</scope>
<optional>true</optional>
</dependency>
<scope>provided</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>net.sourceforge.argparse4j</groupId>
<artifactId>argparse4j</artifactId>
<dependency>
<groupId>net.sourceforge.argparse4j</groupId>
<artifactId>argparse4j</artifactId>
- <version>0.9.0</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<dependency>
<groupId>org.apache.karaf.features</groupId>
<artifactId>org.apache.karaf.features.core</artifactId>
<dependency>
<groupId>org.apache.karaf.features</groupId>
<artifactId>org.apache.karaf.features.core</artifactId>
- <version>${karaf.version}</version>
</dependency>
<dependency>
<groupId>org.xmlunit</groupId>
</dependency>
<dependency>
<groupId>org.xmlunit</groupId>
private static final Function<Capability, Schema> CAPABILITY_SCHEMA_FUNCTION = capability -> new SchemaBuilder()
.setIdentifier(capability.getModuleName().get())
.setNamespace(new Uri(capability.getModuleNamespace().get()))
private static final Function<Capability, Schema> CAPABILITY_SCHEMA_FUNCTION = capability -> new SchemaBuilder()
.setIdentifier(capability.getModuleName().get())
.setNamespace(new Uri(capability.getModuleNamespace().get()))
.setVersion(capability.getRevision().orElse(""))
.setLocation(Set.of(new Location(Enumeration.NETCONF)))
.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();
capability.getRevision().orElse("")))
.build();
public Void call() {
final List<HttpRequest> requests = prepareRequests();
if (isAsync) {
public Void call() {
final List<HttpRequest> requests = prepareRequests();
if (isAsync) {
- this.sendAsync(requests);
- this.sendSync(requests);
}
LOG.info("Requests sent, waiting for responses");
try {
}
LOG.info("Requests sent, waiting for responses");
try {
- semaphore.acquire(this.throttle);
+ semaphore.acquire(throttle);
} catch (final InterruptedException e) {
LOG.warn("Semaphore acquire interrupted");
}
} catch (final InterruptedException e) {
LOG.warn("Semaphore acquire interrupted");
}
}
} catch (final InterruptedException | IOException e) {
LOG.error("Failed to execute request: {}", request, e);
}
} 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");
}
}
LOG.info("End sending sync requests");
try {
netconfDeviceSimulator.wait();
} catch (final InterruptedException e) {
try {
netconfDeviceSimulator.wait();
} catch (final InterruptedException e) {
- throw new RuntimeException(e);
+ throw new IllegalStateException("Interrupted while waiting", e);
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.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;
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;
hashedWheelTimer = new HashedWheelTimer();
minaTimerExecutor = Executors.newScheduledThreadPool(configuration.getThreadPoolSize(),
new ThreadFactoryBuilder().setNameFormat("netconf-ssh-server-mina-timers-%d").build());
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<Capability> capabilities,
}
private NetconfServerDispatcherImpl createDispatcher(final Set<Capability> capabilities,
try {
server.get();
} catch (final InterruptedException e) {
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;
} catch (final ExecutionException e) {
LOG.warn("Cannot start ssh simulated device on {}, skipping", address, e);
continue;
try {
server.get();
} catch (final InterruptedException e) {
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;
} catch (final ExecutionException e) {
LOG.warn("Cannot start tcp simulated device on {}, skipping", address, e);
continue;
}
configuration.getDefaultYangResources().forEach(r -> {
}
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);
});
registerSource(consumer, r.getResourcePath(), sourceIdentifier);
});
schemaContext = consumer.createEffectiveModelContextFactory()
.createEffectiveModelContext(loadedSources).get();
} catch (final InterruptedException | ExecutionException e) {
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<Capability> capabilities = new HashSet<>();
}
final Set<Capability> capabilities = new HashSet<>();
private static void addModuleCapability(final SharedSchemaRepository consumer, final Set<Capability> capabilities,
final ModuleLike module) {
private static void addModuleCapability(final SharedSchemaRepository consumer, final Set<Capability> 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) {
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);
try {
return new InetSocketAddress(Inet4Address.getByName(ip), port);
} catch (final UnknownHostException e) {
try {
return new InetSocketAddress(Inet4Address.getByName(ip), port);
} catch (final UnknownHostException e) {
- throw new RuntimeException(e);
+ throw new IllegalArgumentException("Cannot resolve address " + ip, e);
*/
package org.opendaylight.netconf.test.tool;
*/
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;
import com.google.common.collect.ImmutableList;
import com.google.gson.stream.JsonWriter;
import java.io.IOException;
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.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;
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;
nodeWriter.write(node);
} catch (final IOException e) {
LOG.error("Failed to serialize node: {} to JSON", node, e);
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();
}
}
return writer.toString();
}
import ch.qos.logback.classic.Level;
import com.google.common.base.Stopwatch;
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;
import com.google.common.io.CharStreams;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.io.BufferedReader;
SEMAPHORE.acquire();
root.warn("semaphore released");
} catch (InterruptedException e) {
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);
}
timeoutGuardFuture.cancel(false);
for (File f : files) {
if (f.isDirectory()) {
deleteFolder(f);
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);
private static void waitNetconfTopologyReady(final TesttoolParameters params) {
root.info("Wait for Netconf topology to be accessible via Restconf");
HttpResponse<String> response = requestNetconfTopology(params);
private static void waitNetconfTopologyReady(final TesttoolParameters params) {
root.info("Wait for Netconf topology to be accessible via Restconf");
HttpResponse<String> 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 {
if (response == null) {
root.warn("Failed to get response from controller, going to sleep...");
} else {
}
try {
Thread.sleep(1000L);
}
try {
Thread.sleep(1000L);
- response = requestNetconfTopology(params);
} catch (InterruptedException e) {
} 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());
}
}
root.info("Returned status code {}, Netconf topology is accessible", response.statusCode());
}
root.warn(e.getMessage());
return null;
} catch (InterruptedException e) {
root.warn(e.getMessage());
return null;
} catch (InterruptedException e) {
- throw new RuntimeException(e);
+ throw new IllegalStateException("Interrupted while waiting for response", e);
- @SuppressWarnings("checkstyle:illegalCatch")
public static class LoggingWrapperExecutor extends ScheduledThreadPoolExecutor {
public LoggingWrapperExecutor(final int corePoolSize) {
super(corePoolSize);
public static class LoggingWrapperExecutor extends ScheduledThreadPoolExecutor {
public LoggingWrapperExecutor(final int corePoolSize) {
super(corePoolSize);
+ @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);
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
// rethrow so that the executor can do it's thing
- throw new RuntimeException(e);
+ throw new IllegalStateException(e);
LOG.warn("Request failed {}", netconfMessageRpcResult);
}
} catch (final InterruptedException e) {
LOG.warn("Request failed {}", netconfMessageRpcResult);
}
} catch (final InterruptedException e) {
- throw new RuntimeException(e);
+ throw new IllegalStateException(e);
} catch (final ExecutionException | TimeoutException e) {
} catch (final ExecutionException | TimeoutException e) {
- throw new RuntimeException("Request not finished", e);
+ throw new IllegalStateException("Request not finished", e);
try {
future.get(4L, TimeUnit.MINUTES);
} catch (ExecutionException | TimeoutException e) {
try {
future.get(4L, TimeUnit.MINUTES);
} catch (ExecutionException | TimeoutException e) {
- throw new RuntimeException(e);
+ throw new IllegalStateException(e);
}
}
executorService.shutdownNow();
} catch (final InterruptedException e) {
}
}
executorService.shutdownNow();
} catch (final InterruptedException e) {
- throw new RuntimeException("Unable to execute requests", e);
+ throw new IllegalStateException("Unable to execute requests", e);
} else {
netconfClientDispatcher = ConfigurableClientDispatcher.createChunkedExi(nioGroup, nioGroup, timer);
}
} else {
netconfClientDispatcher = ConfigurableClientDispatcher.createChunkedExi(nioGroup, nioGroup, timer);
}
+ } else if (params.legacyFraming) {
+ netconfClientDispatcher = ConfigurableClientDispatcher.createLegacy(nioGroup, nioGroup, timer);
- if (params.legacyFraming) {
- netconfClientDispatcher = ConfigurableClientDispatcher.createLegacy(nioGroup, nioGroup, timer);
- } else {
- netconfClientDispatcher = ConfigurableClientDispatcher.createChunked(nioGroup, nioGroup, timer);
- }
+ netconfClientDispatcher = ConfigurableClientDispatcher.createChunked(nioGroup, nioGroup, timer);
}
return netconfClientDispatcher;
}
}
return netconfClientDispatcher;
}
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
* 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;
package org.opendaylight.netconf.test.tool.client.stress;
import io.netty.util.concurrent.GlobalEventExecutor;
final NetconfClientDispatcherImpl netconfClientDispatcher,
final List<NetconfMessage> preparedMessages) {
this.params = params;
final NetconfClientDispatcherImpl netconfClientDispatcher,
final List<NetconfMessage> preparedMessages) {
this.params = params;
- this.sessionListener = getSessionListener(params.getInetAddress(), params.concurrentMessageLimit);
+ sessionListener = getSessionListener(params.getInetAddress(), params.concurrentMessageLimit);
this.netconfClientDispatcher = netconfClientDispatcher;
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) {
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) {
} catch (final ExecutionException e) {
- throw new RuntimeException("Unable to connect", e);
+ throw new IllegalStateException("Unable to connect", e);
}
executionStrategy = getExecutionStrategy(params, preparedMessages, sessionListener);
}
}
executionStrategy = getExecutionStrategy(params, preparedMessages, sessionListener);
}
netconfClientConfigurationBuilder.withSessionListener(sessionListener);
netconfClientConfigurationBuilder.withAddress(params.getInetAddress());
if (params.tcpHeader != null) {
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
netconfClientConfigurationBuilder.withAdditionalHeader(
new NetconfHelloMessageAdditionalHeader(null, null, null, null, null) {
@Override
}
} catch (final InterruptedException e) {
}
} catch (final InterruptedException e) {
- throw new RuntimeException(e);
+ throw new IllegalStateException(e);
} catch (final ExecutionException | TimeoutException e) {
} catch (final ExecutionException | TimeoutException e) {
- throw new RuntimeException("Request not finished", e);
+ throw new IllegalStateException("Request not finished", e);
res = new DOMResult();
marshaller.marshal(monitoringModel, res);
} catch (final JAXBException e) {
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();
}
}
return ((Document) res.getNode()).getDocumentElement();
}
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
* 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;
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;
import com.google.common.collect.Collections2;
import java.util.Collection;
import javax.xml.bind.annotation.XmlElement;
@XmlElement(name = "format")
public String getFormat() {
@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
return "yang";
}
}
\ No newline at end of file
import com.google.common.base.Joiner;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlTransient;
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;
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;
@XmlElement(name = "transport")
public String getTransport() {
try {
@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,
// 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,
import java.util.Set;
import java.util.stream.Collectors;
import org.opendaylight.yangtools.yang.binding.YangModuleInfo;
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.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;
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;
// creation of source identifiers for all yang module info
cachedSchemas = allModulesInfo.stream()
.map(yangModuleInfo -> {
// 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));
return new AbstractMap.SimpleEntry<>(revisionSourceIdentifier, yangModuleInfo);
})
.collect(Collectors.toMap(AbstractMap.SimpleEntry::getKey, AbstractMap.SimpleEntry::getValue));
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>10.0.2</version>
+ <version>11.0.0</version>
<relativePath/>
</parent>
<relativePath/>
</parent>
import org.opendaylight.aaa.web.ServletDetails;
import org.opendaylight.aaa.web.WebContext;
import org.opendaylight.aaa.web.WebContextBuilder;
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.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.
/**
* Initializes the wep app.
* @author Thomas Pantelis
*/
public class WebInitializer {
* @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 {
public WebInitializer(WebServer webServer, WebContextSecurer webContextSecurer, ServletSupport servletSupport,
Application webApp) throws ServletException {
import java.nio.charset.Charset;
import java.util.HashMap;
import java.util.Map;
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 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.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;
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;
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.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;
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;
final Map<ModuleKey, Module> newModules = new HashMap<>();
for (PotentialSchemaSource<?> potentialYangSource : Iterables.filter(sources, YANG_SCHEMA_SOURCE)) {
final Map<ModuleKey, Module> 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)
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();
.setSchema(getUrlForModule(potentialYangSource.getSourceIdentifier()))
.build();
WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
tx.delete(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(ModulesState.class)
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<CommitInfo>() {
@Override
tx.commit().addCallback(new FutureCallback<CommitInfo>() {
@Override
@Override
public String getSchema(final String name, final String revision) {
LOG.debug("Attempting load for schema source {}:{}", name, revision);
@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<YangTextSchemaSource> sourceFuture = schemaRepository.getSchemaSource(sourceId,
YangTextSchemaSource.class);
final ListenableFuture<YangTextSchemaSource> sourceFuture = schemaRepository.getSchemaSource(sourceId,
YangTextSchemaSource.class);
private Uri getUrlForModule(final SourceIdentifier sourceIdentifier) {
return new Uri("http://" + yanglibConfig.getBindingAddr() + ':' + yanglibConfig.getBindingPort()
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) {
}
private static String revString(final SourceIdentifier id) {
- return id.getRevision().map(Revision::toString).orElse("");
+ final var rev = id.revision();
+ return rev != null ? rev.toString() : "";
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.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.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;
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;
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.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;
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;
List<PotentialSchemaSource<?>> list = new ArrayList<>();
list.add(
List<PotentialSchemaSource<?>> 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(
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();
YangTextSchemaSource.class, PotentialSchemaSource.Costs.IMMEDIATE.getValue()));
doReturn(emptyFluentFuture()).when(writeTransaction).commit();
Module newModule = new ModuleBuilder()
.setName(new YangIdentifier("no-revision"))
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();
.setSchema(new Uri("http://www.fake.com:300/yanglib/schemas/no-revision/"))
.build();
// expected behavior is to do nothing
potentialSources = new ArrayList<>();
potentialSources.add(
// 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(
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);
IRSchemaSource.class, PotentialSchemaSource.Costs.IMMEDIATE.getValue()));
yangLibProvider.schemaSourceRegistered(potentialSources);
// add yang schema source to list
potentialSources.add(
// 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);
YangTextSchemaSource.class, PotentialSchemaSource.Costs.IMMEDIATE.getValue()));
when(dataBroker.newWriteOnlyTransaction()).thenReturn(writeTransaction);
yangLibProvider.init();
final PotentialSchemaSource<YinSchemaSourceRepresentation> nonYangSource =
yangLibProvider.init();
final PotentialSchemaSource<YinSchemaSourceRepresentation> nonYangSource =
- PotentialSchemaSource.create(
- RevisionSourceIdentifier.create("yin-source-representation"),
+ PotentialSchemaSource.create(new SourceIdentifier("yin-source-representation"),
YinSchemaSourceRepresentation.class, PotentialSchemaSource.Costs.IMMEDIATE.getValue());
yangLibProvider.schemaSourceUnregistered(nonYangSource);
YinSchemaSourceRepresentation.class, PotentialSchemaSource.Costs.IMMEDIATE.getValue());
yangLibProvider.schemaSourceUnregistered(nonYangSource);
doReturn(emptyFluentFuture()).when(writeTransaction).commit();
PotentialSchemaSource<YangTextSchemaSource> yangUnregistererSource =
doReturn(emptyFluentFuture()).when(writeTransaction).commit();
PotentialSchemaSource<YangTextSchemaSource> 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);
yangLibProvider.schemaSourceUnregistered(yangUnregistererSource);
eq(InstanceIdentifier.create(ModulesState.class)
.child(Module.class,
new ModuleKey(new YangIdentifier("unregistered-yang-schema-without-revision"),
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 =
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);
YangTextSchemaSource.class, PotentialSchemaSource.Costs.LOCAL_IO.getValue());
yangLibProvider.schemaSourceUnregistered(yangUnregistererSource);
<parent>
<groupId>org.opendaylight.mdsal</groupId>
<artifactId>binding-parent</artifactId>
<parent>
<groupId>org.opendaylight.mdsal</groupId>
<artifactId>binding-parent</artifactId>
- <version>9.0.3</version>
+ <version>10.0.0</version>
<relativePath/>
</parent>
<relativePath/>
</parent>
<dependency>
<groupId>org.opendaylight.aaa</groupId>
<artifactId>aaa-artifacts</artifactId>
<dependency>
<groupId>org.opendaylight.aaa</groupId>
<artifactId>aaa-artifacts</artifactId>
- <version>0.15.4</version>
+ <version>0.16.0-SNAPSHOT</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.opendaylight.controller</groupId>
<artifactId>bundle-parent</artifactId>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.opendaylight.controller</groupId>
<artifactId>bundle-parent</artifactId>
- <version>5.0.4</version>
+ <version>6.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.opendaylight.infrautils</groupId>
<artifactId>infrautils-artifacts</artifactId>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.opendaylight.infrautils</groupId>
<artifactId>infrautils-artifacts</artifactId>
- <version>3.0.1</version>
+ <version>4.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<type>pom</type>
<scope>import</scope>
</dependency>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>10.0.2</version>
+ <version>11.0.0</version>
<relativePath/>
</parent>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>10.0.2</version>
+ <version>11.0.0</version>
<relativePath/>
</parent>
<relativePath/>
</parent>
<artifactId>mdsal-dom-api</artifactId>
</dependency>
<dependency>
<artifactId>mdsal-dom-api</artifactId>
</dependency>
<dependency>
- <groupId>javax.ws.rs</groupId>
- <artifactId>javax.ws.rs-api</artifactId>
+ <groupId>jakarta.ws.rs</groupId>
+ <artifactId>jakarta.ws.rs-api</artifactId>
</dependency>
<dependency>
</dependency>
<dependency>
import java.util.Map;
import java.util.Optional;
import org.eclipse.jdt.annotation.NonNull;
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;
import org.opendaylight.yangtools.yang.common.QNameModule;
import org.opendaylight.yangtools.yang.common.UnresolvedQName;
import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
return Collections.emptySet();
}
return Collections.emptySet();
}
- @Override
- public final Optional<SemVer> getSemanticVersion() {
- return Optional.empty();
- }
-
@Override
public final Optional<String> getOrganization() {
return Optional.empty();
@Override
public final Optional<String> getOrganization() {
return Optional.empty();
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>10.0.2</version>
+ <version>11.0.0</version>
<relativePath/>
</parent>
<relativePath/>
</parent>
<artifactId>javax.servlet-api</artifactId>
</dependency>
<dependency>
<artifactId>javax.servlet-api</artifactId>
</dependency>
<dependency>
- <groupId>javax.ws.rs</groupId>
- <artifactId>javax.ws.rs-api</artifactId>
+ <groupId>jakarta.ws.rs</groupId>
+ <artifactId>jakarta.ws.rs-api</artifactId>
</dependency>
<dependency>
</dependency>
<dependency>
- <groupId>javax.annotation</groupId>
- <artifactId>javax.annotation-api</artifactId>
+ <groupId>jakarta.annotation</groupId>
+ <artifactId>jakarta.annotation-api</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<optional>true</optional>
</dependency>
<dependency>
<dependency>
<groupId>org.skyscreamer</groupId>
<artifactId>jsonassert</artifactId>
<dependency>
<groupId>org.skyscreamer</groupId>
<artifactId>jsonassert</artifactId>
+ <version>1.5.0</version>
<scope>test</scope>
</dependency>
<dependency>
<scope>test</scope>
</dependency>
<dependency>
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.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;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.Revision;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
private final DOMDataBroker domDataBroker;
private final DOMSchemaService domSchemaService;
private final DOMDataBroker domDataBroker;
private final DOMSchemaService domSchemaService;
- private ListenerRegistration<?> listenerRegistration;
+ private Registration listenerRegistration;
private volatile EffectiveModelContext schemaContext;
private volatile EffectiveModelContext schemaContext;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.ext.Provider;
import org.opendaylight.restconf.common.schema.SchemaExportContext;
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.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
import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource;
@Provider
public void writeTo(final SchemaExportContext context, final Class<?> type, final Type genericType,
final Annotation[] annotations, final MediaType mediaType,
final MultivaluedMap<String, Object> httpHeaders, final OutputStream entityStream) throws IOException {
public void writeTo(final SchemaExportContext context, final Class<?> type, final Type genericType,
final Annotation[] annotations, final MediaType mediaType,
final MultivaluedMap<String, Object> 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();
final YangTextSchemaSource yangTextSchemaSource;
try {
yangTextSchemaSource = context.getSourceProvider().getSource(sourceId).get();
}
@SuppressWarnings("checkstyle:IllegalCatch")
}
@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) {
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);
Throwables.throwIfInstanceOf(exception, RestconfDocumentedException.class);
LOG.debug("Error parsing json input", exception);
final String scopeName = extractStringLeaf(data, SCOPE_NODEID);
// FIXME: this is not really used
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)
return RestconfStreamsConstants.DATA_SUBSCRIPTION
+ "/" + ListenersBroker.createStreamNameFromUri(IdentifierCodec.serialize(path, schemaContext)
import org.opendaylight.aaa.web.ServletDetails;
import org.opendaylight.aaa.web.WebContext;
import org.opendaylight.aaa.web.WebContextBuilder;
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.aaa.web.WebContextSecurer;
import org.opendaylight.aaa.web.WebServer;
import org.opendaylight.aaa.web.servlet.ServletSupport;
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.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.
/**
* Initializes the rfc8040 web app endpoint.
*/
@Singleton
public class WebInitializer {
*/
@Singleton
public class WebInitializer {
- private final WebContextRegistration registration;
+ private final Registration registration;
@Inject
public WebInitializer(final WebServer webServer, final WebContextSecurer webContextSecurer,
@Inject
public WebInitializer(final WebServer webServer, final WebContextSecurer webContextSecurer,
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>10.0.2</version>
+ <version>11.0.0</version>
<relativePath/>
</parent>
<relativePath/>
</parent>
import org.opendaylight.aaa.web.ServletDetails;
import org.opendaylight.aaa.web.WebContext;
import org.opendaylight.aaa.web.WebContextBuilder;
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.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.
/**
* Initializes the wep app.
* @author Thomas Pantelis
*/
public class WebInitializer {
* @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 {
public WebInitializer(WebServer webServer, WebContextSecurer webContextSecurer, ServletSupport servletSupport,
Application webApp) throws ServletException {
builder.append("xmlns:");
builder.append(imprt.getPrefix());
builder.append("=\"");
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();
}
builder.append("\"");
builder.newLineIfNotEmpty();
}
private String createPath(final DataSchemaNode schemaNode) {
pathListParams = new ArrayList<>();
StringBuilder path = new StringBuilder().append(schemaNode.getQName().getLocalName());
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('}');
for (final QName listKey : listNode.getKeyDefinition()) {
pathListParams.add((LeafSchemaNode) listNode.getDataChildByName(listKey));
path.append("'/{").append(listKey.getLocalName()).append('}');