diff --git a/Dockerfile b/Dockerfile
index 1b7d7ccb..331a78ef 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,4 @@
-ARG VERSION="23.0.0-SNAPSHOT"
+ARG VERSION="23.0.0"
FROM maven:3.9-eclipse-temurin-21-alpine as build
diff --git a/README.md b/README.md
index b441ebfe..62260166 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,7 @@ mvn clean install
```
* The NETCONF Device Library build is located at:
-`lighty-netconf-device\target\lighty-netconf-device-23.0.0-SNAPSHOT.jar`
+`lighty-netconf-device\target\lighty-netconf-device-23.0.0.jar`
* The build & run procedures for the example devices are described in each device's README.
diff --git a/examples/devices/lighty-actions-device/README.md b/examples/devices/lighty-actions-device/README.md
index 00f68474..07ec528c 100644
--- a/examples/devices/lighty-actions-device/README.md
+++ b/examples/devices/lighty-actions-device/README.md
@@ -28,12 +28,12 @@ Build root project - for more details check: [README](../../../README.md)
* extract binary distribution in target directory
* run jar file from zip with default parameter
```
-java -jar lighty-action-device-23.0.0-SNAPSHOT.jar
+java -jar lighty-action-device-23.0.0.jar
```
To run device on specific port, add port number as an argument
* run device on specific port `12345` (any available port)
```
-java -jar lighty-action-device-23.0.0-SNAPSHOT.jar 12345
+java -jar lighty-action-device-23.0.0.jar 12345
```
### Connect to device via SSH
diff --git a/examples/devices/lighty-actions-device/pom.xml b/examples/devices/lighty-actions-device/pom.xml
index ff60a299..c0a7f7a9 100644
--- a/examples/devices/lighty-actions-device/pom.xml
+++ b/examples/devices/lighty-actions-device/pom.xml
@@ -14,7 +14,7 @@
io.lighty.netconf.device.examples
examples-parent
- 23.0.0-SNAPSHOT
+ 23.0.0
../../parents/examples-parent/pom.xml
diff --git a/examples/devices/lighty-actions-device/src/main/java/io/lighty/netconf/device/action/processors/ResetActionProcessor.java b/examples/devices/lighty-actions-device/src/main/java/io/lighty/netconf/device/action/processors/ResetActionProcessor.java
index c68e2fb5..a19b17db 100644
--- a/examples/devices/lighty-actions-device/src/main/java/io/lighty/netconf/device/action/processors/ResetActionProcessor.java
+++ b/examples/devices/lighty-actions-device/src/main/java/io/lighty/netconf/device/action/processors/ResetActionProcessor.java
@@ -31,9 +31,8 @@
import org.opendaylight.yang.gen.v1.urn.example.data.center.rev180807.server.Reset;
import org.opendaylight.yang.gen.v1.urn.example.data.center.rev180807.server.ResetInput;
import org.opendaylight.yang.gen.v1.urn.example.data.center.rev180807.server.ResetOutput;
+import org.opendaylight.yangtools.binding.DataObjectIdentifier;
import org.opendaylight.yangtools.binding.data.codec.spi.BindingDOMCodecServices;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
@@ -79,12 +78,11 @@ protected CompletableFuture execute(final Element requestXmlElement) {
Preconditions.checkNotNull(key);
final Class listItem = Server.class;
final ServerKey listKey = new ServerKey(key);
- final InstanceIdentifier instanceIdentifier = InstanceIdentifier.builder(listItem, listKey).build();
- final KeyedInstanceIdentifier keydIID
- = (KeyedInstanceIdentifier) instanceIdentifier;
+ final DataObjectIdentifier.WithKey identifier = DataObjectIdentifier
+ .builder(listItem, listKey).build();
final ListenableFuture> outputFuture =
- this.resetAction.invoke(keydIID.toIdentifier(), input);
+ this.resetAction.invoke(identifier, input);
final CompletableFuture completableFuture = new CompletableFuture<>();
Futures.addCallback(outputFuture, new FutureCallback>() {
diff --git a/examples/devices/lighty-network-topology-device/README.md b/examples/devices/lighty-network-topology-device/README.md
index 53ee948d..d458aab0 100644
--- a/examples/devices/lighty-network-topology-device/README.md
+++ b/examples/devices/lighty-network-topology-device/README.md
@@ -19,12 +19,12 @@ Build root project - for more details check: [README](../../../README.md)
* extract binary distribution in target directory
* run jar file from zip with default parameter
```
-java -jar lighty-network-topology-device-23.0.0-SNAPSHOT.jar
+java -jar lighty-network-topology-device-23.0.0.jar
```
* to run device on specific port it is necessary to add port number as an argument
* run device on specific port `12345` (any available port)
```
-java -jar lighty-network-topology-device-23.0.0-SNAPSHOT.jar 12345
+java -jar lighty-network-topology-device-23.0.0.jar 12345
```
### Connect to device via SSH
@@ -650,4 +650,4 @@ The directory **must** contain the following files:
When -i argument is not set, persistence is disabled by default:
Example Startup Command:
-`java -jar lighty-network-topology-device-23.0.0-SNAPSHOT.jar -i path/to/persistence/directory -o path/to/persistence/directory`
+`java -jar lighty-network-topology-device-23.0.0.jar -i path/to/persistence/directory -o path/to/persistence/directory`
diff --git a/examples/devices/lighty-network-topology-device/pom.xml b/examples/devices/lighty-network-topology-device/pom.xml
index 0ff9a2ea..d1b0b023 100644
--- a/examples/devices/lighty-network-topology-device/pom.xml
+++ b/examples/devices/lighty-network-topology-device/pom.xml
@@ -14,7 +14,7 @@
io.lighty.netconf.device.examples
examples-parent
- 23.0.0-SNAPSHOT
+ 23.0.0
../../parents/examples-parent/pom.xml
diff --git a/examples/devices/lighty-network-topology-device/src/main/java/io/lighty/netconf/device/topology/datastore/DataTreeChangeListenerActivator.java b/examples/devices/lighty-network-topology-device/src/main/java/io/lighty/netconf/device/topology/datastore/DataTreeChangeListenerActivator.java
index 70b54ed0..b55fc7bb 100644
--- a/examples/devices/lighty-network-topology-device/src/main/java/io/lighty/netconf/device/topology/datastore/DataTreeChangeListenerActivator.java
+++ b/examples/devices/lighty-network-topology-device/src/main/java/io/lighty/netconf/device/topology/datastore/DataTreeChangeListenerActivator.java
@@ -9,19 +9,18 @@
import io.lighty.netconf.device.requests.notification.NotificationPublishService;
import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology;
+import org.opendaylight.yangtools.binding.DataObjectIdentifier;
import org.opendaylight.yangtools.concepts.Registration;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public final class DataTreeChangeListenerActivator {
private static final Logger LOG = LoggerFactory.getLogger(DataTreeChangeListenerActivator.class);
- private static final InstanceIdentifier TOPOLOGY_II =
- InstanceIdentifier.create(NetworkTopology.class);
+ private static final DataObjectIdentifier TOPOLOGY_ID =
+ DataObjectIdentifier.builder(NetworkTopology.class).build();
private final DataBroker dataBroker;
private final NotificationPublishService notificationPublishService;
@@ -36,9 +35,8 @@ public DataTreeChangeListenerActivator(final NotificationPublishService notifica
public void init() {
TopologyDataTreeChangeListener topologyDataTreeChangeListener =
new TopologyDataTreeChangeListener(notificationPublishService);
- dataTreeChangeListenerRegistration =
- dataBroker.registerDataTreeChangeListener(DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION,
- TOPOLOGY_II), topologyDataTreeChangeListener);
+ dataTreeChangeListenerRegistration = dataBroker.registerTreeChangeListener(LogicalDatastoreType.CONFIGURATION,
+ TOPOLOGY_ID, topologyDataTreeChangeListener);
LOG.info("Data tree change listener registered");
}
diff --git a/examples/devices/lighty-network-topology-device/src/main/java/io/lighty/netconf/device/topology/datastore/TopologyDataTreeChangeListener.java b/examples/devices/lighty-network-topology-device/src/main/java/io/lighty/netconf/device/topology/datastore/TopologyDataTreeChangeListener.java
index d21c3958..b0e15845 100644
--- a/examples/devices/lighty-network-topology-device/src/main/java/io/lighty/netconf/device/topology/datastore/TopologyDataTreeChangeListener.java
+++ b/examples/devices/lighty-network-topology-device/src/main/java/io/lighty/netconf/device/topology/datastore/TopologyDataTreeChangeListener.java
@@ -12,7 +12,8 @@
import java.util.List;
import java.util.Set;
import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.mdsal.binding.api.DataObjectModification;
+import org.opendaylight.mdsal.binding.api.DataObjectDeleted;
+import org.opendaylight.mdsal.binding.api.DataObjectModification.WithDataAfter;
import org.opendaylight.mdsal.binding.api.DataTreeChangeListener;
import org.opendaylight.mdsal.binding.api.DataTreeModification;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology;
@@ -36,48 +37,41 @@ final class TopologyDataTreeChangeListener implements DataTreeChangeListener> changes) {
- changes.stream().forEach(change -> {
- DataObjectModification.ModificationType modificationType = change.getRootNode().getModificationType();
+ changes.forEach(change -> {
+ final var rootNode = change.getRootNode();
Set ids = new HashSet<>();
- final NetworkTopology dataBefore = change.getRootNode().getDataBefore();
- final NetworkTopology dataAfter = change.getRootNode().getDataAfter();
- if (DataObjectModification.ModificationType.DELETE.equals(modificationType)) {
-
- LOG.info("Data has been deleted");
-
- notificationForDeletedData(dataBefore, dataAfter, ids);
- } else if (DataObjectModification.ModificationType.SUBTREE_MODIFIED.equals(modificationType)
- || DataObjectModification.ModificationType.WRITE.equals(modificationType)) {
-
- int sizeOfDataBefore = 0;
- int sizeOfDataAfter = 0;
-
- if (dataBefore != null) {
- sizeOfDataBefore = dataBefore.getTopology().size();
- }
-
- if (dataAfter != null) {
- sizeOfDataAfter = dataAfter.getTopology().size();
- }
-
- if (sizeOfDataBefore < sizeOfDataAfter) {
- LOG.info("Data has been created");
+ switch (rootNode) {
+ case WithDataAfter written -> {
+ final var dataBefore = written.dataBefore();
+ final var dataAfter = written.dataAfter();
+ int sizeOfDataBefore = 0;
+ int sizeOfDataAfter = dataAfter.nonnullTopology().size();
if (dataBefore != null) {
- dataBefore.nonnullTopology().values().forEach(topology -> ids.add(topology.getTopologyId()));
+ sizeOfDataBefore = dataBefore.nonnullTopology().size();
}
- if (dataAfter != null) {
+ if (sizeOfDataBefore < sizeOfDataAfter) {
+ LOG.info("Data has been created");
+ if (dataBefore != null) {
+ dataBefore.nonnullTopology().values().forEach(
+ topology -> ids.add(topology.getTopologyId()));
+ }
+
dataAfter.nonnullTopology().values().forEach(topology -> {
if (!ids.contains(topology.getTopologyId())) {
notificationPublishService.publish(new NewTopologyCreatedBuilder()
- .setTopologyId(topology.getTopologyId())
- .build(), NewTopologyCreated.QNAME);
+ .setTopologyId(topology.getTopologyId())
+ .build(), NewTopologyCreated.QNAME);
}
});
+ } else {
+ LOG.info("Data has been modified");
+ notificationForDeletedData(dataBefore, dataAfter, ids);
}
- } else {
- LOG.info("Data has been modified");
- notificationForDeletedData(dataBefore, dataAfter, ids);
+ }
+ case DataObjectDeleted deleted -> {
+ LOG.info("Data has been deleted");
+ notificationForDeletedData(deleted.dataBefore(), null, ids);
}
}
});
diff --git a/examples/devices/lighty-network-topology-device/src/main/java/io/lighty/netconf/device/topology/rpcs/NetworkTopologyServiceImpl.java b/examples/devices/lighty-network-topology-device/src/main/java/io/lighty/netconf/device/topology/rpcs/NetworkTopologyServiceImpl.java
index 9af0d5e5..e78db16b 100644
--- a/examples/devices/lighty-network-topology-device/src/main/java/io/lighty/netconf/device/topology/rpcs/NetworkTopologyServiceImpl.java
+++ b/examples/devices/lighty-network-topology-device/src/main/java/io/lighty/netconf/device/topology/rpcs/NetworkTopologyServiceImpl.java
@@ -30,15 +30,15 @@
import org.opendaylight.mdsal.binding.api.ReadTransaction;
import org.opendaylight.mdsal.binding.api.WriteTransaction;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev241009.ConnectionOper.ConnectionStatus;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev241009.connection.oper.AvailableCapabilitiesBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev241009.connection.oper.UnavailableCapabilitiesBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev241009.connection.oper.available.capabilities.AvailableCapability;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev241009.connection.oper.available.capabilities.AvailableCapabilityBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev240911.NetconfNodeAugment;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev240911.NetconfNodeAugmentBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev240911.netconf.node.augment.NetconfNode;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev240911.netconf.node.augment.NetconfNodeBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev251028.ConnectionOper.ConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev251028.connection.oper.AvailableCapabilitiesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev251028.connection.oper.UnavailableCapabilitiesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev251028.connection.oper.available.capabilities.AvailableCapability;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev251028.connection.oper.available.capabilities.AvailableCapabilityBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev251103.NetconfNodeAugment;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev251103.NetconfNodeAugmentBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev251103.netconf.node.augment.NetconfNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev251103.netconf.node.augment.NetconfNodeBuilder;
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.TopologyId;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
@@ -75,7 +75,7 @@
import org.opendaylight.yang.gen.v1.urn.tech.pantheon.netconfdevice.network.topology.rpcs.rev230927.node.data.NodeBuilder;
import org.opendaylight.yang.gen.v1.urn.tech.pantheon.netconfdevice.network.topology.rpcs.rev230927.node.data.NodeKey;
import org.opendaylight.yang.gen.v1.urn.tech.pantheon.netconfdevice.network.topology.rpcs.rev230927.topology.data.TopologyKey;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.binding.DataObjectIdentifier;
import org.opendaylight.yangtools.yang.common.Revision;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
@@ -170,8 +170,8 @@ public RpcResult call() throws Exception {
.setTopologyId(topologyId)
.setNode(nodeConfigMap)
.build();
- final InstanceIdentifier tii =
- InstanceIdentifier.builder(NetworkTopology.class).child(Topology.class,
+ final DataObjectIdentifier tii =
+ DataObjectIdentifier.builder(NetworkTopology.class).child(Topology.class,
topology.key()).build();
writeTxConfig.merge(LogicalDatastoreType.CONFIGURATION, tii, topology);
topology = new TopologyBuilder()
@@ -206,8 +206,8 @@ public RpcResult call() throws Exception {
final WriteTransaction writeTxConfig =
NetworkTopologyServiceImpl.this.dataBrokerService.newWriteOnlyTransaction();
final Topology topology = new TopologyBuilder().setTopologyId(input.getTopologyId()).build();
- final InstanceIdentifier tii =
- InstanceIdentifier.builder(NetworkTopology.class).child(Topology.class,
+ final DataObjectIdentifier tii =
+ DataObjectIdentifier.builder(NetworkTopology.class).child(Topology.class,
topology.key()).build();
writeTxConfig.merge(LogicalDatastoreType.CONFIGURATION, tii, topology);
writeTxOper.merge(LogicalDatastoreType.OPERATIONAL, tii, topology);
@@ -233,8 +233,8 @@ public ListenableFuture> removeTopology(final Re
@Override
public RpcResult call() throws Exception {
final Topology topology = new TopologyBuilder().setTopologyId(input.getTopologyId()).build();
- final InstanceIdentifier tii =
- InstanceIdentifier.builder(NetworkTopology.class)
+ final DataObjectIdentifier tii =
+ DataObjectIdentifier.builder(NetworkTopology.class)
.child(Topology.class, topology.key())
.build();
removeFromDatastore(tii);
@@ -263,9 +263,9 @@ public RpcResult call() throws Exception {
new org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology
.rev131021.network.topology.topology.NodeKey(input.getNodeId());
- final InstanceIdentifier nii =
- InstanceIdentifier.builder(NetworkTopology.class)
+ DataObjectIdentifier.builder(NetworkTopology.class)
.child(Topology.class, topology.key())
.child(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology
.rev131021.network.topology.topology.Node.class, nk)
@@ -291,8 +291,8 @@ public ListenableFuture> removeAllTopologie
this.executor.submit(new Callable>() {
@Override
public RpcResult call() throws Exception {
- final InstanceIdentifier ntii =
- InstanceIdentifier.builder(NetworkTopology.class).build();
+ final DataObjectIdentifier ntii =
+ DataObjectIdentifier.builder(NetworkTopology.class).build();
removeFromDatastore(ntii);
final RemoveAllTopologiesOutput topologiesOutput = new RemoveAllTopologiesOutputBuilder().build();
final RpcResult rpcResult = RpcResultBuilder.success(topologiesOutput)
@@ -316,8 +316,8 @@ public RpcResult call() throws Exception {
try (ReadTransaction readTx =
NetworkTopologyServiceImpl.this.dataBrokerService.newReadOnlyTransaction()) {
final Topology topology = new TopologyBuilder().setTopologyId(input.getTopologyId()).build();
- final InstanceIdentifier tii =
- InstanceIdentifier.builder(NetworkTopology.class)
+ final DataObjectIdentifier tii =
+ DataObjectIdentifier.builder(NetworkTopology.class)
.child(Topology.class, topology.key())
.build();
final Optional readTopology = readTx.read(LogicalDatastoreType.CONFIGURATION, tii)
@@ -401,9 +401,9 @@ public RpcResult call() throws Exception {
new org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology
.rev131021.network.topology.topology.NodeKey(input.getNodeId());
- final InstanceIdentifier tii =
- InstanceIdentifier.builder(NetworkTopology.class)
+ DataObjectIdentifier.builder(NetworkTopology.class)
.child(Topology.class, topology.key())
.child(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology
.rev131021.network.topology.topology.Node.class, nk)
@@ -466,8 +466,8 @@ public ListenableFuture> getTopologies(final GetT
public RpcResult call() throws Exception {
try (ReadTransaction readTx =
NetworkTopologyServiceImpl.this.dataBrokerService.newReadOnlyTransaction()) {
- final InstanceIdentifier tii =
- InstanceIdentifier.builder(NetworkTopology.class).build();
+ final DataObjectIdentifier tii =
+ DataObjectIdentifier.builder(NetworkTopology.class).build();
final Optional networkTopology =
readTx.read(LogicalDatastoreType.CONFIGURATION, tii)
.get(TimeoutUtil.TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
@@ -541,12 +541,12 @@ public void setEffectiveModelContext(final EffectiveModelContext effectiveModelC
}
@SuppressFBWarnings("UPM_UNCALLED_PRIVATE_METHOD")
- private void removeFromDatastore(final InstanceIdentifier> instanceIdentifier)
+ private void removeFromDatastore(final DataObjectIdentifier> identifier)
throws ExecutionException, InterruptedException, TimeoutException {
final WriteTransaction writeTxConfig = this.dataBrokerService.newWriteOnlyTransaction();
final WriteTransaction writeTxOper = this.dataBrokerService.newWriteOnlyTransaction();
- writeTxConfig.delete(LogicalDatastoreType.CONFIGURATION, instanceIdentifier);
- writeTxOper.delete(LogicalDatastoreType.OPERATIONAL, instanceIdentifier);
+ writeTxConfig.delete(LogicalDatastoreType.CONFIGURATION, identifier);
+ writeTxOper.delete(LogicalDatastoreType.OPERATIONAL, identifier);
writeTxConfig.commit().get(TimeoutUtil.TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
writeTxOper.commit().get(TimeoutUtil.TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
}
@@ -554,8 +554,8 @@ private void removeFromDatastore(final InstanceIdentifier> instanceIdentifier)
@SuppressFBWarnings("UPM_UNCALLED_PRIVATE_METHOD")
private Set prepareGetTopologyIds() throws ExecutionException, InterruptedException, TimeoutException {
try (ReadTransaction readTx = this.dataBrokerService.newReadOnlyTransaction()) {
- final InstanceIdentifier ntii =
- InstanceIdentifier.builder(NetworkTopology.class)
+ final DataObjectIdentifier ntii =
+ DataObjectIdentifier.builder(NetworkTopology.class)
.build();
final Optional networkTopology = readTx.read(LogicalDatastoreType.CONFIGURATION, ntii)
.get(TimeoutUtil.TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
diff --git a/examples/devices/lighty-notifications-device/README.md b/examples/devices/lighty-notifications-device/README.md
index c364b930..f573aec2 100644
--- a/examples/devices/lighty-notifications-device/README.md
+++ b/examples/devices/lighty-notifications-device/README.md
@@ -10,16 +10,16 @@ Check commands in [Notifications device model](#notifications-device-model) on h
Build root project - for more details check: [README](../../../README.md)
**Run device**
-* extract binary distribution `lighty-notifications-device-23.0.0-SNAPSHOT-bin.zip`
+* extract binary distribution `lighty-notifications-device-23.0.0-bin.zip`
from target directory
* run jar file from zip with default parameter
```
-java -jar lighty-notifications-device-23.0.0-SNAPSHOT.jar
+java -jar lighty-notifications-device-23.0.0.jar
```
To run device on specific port, add port number as an argument
* run device on specific port `12345` (any available port)
```
-java -jar lighty-notifications-device-23.0.0-SNAPSHOT.jar 12345
+java -jar lighty-notifications-device-23.0.0.jar 12345
```
### Connect to device via SSH
diff --git a/examples/devices/lighty-notifications-device/pom.xml b/examples/devices/lighty-notifications-device/pom.xml
index 8e0e7b34..0f5742e7 100644
--- a/examples/devices/lighty-notifications-device/pom.xml
+++ b/examples/devices/lighty-notifications-device/pom.xml
@@ -14,7 +14,7 @@
io.lighty.netconf.device.examples
examples-parent
- 23.0.0-SNAPSHOT
+ 23.0.0
../../parents/examples-parent/pom.xml
diff --git a/examples/devices/lighty-toaster-device/README.md b/examples/devices/lighty-toaster-device/README.md
index 5aabd608..566f0ee1 100644
--- a/examples/devices/lighty-toaster-device/README.md
+++ b/examples/devices/lighty-toaster-device/README.md
@@ -13,16 +13,16 @@ of the processor calls method of `ToasterServiceImpl` which implements
Build root project - for more details check: [README](../../../README.md)
**Run device**
-* extract binary distribution `lighty-toaster-device-23.0.0-SNAPSHOT-bin.zip`
+* extract binary distribution `lighty-toaster-device-23.0.0-bin.zip`
from target directory
* run jar file from zip with default parameter
```
-java -jar lighty-toaster-device-23.0.0-SNAPSHOT.jar
+java -jar lighty-toaster-device-23.0.0.jar
```
To run device on specific port, add port number as an argument
* run device on specific port `12345` (any available port)
```
-java -jar lighty-toaster-device-23.0.0-SNAPSHOT.jar 12345
+java -jar lighty-toaster-device-23.0.0.jar 12345
```
### Connect to device via SSH
@@ -334,4 +334,4 @@ Persistence can be manually enabled or disabled in the application's initial arg
When -i argument is not set, persistence is disabled by default:
Example Startup Command:
-`java -jar lighty-toaster-device-23.0.0-SNAPSHOT.jar -i path/to/persistence/directory -o path/to/persistence/directory`
+`java -jar lighty-toaster-device-23.0.0.jar -i path/to/persistence/directory -o path/to/persistence/directory`
diff --git a/examples/devices/lighty-toaster-device/pom.xml b/examples/devices/lighty-toaster-device/pom.xml
index 5ed95e39..2ecae88b 100644
--- a/examples/devices/lighty-toaster-device/pom.xml
+++ b/examples/devices/lighty-toaster-device/pom.xml
@@ -14,7 +14,7 @@
io.lighty.netconf.device.examples
examples-parent
- 23.0.0-SNAPSHOT
+ 23.0.0
../../parents/examples-parent/pom.xml
diff --git a/examples/devices/lighty-toaster-multiple-devices/README.md b/examples/devices/lighty-toaster-multiple-devices/README.md
index a29d24d4..fa2cca34 100644
--- a/examples/devices/lighty-toaster-multiple-devices/README.md
+++ b/examples/devices/lighty-toaster-multiple-devices/README.md
@@ -13,7 +13,7 @@ Build root project - for more details check: [README](../../../README.md)
`--starting-port STARTING-PORT` (Default 17380) First port for simulated device. Each other device will use incremented port number.
`--thread-pool-size THREAD-POOL-SIZE` (Default 8) The number of threads to keep in the pool, when creating a device simulator, even if they are idle.
```
-java -jar lighty-toaster-multiple-devices-23.0.0-SNAPSHOT.jar --starting-port 20000 --device-count 200 --thread-pool-size 200
+java -jar lighty-toaster-multiple-devices-23.0.0.jar --starting-port 20000 --device-count 200 --thread-pool-size 200
```
### Connect to device via SSH
@@ -198,4 +198,4 @@ Persistence can be manually enabled or disabled in the application's initial arg
When -i argument is not set, persistence is disabled by default:
Example Startup Command:
-`java -jar lighty-toaster-multiple-devices-23.0.0-SNAPSHOT.jar -i path/to/persistence/directory -o path/to/persistence/directory`
+`java -jar lighty-toaster-multiple-devices-23.0.0.jar -i path/to/persistence/directory -o path/to/persistence/directory`
diff --git a/examples/devices/lighty-toaster-multiple-devices/pom.xml b/examples/devices/lighty-toaster-multiple-devices/pom.xml
index 946d99f6..570c3b17 100644
--- a/examples/devices/lighty-toaster-multiple-devices/pom.xml
+++ b/examples/devices/lighty-toaster-multiple-devices/pom.xml
@@ -14,7 +14,7 @@
io.lighty.netconf.device.examples
examples-parent
- 23.0.0-SNAPSHOT
+ 23.0.0
../../parents/examples-parent/pom.xml
diff --git a/examples/devices/pom.xml b/examples/devices/pom.xml
index c75579e2..7e029ca9 100644
--- a/examples/devices/pom.xml
+++ b/examples/devices/pom.xml
@@ -13,7 +13,7 @@
io.lighty.netconf.device.examples
devices-aggregator
- 23.0.0-SNAPSHOT
+ 23.0.0
pom
diff --git a/examples/models/lighty-example-data-center-model/pom.xml b/examples/models/lighty-example-data-center-model/pom.xml
index 5896bdf5..33422de2 100644
--- a/examples/models/lighty-example-data-center-model/pom.xml
+++ b/examples/models/lighty-example-data-center-model/pom.xml
@@ -12,11 +12,11 @@
io.lighty.core
lighty-binding-parent
- 22.0.0
+ 23.0.0
io.lighty.netconf.device.examples.models
lighty-example-data-center-model
- 23.0.0-SNAPSHOT
+ 23.0.0
diff --git a/examples/models/lighty-example-network-topology-device-model/pom.xml b/examples/models/lighty-example-network-topology-device-model/pom.xml
index 70963f7b..bafd788e 100644
--- a/examples/models/lighty-example-network-topology-device-model/pom.xml
+++ b/examples/models/lighty-example-network-topology-device-model/pom.xml
@@ -12,13 +12,13 @@
io.lighty.core
lighty-binding-parent
- 22.0.0
+ 23.0.0
io.lighty.netconf.device.examples.models
lighty-example-network-topology-device-model
- 23.0.0-SNAPSHOT
+ 23.0.0
diff --git a/examples/models/lighty-example-network-topology-device-model/src/main/yang/network-topology-rpcs@2023-09-27.yang b/examples/models/lighty-example-network-topology-device-model/src/main/yang/network-topology-rpcs@2023-09-27.yang
index 68e7de8b..d084d4dd 100644
--- a/examples/models/lighty-example-network-topology-device-model/src/main/yang/network-topology-rpcs@2023-09-27.yang
+++ b/examples/models/lighty-example-network-topology-device-model/src/main/yang/network-topology-rpcs@2023-09-27.yang
@@ -6,8 +6,8 @@ module network-topology-rpcs {
prefix "ntr";
import network-topology { prefix "nt"; revision-date 2013-10-21; }
- import netconf-node-topology { prefix "nnt"; revision-date 2024-09-11; }
- import odl-netconf-device { prefix "ond"; revision-date 2024-10-09; }
+ import netconf-node-topology { prefix "nnt"; revision-date 2025-11-03; }
+ import odl-netconf-device { prefix "ond"; revision-date 2025-10-28; }
organization "Pantheon.tech";
diff --git a/examples/models/lighty-example-notifications-model/pom.xml b/examples/models/lighty-example-notifications-model/pom.xml
index 56ea13c7..eefaf98e 100644
--- a/examples/models/lighty-example-notifications-model/pom.xml
+++ b/examples/models/lighty-example-notifications-model/pom.xml
@@ -12,12 +12,12 @@
io.lighty.core
lighty-binding-parent
- 22.0.0
+ 23.0.0
io.lighty.netconf.device.examples.models
lighty-example-notifications-model
- 23.0.0-SNAPSHOT
+ 23.0.0
diff --git a/examples/models/pom.xml b/examples/models/pom.xml
index c97b79ab..c3ea61fd 100644
--- a/examples/models/pom.xml
+++ b/examples/models/pom.xml
@@ -11,7 +11,7 @@
io.lighty.netconf.device.examples.models
lighty-models-aggregator
- 23.0.0-SNAPSHOT
+ 23.0.0
pom
diff --git a/examples/parents/examples-bom/pom.xml b/examples/parents/examples-bom/pom.xml
index 4917c885..0ef16127 100644
--- a/examples/parents/examples-bom/pom.xml
+++ b/examples/parents/examples-bom/pom.xml
@@ -11,7 +11,7 @@
io.lighty.netconf.device.examples
examples-bom
- 23.0.0-SNAPSHOT
+ 23.0.0
pom
${project.groupId}:${project.artifactId}
@@ -26,42 +26,42 @@
io.lighty.netconf.device.examples.models
lighty-example-network-topology-device-model
- 23.0.0-SNAPSHOT
+ 23.0.0
io.lighty.netconf.device.examples.models
lighty-example-data-center-model
- 23.0.0-SNAPSHOT
+ 23.0.0
io.lighty.netconf.device
lighty-netconf-device
- 23.0.0-SNAPSHOT
+ 23.0.0
io.lighty.netconf.device.examples
lighty-actions-device
- 23.0.0-SNAPSHOT
+ 23.0.0
io.lighty.netconf.device.examples
lighty-toaster-device
- 23.0.0-SNAPSHOT
+ 23.0.0
io.lighty.netconf.device.examples
lighty-network-topology-device
- 23.0.0-SNAPSHOT
+ 23.0.0
io.lighty.netconf.device.examples
lighty-toaster-multiple-devices
- 23.0.0-SNAPSHOT
+ 23.0.0
io.lighty.netconf.device.examples.models
lighty-example-notifications-model
- 23.0.0-SNAPSHOT
+ 23.0.0
diff --git a/examples/parents/examples-parent/pom.xml b/examples/parents/examples-parent/pom.xml
index 892880a8..704a3249 100644
--- a/examples/parents/examples-parent/pom.xml
+++ b/examples/parents/examples-parent/pom.xml
@@ -14,13 +14,13 @@
io.lighty.core
lighty-app-parent
- 22.0.0
+ 23.0.0
io.lighty.netconf.device.examples
examples-parent
- 23.0.0-SNAPSHOT
+ 23.0.0
pom
${project.groupId}:${project.artifactId}
@@ -45,7 +45,7 @@
io.lighty.netconf.device.examples
examples-bom
- 23.0.0-SNAPSHOT
+ 23.0.0
pom
import
diff --git a/examples/parents/pom.xml b/examples/parents/pom.xml
index a12318ad..32731072 100644
--- a/examples/parents/pom.xml
+++ b/examples/parents/pom.xml
@@ -12,7 +12,7 @@
io.lighty.netconf.device.examples.parents
parents-aggregator
pom
- 23.0.0-SNAPSHOT
+ 23.0.0
examples-parent
diff --git a/examples/pom.xml b/examples/pom.xml
index 4b74d131..a6be679f 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -14,7 +14,7 @@
io.lighty.netconf.device.examples
examples-aggregator
pom
- 23.0.0-SNAPSHOT
+ 23.0.0
parents
diff --git a/lighty-netconf-device/pom.xml b/lighty-netconf-device/pom.xml
index 5797aea1..cd5696ea 100644
--- a/lighty-netconf-device/pom.xml
+++ b/lighty-netconf-device/pom.xml
@@ -14,13 +14,13 @@
io.lighty.core
lighty-parent
- 22.0.0
+ 23.0.0
io.lighty.netconf.device
lighty-netconf-device
- 23.0.0-SNAPSHOT
+ 23.0.0
jar
@@ -33,7 +33,7 @@
lighty-codecs-util
- org.opendaylight.mdsal.binding.model.ietf
+ org.opendaylight.ietf.model
rfc8639
diff --git a/lighty-netconf-device/src/main/java/io/lighty/netconf/device/NetconfDeviceImpl.java b/lighty-netconf-device/src/main/java/io/lighty/netconf/device/NetconfDeviceImpl.java
index 3b3bcc54..34586c4f 100644
--- a/lighty-netconf-device/src/main/java/io/lighty/netconf/device/NetconfDeviceImpl.java
+++ b/lighty-netconf-device/src/main/java/io/lighty/netconf/device/NetconfDeviceImpl.java
@@ -53,8 +53,8 @@
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.Schema;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.SchemaBuilder;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.schemas.SchemaKey;
+import org.opendaylight.yangtools.binding.DataObjectIdentifier;
import org.opendaylight.yangtools.binding.meta.YangModuleInfo;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.Revision;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
@@ -125,7 +125,7 @@ void initDatastore(LogicalDatastoreType datastoreType, File initialData) {
NormalizedNode initialDataBI = netconfDeviceServices.getXmlNodeConverter()
.deserialize(netconfDeviceServices.getRootInference(), reader);
DOMDataTreeWriteTransaction writeTx = netconfDeviceServices.getDOMDataBroker().newWriteOnlyTransaction();
- writeTx.put(datastoreType, YangInstanceIdentifier.empty(), initialDataBI);
+ writeTx.put(datastoreType, YangInstanceIdentifier.of(), initialDataBI);
writeTx.commit().get(TimeoutUtil.TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
final String dataTreeString = NormalizedNodes.toStringTree(initialDataBI);
LOG.trace("Initial {} datastore data: {}", datastoreType, dataTreeString);
@@ -224,7 +224,7 @@ private FluentFuture extends CommitInfo> prepareSchemasForNetconfMonitoring()
}
WriteTransaction writeTx = netconfDeviceServices.getDataBroker().newWriteOnlyTransaction();
writeTx.merge(LogicalDatastoreType.OPERATIONAL,
- InstanceIdentifier.builder(NetconfState.class).child(Schemas.class).build(),
+ DataObjectIdentifier.builder(NetconfState.class).child(Schemas.class).build(),
new SchemasBuilder().setSchema(mapSchemas).build());
return writeTx.commit();
}
diff --git a/lighty-netconf-device/src/main/java/io/lighty/netconf/device/NetconfDeviceServicesImpl.java b/lighty-netconf-device/src/main/java/io/lighty/netconf/device/NetconfDeviceServicesImpl.java
index 48db9a77..748028b1 100644
--- a/lighty-netconf-device/src/main/java/io/lighty/netconf/device/NetconfDeviceServicesImpl.java
+++ b/lighty-netconf-device/src/main/java/io/lighty/netconf/device/NetconfDeviceServicesImpl.java
@@ -25,6 +25,7 @@
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.mdsal.dom.api.DOMDataBroker;
import org.opendaylight.mdsal.dom.broker.DOMNotificationRouter;
+import org.opendaylight.mdsal.dom.broker.RouterDOMNotificationService;
import org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker;
import org.opendaylight.mdsal.dom.spi.store.DOMStore;
import org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore;
@@ -74,7 +75,7 @@ public NetconfDeviceServicesImpl(
this.domDataBroker = createDOMDataBroker();
this.dataBroker = new BindingDOMDataBrokerAdapter(this.adapterContext, this.domDataBroker);
this.notificationService = new BindingDOMNotificationServiceAdapter(this.adapterContext,
- this.domNotificationRouter.notificationService());
+ new RouterDOMNotificationService(domNotificationRouter));
this.xmlNodeConverter = new XmlNodeConverter(this.effectiveModelContext);
}
diff --git a/lighty-netconf-device/src/main/java/io/lighty/netconf/device/requests/DatastoreOutputRequestProcessor.java b/lighty-netconf-device/src/main/java/io/lighty/netconf/device/requests/DatastoreOutputRequestProcessor.java
index 6462191f..6f1da5a1 100644
--- a/lighty-netconf-device/src/main/java/io/lighty/netconf/device/requests/DatastoreOutputRequestProcessor.java
+++ b/lighty-netconf-device/src/main/java/io/lighty/netconf/device/requests/DatastoreOutputRequestProcessor.java
@@ -48,7 +48,7 @@ protected List getAllDataFromDatastore(LogicalDatastoreType data
Optional listData;
try (DOMDataTreeReadTransaction domDataReadOnlyTransaction = domDataBroker.newReadOnlyTransaction()) {
FluentFuture> readData =
- domDataReadOnlyTransaction.read(datastoreType, YangInstanceIdentifier.empty());
+ domDataReadOnlyTransaction.read(datastoreType, YangInstanceIdentifier.of());
listData = readData.get(TimeoutUtil.TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
if (listData.isPresent()) {
diff --git a/lighty-netconf-device/src/main/java/io/lighty/netconf/device/requests/EditConfigRequestProcessor.java b/lighty-netconf-device/src/main/java/io/lighty/netconf/device/requests/EditConfigRequestProcessor.java
index f5c75eb4..2d91eb70 100644
--- a/lighty-netconf-device/src/main/java/io/lighty/netconf/device/requests/EditConfigRequestProcessor.java
+++ b/lighty-netconf-device/src/main/java/io/lighty/netconf/device/requests/EditConfigRequestProcessor.java
@@ -218,7 +218,7 @@ private void ensureParentsByMerge(final YangInstanceIdentifier path, final DOMDa
while (it.hasNext()) {
final PathArgument pathArgument = it.next();
if (rootNormalizedPath == null) {
- rootNormalizedPath = YangInstanceIdentifier.create(pathArgument);
+ rootNormalizedPath = YangInstanceIdentifier.of(pathArgument);
}
if (it.hasNext()) {
@@ -233,7 +233,7 @@ private void ensureParentsByMerge(final YangInstanceIdentifier path, final DOMDa
Preconditions.checkArgument(rootNormalizedPath != null, "Empty path received");
final NormalizedNode parentStructure = ImmutableNodes.fromInstanceId(effectiveModelContext,
- YangInstanceIdentifier.create(normalizedPathWithoutChildArgs));
+ YangInstanceIdentifier.of(normalizedPathWithoutChildArgs));
writeTx.merge(LogicalDatastoreType.CONFIGURATION, rootNormalizedPath, parentStructure);
}
@@ -302,7 +302,7 @@ private static YangInstanceIdentifier getYangInstanceIdentifier(final List keyValues = next.name().asMap();
targetIdentifier = YangInstanceIdentifier
- .builder(YangInstanceIdentifier.create(targetIdentifier.getPathArguments()))
+ .builder(YangInstanceIdentifier.of(targetIdentifier.getPathArguments()))
.nodeWithKey(contextNode.dataSchemaNode().getQName(), keyValues).build();
} else {
- targetIdentifier = YangInstanceIdentifier.create(targetIdentifier.getPathArguments())
+ targetIdentifier = YangInstanceIdentifier.of(targetIdentifier.getPathArguments())
.node(contextNode.getPathStep());
}
}
diff --git a/lighty-netconf-device/src/test/java/io/lighty/netconf/device/NetconfDeviceImplTest.java b/lighty-netconf-device/src/test/java/io/lighty/netconf/device/NetconfDeviceImplTest.java
index 15d552ed..1844557e 100644
--- a/lighty-netconf-device/src/test/java/io/lighty/netconf/device/NetconfDeviceImplTest.java
+++ b/lighty-netconf-device/src/test/java/io/lighty/netconf/device/NetconfDeviceImplTest.java
@@ -32,8 +32,8 @@
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyBuilder;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder;
+import org.opendaylight.yangtools.binding.DataObjectIdentifier;
import org.opendaylight.yangtools.binding.meta.YangModuleInfo;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodes;
import org.testng.Assert;
@@ -80,8 +80,8 @@ public void testInitDatastore() throws ExecutionException, InterruptedException,
file);
//create identifier
final Topology topology = new TopologyBuilder().setTopologyId(new TopologyId("default-topology")).build();
- final InstanceIdentifier tii =
- InstanceIdentifier.builder(NetworkTopology.class)
+ final DataObjectIdentifier tii =
+ DataObjectIdentifier.builder(NetworkTopology.class)
.child(Topology.class, topology.key())
.build();
//read the datastore using the identifier from the simulator
@@ -100,8 +100,8 @@ public void testSaveDatastore() throws ExecutionException, InterruptedException,
TimeoutException, DeserializationException {
//create identifier
final Topology topology = new TopologyBuilder().setTopologyId(new TopologyId("default-topology")).build();
- final InstanceIdentifier tii =
- InstanceIdentifier.builder(NetworkTopology.class)
+ final DataObjectIdentifier tii =
+ DataObjectIdentifier.builder(NetworkTopology.class)
.child(Topology.class, topology.key())
.build();
//write a new topology to device using the identifier
diff --git a/pom.xml b/pom.xml
index 1df7ac18..df761a17 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,7 +13,7 @@
io.lighty.netconf.device
netconf-device-aggregator
- 23.0.0-SNAPSHOT
+ 23.0.0
pom