From 8c818cca755e6d51ef7e9ccaaef819dda9744b15 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 28 Aug 2026 22:57:15 +0200 Subject: [PATCH 1/9] Use real binding objects Overzealous mocking strikes again: mocking generated DTOs breaks now, as their getValue() method is final. Change-Id: Id0c10d1561cd476bc6d3e46f9390eed9516b4569 Signed-off-by: Robert Varga --- .../ovsdb/southbound/OvsdbConnectionManagerTest.java | 4 +--- .../ovsdb/southbound/SouthboundUtilTest.java | 10 ++++------ .../transactions/md/OvsdbBridgeUpdateCommandTest.java | 4 +--- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/OvsdbConnectionManagerTest.java b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/OvsdbConnectionManagerTest.java index 33d14118a..85609c83a 100644 --- a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/OvsdbConnectionManagerTest.java +++ b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/OvsdbConnectionManagerTest.java @@ -355,9 +355,7 @@ public class OvsdbConnectionManagerTest { PowerMockito.mockStatic(OvsdbConnectionService.class); // when(OvsdbConnectionService.getService()).thenReturn(ovsdbConnection); - PortNumber port = mock(PortNumber.class); - when(connectionInfo.getRemotePort()).thenReturn(port); - when(port.getValue()).thenReturn(Uint16.valueOf(8080)); + when(connectionInfo.getRemotePort()).thenReturn(new PortNumber(Uint16.valueOf(8080))); OvsdbClient client = mock(OvsdbClient.class); when(ovsdbConnection.connect(any(InetAddress.class), anyInt())).thenReturn(client); diff --git a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/SouthboundUtilTest.java b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/SouthboundUtilTest.java index 0eb7afc18..cafb99a80 100644 --- a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/SouthboundUtilTest.java +++ b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/SouthboundUtilTest.java @@ -62,14 +62,12 @@ public class SouthboundUtilTest { public void testGetManagingNode() throws Exception { OvsdbBridgeAttributes mn = mock(OvsdbBridgeAttributes.class); DataBroker db = mock(DataBroker.class); - OvsdbNodeRef ref = mock(OvsdbNodeRef.class); ReadTransaction transaction = mock(ReadTransaction.class); when(db.newReadOnlyTransaction()).thenReturn(transaction); - when(mn.getManagedBy()).thenReturn(ref); - when(ref.getValue()).thenAnswer(invocation -> DataObjectIdentifier.builder(NetworkTopology.class) - .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) - .child(Node.class, new NodeKey(new NodeId("testNode"))) - .build()); + when(mn.getManagedBy()).thenReturn(new OvsdbNodeRef(DataObjectIdentifier.builder(NetworkTopology.class) + .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) + .child(Node.class, new NodeKey(new NodeId("testNode"))) + .build())); FluentFuture> nf = mock(FluentFuture.class); when(transaction.read(eq(LogicalDatastoreType.OPERATIONAL), any(DataObjectIdentifier.class))).thenReturn(nf); doNothing().when(transaction).close(); diff --git a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbBridgeUpdateCommandTest.java b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbBridgeUpdateCommandTest.java index 23beb4118..fec96889b 100644 --- a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbBridgeUpdateCommandTest.java +++ b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/transactions/md/OvsdbBridgeUpdateCommandTest.java @@ -456,9 +456,7 @@ public class OvsdbBridgeUpdateCommandTest { when(SouthboundMapper.createControllerEntries(any(Bridge.class), any(Map.class))) .thenReturn(controllerEntryList); when(controllerEntry.getIsConnected()).thenReturn(true); - Uri uri = mock(Uri.class); - when(controllerEntry.getTarget()).thenReturn(uri); - when(uri.getValue()).thenReturn("tcp:192.168.12.56:6633"); + when(controllerEntry.getTarget()).thenReturn(new Uri("tcp:192.168.12.56:6633")); PowerMockito.mockStatic(NetworkInterface.class); NetworkInterface networkInterface = PowerMockito.mock(NetworkInterface.class); -- 2.34.1 From 65fefd6b1878b4af32d5839ecd62414fde8d77a1 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sat, 22 Aug 2026 09:50:16 +0200 Subject: [PATCH 2/9] Bump upstreams Adopt: - odlparent-14.3.7 - infrautils-7.1.14 - yangtools-15.1.5 - ietf-2.0.6 - mdsal-16.0.6 - controller-13.0.4 - aaa-0.23.4 - netconf-11.0.1 Change-Id: Ibe1661a23fc851408c2279defe58a49562b9bdab Signed-off-by: Robert Varga --- commons/binding-parent/pom.xml | 6 +++--- commons/it/pom.xml | 4 ++-- commons/pom.xml | 2 +- hwvtepsouthbound/hwvtepsouthbound-artifacts/pom.xml | 2 +- hwvtepsouthbound/hwvtepsouthbound-features/features/pom.xml | 2 +- .../odl-ovsdb-hwvtepsouthbound-api/pom.xml | 4 ++-- .../odl-ovsdb-hwvtepsouthbound-rest/pom.xml | 4 ++-- .../odl-ovsdb-hwvtepsouthbound-test/pom.xml | 2 +- .../odl-ovsdb-hwvtepsouthbound-ui/pom.xml | 4 ++-- .../odl-ovsdb-hwvtepsouthbound/pom.xml | 2 +- hwvtepsouthbound/hwvtepsouthbound-features/pom.xml | 2 +- hwvtepsouthbound/hwvtepsouthbound-karaf/pom.xml | 2 +- hwvtepsouthbound/pom.xml | 2 +- library/artifacts/pom.xml | 2 +- library/features/features/pom.xml | 2 +- library/features/odl-ovsdb-library/pom.xml | 4 ++-- library/features/pom.xml | 2 +- library/karaf/pom.xml | 2 +- library/pom.xml | 2 +- pom.xml | 2 +- schemas/pom.xml | 2 +- southbound/pom.xml | 2 +- southbound/southbound-artifacts/pom.xml | 2 +- southbound/southbound-features/features/pom.xml | 2 +- .../southbound-features/odl-ovsdb-southbound-api/pom.xml | 4 ++-- .../odl-ovsdb-southbound-impl-rest/pom.xml | 4 ++-- .../odl-ovsdb-southbound-impl-ui/pom.xml | 4 ++-- .../southbound-features/odl-ovsdb-southbound-impl/pom.xml | 4 ++-- .../southbound-features/odl-ovsdb-southbound-test/pom.xml | 2 +- southbound/southbound-features/pom.xml | 2 +- southbound/southbound-karaf/pom.xml | 2 +- utils/odl-ovsdb-utils/pom.xml | 4 ++-- utils/pom.xml | 2 +- 33 files changed, 45 insertions(+), 45 deletions(-) diff --git a/commons/binding-parent/pom.xml b/commons/binding-parent/pom.xml index b89a0569a..2f33e2cd0 100644 --- a/commons/binding-parent/pom.xml +++ b/commons/binding-parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.mdsal binding-parent - 16.0.3 + 16.0.6 @@ -25,14 +25,14 @@ org.opendaylight.aaa aaa-artifacts - 0.23.2 + 0.23.4 pom import org.opendaylight.infrautils infrautils-artifacts - 7.1.12 + 7.1.14 pom import diff --git a/commons/it/pom.xml b/commons/it/pom.xml index 549b871e8..41cc4a5fc 100644 --- a/commons/it/pom.xml +++ b/commons/it/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller mdsal-it-parent - 13.0.2 + 13.0.4 @@ -70,7 +70,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.mdsal mdsal-artifacts - 16.0.3 + 16.0.6 pom import diff --git a/commons/pom.xml b/commons/pom.xml index 537125f54..0eb9c3e68 100644 --- a/commons/pom.xml +++ b/commons/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent odlparent-lite - 14.3.1 + 14.3.7 diff --git a/hwvtepsouthbound/hwvtepsouthbound-artifacts/pom.xml b/hwvtepsouthbound/hwvtepsouthbound-artifacts/pom.xml index 50979bed3..a3d7afef5 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-artifacts/pom.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-artifacts/pom.xml @@ -13,7 +13,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent odlparent-lite - 14.3.1 + 14.3.7 diff --git a/hwvtepsouthbound/hwvtepsouthbound-features/features/pom.xml b/hwvtepsouthbound/hwvtepsouthbound-features/features/pom.xml index 052cd79e9..edf2bd173 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-features/features/pom.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-features/features/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent feature-repo-parent - 14.3.1 + 14.3.7 diff --git a/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-api/pom.xml b/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-api/pom.xml index bcf4dc199..19d3e50ac 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-api/pom.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-api/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent single-feature-parent - 14.3.1 + 14.3.7 @@ -22,7 +22,7 @@ org.opendaylight.mdsal mdsal-artifacts - 16.0.3 + 16.0.6 pom import diff --git a/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-rest/pom.xml b/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-rest/pom.xml index 16f5a6b94..5b067a405 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-rest/pom.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-rest/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent single-feature-parent - 14.3.1 + 14.3.7 @@ -30,7 +30,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.netconf netconf-artifacts - 11.0.0 + 11.0.1 import pom diff --git a/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-test/pom.xml b/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-test/pom.xml index 6da7dfe90..ac977fc69 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-test/pom.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-test/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent single-feature-parent - 14.3.1 + 14.3.7 diff --git a/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-ui/pom.xml b/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-ui/pom.xml index a312d48b8..e15296b20 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-ui/pom.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-ui/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent single-feature-parent - 14.3.1 + 14.3.7 @@ -30,7 +30,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.netconf netconf-artifacts - 11.0.0 + 11.0.1 import pom diff --git a/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound/pom.xml b/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound/pom.xml index bfe41620b..3aeea5a11 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound/pom.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent single-feature-parent - 14.3.1 + 14.3.7 diff --git a/hwvtepsouthbound/hwvtepsouthbound-features/pom.xml b/hwvtepsouthbound/hwvtepsouthbound-features/pom.xml index 46b09c9bd..2784d143a 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-features/pom.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-features/pom.xml @@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL org.opendaylight.odlparent odlparent-lite - 14.3.1 + 14.3.7 org.opendaylight.ovsdb diff --git a/hwvtepsouthbound/hwvtepsouthbound-karaf/pom.xml b/hwvtepsouthbound/hwvtepsouthbound-karaf/pom.xml index f6ff6880b..32536eb97 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-karaf/pom.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-karaf/pom.xml @@ -9,7 +9,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL org.opendaylight.odlparent karaf4-parent - 14.3.1 + 14.3.7 4.0.0 diff --git a/hwvtepsouthbound/pom.xml b/hwvtepsouthbound/pom.xml index 3ff01ae8a..8cd644ca3 100644 --- a/hwvtepsouthbound/pom.xml +++ b/hwvtepsouthbound/pom.xml @@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL org.opendaylight.odlparent odlparent-lite - 14.3.1 + 14.3.7 diff --git a/library/artifacts/pom.xml b/library/artifacts/pom.xml index e9058de27..000147818 100644 --- a/library/artifacts/pom.xml +++ b/library/artifacts/pom.xml @@ -13,7 +13,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent odlparent-lite - 14.3.1 + 14.3.7 diff --git a/library/features/features/pom.xml b/library/features/features/pom.xml index c661acec6..78778d6be 100644 --- a/library/features/features/pom.xml +++ b/library/features/features/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent feature-repo-parent - 14.3.1 + 14.3.7 diff --git a/library/features/odl-ovsdb-library/pom.xml b/library/features/odl-ovsdb-library/pom.xml index cc991b60f..33e82ad31 100644 --- a/library/features/odl-ovsdb-library/pom.xml +++ b/library/features/odl-ovsdb-library/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent single-feature-parent - 14.3.1 + 14.3.7 @@ -41,7 +41,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.aaa odl-aaa-cert - 0.23.2 + 0.23.4 xml features diff --git a/library/features/pom.xml b/library/features/pom.xml index ffde3d136..6bcce6cdd 100644 --- a/library/features/pom.xml +++ b/library/features/pom.xml @@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL org.opendaylight.odlparent odlparent-lite - 14.3.1 + 14.3.7 org.opendaylight.ovsdb diff --git a/library/karaf/pom.xml b/library/karaf/pom.xml index c6435fe34..8ad96b08a 100644 --- a/library/karaf/pom.xml +++ b/library/karaf/pom.xml @@ -9,7 +9,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL org.opendaylight.odlparent karaf4-parent - 14.3.1 + 14.3.7 4.0.0 diff --git a/library/pom.xml b/library/pom.xml index 7a9c5196d..3024d53c4 100644 --- a/library/pom.xml +++ b/library/pom.xml @@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent odlparent-lite - 14.3.1 + 14.3.7 diff --git a/pom.xml b/pom.xml index 0e3efeb53..388e6d11f 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent odlparent-lite - 14.3.1 + 14.3.7 diff --git a/schemas/pom.xml b/schemas/pom.xml index f9c22d28d..6ef44381e 100644 --- a/schemas/pom.xml +++ b/schemas/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent odlparent-lite - 14.3.1 + 14.3.7 diff --git a/southbound/pom.xml b/southbound/pom.xml index 4432008bf..3561955a8 100644 --- a/southbound/pom.xml +++ b/southbound/pom.xml @@ -10,7 +10,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL org.opendaylight.odlparent odlparent-lite - 14.3.1 + 14.3.7 diff --git a/southbound/southbound-artifacts/pom.xml b/southbound/southbound-artifacts/pom.xml index ec2c9ea13..299b6652e 100644 --- a/southbound/southbound-artifacts/pom.xml +++ b/southbound/southbound-artifacts/pom.xml @@ -13,7 +13,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent odlparent-lite - 14.3.1 + 14.3.7 diff --git a/southbound/southbound-features/features/pom.xml b/southbound/southbound-features/features/pom.xml index 7528a9f63..eecf4667c 100644 --- a/southbound/southbound-features/features/pom.xml +++ b/southbound/southbound-features/features/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent feature-repo-parent - 14.3.1 + 14.3.7 diff --git a/southbound/southbound-features/odl-ovsdb-southbound-api/pom.xml b/southbound/southbound-features/odl-ovsdb-southbound-api/pom.xml index 161cdc8a2..7638ba054 100644 --- a/southbound/southbound-features/odl-ovsdb-southbound-api/pom.xml +++ b/southbound/southbound-features/odl-ovsdb-southbound-api/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent single-feature-parent - 14.3.1 + 14.3.7 @@ -29,7 +29,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.mdsal mdsal-artifacts - 16.0.3 + 16.0.6 pom import diff --git a/southbound/southbound-features/odl-ovsdb-southbound-impl-rest/pom.xml b/southbound/southbound-features/odl-ovsdb-southbound-impl-rest/pom.xml index 9e8242112..c43f4593b 100644 --- a/southbound/southbound-features/odl-ovsdb-southbound-impl-rest/pom.xml +++ b/southbound/southbound-features/odl-ovsdb-southbound-impl-rest/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent single-feature-parent - 14.3.1 + 14.3.7 @@ -30,7 +30,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.netconf netconf-artifacts - 11.0.0 + 11.0.1 import pom diff --git a/southbound/southbound-features/odl-ovsdb-southbound-impl-ui/pom.xml b/southbound/southbound-features/odl-ovsdb-southbound-impl-ui/pom.xml index 89907a1bc..b9876db5d 100644 --- a/southbound/southbound-features/odl-ovsdb-southbound-impl-ui/pom.xml +++ b/southbound/southbound-features/odl-ovsdb-southbound-impl-ui/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent single-feature-parent - 14.3.1 + 14.3.7 @@ -30,7 +30,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.netconf netconf-artifacts - 11.0.0 + 11.0.1 import pom diff --git a/southbound/southbound-features/odl-ovsdb-southbound-impl/pom.xml b/southbound/southbound-features/odl-ovsdb-southbound-impl/pom.xml index 4cd202dd9..7b5c2bab8 100644 --- a/southbound/southbound-features/odl-ovsdb-southbound-impl/pom.xml +++ b/southbound/southbound-features/odl-ovsdb-southbound-impl/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent single-feature-parent - 14.3.1 + 14.3.7 @@ -30,7 +30,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.infrautils infrautils-artifacts - 7.1.12 + 7.1.14 pom import diff --git a/southbound/southbound-features/odl-ovsdb-southbound-test/pom.xml b/southbound/southbound-features/odl-ovsdb-southbound-test/pom.xml index 215e50fb9..30790e667 100644 --- a/southbound/southbound-features/odl-ovsdb-southbound-test/pom.xml +++ b/southbound/southbound-features/odl-ovsdb-southbound-test/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent single-feature-parent - 14.3.1 + 14.3.7 diff --git a/southbound/southbound-features/pom.xml b/southbound/southbound-features/pom.xml index cf2ee45c1..557447c65 100644 --- a/southbound/southbound-features/pom.xml +++ b/southbound/southbound-features/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent odlparent-lite - 14.3.1 + 14.3.7 diff --git a/southbound/southbound-karaf/pom.xml b/southbound/southbound-karaf/pom.xml index dd43a76fb..d82c68ef6 100644 --- a/southbound/southbound-karaf/pom.xml +++ b/southbound/southbound-karaf/pom.xml @@ -9,7 +9,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL org.opendaylight.odlparent karaf4-parent - 14.3.1 + 14.3.7 4.0.0 diff --git a/utils/odl-ovsdb-utils/pom.xml b/utils/odl-ovsdb-utils/pom.xml index 5e0cee529..5f132aa1c 100644 --- a/utils/odl-ovsdb-utils/pom.xml +++ b/utils/odl-ovsdb-utils/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent single-feature-parent - 14.3.1 + 14.3.7 @@ -29,7 +29,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.controller controller-artifacts - 13.0.2 + 13.0.4 pom import diff --git a/utils/pom.xml b/utils/pom.xml index be45cfdd2..0b715d1b6 100644 --- a/utils/pom.xml +++ b/utils/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent odlparent-lite - 14.3.1 + 14.3.7 -- 2.34.1 From 11a18c9f9ecd040c9adf015e9bec4b0ce24773c7 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 28 Aug 2026 23:37:03 +0200 Subject: [PATCH 3/9] Update OvsdbConnectionManagerTest This class is a horror, this patch makes a tiny step towards sanity. Change-Id: I973ada3d300b33b2a9849c342b9df3b048bdc2d2 Signed-off-by: Robert Varga --- .../OvsdbConnectionManagerTest.java | 37 ++++++++----------- 1 file changed, 15 insertions(+), 22 deletions(-) diff --git a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/OvsdbConnectionManagerTest.java b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/OvsdbConnectionManagerTest.java index 85609c83a..94c64414e 100644 --- a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/OvsdbConnectionManagerTest.java +++ b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/OvsdbConnectionManagerTest.java @@ -50,7 +50,9 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types. 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.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeAttributes; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbNodeAugmentation; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbNodeAugmentationBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.ConnectionInfo; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.ConnectionInfoBuilder; 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.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology; @@ -78,9 +80,6 @@ public class OvsdbConnectionManagerTest { @Mock private OvsdbConnection ovsdbConnection; @Mock private OvsdbClient externalClient; @Mock private ReconciliationManager reconciliationManager; - private Map clients; - private Map> instanceIdentifiers; - private Map entityConnectionMap; private final InstanceIdentifier iid = InstanceIdentifier.create(NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) @@ -96,7 +95,6 @@ public class OvsdbConnectionManagerTest { setInternalState(ovsdbConnManager, "ovsdbConnection", ovsdbConnection); setInternalState(ovsdbConnManager, "alreadyProcessedClients", new ConcurrentHashMap<>()); setInternalState(ovsdbConnManager, "ops", new DefaultOperations()); - entityConnectionMap = new ConcurrentHashMap<>(); OvsdbConnectionInfo info = mock(OvsdbConnectionInfo.class); doReturn(InetAddress.getByAddress(new byte[] { 1, 2, 3, 4})).when(info).getRemoteAddress(); @@ -124,7 +122,7 @@ public class OvsdbConnectionManagerTest { when(client.getInstanceIdentifier()).thenReturn(InstanceIdentifier.create(NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) .child(Node.class, new NodeKey(new NodeId("testNode")))); - setInternalState(ovsdbConnManager, "entityConnectionMap", entityConnectionMap); + setInternalState(ovsdbConnManager, "entityConnectionMap", new ConcurrentHashMap<>()); suppress(method(OvsdbConnectionManager.class, "getEntityFromConnectionInstance", OvsdbConnectionInstance.class)); @@ -177,7 +175,7 @@ public class OvsdbConnectionManagerTest { when(SouthboundMapper.createConnectionInfo(any(OvsdbClient.class))).thenReturn(key); OvsdbConnectionInstance ovsdbConnectionInstance = mock(OvsdbConnectionInstance.class); - clients = new ConcurrentHashMap<>(); + final var clients = new ConcurrentHashMap(); clients.put(key, ovsdbConnectionInstance); setInternalState(ovsdbConnManager, "clients", clients); @@ -190,8 +188,7 @@ public class OvsdbConnectionManagerTest { // TODO: Write unit tests for EntityOwnershipService suppress(method(OvsdbConnectionManager.class, "unregisterEntityForOwnership", OvsdbConnectionInstance.class)); - instanceIdentifiers = new ConcurrentHashMap<>(); - setInternalState(ovsdbConnManager, "instanceIdentifiers", instanceIdentifiers); + setInternalState(ovsdbConnManager, "instanceIdentifiers", new ConcurrentHashMap<>()); setInternalState(ovsdbConnManager, "nodeIdVsConnectionInstance", new ConcurrentHashMap<>()); suppress(method(OvsdbConnectionManager.class, "reconcileConnection", @@ -214,23 +211,21 @@ public class OvsdbConnectionManagerTest { @Test public void testDisconnect() throws Exception { - OvsdbNodeAugmentation ovsdbNode = mock(OvsdbNodeAugmentation.class); - ConnectionInfo connectionInfo = mock(ConnectionInfo.class); - when(ovsdbNode.getConnectionInfo()).thenReturn(connectionInfo); - suppress(method(OvsdbConnectionManager.class, "getConnectionInstance", ConnectionInfo.class)); OvsdbConnectionInstance ovsdbConnectionInstance = mock(OvsdbConnectionInstance.class); - when(ovsdbConnManager.getConnectionInstance(any(ConnectionInfo.class))).thenReturn(ovsdbConnectionInstance); when(ovsdbConnectionInstance.getInstanceIdentifier()).thenReturn( InstanceIdentifier.create(NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) .child(Node.class, new NodeKey(new NodeId("testNode")))); + suppress(method(OvsdbConnectionManager.class, "getConnectionInstance", ConnectionInfo.class)); + when(ovsdbConnManager.getConnectionInstance(any(ConnectionInfo.class))).thenReturn(ovsdbConnectionInstance); suppress(method(OvsdbConnectionManager.class, "removeInstanceIdentifier", ConnectionInfo.class)); - // TODO: Write unit tests for entity ownership service related code. suppress(method(OvsdbConnectionManager.class, "unregisterEntityForOwnership", OvsdbConnectionInstance.class)); - ovsdbConnManager.disconnect(ovsdbNode); + ovsdbConnManager.disconnect(new OvsdbNodeAugmentationBuilder() + .setConnectionInfo(new ConnectionInfoBuilder().build()) + .build()); verify(ovsdbConnectionInstance).disconnect(); } @@ -253,7 +248,7 @@ public class OvsdbConnectionManagerTest { ConnectionInfo key2 = mock(ConnectionInfo.class); OvsdbConnectionInstance ovsdbConnectionInstance1 = mock(OvsdbConnectionInstance.class); OvsdbConnectionInstance ovsdbConnectionInstance2 = mock(OvsdbConnectionInstance.class); - clients = new ConcurrentHashMap<>(); + final var clients = new ConcurrentHashMap(); clients.put(key1, ovsdbConnectionInstance1); clients.put(key2, ovsdbConnectionInstance2); setInternalState(ovsdbConnManager, "clients", clients); @@ -269,8 +264,7 @@ public class OvsdbConnectionManagerTest { PowerMockito.mockStatic(SouthboundMapper.class); when(SouthboundMapper.suppressLocalIpPort(key)).thenReturn(connectionInfo); - clients = new ConcurrentHashMap<>(); - setInternalState(ovsdbConnManager, "clients", clients); + setInternalState(ovsdbConnManager, "clients", new ConcurrentHashMap<>()); // Test putConnectionInstance() OvsdbConnectionInstance instance = mock(OvsdbConnectionInstance.class); @@ -291,8 +285,7 @@ public class OvsdbConnectionManagerTest { PowerMockito.mockStatic(SouthboundMapper.class); when(SouthboundMapper.suppressLocalIpPort(key)).thenReturn(connectionInfo); - instanceIdentifiers = new ConcurrentHashMap<>(); - setInternalState(ovsdbConnManager, "instanceIdentifiers", instanceIdentifiers); + setInternalState(ovsdbConnManager, "instanceIdentifiers", new ConcurrentHashMap<>()); //Test putInstanceIdentifier() Whitebox.invokeMethod(ovsdbConnManager, "putInstanceIdentifier", key, iid); @@ -376,7 +369,7 @@ public class OvsdbConnectionManagerTest { InstanceIdentifier.create(NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) .child(Node.class, new NodeKey(new NodeId("testNode")))); - setInternalState(ovsdbConnManager, "entityConnectionMap", entityConnectionMap); + setInternalState(ovsdbConnManager, "entityConnectionMap", new ConcurrentHashMap<>()); suppress(method(OvsdbConnectionManager.class, "getEntityFromConnectionInstance", OvsdbConnectionInstance.class)); //TODO: Write unit tests for entity ownership service related code. @@ -394,8 +387,8 @@ public class OvsdbConnectionManagerTest { OvsdbConnectionInstance ovsdbConnInstance = new OvsdbConnectionInstance(key, externalClient, new DefaultOperations(), txInvoker, iid); + final var entityConnectionMap = new ConcurrentHashMap(); entityConnectionMap.put(entity, ovsdbConnInstance); - setInternalState(ovsdbConnManager, "entityConnectionMap", entityConnectionMap); doNothing().when(ovsdbConnManager).putConnectionInstance(any(ConnectionInfo.class), any(OvsdbConnectionInstance.class)); -- 2.34.1 From 8db1748b54f9a17f92b5f72d6251e2768ccb9c47 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 26 Feb 2018 16:27:17 +0100 Subject: [PATCH 4/9] Add CollectionWrappers SchemaNode/SchemaContext has some unfortunate method contracts which require returning a Set, while they are represented as java.util.Map.values() in EffectiveStatement world, where they support keyed lookups, which is really what users require. To bridge these two worlds without duplicating the same information in two collections we need a memory-efficient proxy to act as an adaptor, as we know the primary storage (Map.values()) is known to be both immutable and conforming to Set interface requirements. This patch such a class and provides a symmetric List wrapping utility. JIRA: YANGTOOLS-853 Change-Id: I052e4f9d58aa1f054450840c2216b0fd2109bc61 Signed-off-by: Robert Varga --- .../yangtools/util/CollectionWrappers.java | 164 ++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 common/util/src/main/java/org/opendaylight/yangtools/util/CollectionWrappers.java diff --git a/common/util/src/main/java/org/opendaylight/yangtools/util/CollectionWrappers.java b/common/util/src/main/java/org/opendaylight/yangtools/util/CollectionWrappers.java new file mode 100644 index 000000000..166e9cb7b --- /dev/null +++ b/common/util/src/main/java/org/opendaylight/yangtools/util/CollectionWrappers.java @@ -0,0 +1,164 @@ +/* + * Copyright (c) 2018 Pantheon Technologies, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.yangtools.util; + +import static com.google.common.base.Preconditions.checkArgument; +import static java.util.Objects.requireNonNull; + +import com.google.common.annotations.Beta; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Iterables; +import com.google.common.collect.Iterators; +import java.util.AbstractList; +import java.util.AbstractSet; +import java.util.Collection; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; +import java.util.Set; +import java.util.Spliterator; +import java.util.stream.Stream; +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.opendaylight.yangtools.concepts.Immutable; + +/** + * Utility class for adapting a {@link Collection}s to {@link Set}s and {@link List}s. + * + * @author Robert Varga + */ +@Beta +@NonNullByDefault +public final class CollectionWrappers { + private static final class ListWrapper extends AbstractList { + private final Collection delegate; + + private ListWrapper(final Collection delegate) { + this.delegate = requireNonNull(delegate); + } + + @Override + public Iterator iterator() { + return Iterators.unmodifiableIterator(delegate.iterator()); + } + + @Override + public int size() { + return delegate.size(); + } + + @Override + public Spliterator spliterator() { + return delegate.spliterator(); + } + + @Override + public Stream parallelStream() { + return delegate.parallelStream(); + } + + @Override + public Stream stream() { + return delegate.stream(); + } + + @Override + public E get(final int index) { + return Iterables.get(delegate, index); + } + } + + private static final class SetWrapper extends AbstractSet { + private final Collection delegate; + + private SetWrapper(final Collection delegate) { + this.delegate = requireNonNull(delegate); + } + + @Override + public Iterator iterator() { + return Iterators.unmodifiableIterator(delegate.iterator()); + } + + @Override + public int size() { + return delegate.size(); + } + + @Override + public Spliterator spliterator() { + return delegate.spliterator(); + } + + @Override + public Stream parallelStream() { + return delegate.parallelStream(); + } + + @Override + public Stream stream() { + return delegate.stream(); + } + } + + private CollectionWrappers() { + + } + + /** + * Wrap the specified {@link Collection} as a {@link List}. If the collection is already a List, it is wrapped in + * a {@link Collections#unmodifiableList(List)} to prevent mutability leaking. If the collection is determined + * to be empty, an empty list is returned instead. If the collection is a known-immutable implementation of List + * interface, it is returned unwrapped. Backing collection is required to be effectively immutable. If this + * requirement is violated, the returned object may behave in unpredictable ways. + * + * @param collection Collection to be wrapped + * @return An effectively-immutable wrapper of the collection. + * @throws NullPointerException if collection is null + */ + public static List wrapAsList(final Collection collection) { + if (collection.isEmpty()) { + return ImmutableList.of(); + } + if (collection instanceof List) { + final List cast = (List) collection; + return cast instanceof ListWrapper || cast instanceof Immutable || cast instanceof ImmutableList + ? cast : Collections.unmodifiableList(cast); + } + + return new ListWrapper<>(collection); + } + + /** + * Wrap the specified {@link Collection} as a {@link Set}. If the collection is already a Set, it is wrapped in + * a {@link Collections#unmodifiableSet(Set)} to prevent mutability leaking. If the collection is determined + * to be empty, an empty set is returned instead. If the collection is a known-immutable implementation of Set + * interface, it is returned unwrapped. The collection is checked for duplicates at instantiation time, such that + * it effectively implements the Set contract. Backing collection is required to be effectively immutable. If this + * requirement is violated, the returned object may behave in unpredictable ways. + * + * @param collection Collection to be wrapped + * @return An effectively-immutable wrapper of the collection. + * @throws NullPointerException if collection is null or any of its elements is null + * @throws IllegalArgumentException if the collection's contents do not conform to the Set contract + */ + public static Set wrapAsSet(final Collection collection) { + if (collection.isEmpty()) { + return ImmutableSet.of(); + } + if (collection instanceof Set) { + final Set cast = (Set) collection; + return cast instanceof SetWrapper || cast instanceof Immutable || cast instanceof SingletonSet + || cast instanceof ImmutableSet ? cast : Collections.unmodifiableSet(cast); + } + + final Set check = ImmutableSet.copyOf(collection); + checkArgument(collection.size() == check.size(), "Supplied collection %s has duplicate elements", collection); + return new SetWrapper<>(collection); + } +} -- 2.34.1 From b400334d025e53a27848aa3cc62029bb709a6ad2 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 9 Apr 2019 23:08:32 +0200 Subject: [PATCH 5/9] Expand CollectionWrappers This adds a wrapper around a Map's values and also makes all wrappers implement Delegator interface. Furthermore we recognize cross-wrapping between List and Set and unpeel the backing collection, so as to reduce object retention chains. Change-Id: Ie6bd5826c328ab6db656758e3bad2f3b9f656255 Signed-off-by: Robert Varga --- .../yangtools/util/CollectionWrappers.java | 86 +++++++++++++++++-- 1 file changed, 80 insertions(+), 6 deletions(-) diff --git a/common/util/src/main/java/org/opendaylight/yangtools/util/CollectionWrappers.java b/common/util/src/main/java/org/opendaylight/yangtools/util/CollectionWrappers.java index 166e9cb7b..28cde0979 100644 --- a/common/util/src/main/java/org/opendaylight/yangtools/util/CollectionWrappers.java +++ b/common/util/src/main/java/org/opendaylight/yangtools/util/CollectionWrappers.java @@ -21,10 +21,12 @@ import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.Spliterator; import java.util.stream.Stream; import org.eclipse.jdt.annotation.NonNullByDefault; +import org.opendaylight.yangtools.concepts.Delegator; import org.opendaylight.yangtools.concepts.Immutable; /** @@ -35,13 +37,18 @@ import org.opendaylight.yangtools.concepts.Immutable; @Beta @NonNullByDefault public final class CollectionWrappers { - private static final class ListWrapper extends AbstractList { + private static final class ListWrapper extends AbstractList implements Delegator> { private final Collection delegate; - private ListWrapper(final Collection delegate) { + ListWrapper(final Collection delegate) { this.delegate = requireNonNull(delegate); } + @Override + public Collection getDelegate() { + return delegate; + } + @Override public Iterator iterator() { return Iterators.unmodifiableIterator(delegate.iterator()); @@ -73,13 +80,61 @@ public final class CollectionWrappers { } } - private static final class SetWrapper extends AbstractSet { + private static final class MapWrapper extends AbstractList implements Delegator> { + private final Map delegate; + + MapWrapper(final Map delegate) { + this.delegate = requireNonNull(delegate); + } + + @Override + public Map getDelegate() { + return delegate; + } + + @Override + public Iterator iterator() { + return Iterators.unmodifiableIterator(delegate.values().iterator()); + } + + @Override + public int size() { + return delegate.size(); + } + + @Override + public Spliterator spliterator() { + return delegate.values().spliterator(); + } + + @Override + public Stream parallelStream() { + return delegate.values().parallelStream(); + } + + @Override + public Stream stream() { + return delegate.values().stream(); + } + + @Override + public V get(final int index) { + return Iterables.get(delegate.values(), index); + } + } + + private static final class SetWrapper extends AbstractSet implements Delegator> { private final Collection delegate; - private SetWrapper(final Collection delegate) { + SetWrapper(final Collection delegate) { this.delegate = requireNonNull(delegate); } + @Override + public Collection getDelegate() { + return delegate; + } + @Override public Iterator iterator() { return Iterators.unmodifiableIterator(delegate.iterator()); @@ -125,15 +180,31 @@ public final class CollectionWrappers { if (collection.isEmpty()) { return ImmutableList.of(); } + if (collection instanceof SetWrapper) { + return wrapAsList(((SetWrapper) collection).getDelegate()); + } if (collection instanceof List) { final List cast = (List) collection; - return cast instanceof ListWrapper || cast instanceof Immutable || cast instanceof ImmutableList - ? cast : Collections.unmodifiableList(cast); + return cast instanceof ListWrapper || cast instanceof MapWrapper || cast instanceof Immutable + || cast instanceof ImmutableList ? cast : Collections.unmodifiableList(cast); } return new ListWrapper<>(collection); } + /** + * Wrap the specified {@link Map}'s values as a {@link List}. If the map is determined to be empty, an empty list is + * returned instead. Backing map is required to be effectively immutable, with fixed iteration order. If this + * requirement is violated, the returned object may behave in unpredictable ways. + * + * @param map Map to be wrapped + * @return An effectively-immutable wrapper of the map. + * @throws NullPointerException if map is null + */ + public static List wrapAsList(final Map map) { + return map.isEmpty() ? ImmutableList.of() : new MapWrapper<>(map); + } + /** * Wrap the specified {@link Collection} as a {@link Set}. If the collection is already a Set, it is wrapped in * a {@link Collections#unmodifiableSet(Set)} to prevent mutability leaking. If the collection is determined @@ -151,6 +222,9 @@ public final class CollectionWrappers { if (collection.isEmpty()) { return ImmutableSet.of(); } + if (collection instanceof ListWrapper) { + return wrapAsSet(((ListWrapper) collection).getDelegate()); + } if (collection instanceof Set) { final Set cast = (Set) collection; return cast instanceof SetWrapper || cast instanceof Immutable || cast instanceof SingletonSet -- 2.34.1 From df63bd5997a1cd8a98e5dbb5c2957137c5b8c597 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 10 Apr 2019 08:44:16 +0200 Subject: [PATCH 6/9] Remove CollectionsWrappers map support This was a mistake, as wrapping a Map in such an anonymous way is not useful at all. Change-Id: I2dcd1313b89ccf276ab8230db935fe48a9025605 Signed-off-by: Robert Varga --- .../yangtools/util/CollectionWrappers.java | 61 +------------------ 1 file changed, 2 insertions(+), 59 deletions(-) diff --git a/common/util/src/main/java/org/opendaylight/yangtools/util/CollectionWrappers.java b/common/util/src/main/java/org/opendaylight/yangtools/util/CollectionWrappers.java index 28cde0979..0693d8738 100644 --- a/common/util/src/main/java/org/opendaylight/yangtools/util/CollectionWrappers.java +++ b/common/util/src/main/java/org/opendaylight/yangtools/util/CollectionWrappers.java @@ -21,7 +21,6 @@ import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; -import java.util.Map; import java.util.Set; import java.util.Spliterator; import java.util.stream.Stream; @@ -80,49 +79,6 @@ public final class CollectionWrappers { } } - private static final class MapWrapper extends AbstractList implements Delegator> { - private final Map delegate; - - MapWrapper(final Map delegate) { - this.delegate = requireNonNull(delegate); - } - - @Override - public Map getDelegate() { - return delegate; - } - - @Override - public Iterator iterator() { - return Iterators.unmodifiableIterator(delegate.values().iterator()); - } - - @Override - public int size() { - return delegate.size(); - } - - @Override - public Spliterator spliterator() { - return delegate.values().spliterator(); - } - - @Override - public Stream parallelStream() { - return delegate.values().parallelStream(); - } - - @Override - public Stream stream() { - return delegate.values().stream(); - } - - @Override - public V get(final int index) { - return Iterables.get(delegate.values(), index); - } - } - private static final class SetWrapper extends AbstractSet implements Delegator> { private final Collection delegate; @@ -185,26 +141,13 @@ public final class CollectionWrappers { } if (collection instanceof List) { final List cast = (List) collection; - return cast instanceof ListWrapper || cast instanceof MapWrapper || cast instanceof Immutable - || cast instanceof ImmutableList ? cast : Collections.unmodifiableList(cast); + return cast instanceof ListWrapper || cast instanceof Immutable || cast instanceof ImmutableList + ? cast : Collections.unmodifiableList(cast); } return new ListWrapper<>(collection); } - /** - * Wrap the specified {@link Map}'s values as a {@link List}. If the map is determined to be empty, an empty list is - * returned instead. Backing map is required to be effectively immutable, with fixed iteration order. If this - * requirement is violated, the returned object may behave in unpredictable ways. - * - * @param map Map to be wrapped - * @return An effectively-immutable wrapper of the map. - * @throws NullPointerException if map is null - */ - public static List wrapAsList(final Map map) { - return map.isEmpty() ? ImmutableList.of() : new MapWrapper<>(map); - } - /** * Wrap the specified {@link Collection} as a {@link Set}. If the collection is already a Set, it is wrapped in * a {@link Collections#unmodifiableSet(Set)} to prevent mutability leaking. If the collection is determined -- 2.34.1 From 1027bc8f7bd1122cfffa263fb1abc45122b73632 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sun, 30 Aug 2026 02:13:13 +0200 Subject: [PATCH 7/9] Move CollectionsWrappers into library Move imported code, hide it and use it in TableSchema. JIRA: YANGTOOLS-1957 Change-Id: Iba290c9fef3bccc67c5ff10fc190902cef723b29 Signed-off-by: Robert Varga --- .../ovsdb/lib/schema}/CollectionWrappers.java | 15 ++++++--------- .../ovsdb/lib/schema/TableSchema.java | 1 - 2 files changed, 6 insertions(+), 10 deletions(-) rename {common/util/src/main/java/org/opendaylight/yangtools/util => library/impl/src/main/java/org/opendaylight/ovsdb/lib/schema}/CollectionWrappers.java (95%) diff --git a/common/util/src/main/java/org/opendaylight/yangtools/util/CollectionWrappers.java b/library/impl/src/main/java/org/opendaylight/ovsdb/lib/schema/CollectionWrappers.java similarity index 95% rename from common/util/src/main/java/org/opendaylight/yangtools/util/CollectionWrappers.java rename to library/impl/src/main/java/org/opendaylight/ovsdb/lib/schema/CollectionWrappers.java index 0693d8738..d2b75da6c 100644 --- a/common/util/src/main/java/org/opendaylight/yangtools/util/CollectionWrappers.java +++ b/library/impl/src/main/java/org/opendaylight/ovsdb/lib/schema/CollectionWrappers.java @@ -5,12 +5,11 @@ * 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.yangtools.util; +package org.opendaylight.ovsdb.lib.schema; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; -import com.google.common.annotations.Beta; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; @@ -27,15 +26,13 @@ import java.util.stream.Stream; import org.eclipse.jdt.annotation.NonNullByDefault; import org.opendaylight.yangtools.concepts.Delegator; import org.opendaylight.yangtools.concepts.Immutable; +import org.opendaylight.yangtools.util.SingletonSet; /** * Utility class for adapting a {@link Collection}s to {@link Set}s and {@link List}s. - * - * @author Robert Varga */ -@Beta @NonNullByDefault -public final class CollectionWrappers { +final class CollectionWrappers { private static final class ListWrapper extends AbstractList implements Delegator> { private final Collection delegate; @@ -118,7 +115,7 @@ public final class CollectionWrappers { } private CollectionWrappers() { - + // hidden on purpose } /** @@ -132,7 +129,7 @@ public final class CollectionWrappers { * @return An effectively-immutable wrapper of the collection. * @throws NullPointerException if collection is null */ - public static List wrapAsList(final Collection collection) { + static List wrapAsList(final Collection collection) { if (collection.isEmpty()) { return ImmutableList.of(); } @@ -161,7 +158,7 @@ public final class CollectionWrappers { * @throws NullPointerException if collection is null or any of its elements is null * @throws IllegalArgumentException if the collection's contents do not conform to the Set contract */ - public static Set wrapAsSet(final Collection collection) { + static Set wrapAsSet(final Collection collection) { if (collection.isEmpty()) { return ImmutableSet.of(); } diff --git a/library/impl/src/main/java/org/opendaylight/ovsdb/lib/schema/TableSchema.java b/library/impl/src/main/java/org/opendaylight/ovsdb/lib/schema/TableSchema.java index 23b91a0b7..0400fd8b7 100644 --- a/library/impl/src/main/java/org/opendaylight/ovsdb/lib/schema/TableSchema.java +++ b/library/impl/src/main/java/org/opendaylight/ovsdb/lib/schema/TableSchema.java @@ -25,7 +25,6 @@ import org.opendaylight.ovsdb.lib.notation.Column; import org.opendaylight.ovsdb.lib.notation.Row; import org.opendaylight.ovsdb.lib.notation.UUID; import org.opendaylight.ovsdb.lib.operations.Insert; -import org.opendaylight.yangtools.util.CollectionWrappers; public abstract class TableSchema> { private static final AtomicColumnType UUID_COLUMN_TYPE = new AtomicColumnType(UuidBaseType.SINGLETON); -- 2.34.1 From 713330c141406e2f6641eddebe5bb9d0a6dabd79 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sun, 30 Aug 2026 02:17:41 +0200 Subject: [PATCH 8/9] Minimize CollectionWrappers Remove support for Sets and disconnect the artifact from yangtools.util. JIRA: YANGTOOLS-1957 Change-Id: I443491ec13df6efd7e65dae969b3132844577a3c Signed-off-by: Robert Varga --- library/impl/pom.xml | 2 +- .../ovsdb/lib/schema/CollectionWrappers.java | 85 ++----------------- 2 files changed, 6 insertions(+), 81 deletions(-) diff --git a/library/impl/pom.xml b/library/impl/pom.xml index 88810548e..0ec51fad0 100644 --- a/library/impl/pom.xml +++ b/library/impl/pom.xml @@ -90,7 +90,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.yangtools - util + concepts org.opendaylight.aaa diff --git a/library/impl/src/main/java/org/opendaylight/ovsdb/lib/schema/CollectionWrappers.java b/library/impl/src/main/java/org/opendaylight/ovsdb/lib/schema/CollectionWrappers.java index d2b75da6c..1267e06bd 100644 --- a/library/impl/src/main/java/org/opendaylight/ovsdb/lib/schema/CollectionWrappers.java +++ b/library/impl/src/main/java/org/opendaylight/ovsdb/lib/schema/CollectionWrappers.java @@ -7,15 +7,12 @@ */ package org.opendaylight.ovsdb.lib.schema; -import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; import com.google.common.collect.Iterators; import java.util.AbstractList; -import java.util.AbstractSet; import java.util.Collection; import java.util.Collections; import java.util.Iterator; @@ -26,7 +23,6 @@ import java.util.stream.Stream; import org.eclipse.jdt.annotation.NonNullByDefault; import org.opendaylight.yangtools.concepts.Delegator; import org.opendaylight.yangtools.concepts.Immutable; -import org.opendaylight.yangtools.util.SingletonSet; /** * Utility class for adapting a {@link Collection}s to {@link Set}s and {@link List}s. @@ -76,44 +72,6 @@ final class CollectionWrappers { } } - private static final class SetWrapper extends AbstractSet implements Delegator> { - private final Collection delegate; - - SetWrapper(final Collection delegate) { - this.delegate = requireNonNull(delegate); - } - - @Override - public Collection getDelegate() { - return delegate; - } - - @Override - public Iterator iterator() { - return Iterators.unmodifiableIterator(delegate.iterator()); - } - - @Override - public int size() { - return delegate.size(); - } - - @Override - public Spliterator spliterator() { - return delegate.spliterator(); - } - - @Override - public Stream parallelStream() { - return delegate.parallelStream(); - } - - @Override - public Stream stream() { - return delegate.stream(); - } - } - private CollectionWrappers() { // hidden on purpose } @@ -133,46 +91,13 @@ final class CollectionWrappers { if (collection.isEmpty()) { return ImmutableList.of(); } - if (collection instanceof SetWrapper) { - return wrapAsList(((SetWrapper) collection).getDelegate()); - } - if (collection instanceof List) { - final List cast = (List) collection; - return cast instanceof ListWrapper || cast instanceof Immutable || cast instanceof ImmutableList - ? cast : Collections.unmodifiableList(cast); + if (collection instanceof List list) { + @SuppressWarnings("unchecked") + final var cast = (List) list; + return cast instanceof ListWrapper || cast instanceof Immutable || cast instanceof ImmutableList ? cast + : Collections.unmodifiableList(cast); } return new ListWrapper<>(collection); } - - /** - * Wrap the specified {@link Collection} as a {@link Set}. If the collection is already a Set, it is wrapped in - * a {@link Collections#unmodifiableSet(Set)} to prevent mutability leaking. If the collection is determined - * to be empty, an empty set is returned instead. If the collection is a known-immutable implementation of Set - * interface, it is returned unwrapped. The collection is checked for duplicates at instantiation time, such that - * it effectively implements the Set contract. Backing collection is required to be effectively immutable. If this - * requirement is violated, the returned object may behave in unpredictable ways. - * - * @param collection Collection to be wrapped - * @return An effectively-immutable wrapper of the collection. - * @throws NullPointerException if collection is null or any of its elements is null - * @throws IllegalArgumentException if the collection's contents do not conform to the Set contract - */ - static Set wrapAsSet(final Collection collection) { - if (collection.isEmpty()) { - return ImmutableSet.of(); - } - if (collection instanceof ListWrapper) { - return wrapAsSet(((ListWrapper) collection).getDelegate()); - } - if (collection instanceof Set) { - final Set cast = (Set) collection; - return cast instanceof SetWrapper || cast instanceof Immutable || cast instanceof SingletonSet - || cast instanceof ImmutableSet ? cast : Collections.unmodifiableSet(cast); - } - - final Set check = ImmutableSet.copyOf(collection); - checkArgument(collection.size() == check.size(), "Supplied collection %s has duplicate elements", collection); - return new SetWrapper<>(collection); - } } -- 2.34.1 From bb8bfeb252ba8c22394066ef527126530f60cbcf Mon Sep 17 00:00:00 2001 From: jenkins-releng Date: Sun, 30 Aug 2026 00:29:09 +0000 Subject: [PATCH 9/9] Release Validate --- commons/binding-parent/pom.xml | 2 +- commons/it/pom.xml | 2 +- commons/pom.xml | 2 +- hwvtepsouthbound/hwvtepsouthbound-api/pom.xml | 4 ++-- hwvtepsouthbound/hwvtepsouthbound-artifacts/pom.xml | 2 +- hwvtepsouthbound/hwvtepsouthbound-features/features/pom.xml | 2 +- .../odl-ovsdb-hwvtepsouthbound-api/pom.xml | 2 +- .../odl-ovsdb-hwvtepsouthbound-rest/pom.xml | 2 +- .../odl-ovsdb-hwvtepsouthbound-test/pom.xml | 2 +- .../odl-ovsdb-hwvtepsouthbound-ui/pom.xml | 2 +- .../odl-ovsdb-hwvtepsouthbound/pom.xml | 2 +- hwvtepsouthbound/hwvtepsouthbound-features/pom.xml | 2 +- hwvtepsouthbound/hwvtepsouthbound-impl/pom.xml | 2 +- hwvtepsouthbound/hwvtepsouthbound-it/pom.xml | 2 +- hwvtepsouthbound/hwvtepsouthbound-karaf/pom.xml | 2 +- hwvtepsouthbound/pom.xml | 2 +- library/artifacts/pom.xml | 2 +- library/features/features/pom.xml | 2 +- library/features/odl-ovsdb-library/pom.xml | 2 +- library/features/pom.xml | 2 +- library/impl/pom.xml | 4 ++-- library/it/pom.xml | 6 +++--- library/karaf/pom.xml | 2 +- library/pom.xml | 2 +- pom.xml | 2 +- schemas/hardwarevtep/pom.xml | 4 ++-- schemas/openvswitch/pom.xml | 4 ++-- schemas/pom.xml | 2 +- southbound/pom.xml | 2 +- southbound/southbound-api/pom.xml | 4 ++-- southbound/southbound-artifacts/pom.xml | 2 +- southbound/southbound-features/features/pom.xml | 2 +- .../southbound-features/odl-ovsdb-southbound-api/pom.xml | 2 +- .../odl-ovsdb-southbound-impl-rest/pom.xml | 2 +- .../odl-ovsdb-southbound-impl-ui/pom.xml | 2 +- .../southbound-features/odl-ovsdb-southbound-impl/pom.xml | 2 +- .../southbound-features/odl-ovsdb-southbound-test/pom.xml | 2 +- southbound/southbound-features/pom.xml | 2 +- southbound/southbound-impl/pom.xml | 2 +- southbound/southbound-it/pom.xml | 2 +- southbound/southbound-karaf/pom.xml | 2 +- utils/config/pom.xml | 4 ++-- utils/hwvtepsouthbound-utils/pom.xml | 4 ++-- utils/mdsal-utils/pom.xml | 4 ++-- utils/odl-ovsdb-utils/pom.xml | 2 +- utils/ovsdb-it-utils/pom.xml | 2 +- utils/pom.xml | 2 +- utils/servicehelper/pom.xml | 4 ++-- utils/southbound-utils/pom.xml | 4 ++-- utils/yang-utils/pom.xml | 2 +- 50 files changed, 62 insertions(+), 62 deletions(-) diff --git a/commons/binding-parent/pom.xml b/commons/binding-parent/pom.xml index 2f33e2cd0..c7935a9f0 100644 --- a/commons/binding-parent/pom.xml +++ b/commons/binding-parent/pom.xml @@ -17,7 +17,7 @@ org.opendaylight.ovsdb ovsdb-binding-parent - 1.23.0-SNAPSHOT + 1.23.0 pom diff --git a/commons/it/pom.xml b/commons/it/pom.xml index 41cc4a5fc..0a48d798c 100644 --- a/commons/it/pom.xml +++ b/commons/it/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb it - 1.23.0-SNAPSHOT + 1.23.0 pom diff --git a/commons/pom.xml b/commons/pom.xml index 0eb9c3e68..d88e8d5d3 100644 --- a/commons/pom.xml +++ b/commons/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb parents - 1.23.0-SNAPSHOT + 1.23.0 ODL :: ovsdb :: ${project.artifactId} diff --git a/hwvtepsouthbound/hwvtepsouthbound-api/pom.xml b/hwvtepsouthbound/hwvtepsouthbound-api/pom.xml index f4a24bad2..6e601b75e 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-api/pom.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-api/pom.xml @@ -10,14 +10,14 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb ovsdb-binding-parent - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/binding-parent 4.0.0 org.opendaylight.ovsdb hwvtepsouthbound-api - 1.23.0-SNAPSHOT + 1.23.0 bundle diff --git a/hwvtepsouthbound/hwvtepsouthbound-artifacts/pom.xml b/hwvtepsouthbound/hwvtepsouthbound-artifacts/pom.xml index a3d7afef5..cb9b2be4b 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-artifacts/pom.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-artifacts/pom.xml @@ -19,7 +19,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb hwvtepsouthbound-artifacts - 1.23.0-SNAPSHOT + 1.23.0 pom diff --git a/hwvtepsouthbound/hwvtepsouthbound-features/features/pom.xml b/hwvtepsouthbound/hwvtepsouthbound-features/features/pom.xml index edf2bd173..4da36bda2 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-features/features/pom.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-features/features/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb hwvtepsouthbound-features - 1.23.0-SNAPSHOT + 1.23.0 feature diff --git a/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-api/pom.xml b/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-api/pom.xml index 19d3e50ac..ac9f54803 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-api/pom.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-api/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.ovsdb odl-ovsdb-hwvtepsouthbound-api - 1.23.0-SNAPSHOT + 1.23.0 feature diff --git a/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-rest/pom.xml b/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-rest/pom.xml index 5b067a405..bfeedfec7 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-rest/pom.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-features/odl-ovsdb-hwvtepsouthbound-rest/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb odl-ovsdb-hwvtepsouthbound-rest - 1.23.0-SNAPSHOT + 1.23.0 feature diff --git a/hwvtepsouthbound/hwvtepsouthbound-impl/pom.xml b/hwvtepsouthbound/hwvtepsouthbound-impl/pom.xml index 1f418b170..c695c6f7a 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-impl/pom.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-impl/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb ovsdb-binding-parent - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/binding-parent diff --git a/hwvtepsouthbound/hwvtepsouthbound-it/pom.xml b/hwvtepsouthbound/hwvtepsouthbound-it/pom.xml index 0e2cf0a8e..7cc4fff55 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-it/pom.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-it/pom.xml @@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb it - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/it diff --git a/hwvtepsouthbound/hwvtepsouthbound-karaf/pom.xml b/hwvtepsouthbound/hwvtepsouthbound-karaf/pom.xml index 32536eb97..a46ceea5a 100644 --- a/hwvtepsouthbound/hwvtepsouthbound-karaf/pom.xml +++ b/hwvtepsouthbound/hwvtepsouthbound-karaf/pom.xml @@ -15,7 +15,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL 4.0.0 org.opendaylight.ovsdb hwvtepsouthbound-karaf - 1.23.0-SNAPSHOT + 1.23.0 pom diff --git a/hwvtepsouthbound/pom.xml b/hwvtepsouthbound/pom.xml index 8cd644ca3..986bdb809 100644 --- a/hwvtepsouthbound/pom.xml +++ b/hwvtepsouthbound/pom.xml @@ -17,7 +17,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL org.opendaylight.ovsdb hwvtepsouthbound-aggregator - 1.23.0-SNAPSHOT + 1.23.0 ODL :: ovsdb :: ${project.artifactId} diff --git a/library/artifacts/pom.xml b/library/artifacts/pom.xml index 000147818..f277cde2d 100644 --- a/library/artifacts/pom.xml +++ b/library/artifacts/pom.xml @@ -19,7 +19,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb library-artifacts - 1.23.0-SNAPSHOT + 1.23.0 pom diff --git a/library/features/features/pom.xml b/library/features/features/pom.xml index 78778d6be..7114ea920 100644 --- a/library/features/features/pom.xml +++ b/library/features/features/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb library-features - 1.23.0-SNAPSHOT + 1.23.0 feature diff --git a/library/features/odl-ovsdb-library/pom.xml b/library/features/odl-ovsdb-library/pom.xml index 33e82ad31..acaf6ace6 100644 --- a/library/features/odl-ovsdb-library/pom.xml +++ b/library/features/odl-ovsdb-library/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb odl-ovsdb-library - 1.23.0-SNAPSHOT + 1.23.0 feature ODL :: ovsdb :: ${project.artifactId} diff --git a/library/impl/pom.xml b/library/impl/pom.xml index 0ec51fad0..d6a84ecdb 100644 --- a/library/impl/pom.xml +++ b/library/impl/pom.xml @@ -12,14 +12,14 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb ovsdb-binding-parent - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/binding-parent 4.0.0 org.opendaylight.ovsdb library - 1.23.0-SNAPSHOT + 1.23.0 bundle diff --git a/library/it/pom.xml b/library/it/pom.xml index 83073c284..71eea8f73 100644 --- a/library/it/pom.xml +++ b/library/it/pom.xml @@ -11,14 +11,14 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb it - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/it 4.0.0 org.opendaylight.ovsdb library-it - 1.23.0-SNAPSHOT + 1.23.0 jar @@ -27,7 +27,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb library-karaf - 1.23.0-SNAPSHOT + 1.23.0 zip diff --git a/library/karaf/pom.xml b/library/karaf/pom.xml index 8ad96b08a..f622ef507 100644 --- a/library/karaf/pom.xml +++ b/library/karaf/pom.xml @@ -15,7 +15,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL 4.0.0 org.opendaylight.ovsdb library-karaf - 1.23.0-SNAPSHOT + 1.23.0 pom diff --git a/library/pom.xml b/library/pom.xml index 3024d53c4..af7e30dd6 100644 --- a/library/pom.xml +++ b/library/pom.xml @@ -17,7 +17,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb library-aggregator - 1.23.0-SNAPSHOT + 1.23.0 ODL :: ovsdb :: ${project.artifactId} diff --git a/pom.xml b/pom.xml index 388e6d11f..496018f8a 100644 --- a/pom.xml +++ b/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb ovsdb - 1.23.0-SNAPSHOT + 1.23.0 ${project.artifactId} pom diff --git a/schemas/hardwarevtep/pom.xml b/schemas/hardwarevtep/pom.xml index b1ad4c9ab..a17932db2 100644 --- a/schemas/hardwarevtep/pom.xml +++ b/schemas/hardwarevtep/pom.xml @@ -12,13 +12,13 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb ovsdb-binding-parent - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/binding-parent org.opendaylight.ovsdb schema.hardwarevtep - 1.23.0-SNAPSHOT + 1.23.0 bundle diff --git a/schemas/openvswitch/pom.xml b/schemas/openvswitch/pom.xml index ba9c814f8..078351377 100644 --- a/schemas/openvswitch/pom.xml +++ b/schemas/openvswitch/pom.xml @@ -12,13 +12,13 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb ovsdb-binding-parent - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/binding-parent org.opendaylight.ovsdb schema.openvswitch - 1.23.0-SNAPSHOT + 1.23.0 bundle diff --git a/schemas/pom.xml b/schemas/pom.xml index 6ef44381e..a2f632f52 100644 --- a/schemas/pom.xml +++ b/schemas/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb schemas - 1.23.0-SNAPSHOT + 1.23.0 ODL :: ovsdb :: ${project.artifactId} diff --git a/southbound/pom.xml b/southbound/pom.xml index 3561955a8..bfb4b23d6 100644 --- a/southbound/pom.xml +++ b/southbound/pom.xml @@ -16,7 +16,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL org.opendaylight.ovsdb southbound-aggregator - 1.23.0-SNAPSHOT + 1.23.0 ODL :: ovsdb :: ${project.artifactId} diff --git a/southbound/southbound-api/pom.xml b/southbound/southbound-api/pom.xml index f085761f0..ee633bd6c 100644 --- a/southbound/southbound-api/pom.xml +++ b/southbound/southbound-api/pom.xml @@ -10,14 +10,14 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb ovsdb-binding-parent - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/binding-parent 4.0.0 org.opendaylight.ovsdb southbound-api - 1.23.0-SNAPSHOT + 1.23.0 bundle diff --git a/southbound/southbound-artifacts/pom.xml b/southbound/southbound-artifacts/pom.xml index 299b6652e..c1b905dbc 100644 --- a/southbound/southbound-artifacts/pom.xml +++ b/southbound/southbound-artifacts/pom.xml @@ -19,7 +19,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb southbound-artifacts - 1.23.0-SNAPSHOT + 1.23.0 pom diff --git a/southbound/southbound-features/features/pom.xml b/southbound/southbound-features/features/pom.xml index eecf4667c..c4de5176f 100644 --- a/southbound/southbound-features/features/pom.xml +++ b/southbound/southbound-features/features/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb southbound-features - 1.23.0-SNAPSHOT + 1.23.0 feature diff --git a/southbound/southbound-features/odl-ovsdb-southbound-api/pom.xml b/southbound/southbound-features/odl-ovsdb-southbound-api/pom.xml index 7638ba054..14b21315e 100644 --- a/southbound/southbound-features/odl-ovsdb-southbound-api/pom.xml +++ b/southbound/southbound-features/odl-ovsdb-southbound-api/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb odl-ovsdb-southbound-api - 1.23.0-SNAPSHOT + 1.23.0 feature diff --git a/southbound/southbound-features/odl-ovsdb-southbound-impl-rest/pom.xml b/southbound/southbound-features/odl-ovsdb-southbound-impl-rest/pom.xml index c43f4593b..7466cda73 100644 --- a/southbound/southbound-features/odl-ovsdb-southbound-impl-rest/pom.xml +++ b/southbound/southbound-features/odl-ovsdb-southbound-impl-rest/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb odl-ovsdb-southbound-impl-rest - 1.23.0-SNAPSHOT + 1.23.0 feature ODL :: ovsdb :: ${project.artifactId} diff --git a/southbound/southbound-impl/pom.xml b/southbound/southbound-impl/pom.xml index 73ffed41d..39dd6458c 100644 --- a/southbound/southbound-impl/pom.xml +++ b/southbound/southbound-impl/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb ovsdb-binding-parent - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/binding-parent diff --git a/southbound/southbound-it/pom.xml b/southbound/southbound-it/pom.xml index 9b25ebbe3..72518feda 100644 --- a/southbound/southbound-it/pom.xml +++ b/southbound/southbound-it/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb it - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/it 4.0.0 diff --git a/southbound/southbound-karaf/pom.xml b/southbound/southbound-karaf/pom.xml index d82c68ef6..506290dc9 100644 --- a/southbound/southbound-karaf/pom.xml +++ b/southbound/southbound-karaf/pom.xml @@ -15,7 +15,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL 4.0.0 org.opendaylight.ovsdb southbound-karaf - 1.23.0-SNAPSHOT + 1.23.0 pom diff --git a/utils/config/pom.xml b/utils/config/pom.xml index dfba187b9..e2c01613f 100644 --- a/utils/config/pom.xml +++ b/utils/config/pom.xml @@ -12,13 +12,13 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb ovsdb-binding-parent - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/binding-parent org.opendaylight.ovsdb utils.config - 1.23.0-SNAPSHOT + 1.23.0 ODL :: ovsdb :: ${project.artifactId} diff --git a/utils/hwvtepsouthbound-utils/pom.xml b/utils/hwvtepsouthbound-utils/pom.xml index a8473eeba..313bede1f 100644 --- a/utils/hwvtepsouthbound-utils/pom.xml +++ b/utils/hwvtepsouthbound-utils/pom.xml @@ -11,13 +11,13 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb ovsdb-binding-parent - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/binding-parent org.opendaylight.ovsdb utils.hwvtepsouthbound-utils - 1.23.0-SNAPSHOT + 1.23.0 bundle diff --git a/utils/mdsal-utils/pom.xml b/utils/mdsal-utils/pom.xml index 6b93fde63..54c61bdcf 100644 --- a/utils/mdsal-utils/pom.xml +++ b/utils/mdsal-utils/pom.xml @@ -11,13 +11,13 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb ovsdb-binding-parent - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/binding-parent org.opendaylight.ovsdb utils.mdsal-utils - 1.23.0-SNAPSHOT + 1.23.0 bundle diff --git a/utils/odl-ovsdb-utils/pom.xml b/utils/odl-ovsdb-utils/pom.xml index 5f132aa1c..4b48695e2 100644 --- a/utils/odl-ovsdb-utils/pom.xml +++ b/utils/odl-ovsdb-utils/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb odl-ovsdb-utils - 1.23.0-SNAPSHOT + 1.23.0 feature diff --git a/utils/ovsdb-it-utils/pom.xml b/utils/ovsdb-it-utils/pom.xml index a9c8d44f0..1fbde8b7e 100644 --- a/utils/ovsdb-it-utils/pom.xml +++ b/utils/ovsdb-it-utils/pom.xml @@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb ovsdb-binding-parent - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/binding-parent diff --git a/utils/pom.xml b/utils/pom.xml index 0b715d1b6..ab428ca68 100644 --- a/utils/pom.xml +++ b/utils/pom.xml @@ -18,7 +18,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb utils - 1.23.0-SNAPSHOT + 1.23.0 pom diff --git a/utils/servicehelper/pom.xml b/utils/servicehelper/pom.xml index 9e345753f..a8e6b037b 100644 --- a/utils/servicehelper/pom.xml +++ b/utils/servicehelper/pom.xml @@ -12,13 +12,13 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb ovsdb-binding-parent - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/binding-parent org.opendaylight.ovsdb utils.servicehelper - 1.23.0-SNAPSHOT + 1.23.0 bundle diff --git a/utils/southbound-utils/pom.xml b/utils/southbound-utils/pom.xml index fa7faf041..76a5aa794 100644 --- a/utils/southbound-utils/pom.xml +++ b/utils/southbound-utils/pom.xml @@ -11,13 +11,13 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb ovsdb-binding-parent - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/binding-parent org.opendaylight.ovsdb utils.southbound-utils - 1.23.0-SNAPSHOT + 1.23.0 bundle diff --git a/utils/yang-utils/pom.xml b/utils/yang-utils/pom.xml index dad18f7da..a67111874 100644 --- a/utils/yang-utils/pom.xml +++ b/utils/yang-utils/pom.xml @@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.ovsdb ovsdb-binding-parent - 1.23.0-SNAPSHOT + 1.23.0 ../../commons/binding-parent -- 2.34.1