From c9c92c16e0e46e96c6b81398b854655234b223f3 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 20 Jun 2023 02:12:41 +0200 Subject: [PATCH] Bump upstreams Adopt: - odlparent-13.0.3 - infrautils-6.0.1 - yangtools-11.0.0 - mdsal-12.0.0-SNAPSHOT - controller-8.0.0-SNAPSHOT - aaa-0.18.0-SNAPSHOT - netconf-6.0.0-SNAPSHOT Change-Id: I439e4c3d5f920d324e242d5b9cd2eae564704c4f Signed-off-by: Robert Varga --- algo/algo-artifacts/pom.xml | 2 +- algo/algo-impl/pom.xml | 16 +++- algo/pom.xml | 2 +- artifacts/pom.xml | 2 +- bgp/bgp-artifacts/pom.xml | 2 +- bgp/concepts/pom.xml | 4 - bgp/config-example/pom.xml | 2 +- bgp/extensions/evpn/pom.xml | 4 + .../bgp/evpn/impl/esi/types/LacpParser.java | 26 +++---- .../bgp/evpn/impl/esi/types/LanParser.java | 26 +++---- .../bgp/evpn/impl/esi/types/MacParser.java | 26 +++---- .../communities/ESImpRouteTargetExtCom.java | 16 ++-- .../bgp/evpn/impl/nlri/MACIpAdvRParser.java | 4 +- bgp/extensions/flowspec/pom.xml | 4 +- .../AbstractFlowspecIpRIBSupport.java | 4 +- .../flowspec/AbstractFlowspecRIBSupport.java | 4 +- .../AbstractFlowspecL3vpnRIBSupport.java | 4 +- bgp/extensions/inet/pom.xml | 10 ++- .../bgp/inet/AbstractIPRibSupport.java | 11 +-- bgp/extensions/l3vpn/pom.xml | 4 + bgp/extensions/labeled-unicast/pom.xml | 8 +- bgp/extensions/linkstate/pom.xml | 4 + bgp/extensions/mvpn/pom.xml | 4 + .../bgp/mvpn/impl/attributes/OpaqueUtil.java | 4 +- bgp/extensions/parent/pom.xml | 2 +- bgp/extensions/pom.xml | 2 +- bgp/extensions/route-target/pom.xml | 4 + bgp/openconfig-rp-impl/pom.xml | 4 + bgp/openconfig-rp-spi/pom.xml | 27 ++++--- .../spi/registry/ActionsRegistryImpl.java | 4 +- bgp/openconfig-spi/pom.xml | 4 + bgp/parser-spi/pom.xml | 4 + .../peer/acceptor/BGPPeerAcceptorImpl.java | 4 +- bgp/pom.xml | 2 +- bgp/rib-impl/pom.xml | 36 +++++---- .../bgp/rib/impl/AdjRibOutListener.java | 4 +- .../bgp/rib/impl/ApplicationPeer.java | 24 +++--- .../protocol/bgp/rib/impl/CodecsImpl.java | 29 ++++---- .../bgp/rib/impl/EffectiveRibInWriter.java | 63 ++++++++-------- .../protocol/bgp/rib/impl/LocRibWriter.java | 35 +++++---- .../bgp/rib/impl/StrictBGPPeerRegistry.java | 72 +++++++++--------- .../protocol/bgp/rib/impl/config/AppPeer.java | 3 +- .../rib/impl/config/GracefulRestartUtil.java | 11 +-- .../impl/config/OpenConfigMappingUtil.java | 26 +++---- .../protocol/bgp/rib/impl/config/RibImpl.java | 2 +- .../rib/impl/AbstractBGPDispatcherTest.java | 2 +- .../bgp/rib/impl/AbstractRIBTestSetup.java | 10 +-- .../protocol/bgp/rib/impl/PeerTest.java | 2 +- .../config/OpenConfigMappingUtilTest.java | 4 +- bgp/rib-mock/pom.xml | 4 + .../bgp/rib/spi/AbstractRIBSupport.java | 45 ++++++----- .../bgp/rib/spi/RIBNodeIdentifiers.java | 12 +-- .../bgp/rib/spi/AbstractRIBSupportTest.java | 26 +++---- .../protocol/bgp/rib/spi/RIBSupportTest.java | 22 +++--- .../provider/LinkstateGraphBuilder.java | 8 +- binding-parent/pom.xml | 2 +- bmp/bmp-artifacts/pom.xml | 2 +- bmp/bmp-config-example/pom.xml | 2 +- .../impl/app/BmpMonitoringStationImpl.java | 2 +- .../bmp/impl/app/BmpRouterPeerImpl.java | 17 ++--- .../protocol/bmp/impl/app/TableContext.java | 22 +++--- bmp/pom.xml | 2 +- config-loader/config-loader-artifacts/pom.xml | 2 +- config-loader/config-loader-impl/pom.xml | 27 ++++--- .../loader/impl/AbstractConfigLoader.java | 14 ++-- config-loader/config-loader-spi/pom.xml | 12 ++- config-loader/pom.xml | 2 +- .../routing-policy-config-loader/pom.xml | 17 ++++- distribution-karaf/pom.xml | 4 +- feature-repo-parent/pom.xml | 2 +- features/algo/pom.xml | 2 +- .../src/main/feature/feature.xml | 4 +- .../src/main/feature/feature.xml | 2 +- .../src/main/feature/feature.xml | 2 +- .../src/main/feature/feature.xml | 2 +- .../src/main/feature/feature.xml | 4 +- .../src/main/feature/feature.xml | 2 +- .../src/main/feature/feature.xml | 2 +- .../src/main/feature/feature.xml | 4 +- .../src/main/feature/feature.xml | 8 +- .../src/main/feature/feature.xml | 4 +- features/bgp/pom.xml | 2 +- .../src/main/feature/feature.xml | 4 +- .../src/main/feature/feature.xml | 2 +- features/bgpcep-extras/pom.xml | 2 +- features/bmp/pom.xml | 2 +- .../src/main/feature/feature.xml | 4 +- features/concepts/pom.xml | 2 +- .../src/main/feature/feature.xml | 2 +- .../src/main/feature/feature.xml | 2 +- .../src/main/feature/feature.xml | 2 +- .../src/main/feature/feature.xml | 2 +- features/config-loader/pom.xml | 2 +- .../src/main/feature/feature.xml | 4 +- .../src/main/feature/feature.xml | 2 +- features/graph/pom.xml | 2 +- .../src/main/feature/feature.xml | 4 +- .../src/main/feature/feature.xml | 2 +- .../src/main/feature/feature.xml | 2 +- .../src/main/feature/feature.xml | 2 +- .../src/main/feature/feature.xml | 4 +- features/pcep/pom.xml | 2 +- features/pom.xml | 2 +- .../src/main/feature/feature.xml | 2 +- features/rsvp/pom.xml | 2 +- .../src/main/feature/feature.xml | 2 +- .../src/main/feature/feature.xml | 2 +- features/topology/pom.xml | 2 +- graph/graph-api/pom.xml | 12 +-- graph/graph-artifacts/pom.xml | 2 +- graph/graph-impl/pom.xml | 4 + .../graph/impl/ConnectedGraphImpl.java | 74 +++++++++---------- graph/pom.xml | 2 +- parent/pom.xml | 12 +-- pcep/config-example/pom.xml | 2 +- pcep/impl/pom.xml | 5 ++ pcep/pcep-artifacts/pom.xml | 2 +- pcep/pom.xml | 2 +- pcep/server/pom.xml | 2 +- pcep/server/server-provider/pom.xml | 8 ++ pcep/spi/pom.xml | 20 +++-- pcep/topology/pom.xml | 2 +- .../AbstractTopologySessionListener.java | 2 +- .../provider/PCEPTopologyConfiguration.java | 2 +- pcep/topology/topology-spi/pom.xml | 4 + pcep/tunnel/pom.xml | 2 +- pom.xml | 2 +- programming/api/pom.xml | 12 ++- programming/pom.xml | 2 +- programming/programming-artifacts/pom.xml | 2 +- programming/spi/pom.xml | 9 +++ rsvp/api/pom.xml | 12 ++- rsvp/pom.xml | 2 +- rsvp/rsvp-artifacts/pom.xml | 2 +- single-feature-parent/pom.xml | 2 +- testtool-parent/pom.xml | 2 +- topology/api/pom.xml | 14 ++-- topology/pom.xml | 2 +- topology/topology-artifacts/pom.xml | 2 +- .../opendaylight/protocol/util/Ipv4Util.java | 54 +++++--------- .../opendaylight/protocol/util/Ipv6Util.java | 32 +++----- 141 files changed, 647 insertions(+), 582 deletions(-) diff --git a/algo/algo-artifacts/pom.xml b/algo/algo-artifacts/pom.xml index 4e3fdee843..fb12407fff 100644 --- a/algo/algo-artifacts/pom.xml +++ b/algo/algo-artifacts/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/algo/algo-impl/pom.xml b/algo/algo-impl/pom.xml index 83a505a101..e06dae1119 100644 --- a/algo/algo-impl/pom.xml +++ b/algo/algo-impl/pom.xml @@ -37,17 +37,25 @@ ${project.groupId} concepts + + com.google.guava + guava + + + org.eclipse.jdt + org.eclipse.jdt.annotation + org.opendaylight.mdsal mdsal-binding-api - org.opendaylight.mdsal.binding.model.ietf - rfc6991-ietf-inet-types + org.opendaylight.mdsal + yang-binding - com.google.guava - guava + org.opendaylight.mdsal.binding.model.ietf + rfc6991-ietf-inet-types org.opendaylight.yangtools diff --git a/algo/pom.xml b/algo/pom.xml index 77bfa88217..d874c5c68f 100644 --- a/algo/pom.xml +++ b/algo/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/artifacts/pom.xml b/artifacts/pom.xml index f7902eee89..8be4f73e6a 100644 --- a/artifacts/pom.xml +++ b/artifacts/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/bgp/bgp-artifacts/pom.xml b/bgp/bgp-artifacts/pom.xml index 1c97788647..78dc9a2fa7 100644 --- a/bgp/bgp-artifacts/pom.xml +++ b/bgp/bgp-artifacts/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/bgp/concepts/pom.xml b/bgp/concepts/pom.xml index dc5b06541f..9614a8a306 100644 --- a/bgp/concepts/pom.xml +++ b/bgp/concepts/pom.xml @@ -33,10 +33,6 @@ netty-buffer - - org.opendaylight.yangtools - yang-common - org.opendaylight.yangtools yang-data-api diff --git a/bgp/config-example/pom.xml b/bgp/config-example/pom.xml index 4d7432879a..fb8ed8bc81 100644 --- a/bgp/config-example/pom.xml +++ b/bgp/config-example/pom.xml @@ -15,7 +15,7 @@ org.opendaylight.odlparent odlparent - 12.0.5 + 13.0.3 diff --git a/bgp/extensions/evpn/pom.xml b/bgp/extensions/evpn/pom.xml index a870c01381..b73d476840 100644 --- a/bgp/extensions/evpn/pom.xml +++ b/bgp/extensions/evpn/pom.xml @@ -31,6 +31,10 @@ ${project.groupId} concepts + + org.opendaylight.yangtools + util + org.opendaylight.yangtools yang-common-netty diff --git a/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/esi/types/LacpParser.java b/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/esi/types/LacpParser.java index 35fc30168a..f690d8f5e9 100644 --- a/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/esi/types/LacpParser.java +++ b/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/esi/types/LacpParser.java @@ -18,7 +18,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.esi.Esi; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.esi.esi.LacpAutoGeneratedCase; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.esi.esi.LacpAutoGeneratedCaseBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.esi.esi.lacp.auto.generated._case.LacpAutoGenerated; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.esi.esi.lacp.auto.generated._case.LacpAutoGeneratedBuilder; import org.opendaylight.yangtools.yang.common.netty.ByteBufUtils; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; @@ -29,8 +28,8 @@ final class LacpParser extends AbstractEsiType { public ByteBuf serializeBody(final Esi esi, final ByteBuf body) { checkArgument(esi instanceof LacpAutoGeneratedCase, "Unknown esi instance. Passed %s. Needed LacpAutoGeneratedCase.", esi); - final LacpAutoGenerated lacp = ((LacpAutoGeneratedCase) esi).getLacpAutoGenerated(); - body.writeBytes(IetfYangUtil.INSTANCE.macAddressBytes(lacp.getCeLacpMacAddress())); + final var lacp = ((LacpAutoGeneratedCase) esi).getLacpAutoGenerated(); + body.writeBytes(IetfYangUtil.macAddressBytes(lacp.getCeLacpMacAddress())); ByteBufUtils.writeOrZero(body, lacp.getCeLacpPortKey()); return body.writeByte(0); } @@ -43,21 +42,20 @@ final class LacpParser extends AbstractEsiType { @Override public Esi serializeEsi(final ContainerNode esi) { return new LacpAutoGeneratedCaseBuilder() - .setLacpAutoGenerated(new LacpAutoGeneratedBuilder() - .setCeLacpMacAddress(extractLacpMac(esi)) - .setCeLacpPortKey(extractPK(esi)) - .build()) - .build(); + .setLacpAutoGenerated(new LacpAutoGeneratedBuilder() + .setCeLacpMacAddress(extractLacpMac(esi)) + .setCeLacpPortKey(extractPK(esi)) + .build()) + .build(); } @Override public Esi parseEsi(final ByteBuf buffer) { return new LacpAutoGeneratedCaseBuilder() - .setLacpAutoGenerated(new LacpAutoGeneratedBuilder() - .setCeLacpMacAddress(IetfYangUtil.INSTANCE.macAddressFor( - ByteArray.readBytes(buffer, MAC_ADDRESS_LENGTH))) - .setCeLacpPortKey(ByteBufUtils.readUint16(buffer)) - .build()) - .build(); + .setLacpAutoGenerated(new LacpAutoGeneratedBuilder() + .setCeLacpMacAddress(IetfYangUtil.macAddressFor(ByteArray.readBytes(buffer, MAC_ADDRESS_LENGTH))) + .setCeLacpPortKey(ByteBufUtils.readUint16(buffer)) + .build()) + .build(); } } diff --git a/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/esi/types/LanParser.java b/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/esi/types/LanParser.java index d0b33e5dd2..d43992111c 100644 --- a/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/esi/types/LanParser.java +++ b/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/esi/types/LanParser.java @@ -18,7 +18,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.esi.Esi; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.esi.esi.LanAutoGeneratedCase; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.esi.esi.LanAutoGeneratedCaseBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.esi.esi.lan.auto.generated._case.LanAutoGenerated; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.esi.esi.lan.auto.generated._case.LanAutoGeneratedBuilder; import org.opendaylight.yangtools.yang.common.netty.ByteBufUtils; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; @@ -29,8 +28,8 @@ final class LanParser extends AbstractEsiType { public ByteBuf serializeBody(final Esi esi, final ByteBuf body) { checkArgument(esi instanceof LanAutoGeneratedCase, "Unknown esi instance. Passed %s. Needed LanAutoGeneratedCase.", esi); - final LanAutoGenerated lan = ((LanAutoGeneratedCase) esi).getLanAutoGenerated(); - body.writeBytes(IetfYangUtil.INSTANCE.macAddressBytes(lan.getRootBridgeMacAddress())); + final var lan = ((LanAutoGeneratedCase) esi).getLanAutoGenerated(); + body.writeBytes(IetfYangUtil.macAddressBytes(lan.getRootBridgeMacAddress())); ByteBufUtils.writeOrZero(body, lan.getRootBridgePriority()); return body.writeByte(0); } @@ -43,21 +42,20 @@ final class LanParser extends AbstractEsiType { @Override public Esi serializeEsi(final ContainerNode esi) { return new LanAutoGeneratedCaseBuilder() - .setLanAutoGenerated(new LanAutoGeneratedBuilder() - .setRootBridgeMacAddress(extractBrigeMac(esi)) - .setRootBridgePriority(extractBP(esi)) - .build()) - .build(); + .setLanAutoGenerated(new LanAutoGeneratedBuilder() + .setRootBridgeMacAddress(extractBrigeMac(esi)) + .setRootBridgePriority(extractBP(esi)) + .build()) + .build(); } @Override public Esi parseEsi(final ByteBuf buffer) { return new LanAutoGeneratedCaseBuilder() - .setLanAutoGenerated(new LanAutoGeneratedBuilder() - .setRootBridgeMacAddress(IetfYangUtil.INSTANCE.macAddressFor( - ByteArray.readBytes(buffer, MAC_ADDRESS_LENGTH))) - .setRootBridgePriority(ByteBufUtils.readUint16(buffer)) - .build()) - .build(); + .setLanAutoGenerated(new LanAutoGeneratedBuilder() + .setRootBridgeMacAddress(IetfYangUtil.macAddressFor(ByteArray.readBytes(buffer, MAC_ADDRESS_LENGTH))) + .setRootBridgePriority(ByteBufUtils.readUint16(buffer)) + .build()) + .build(); } } diff --git a/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/esi/types/MacParser.java b/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/esi/types/MacParser.java index ea1b596ecc..8c1858e753 100644 --- a/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/esi/types/MacParser.java +++ b/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/esi/types/MacParser.java @@ -19,7 +19,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.esi.Esi; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.esi.esi.MacAutoGeneratedCase; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.esi.esi.MacAutoGeneratedCaseBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.esi.esi.mac.auto.generated._case.MacAutoGenerated; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.esi.esi.mac.auto.generated._case.MacAutoGeneratedBuilder; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; @@ -29,8 +28,8 @@ final class MacParser extends AbstractEsiType { public ByteBuf serializeBody(final Esi esi, final ByteBuf body) { checkArgument(esi instanceof MacAutoGeneratedCase, "Unknown esi instance. Passed %s. Needed MacAutoGeneratedCase.", esi.getClass()); - final MacAutoGenerated macAuto = ((MacAutoGeneratedCase) esi).getMacAutoGenerated(); - body.writeBytes(IetfYangUtil.INSTANCE.macAddressBytes(macAuto.getSystemMacAddress())); + final var macAuto = ((MacAutoGeneratedCase) esi).getMacAutoGenerated(); + body.writeBytes(IetfYangUtil.macAddressBytes(macAuto.getSystemMacAddress())); RFC8294ByteBufUtils.writeUint24(body, macAuto.getLocalDiscriminator()); return body; } @@ -43,21 +42,20 @@ final class MacParser extends AbstractEsiType { @Override public Esi serializeEsi(final ContainerNode esi) { return new MacAutoGeneratedCaseBuilder() - .setMacAutoGenerated(new MacAutoGeneratedBuilder() - .setSystemMacAddress(extractSystmeMac(esi)) - .setLocalDiscriminator(extractUint24LD(esi)) - .build()) - .build(); + .setMacAutoGenerated(new MacAutoGeneratedBuilder() + .setSystemMacAddress(extractSystmeMac(esi)) + .setLocalDiscriminator(extractUint24LD(esi)) + .build()) + .build(); } @Override public Esi parseEsi(final ByteBuf buffer) { return new MacAutoGeneratedCaseBuilder() - .setMacAutoGenerated(new MacAutoGeneratedBuilder() - .setSystemMacAddress(IetfYangUtil.INSTANCE.macAddressFor( - ByteArray.readBytes(buffer, MAC_ADDRESS_LENGTH))) - .setLocalDiscriminator(RFC8294ByteBufUtils.readUint24(buffer)) - .build()) - .build(); + .setMacAutoGenerated(new MacAutoGeneratedBuilder() + .setSystemMacAddress(IetfYangUtil.macAddressFor(ByteArray.readBytes(buffer, MAC_ADDRESS_LENGTH))) + .setLocalDiscriminator(RFC8294ByteBufUtils.readUint24(buffer)) + .build()) + .build(); } } diff --git a/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/extended/communities/ESImpRouteTargetExtCom.java b/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/extended/communities/ESImpRouteTargetExtCom.java index b438ad1d59..f34c3c0d52 100644 --- a/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/extended/communities/ESImpRouteTargetExtCom.java +++ b/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/extended/communities/ESImpRouteTargetExtCom.java @@ -11,8 +11,6 @@ import com.google.common.base.Preconditions; import io.netty.buffer.ByteBuf; import org.opendaylight.protocol.util.ByteArray; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.IetfYangUtil; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.es._import.route.extended.community.EsImportRouteExtendedCommunity; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.es._import.route.extended.community.EsImportRouteExtendedCommunityBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.evpn.routes.evpn.routes.evpn.route.attributes.extended.communities.extended.community.EsImportRouteExtendedCommunityCase; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.evpn.routes.evpn.routes.evpn.route.attributes.extended.communities.extended.community.EsImportRouteExtendedCommunityCaseBuilder; @@ -24,10 +22,11 @@ public final class ESImpRouteTargetExtCom extends AbstractExtendedCommunities { @Override public ExtendedCommunity parseExtendedCommunity(final ByteBuf buffer) { - final MacAddress mac = IetfYangUtil.INSTANCE.macAddressFor(ByteArray.readBytes(buffer, MAC_ADDRESS_LENGTH)); - - return new EsImportRouteExtendedCommunityCaseBuilder().setEsImportRouteExtendedCommunity( - new EsImportRouteExtendedCommunityBuilder().setEsImport(mac).build()).build(); + return new EsImportRouteExtendedCommunityCaseBuilder() + .setEsImportRouteExtendedCommunity(new EsImportRouteExtendedCommunityBuilder() + .setEsImport(IetfYangUtil.macAddressFor(ByteArray.readBytes(buffer, MAC_ADDRESS_LENGTH))) + .build()) + .build(); } @Override @@ -35,9 +34,8 @@ public final class ESImpRouteTargetExtCom extends AbstractExtendedCommunities { Preconditions.checkArgument(extendedCommunity instanceof EsImportRouteExtendedCommunityCase, "The extended community %s is not EsImportRouteExtendedCommunityCaseCase type.", extendedCommunity); - final EsImportRouteExtendedCommunity extCom = ((EsImportRouteExtendedCommunityCase) extendedCommunity) - .getEsImportRouteExtendedCommunity(); - byteAggregator.writeBytes(IetfYangUtil.INSTANCE.macAddressBytes(extCom.getEsImport())); + final var extCom = ((EsImportRouteExtendedCommunityCase) extendedCommunity).getEsImportRouteExtendedCommunity(); + byteAggregator.writeBytes(IetfYangUtil.macAddressBytes(extCom.getEsImport())); } @Override diff --git a/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/nlri/MACIpAdvRParser.java b/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/nlri/MACIpAdvRParser.java index e1b332e0fb..4bfe806b90 100644 --- a/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/nlri/MACIpAdvRParser.java +++ b/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/nlri/MACIpAdvRParser.java @@ -49,7 +49,7 @@ final class MACIpAdvRParser extends AbstractEvpnNlri { final Esi esi = SimpleEsiTypeRegistry.getInstance().parseEsi(buffer.readSlice(ESI_SIZE)); final EthernetTagId eti = new EthernetTagIdBuilder().setVlanId(ByteBufUtils.readUint32(buffer)).build(); buffer.skipBytes(1); - final MacAddress mac = IetfYangUtil.INSTANCE.macAddressFor(ByteArray.readBytes(buffer, MAC_ADDRESS_LENGTH)); + final MacAddress mac = IetfYangUtil.macAddressFor(ByteArray.readBytes(buffer, MAC_ADDRESS_LENGTH)); final IpAddressNoZone ip = parseIp(buffer); final MplsLabel label1 = mplsLabelForByteBuf(buffer); MplsLabel label2; @@ -84,7 +84,7 @@ final class MACIpAdvRParser extends AbstractEvpnNlri { final MacAddress mac = evpn.getMacAddress(); body.writeByte(MAC_ADDRESS_LENGTH * BITS_SIZE); - body.writeBytes(IetfYangUtil.INSTANCE.macAddressBytes(mac)); + body.writeBytes(IetfYangUtil.macAddressBytes(mac)); final ByteBuf ipAddress = serializeIp(evpn.getIpAddress()); Preconditions.checkArgument(ipAddress.readableBytes() > 0); body.writeBytes(ipAddress); diff --git a/bgp/extensions/flowspec/pom.xml b/bgp/extensions/flowspec/pom.xml index c677ad3892..eca3d3de8a 100644 --- a/bgp/extensions/flowspec/pom.xml +++ b/bgp/extensions/flowspec/pom.xml @@ -32,8 +32,8 @@ bgp-inet - org.slf4j - slf4j-api + org.opendaylight.yangtools + util org.opendaylight.yangtools diff --git a/bgp/extensions/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/AbstractFlowspecIpRIBSupport.java b/bgp/extensions/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/AbstractFlowspecIpRIBSupport.java index b0a8567f11..b03e27e88b 100644 --- a/bgp/extensions/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/AbstractFlowspecIpRIBSupport.java +++ b/bgp/extensions/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/AbstractFlowspecIpRIBSupport.java @@ -16,7 +16,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.type import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.SubsequentAddressFamily; import org.opendaylight.yangtools.yang.binding.ChildOf; import org.opendaylight.yangtools.yang.binding.DataObject; -import org.opendaylight.yangtools.yang.binding.Identifiable; +import org.opendaylight.yangtools.yang.binding.KeyAware; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; @@ -24,7 +24,7 @@ abstract class AbstractFlowspecIpRIBSupport< T extends AbstractFlowspecIpNlriParser, C extends Routes & DataObject, S extends ChildOf, - R extends Route & ChildOf & Identifiable> extends AbstractFlowspecRIBSupport { + R extends Route & ChildOf & KeyAware> extends AbstractFlowspecRIBSupport { AbstractFlowspecIpRIBSupport(final BindingNormalizedNodeSerializer mappingService, final Class cazeClass, final QName cazeQName, final Class containerClass, final QName containerQName, final Class listClass, final QName listQName, final AddressFamily afi, final QName afiQName, final SubsequentAddressFamily safi, diff --git a/bgp/extensions/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/AbstractFlowspecRIBSupport.java b/bgp/extensions/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/AbstractFlowspecRIBSupport.java index b49a05bab2..1181670521 100644 --- a/bgp/extensions/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/AbstractFlowspecRIBSupport.java +++ b/bgp/extensions/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/AbstractFlowspecRIBSupport.java @@ -27,7 +27,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.type import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.SubsequentAddressFamily; import org.opendaylight.yangtools.yang.binding.ChildOf; import org.opendaylight.yangtools.yang.binding.DataObject; -import org.opendaylight.yangtools.yang.binding.Identifiable; +import org.opendaylight.yangtools.yang.binding.KeyAware; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; @@ -39,7 +39,7 @@ public abstract class AbstractFlowspecRIBSupport< T extends AbstractFlowspecNlriParser, C extends Routes & DataObject, S extends ChildOf, - R extends Route & ChildOf & Identifiable> extends AbstractRIBSupport { + R extends Route & ChildOf & KeyAware> extends AbstractRIBSupport { protected final @NonNull T nlriParser; protected AbstractFlowspecRIBSupport( diff --git a/bgp/extensions/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/l3vpn/AbstractFlowspecL3vpnRIBSupport.java b/bgp/extensions/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/l3vpn/AbstractFlowspecL3vpnRIBSupport.java index d6ff19ec30..9017e8848b 100644 --- a/bgp/extensions/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/l3vpn/AbstractFlowspecL3vpnRIBSupport.java +++ b/bgp/extensions/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/l3vpn/AbstractFlowspecL3vpnRIBSupport.java @@ -17,7 +17,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib. import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.AddressFamily; import org.opendaylight.yangtools.yang.binding.ChildOf; import org.opendaylight.yangtools.yang.binding.DataObject; -import org.opendaylight.yangtools.yang.binding.Identifiable; +import org.opendaylight.yangtools.yang.binding.KeyAware; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; @@ -25,7 +25,7 @@ public abstract class AbstractFlowspecL3vpnRIBSupport< T extends AbstractFlowspecL3vpnNlriParser, C extends Routes & DataObject, S extends ChildOf, - R extends Route & ChildOf & Identifiable> extends AbstractFlowspecRIBSupport { + R extends Route & ChildOf & KeyAware> extends AbstractFlowspecRIBSupport { protected AbstractFlowspecL3vpnRIBSupport( final BindingNormalizedNodeSerializer mappingService, final Class cazeClass, final QName cazeQName, diff --git a/bgp/extensions/inet/pom.xml b/bgp/extensions/inet/pom.xml index 4506f87b9b..c715a86172 100644 --- a/bgp/extensions/inet/pom.xml +++ b/bgp/extensions/inet/pom.xml @@ -23,14 +23,18 @@ ${project.artifactId} + + com.guicedee.services + javax.inject + true + org.kohsuke.metainf-services metainf-services - com.guicedee.services - javax.inject - true + org.opendaylight.yangtools + util org.osgi diff --git a/bgp/extensions/inet/src/main/java/org/opendaylight/protocol/bgp/inet/AbstractIPRibSupport.java b/bgp/extensions/inet/src/main/java/org/opendaylight/protocol/bgp/inet/AbstractIPRibSupport.java index 4723f52086..274d345dc2 100644 --- a/bgp/extensions/inet/src/main/java/org/opendaylight/protocol/bgp/inet/AbstractIPRibSupport.java +++ b/bgp/extensions/inet/src/main/java/org/opendaylight/protocol/bgp/inet/AbstractIPRibSupport.java @@ -9,11 +9,11 @@ package org.opendaylight.protocol.bgp.inet; import static com.google.common.base.Preconditions.checkState; -import com.google.common.collect.ImmutableCollection; import com.google.common.collect.ImmutableSet; import java.util.ArrayList; import java.util.Collection; import java.util.List; +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer; import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction; import org.opendaylight.protocol.bgp.parser.spi.PathIdUtil; @@ -27,7 +27,7 @@ import org.opendaylight.yangtools.yang.binding.BindingObject; import org.opendaylight.yangtools.yang.binding.ChildOf; import org.opendaylight.yangtools.yang.binding.ChoiceIn; import org.opendaylight.yangtools.yang.binding.DataObject; -import org.opendaylight.yangtools.yang.binding.Identifiable; +import org.opendaylight.yangtools.yang.binding.KeyAware; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; @@ -45,12 +45,13 @@ import org.slf4j.LoggerFactory; abstract class AbstractIPRibSupport< C extends Routes & DataObject & ChoiceIn, S extends ChildOf, - R extends Route & ChildOf & Identifiable> + R extends Route & ChildOf & KeyAware> extends AbstractRIBSupport { private static final Logger LOG = LoggerFactory.getLogger(AbstractIPRibSupport.class); + + private final @NonNull ImmutableSet> cacheableNlriObjects; private final NodeIdentifier prefixNid; private final NodeIdentifier nlriRoutesList; - private final ImmutableCollection> cacheableNlriObjects; AbstractIPRibSupport( final BindingNormalizedNodeSerializer mappingService, @@ -72,7 +73,7 @@ abstract class AbstractIPRibSupport< } @Override - public final ImmutableCollection> cacheableNlriObjects() { + public final ImmutableSet> cacheableNlriObjects() { return cacheableNlriObjects; } diff --git a/bgp/extensions/l3vpn/pom.xml b/bgp/extensions/l3vpn/pom.xml index 72d5491cf6..8604b60f5a 100644 --- a/bgp/extensions/l3vpn/pom.xml +++ b/bgp/extensions/l3vpn/pom.xml @@ -44,6 +44,10 @@ javax.inject true + + org.opendaylight.yangtools + util + org.osgi org.osgi.service.component.annotations diff --git a/bgp/extensions/labeled-unicast/pom.xml b/bgp/extensions/labeled-unicast/pom.xml index f4872bdead..222ea11080 100644 --- a/bgp/extensions/labeled-unicast/pom.xml +++ b/bgp/extensions/labeled-unicast/pom.xml @@ -32,6 +32,10 @@ ${project.groupId} concepts + + org.opendaylight.yangtools + util + org.opendaylight.yangtools yang-common-netty @@ -44,10 +48,6 @@ org.opendaylight.mdsal mdsal-rfc8294-netty - - org.slf4j - slf4j-api - org.kohsuke.metainf-services metainf-services diff --git a/bgp/extensions/linkstate/pom.xml b/bgp/extensions/linkstate/pom.xml index ab4b199530..abf031852d 100644 --- a/bgp/extensions/linkstate/pom.xml +++ b/bgp/extensions/linkstate/pom.xml @@ -35,6 +35,10 @@ ${project.groupId} rsvp-api + + org.opendaylight.yangtools + util + org.opendaylight.yangtools yang-common-netty diff --git a/bgp/extensions/mvpn/pom.xml b/bgp/extensions/mvpn/pom.xml index 41f6b35e23..1ce56fed50 100644 --- a/bgp/extensions/mvpn/pom.xml +++ b/bgp/extensions/mvpn/pom.xml @@ -39,6 +39,10 @@ org.opendaylight.mdsal.model yang-ext + + org.opendaylight.yangtools + util + org.opendaylight.yangtools yang-common-netty diff --git a/bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/attributes/OpaqueUtil.java b/bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/attributes/OpaqueUtil.java index c8682cd9aa..03b5d0c1bc 100644 --- a/bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/attributes/OpaqueUtil.java +++ b/bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/attributes/OpaqueUtil.java @@ -63,7 +63,7 @@ public final class OpaqueUtil { } private static byte[] writeOpaqueValue(final HexString opaque) { - return IetfYangUtil.INSTANCE.hexStringBytes(opaque); + return IetfYangUtil.hexStringBytes(opaque); } public static Opaque parseOpaque(final ByteBuf buffer) { @@ -93,7 +93,7 @@ public final class OpaqueUtil { private static HexString buildOpaqueValue(final ByteBuf buffer) { final int length = buffer.readUnsignedShort(); - return IetfYangUtil.INSTANCE.hexStringFor(ByteArray.readBytes(buffer, length)); + return IetfYangUtil.hexStringFor(ByteArray.readBytes(buffer, length)); } public static List parseOpaqueList(final ByteBuf byteBuf) { diff --git a/bgp/extensions/parent/pom.xml b/bgp/extensions/parent/pom.xml index b020c502d6..eec69526ec 100644 --- a/bgp/extensions/parent/pom.xml +++ b/bgp/extensions/parent/pom.xml @@ -137,7 +137,7 @@ org.opendaylight.yangtools:yang-data-impl org.opendaylight.bgpcep:concepts - + org.opendaylight.mdsal.model:yang-ext org.opendaylight.bgpcep:bgp-bmp-api diff --git a/bgp/extensions/pom.xml b/bgp/extensions/pom.xml index a1407826af..774e0649fd 100644 --- a/bgp/extensions/pom.xml +++ b/bgp/extensions/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/bgp/extensions/route-target/pom.xml b/bgp/extensions/route-target/pom.xml index 415985f5b6..06e7eec345 100644 --- a/bgp/extensions/route-target/pom.xml +++ b/bgp/extensions/route-target/pom.xml @@ -36,6 +36,10 @@ ${project.groupId} bgp-inet + + org.opendaylight.yangtools + util + org.opendaylight.yangtools yang-common-netty diff --git a/bgp/openconfig-rp-impl/pom.xml b/bgp/openconfig-rp-impl/pom.xml index c69d3f82ad..b565ca13c7 100644 --- a/bgp/openconfig-rp-impl/pom.xml +++ b/bgp/openconfig-rp-impl/pom.xml @@ -43,6 +43,10 @@ ${project.groupId} bgp-parser-api + + org.eclipse.jdt + org.eclipse.jdt.annotation + org.opendaylight.mdsal mdsal-binding-api diff --git a/bgp/openconfig-rp-spi/pom.xml b/bgp/openconfig-rp-spi/pom.xml index eefac1951b..5a17fb7aee 100644 --- a/bgp/openconfig-rp-spi/pom.xml +++ b/bgp/openconfig-rp-spi/pom.xml @@ -39,6 +39,24 @@ ${project.groupId} bgp-parser-api + + com.github.spotbugs + spotbugs-annotations + true + + + com.google.guava + guava + + + org.checkerframework + checker-qual + provided + + + org.eclipse.jdt + org.eclipse.jdt.annotation + org.opendaylight.mdsal yang-binding @@ -55,15 +73,6 @@ org.opendaylight.yangtools yang-common - - com.google.guava - guava - - - org.checkerframework - checker-qual - provided - com.guicedee.services javax.inject diff --git a/bgp/openconfig-rp-spi/src/main/java/org/opendaylight/protocol/bgp/openconfig/routing/policy/spi/registry/ActionsRegistryImpl.java b/bgp/openconfig-rp-spi/src/main/java/org/opendaylight/protocol/bgp/openconfig/routing/policy/spi/registry/ActionsRegistryImpl.java index e1f0449b94..a9025ddf99 100644 --- a/bgp/openconfig-rp-spi/src/main/java/org/opendaylight/protocol/bgp/openconfig/routing/policy/spi/registry/ActionsRegistryImpl.java +++ b/bgp/openconfig-rp-spi/src/main/java/org/opendaylight/protocol/bgp/openconfig/routing/policy/spi/registry/ActionsRegistryImpl.java @@ -190,13 +190,13 @@ final class ActionsRegistryImpl { if (address.getIpv4Address() != null) { nhNew = new Ipv4NextHopCaseBuilder() .setIpv4NextHop(new Ipv4NextHopBuilder() - .setGlobal(IetfInetUtil.INSTANCE.ipv4AddressNoZoneFor(address.getIpv4Address())) + .setGlobal(IetfInetUtil.ipv4AddressNoZoneFor(address.getIpv4Address())) .build()) .build(); } else { nhNew = new Ipv6NextHopCaseBuilder() .setIpv6NextHop(new Ipv6NextHopBuilder() - .setGlobal(IetfInetUtil.INSTANCE.ipv6AddressNoZoneFor(address.getIpv6Address())) + .setGlobal(IetfInetUtil.ipv6AddressNoZoneFor(address.getIpv6Address())) .build()) .build(); } diff --git a/bgp/openconfig-spi/pom.xml b/bgp/openconfig-spi/pom.xml index f8816121f5..0bafa8a27c 100644 --- a/bgp/openconfig-spi/pom.xml +++ b/bgp/openconfig-spi/pom.xml @@ -41,6 +41,10 @@ ${project.groupId} bgp-rib-api + + org.eclipse.jdt + org.eclipse.jdt.annotation + org.opendaylight.yangtools concepts diff --git a/bgp/parser-spi/pom.xml b/bgp/parser-spi/pom.xml index eda422859e..59fe34f397 100644 --- a/bgp/parser-spi/pom.xml +++ b/bgp/parser-spi/pom.xml @@ -50,6 +50,10 @@ org.opendaylight.mdsal yang-binding + + org.eclipse.jdt + org.eclipse.jdt.annotation + org.opendaylight.yangtools concepts diff --git a/bgp/peer-acceptor/src/main/java/org/opendaylight/protocol/bgp/peer/acceptor/BGPPeerAcceptorImpl.java b/bgp/peer-acceptor/src/main/java/org/opendaylight/protocol/bgp/peer/acceptor/BGPPeerAcceptorImpl.java index 967e0ef0d8..aa56ec941f 100644 --- a/bgp/peer-acceptor/src/main/java/org/opendaylight/protocol/bgp/peer/acceptor/BGPPeerAcceptorImpl.java +++ b/bgp/peer-acceptor/src/main/java/org/opendaylight/protocol/bgp/peer/acceptor/BGPPeerAcceptorImpl.java @@ -102,14 +102,14 @@ public final class BGPPeerAcceptorImpl implements AutoCloseable { @Override public void onPeerAdded(final IpAddressNoZone ip, final BGPSessionPreferences prefs) { prefs.getMd5Password().ifPresent(password -> { - keys.put(IetfInetUtil.INSTANCE.inetAddressForNoZone(ip), password); + keys.put(IetfInetUtil.inetAddressForNoZone(ip), password); channelConfig.setOption(EpollChannelOption.TCP_MD5SIG, keys); }); } @Override public void onPeerRemoved(final IpAddressNoZone ip) { - if (keys.remove(IetfInetUtil.INSTANCE.inetAddressForNoZone(ip)) != null) { + if (keys.remove(IetfInetUtil.inetAddressForNoZone(ip)) != null) { channelConfig.setOption(EpollChannelOption.TCP_MD5SIG, keys); } } diff --git a/bgp/pom.xml b/bgp/pom.xml index e16ec2ba46..f1f6e31061 100644 --- a/bgp/pom.xml +++ b/bgp/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/bgp/rib-impl/pom.xml b/bgp/rib-impl/pom.xml index 91ee04315b..9ffe0cb674 100644 --- a/bgp/rib-impl/pom.xml +++ b/bgp/rib-impl/pom.xml @@ -81,6 +81,28 @@ ${project.groupId} concepts + + com.github.spotbugs + spotbugs-annotations + true + + + com.google.guava + guava + + + org.apache.commons + commons-lang3 + + + org.checkerframework + checker-qual + provided + + + org.eclipse.jdt + org.eclipse.jdt.annotation + org.opendaylight.mdsal mdsal-dom-api @@ -133,19 +155,7 @@ org.opendaylight.yangtools concepts - - org.apache.commons - commons-lang3 - - - com.google.guava - guava - - - org.checkerframework - checker-qual - provided - + io.netty diff --git a/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/AdjRibOutListener.java b/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/AdjRibOutListener.java index 5081f90468..3bceb14428 100644 --- a/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/AdjRibOutListener.java +++ b/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/AdjRibOutListener.java @@ -131,13 +131,13 @@ final class AdjRibOutListener implements ClusteredDOMDataTreeChangeListener, Pre case DELETE: case DISAPPEARED: // FIXME: we can batch deletions into a single batch - update = withdraw((MapEntryNode) route.getDataBefore().orElseThrow()); + update = withdraw((MapEntryNode) route.getDataBefore()); LOG.debug("Withdrawing routes {}", update); break; case APPEARED: case SUBTREE_MODIFIED: case WRITE: - update = advertise((MapEntryNode) route.getDataAfter().orElseThrow()); + update = advertise((MapEntryNode) route.getDataAfter()); LOG.debug("Advertising routes {}", update); break; default: diff --git a/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/ApplicationPeer.java b/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/ApplicationPeer.java index 89f9df173e..a021c6442f 100644 --- a/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/ApplicationPeer.java +++ b/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/ApplicationPeer.java @@ -186,7 +186,7 @@ public class ApplicationPeer extends AbstractPeer implements ClusteredDOMDataTre final DOMDataTreeWriteTransaction tx = chain.newWriteOnlyTransaction(); LOG.debug("Received data change to ApplicationRib {}", changes); for (final DataTreeCandidate tc : changes) { - LOG.debug("Modification Type {}", tc.getRootNode().getModificationType()); + LOG.debug("Modification Type {}", tc.getRootNode().modificationType()); final YangInstanceIdentifier path = tc.getRootPath(); final PathArgument lastArg = path.getLastPathArgument(); verify(lastArg instanceof NodeIdentifierWithPredicates, @@ -196,10 +196,10 @@ public class ApplicationPeer extends AbstractPeer implements ClusteredDOMDataTre LOG.trace("Skipping received data change for non supported family {}.", tableKey); continue; } - for (final DataTreeCandidateNode child : tc.getRootNode().getChildNodes()) { - final PathArgument childIdentifier = child.getIdentifier(); + for (final DataTreeCandidateNode child : tc.getRootNode().childNodes()) { + final PathArgument childIdentifier = child.name(); final YangInstanceIdentifier tableId = adjRibsInId.node(tableKey).node(childIdentifier); - switch (child.getModificationType()) { + switch (child.modificationType()) { case DELETE: case DISAPPEARED: LOG.trace("App peer -> AdjRibsIn path delete: {}", childIdentifier); @@ -239,19 +239,20 @@ public class ApplicationPeer extends AbstractPeer implements ClusteredDOMDataTre private static void processWrite(final DataTreeCandidateNode child, final YangInstanceIdentifier tableId, final DOMDataTreeWriteTransaction tx) { - child.getDataAfter().ifPresent(dataAfter -> { + final var dataAfter = child.dataAfter(); + if (dataAfter != null) { LOG.trace("App peer -> AdjRibsIn path : {}", tableId); LOG.trace("App peer -> AdjRibsIn data : {}", dataAfter); tx.put(LogicalDatastoreType.OPERATIONAL, tableId, dataAfter); - }); + } } private synchronized void processRoutesTable(final DataTreeCandidateNode node, final YangInstanceIdentifier identifier, final DOMDataTreeWriteTransaction tx, final YangInstanceIdentifier routeTableIdentifier) { - for (final DataTreeCandidateNode child : node.getChildNodes()) { - final YangInstanceIdentifier childIdentifier = identifier.node(child.getIdentifier()); - switch (child.getModificationType()) { + for (var child : node.childNodes()) { + final YangInstanceIdentifier childIdentifier = identifier.node(child.name()); + switch (child.modificationType()) { case DELETE: LOG.trace("App peer -> AdjRibsIn path delete: {}", childIdentifier); tx.delete(LogicalDatastoreType.OPERATIONAL, childIdentifier); @@ -279,11 +280,12 @@ public class ApplicationPeer extends AbstractPeer implements ClusteredDOMDataTre private static void processRouteWrite(final DataTreeCandidateNode child, final YangInstanceIdentifier childIdentifier, final DOMDataTreeWriteTransaction tx) { - child.getDataAfter().ifPresent(dataAfter -> { + final var dataAfter = child.dataAfter(); + if (dataAfter != null) { LOG.trace("App peer -> AdjRibsIn path : {}", childIdentifier); LOG.trace("App peer -> AdjRibsIn data : {}", dataAfter); tx.put(LogicalDatastoreType.OPERATIONAL, childIdentifier, dataAfter); - }); + } } @Override diff --git a/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/CodecsImpl.java b/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/CodecsImpl.java index d2f6d158c6..84419ed8bf 100644 --- a/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/CodecsImpl.java +++ b/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/CodecsImpl.java @@ -16,6 +16,7 @@ import java.util.Set; import org.opendaylight.mdsal.binding.dom.codec.api.BindingCodecTree; import org.opendaylight.mdsal.binding.dom.codec.api.BindingDataObjectCodecTreeNode; import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeCachingCodec; +import org.opendaylight.mdsal.binding.dom.codec.api.CommonDataObjectCodecTreeNode; import org.opendaylight.protocol.bgp.rib.impl.spi.Codecs; import org.opendaylight.protocol.bgp.rib.spi.RIBSupport; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.ClusterId; @@ -96,24 +97,26 @@ public final class CodecsImpl implements Codecs { @SuppressWarnings("unchecked") public void onCodecTreeUpdated(final BindingCodecTree tree) { - @SuppressWarnings("rawtypes") - final BindingDataObjectCodecTreeNode tableCodecContext = tree.getSubtreeCodec(TABLE_BASE_II); + final CommonDataObjectCodecTreeNode codecContext = tree.getSubtreeCodec(TABLE_BASE_II); + if (!(codecContext instanceof BindingDataObjectCodecTreeNode tableCodecContext)) { + throw new IllegalStateException("Unexpected table codec " + codecContext); + } + final BindingDataObjectCodecTreeNode routeListCodec = tableCodecContext - .streamChild(Routes.class) - .streamChild(ribSupport.routesCaseClass()) - .streamChild(ribSupport.routesContainerClass()) - .streamChild(ribSupport.routesListClass()); + .getStreamChild(Routes.class) + .getStreamChild(ribSupport.routesCaseClass()) + .getStreamChild(ribSupport.routesContainerClass()) + .getStreamDataObject(ribSupport.routesListClass()); - attributesCodec = routeListCodec.streamChild(Attributes.class) + attributesCodec = routeListCodec.getStreamDataObject(Attributes.class) .createCachingCodec(cacheableAttributes); - final var attrCodec = tree.streamChild(Update.class) - .streamChild(Attributes.class); - reachNlriCodec = attrCodec.streamChild(AttributesReach.class) - .streamChild(MpReachNlri.class) + final var attrCodec = tree.getStreamChild(Update.class).getStreamChild(Attributes.class); + reachNlriCodec = attrCodec.getStreamChild(AttributesReach.class) + .getStreamDataObject(MpReachNlri.class) .createCachingCodec(ribSupport.cacheableNlriObjects()); - unreachNlriCodec = attrCodec.streamChild(AttributesUnreach.class) - .streamChild(MpUnreachNlri.class) + unreachNlriCodec = attrCodec.getStreamChild(AttributesUnreach.class) + .getStreamDataObject(MpUnreachNlri.class) .createCachingCodec(ribSupport.cacheableNlriObjects()); } diff --git a/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/EffectiveRibInWriter.java b/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/EffectiveRibInWriter.java index 3e89777836..0801369e23 100644 --- a/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/EffectiveRibInWriter.java +++ b/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/EffectiveRibInWriter.java @@ -10,7 +10,6 @@ package org.opendaylight.protocol.bgp.rib.impl; import static com.google.common.base.Verify.verify; import static com.google.common.base.Verify.verifyNotNull; import static java.util.Objects.requireNonNull; -import static org.opendaylight.protocol.bgp.rib.spi.RIBNodeIdentifiers.ADJRIBIN_ATTRIBUTES_AID; import static org.opendaylight.protocol.bgp.rib.spi.RIBNodeIdentifiers.ADJRIBIN_NID; import static org.opendaylight.protocol.bgp.rib.spi.RIBNodeIdentifiers.ATTRIBUTES_NID; import static org.opendaylight.protocol.bgp.rib.spi.RIBNodeIdentifiers.EFFRIBIN_NID; @@ -35,6 +34,8 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.atomic.LongAdder; import org.checkerframework.checker.lock.qual.GuardedBy; import org.checkerframework.checker.lock.qual.Holding; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.mdsal.common.api.CommitInfo; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.mdsal.dom.api.ClusteredDOMDataTreeChangeListener; @@ -314,7 +315,7 @@ final class EffectiveRibInWriter implements PrefixesReceivedCounters, PrefixesIn private void deleteTable(final DOMDataTreeWriteTransaction tx, final RIBSupportContext ribContext, final YangInstanceIdentifier effectiveTablePath, final DataTreeCandidateNode table) { LOG.debug("Delete Effective Table {}", effectiveTablePath); - onDeleteTable(ribContext.getRibSupport(), effectiveTablePath, table.getDataBefore()); + onDeleteTable(ribContext.getRibSupport(), effectiveTablePath, table.dataBefore()); tx.delete(LogicalDatastoreType.OPERATIONAL, effectiveTablePath); } @@ -322,8 +323,8 @@ final class EffectiveRibInWriter implements PrefixesReceivedCounters, PrefixesIn final YangInstanceIdentifier effectiveTablePath, final DataTreeCandidateNode table) { LOG.debug("Modify Effective Table {}", effectiveTablePath); - final boolean wasLongLivedStale = isLongLivedStaleTable(table.getDataBefore()); - final boolean longLivedStale = isLongLivedStaleTable(table.getDataAfter()); + final boolean wasLongLivedStale = isLongLivedStaleTable(table.findDataBefore()); + final boolean longLivedStale = isLongLivedStaleTable(table.findDataAfter()); if (wasLongLivedStale != longLivedStale) { LOG.debug("LLGR_STALE flag flipped {}, overwriting table {}", longLivedStale ? "ON" : "OFF", effectiveTablePath); @@ -331,26 +332,29 @@ final class EffectiveRibInWriter implements PrefixesReceivedCounters, PrefixesIn return; } - table.getModifiedChild(ATTRIBUTES_NID).ifPresent(modifiedAttrs -> { + final var modifiedAttrs = table.modifiedChild(ATTRIBUTES_NID); + if (modifiedAttrs != null) { final YangInstanceIdentifier effAttrsPath = effectiveTablePath.node(ATTRIBUTES_NID); - final Optional optAttrsAfter = modifiedAttrs.getDataAfter(); - if (optAttrsAfter.isPresent()) { + final var attrsAfter = modifiedAttrs.dataAfter(); + if (attrsAfter != null) { tx.put(LogicalDatastoreType.OPERATIONAL, effAttrsPath, - effectiveAttributes(extractContainer(optAttrsAfter.orElseThrow()))); + effectiveAttributes(extractContainer(attrsAfter))); } else { tx.delete(LogicalDatastoreType.OPERATIONAL, effAttrsPath); } - }); + } - table.getModifiedChild(ROUTES_NID).ifPresent(modifiedRoutes -> { + final var modifiedRoutes = table.modifiedChild(ROUTES_NID); + if (modifiedRoutes != null) { final RIBSupport ribSupport = ribContext.getRibSupport(); - switch (modifiedRoutes.getModificationType()) { + switch (modifiedRoutes.modificationType()) { case APPEARED: case WRITE: deleteRoutesBefore(tx, ribSupport, effectiveTablePath, modifiedRoutes); // XXX: YANG Tools seems to have an issue stacking DELETE with child WRITE tx.put(LogicalDatastoreType.OPERATIONAL, effectiveTablePath.node(ROUTES_NID), EMPTY_ROUTES); - writeRoutesAfter(tx, ribSupport, effectiveTablePath, modifiedRoutes.getDataAfter(), longLivedStale); + writeRoutesAfter(tx, ribSupport, effectiveTablePath, modifiedRoutes.findDataAfter(), + longLivedStale); break; case DELETE: case DISAPPEARED: @@ -369,17 +373,16 @@ final class EffectiveRibInWriter implements PrefixesReceivedCounters, PrefixesIn LOG.warn("Ignoring modified routes {}", modifiedRoutes); break; } - }); + } } private void writeTable(final DOMDataTreeWriteTransaction tx, final RIBSupportContext ribContext, final YangInstanceIdentifier effectiveTablePath, final DataTreeCandidateNode table) { LOG.debug("Write Effective Table {}", effectiveTablePath); - onDeleteTable(ribContext.getRibSupport(), effectiveTablePath, table.getDataBefore()); + onDeleteTable(ribContext.getRibSupport(), effectiveTablePath, table.dataBefore()); - final Optional maybeTableAfter = table.getDataAfter(); - if (maybeTableAfter.isPresent()) { - final NormalizedNode node = maybeTableAfter.orElseThrow(); + final var node = table.dataAfter(); + if (node != null) { verify(node instanceof MapEntryNode, "Expected MapEntryNode, got %s", node); final MapEntryNode tableAfter = (MapEntryNode) node; ribContext.createEmptyTableStructure(tx, effectiveTablePath); @@ -402,10 +405,9 @@ final class EffectiveRibInWriter implements PrefixesReceivedCounters, PrefixesIn // Performs house-keeping when the contents of a table is deleted private void onDeleteTable(final RIBSupport ribSupport, final YangInstanceIdentifier effectiveTablePath, - final Optional tableBefore) { + final @Nullable NormalizedNode tableBefore) { // Routes are special in that we need to process the to keep our counters accurate - final Optional maybeRoutesBefore = findRoutesMap(ribSupport, - NormalizedNodes.findNode(tableBefore, ROUTES_NID)); + final var maybeRoutesBefore = findRoutesMap(ribSupport, NormalizedNodes.findNode(tableBefore, ROUTES_NID)); if (maybeRoutesBefore.isPresent()) { onRoutesDeleted(ribSupport, effectiveTablePath, extractMap(maybeRoutesBefore).body()); } @@ -413,8 +415,8 @@ final class EffectiveRibInWriter implements PrefixesReceivedCounters, PrefixesIn private void deleteRoutesBefore(final DOMDataTreeWriteTransaction tx, final RIBSupport ribSupport, final YangInstanceIdentifier effectiveTablePath, final DataTreeCandidateNode modifiedRoutes) { - final Optional maybeRoutesBefore = NormalizedNodes.findNode( - modifiedRoutes.getDataBefore(), ribSupport.relativeRoutesPath()); + final Optional maybeRoutesBefore = + NormalizedNodes.findNode(modifiedRoutes.dataBefore(), ribSupport.relativeRoutesPath()); if (maybeRoutesBefore.isPresent()) { onRoutesDeleted(ribSupport, effectiveTablePath, extractMap(maybeRoutesBefore).body()); } @@ -428,7 +430,7 @@ final class EffectiveRibInWriter implements PrefixesReceivedCounters, PrefixesIn if (maybeRoutesAfter.isPresent()) { final YangInstanceIdentifier routesPath = routeMapPath(ribSupport, effectiveTablePath); for (MapEntryNode routeAfter : extractMap(maybeRoutesAfter).body()) { - writeRoute(tx, ribSupport, routesPath.node(routeAfter.getIdentifier()), Optional.empty(), routeAfter, + writeRoute(tx, ribSupport, routesPath.node(routeAfter.getIdentifier()), null, routeAfter, longLivedStale); } } @@ -455,7 +457,7 @@ final class EffectiveRibInWriter implements PrefixesReceivedCounters, PrefixesIn switch (route.getModificationType()) { case DELETE: case DISAPPEARED: - deleteRoute(tx, ribSupport, routePath, route.getDataBefore().orElse(null)); + deleteRoute(tx, ribSupport, routePath, route.dataBefore()); break; case UNMODIFIED: // No-op @@ -463,8 +465,7 @@ final class EffectiveRibInWriter implements PrefixesReceivedCounters, PrefixesIn case APPEARED: case SUBTREE_MODIFIED: case WRITE: - writeRoute(tx, ribSupport, routePath, route.getDataBefore(), route.getDataAfter().orElseThrow(), - longLivedStale); + writeRoute(tx, ribSupport, routePath, route.dataBefore(), route.getDataAfter(), longLivedStale); break; default: LOG.warn("Ignoring unhandled route {}", route); @@ -482,8 +483,8 @@ final class EffectiveRibInWriter implements PrefixesReceivedCounters, PrefixesIn } private void writeRoute(final DOMDataTreeWriteTransaction tx, final RIBSupport ribSupport, - final YangInstanceIdentifier routePath, final Optional routeBefore, - final NormalizedNode routeAfter, final boolean longLivedStale) { + final YangInstanceIdentifier routePath, final @Nullable NormalizedNode routeBefore, + final @NonNull NormalizedNode routeAfter, final boolean longLivedStale) { final TablesKey tablesKey = ribSupport.getTablesKey(); CountersUtil.increment(prefixesReceived.get(tablesKey), tablesKey); // Lookup per-table attributes from RIBSupport @@ -497,7 +498,7 @@ final class EffectiveRibInWriter implements PrefixesReceivedCounters, PrefixesIn // LLGR procedures are in effect. If the route is tagged with NO_LLGR, it needs to be removed. final List effCommunities = routeAttrs.getCommunities(); if (effCommunities != null && effCommunities.contains(CommunityUtil.NO_LLGR)) { - deleteRoute(tx, ribSupport, routePath, routeBefore.orElse(null)); + deleteRoute(tx, ribSupport, routePath, routeBefore); return; } optEffAtt = Optional.of(wrapLongLivedStale(routeAttrs)); @@ -506,7 +507,7 @@ final class EffectiveRibInWriter implements PrefixesReceivedCounters, PrefixesIn verifyNotNull(tableTypeRegistry.getAfiSafiType(ribSupport.getTablesKey()))); } if (optEffAtt.isEmpty()) { - deleteRoute(tx, ribSupport, routePath, routeBefore.orElse(null)); + deleteRoute(tx, ribSupport, routePath, routeBefore); return; } handleRouteTarget(ModificationType.WRITE, ribSupport, routePath, routeAfter); @@ -611,7 +612,7 @@ final class EffectiveRibInWriter implements PrefixesReceivedCounters, PrefixesIn } private static boolean isLongLivedStale(final ContainerNode attributes) { - return NormalizedNodes.findNode(attributes, ADJRIBIN_ATTRIBUTES_AID, LLGR_STALE_NID).isPresent(); + return NormalizedNodes.findNode(attributes, LLGR_STALE_NID).isPresent(); } private static boolean isLongLivedStaleTable(final Optional optTable) { diff --git a/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/LocRibWriter.java b/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/LocRibWriter.java index 95698bbb50..227b5cdccb 100644 --- a/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/LocRibWriter.java +++ b/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/LocRibWriter.java @@ -109,8 +109,8 @@ final class LocRibWriter, S ext this.ribIId = requireNonNull(ribIId); this.ribSupport = requireNonNull(ribSupport); - locRibTableIID = ribIId.node(LOCRIB_NID).node(TABLES_NID).node(ribSupport.emptyTable().getIdentifier()) - .toOptimized(); + locRibTableIID = ribIId.node(LOCRIB_NID).node(TABLES_NID).node(ribSupport.emptyTable().name()).toOptimized(); + this.ourAs = ourAs.toJava(); this.dataBroker = requireNonNull(dataBroker); this.peerTracker = peerTracker; @@ -233,7 +233,6 @@ final class LocRibWriter, S ext } } - @SuppressWarnings("unchecked") private Map> update(final DOMDataTreeWriteOperations tx, final Collection changes) { final Map> ret = new HashMap<>(); @@ -241,10 +240,8 @@ final class LocRibWriter, S ext final DataTreeCandidateNode table = tc.getRootNode(); final RouterId peerUuid = RouterId.forPeerId(IdentifierUtils.peerKeyToPeerId(tc.getRootPath())); - /* - Initialize Peer with routes under loc rib - */ - if (!routeEntries.isEmpty() && table.getDataBefore().isEmpty()) { + // Initialize Peer with routes under loc rib + if (!routeEntries.isEmpty() && table.dataBefore() == null) { final org.opendaylight.protocol.bgp.rib.spi.Peer toPeer = peerTracker.getPeer(peerUuid.getPeerId()); if (toPeer != null && toPeer.supportsTable(entryDep.getLocalTablesKey())) { @@ -258,9 +255,7 @@ final class LocRibWriter, S ext toPeer.initializeRibOut(entryDep, routesToStore); } } - /* - Process new routes from Peer - */ + // Process new routes from Peer updateNodes(table, peerUuid, tx, ret); } return ret; @@ -268,14 +263,18 @@ final class LocRibWriter, S ext private void updateNodes(final DataTreeCandidateNode table, final RouterId peerUuid, final DOMDataTreeWriteOperations tx, final Map> routes) { - table.getModifiedChild(ATTRIBUTES_NID).flatMap(DataTreeCandidateNode::getDataAfter).ifPresent(newAttValue -> { - LOG.trace("Uptodate found for {}", newAttValue); - tx.put(LogicalDatastoreType.OPERATIONAL, locRibTableIID.node(ATTRIBUTES_NID), newAttValue); - }); - - table.getModifiedChild(ROUTES_NID).ifPresent(modifiedRoutes -> { + final var modifiedAttrs = table.modifiedChild(ATTRIBUTES_NID); + if (modifiedAttrs != null) { + final var newAttValue = modifiedAttrs.dataAfter(); + if (newAttValue != null) { + LOG.trace("Uptodate found for {}", newAttValue); + tx.put(LogicalDatastoreType.OPERATIONAL, locRibTableIID.node(ATTRIBUTES_NID), newAttValue); + } + } + final var modifiedRoutes = table.modifiedChild(ROUTES_NID); + if (modifiedRoutes != null) { updateRoutesEntries(ribSupport.changedRoutes(modifiedRoutes), peerUuid, routes); - }); + } } private void updateRoutesEntries(final Collection collection, @@ -310,7 +309,7 @@ final class LocRibWriter, S ext entry = createEntry(routeKey); } - final NormalizedNode routeAfter = route.getDataAfter().orElseThrow(); + final NormalizedNode routeAfter = route.getDataAfter(); verify(routeAfter instanceof MapEntryNode, "Unexpected route %s", routeAfter); entry.addRoute(routerId, pathId, (MapEntryNode) routeAfter); totalPathsCounter.increment(); diff --git a/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/StrictBGPPeerRegistry.java b/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/StrictBGPPeerRegistry.java index 2abebb5946..5067b1a10a 100644 --- a/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/StrictBGPPeerRegistry.java +++ b/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/StrictBGPPeerRegistry.java @@ -89,14 +89,14 @@ public final class StrictBGPPeerRegistry implements BGPPeerRegistry, AutoCloseab public synchronized void addPeer(final IpAddressNoZone oldIp, final BGPSessionListener peer, final BGPSessionPreferences preferences) { IpAddressNoZone fullIp = getFullIp(oldIp); - Preconditions.checkArgument(!this.peers.containsKey(fullIp), + Preconditions.checkArgument(!peers.containsKey(fullIp), "Peer for %s already present", fullIp); - this.peers.put(fullIp, requireNonNull(peer)); + peers.put(fullIp, requireNonNull(peer)); requireNonNull(preferences.getMyAs()); requireNonNull(preferences.getParams()); requireNonNull(preferences.getBgpId()); - this.peerPreferences.put(fullIp, preferences); - for (final PeerRegistryListener peerRegistryListener : this.listeners) { + peerPreferences.put(fullIp, preferences); + for (final PeerRegistryListener peerRegistryListener : listeners) { peerRegistryListener.onPeerAdded(fullIp, preferences); } } @@ -109,8 +109,8 @@ public final class StrictBGPPeerRegistry implements BGPPeerRegistry, AutoCloseab @Override public synchronized void removePeer(final IpAddressNoZone oldIp) { IpAddressNoZone fullIp = getFullIp(oldIp); - this.peers.remove(fullIp); - for (final PeerRegistryListener peerRegistryListener : this.listeners) { + peers.remove(fullIp); + for (final PeerRegistryListener peerRegistryListener : listeners) { peerRegistryListener.onPeerRemoved(fullIp); } } @@ -118,8 +118,8 @@ public final class StrictBGPPeerRegistry implements BGPPeerRegistry, AutoCloseab @Override public synchronized void removePeerSession(final IpAddressNoZone oldIp) { IpAddressNoZone fullIp = getFullIp(oldIp); - this.sessionIds.remove(fullIp); - for (final PeerRegistrySessionListener peerRegistrySessionListener : this.sessionListeners) { + sessionIds.remove(fullIp); + for (final PeerRegistrySessionListener peerRegistrySessionListener : sessionListeners) { peerRegistrySessionListener.onSessionRemoved(fullIp); } } @@ -127,13 +127,13 @@ public final class StrictBGPPeerRegistry implements BGPPeerRegistry, AutoCloseab @Override public boolean isPeerConfigured(final IpAddressNoZone oldIp) { IpAddressNoZone fullIp = getFullIp(oldIp); - return this.peers.containsKey(fullIp); + return peers.containsKey(fullIp); } private void checkPeerConfigured(final IpAddressNoZone ip) { Preconditions.checkState(isPeerConfigured(ip), "BGP peer with ip: %s not configured, configured peers are: %s", - ip, this.peers.keySet()); + ip, peers.keySet()); } @Override @@ -150,9 +150,9 @@ public final class StrictBGPPeerRegistry implements BGPPeerRegistry, AutoCloseab checkPeerConfigured(ip); final BGPSessionId currentConnection = new BGPSessionId(sourceId, remoteId, remoteAsNumber); - final BGPSessionListener p = this.peers.get(ip); + final BGPSessionListener p = peers.get(ip); - final BGPSessionId previousConnection = this.sessionIds.get(ip); + final BGPSessionId previousConnection = sessionIds.get(ip); if (previousConnection != null) { @@ -180,8 +180,8 @@ public final class StrictBGPPeerRegistry implements BGPPeerRegistry, AutoCloseab } else if (currentConnection.isHigherDirection(previousConnection) || currentConnection.hasHigherAsNumber(previousConnection)) { LOG.warn("BGP session with {} {} released. Replaced by opposite session", ip, previousConnection); - this.peers.get(ip).releaseConnection(); - return this.peers.get(ip); + peers.get(ip).releaseConnection(); + return peers.get(ip); // Session reestablished with same source bgp id, dropping current as duplicate } else { LOG.warn("BGP session with {} initiated from {} to {} has to be dropped. Same session already present", @@ -194,8 +194,8 @@ public final class StrictBGPPeerRegistry implements BGPPeerRegistry, AutoCloseab validateAs(remoteAsNumber, openObj, prefs); // Map session id to peer IP address - this.sessionIds.put(ip, currentConnection); - for (final PeerRegistrySessionListener peerRegistrySessionListener : this.sessionListeners) { + sessionIds.put(ip, currentConnection); + for (final PeerRegistrySessionListener peerRegistrySessionListener : sessionListeners) { peerRegistrySessionListener.onSessionCreated(ip); } return p; @@ -254,7 +254,7 @@ public final class StrictBGPPeerRegistry implements BGPPeerRegistry, AutoCloseab public BGPSessionPreferences getPeerPreferences(final IpAddressNoZone ip) { requireNonNull(ip); checkPeerConfigured(ip); - return this.peerPreferences.get(ip); + return peerPreferences.get(ip); } /** @@ -274,21 +274,21 @@ public final class StrictBGPPeerRegistry implements BGPPeerRegistry, AutoCloseab Preconditions.checkArgument(inetAddress instanceof Inet4Address || inetAddress instanceof Inet6Address, "Expecting %s or %s but was %s", Inet4Address.class, Inet6Address.class, inetAddress.getClass()); - return IetfInetUtil.INSTANCE.ipAddressNoZoneFor(inetAddress); + return IetfInetUtil.ipAddressNoZoneFor(inetAddress); } @Deactivate @PreDestroy @Override public synchronized void close() { - this.peers.clear(); - this.sessionIds.clear(); + peers.clear(); + sessionIds.clear(); } @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("peers", this.peers.keySet()) + .add("peers", peers.keySet()) .toString(); } @@ -322,10 +322,10 @@ public final class StrictBGPPeerRegistry implements BGPPeerRegistry, AutoCloseab final BGPSessionId bGPSessionId = (BGPSessionId) obj; - if (!this.from.equals(bGPSessionId.from) && !this.from.equals(bGPSessionId.to)) { + if (!from.equals(bGPSessionId.from) && !from.equals(bGPSessionId.to)) { return false; } - if (!this.to.equals(bGPSessionId.to) && !this.to.equals(bGPSessionId.from)) { + if (!to.equals(bGPSessionId.to) && !to.equals(bGPSessionId.from)) { return false; } @@ -335,7 +335,7 @@ public final class StrictBGPPeerRegistry implements BGPPeerRegistry, AutoCloseab @Override public int hashCode() { final int prime = 31; - int result = this.from.hashCode() + this.to.hashCode(); + int result = from.hashCode() + to.hashCode(); result = prime * result; return result; } @@ -344,11 +344,11 @@ public final class StrictBGPPeerRegistry implements BGPPeerRegistry, AutoCloseab * Check if this connection is equal to other and if it contains higher source bgp id. */ boolean isHigherDirection(final BGPSessionId other) { - return toLong(this.from) > toLong(other.from); + return toLong(from) > toLong(other.from); } boolean hasHigherAsNumber(final BGPSessionId other) { - return this.asNumber.getValue().compareTo(other.asNumber.getValue()) > 0; + return asNumber.getValue().compareTo(other.asNumber.getValue()) > 0; } private static long toLong(final Ipv4Address from) { @@ -359,44 +359,44 @@ public final class StrictBGPPeerRegistry implements BGPPeerRegistry, AutoCloseab @Override public String toString() { return MoreObjects.toStringHelper(this) - .add("from", this.from) - .add("to", this.to) + .add("from", from) + .add("to", to) .toString(); } } @Override public synchronized Registration registerPeerRegisterListener(final PeerRegistryListener listener) { - this.listeners.add(listener); - for (final Entry entry : this.peerPreferences.entrySet()) { + listeners.add(listener); + for (final Entry entry : peerPreferences.entrySet()) { listener.onPeerAdded(entry.getKey(), entry.getValue()); } return new AbstractRegistration() { @Override protected void removeRegistration() { - StrictBGPPeerRegistry.this.listeners.remove(listener); + listeners.remove(listener); } }; } @Override public synchronized Registration registerPeerSessionListener(final PeerRegistrySessionListener listener) { - this.sessionListeners.add(listener); - for (final IpAddressNoZone ipAddress : this.sessionIds.keySet()) { + sessionListeners.add(listener); + for (final IpAddressNoZone ipAddress : sessionIds.keySet()) { listener.onSessionCreated(ipAddress); } return new AbstractRegistration() { @Override protected void removeRegistration() { - StrictBGPPeerRegistry.this.sessionListeners.remove(listener); + sessionListeners.remove(listener); } }; } @Override public void updatePeerPreferences(final IpAddressNoZone address, final BGPSessionPreferences preferences) { - if (this.peerPreferences.containsKey(address)) { - this.peerPreferences.put(address, preferences); + if (peerPreferences.containsKey(address)) { + peerPreferences.put(address, preferences); } } } diff --git a/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/config/AppPeer.java b/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/config/AppPeer.java index 85209aa119..948512ae20 100644 --- a/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/config/AppPeer.java +++ b/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/config/AppPeer.java @@ -72,8 +72,7 @@ final class AppPeer extends PeerBean { LOG.info("Starting AppPeer instance {}", neighbor.getNeighborAddress()); currentConfiguration = neighbor; bgpAppPeerSingletonService = new BgpAppPeerSingletonService(rib, createAppRibId(neighbor), - IetfInetUtil.INSTANCE.ipv4AddressNoZoneFor(neighbor.getNeighborAddress().getIpv4Address()), - tableTypeRegistry); + IetfInetUtil.ipv4AddressNoZoneFor(neighbor.getNeighborAddress().getIpv4Address()), tableTypeRegistry); stateProviderRegistration = stateProviderRegistry.register(this); } diff --git a/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/config/GracefulRestartUtil.java b/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/config/GracefulRestartUtil.java index f8daa59db5..65a618e90d 100644 --- a/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/config/GracefulRestartUtil.java +++ b/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/config/GracefulRestartUtil.java @@ -18,8 +18,6 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.function.Function; -import java.util.stream.Collectors; import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryConsumer; import org.opendaylight.protocol.bgp.rib.impl.BgpPeerUtil; import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.multiprotocol.rev151009.bgp.common.afi.safi.list.AfiSafi; @@ -38,11 +36,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mess import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.open.message.bgp.parameters.optional.capabilities.CParametersBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.CParameters1Builder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.mp.capabilities.LlGracefulRestartCapabilityBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.mp.capabilities.ll.graceful.restart.capability.Tables; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.mp.capabilities.ll.graceful.restart.capability.Tables.AfiFlags; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.mp.capabilities.ll.graceful.restart.capability.TablesBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329.rib.TablesKey; -import org.opendaylight.yangtools.yang.binding.Identifiable; +import org.opendaylight.yangtools.yang.binding.util.BindingMap; import org.opendaylight.yangtools.yang.common.Uint32; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -59,7 +56,7 @@ public final class GracefulRestartUtil { private static final Logger LOG = LoggerFactory.getLogger(GracefulRestartUtil.class); private GracefulRestartUtil() { - + // Hidden on purpose } public static CParameters getGracefulCapability(final Map tables, @@ -70,7 +67,7 @@ public final class GracefulRestartUtil { final TablesKey key = entry.getKey(); return gracefulRestartTable(key.getAfi(), key.getSafi(), entry.getValue()); }) - .collect(Collectors.toMap(Identifiable::key, Function.identity())), restartTime, localRestarting); + .collect(BindingMap.toMap()), restartTime, localRestarting); } public static CParameters getLlGracefulCapability(final Set llGracefulRestarts) { @@ -84,7 +81,7 @@ public final class GracefulRestartUtil { .setAfiFlags(new AfiFlags(dto.isForwarding())) .setLongLivedStaleTime(new Uint24(Uint32.valueOf(dto.getStaleTime()))) .build()) - .collect(Collectors.toMap(Tables::key, Function.identity()))) + .collect(BindingMap.toMap())) .build()) .build()) .build(); diff --git a/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/config/OpenConfigMappingUtil.java b/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/config/OpenConfigMappingUtil.java index 7121bb0a82..f9d5816ee4 100644 --- a/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/config/OpenConfigMappingUtil.java +++ b/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/config/OpenConfigMappingUtil.java @@ -8,7 +8,6 @@ package org.opendaylight.protocol.bgp.rib.impl.config; import static com.google.common.base.Preconditions.checkState; -import static org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IetfInetUtil.INSTANCE; import com.google.common.collect.Maps; import java.util.ArrayList; @@ -99,7 +98,7 @@ final class OpenConfigMappingUtil { if (config != null) { final String authPassword = config.getAuthPassword(); if (authPassword != null) { - return KeyMapping.of(INSTANCE.inetAddressFor(neighbor.getNeighborAddress()), authPassword); + return KeyMapping.of(IetfInetUtil.inetAddressFor(neighbor.getNeighborAddress()), authPassword); } } return null; @@ -117,11 +116,11 @@ final class OpenConfigMappingUtil { } final Ipv4Address ipv4 = addr.getIpv4Address(); if (ipv4 != null) { - return new IpAddressNoZone(INSTANCE.ipv4AddressNoZoneFor(ipv4)); + return new IpAddressNoZone(IetfInetUtil.ipv4AddressNoZoneFor(ipv4)); } final Ipv6Address ipv6 = addr.getIpv6Address(); checkState(ipv6 != null, "Unexpected address %s", addr); - return new IpAddressNoZone(INSTANCE.ipv6AddressNoZoneFor(ipv6)); + return new IpAddressNoZone(IetfInetUtil.ipv6AddressNoZoneFor(ipv6)); } static String getNeighborInstanceName(final InstanceIdentifier rootIdentifier) { @@ -154,7 +153,7 @@ final class OpenConfigMappingUtil { } else { addr = globalConfig.getRouterId(); } - return new ClusterIdentifier(IetfInetUtil.INSTANCE.ipv4AddressNoZoneFor(addr)); + return new ClusterIdentifier(IetfInetUtil.ipv4AddressNoZoneFor(addr)); } static @Nullable ClusterIdentifier getNeighborClusterIdentifier( @@ -174,7 +173,7 @@ final class OpenConfigMappingUtil { final org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbor.group.route .reflector.Config config = routeReflector.getConfig(); if (config != null && config.getRouteReflectorClusterId() != null) { - return new ClusterIdentifier(IetfInetUtil.INSTANCE.ipv4AddressNoZoneFor( + return new ClusterIdentifier(IetfInetUtil.ipv4AddressNoZoneFor( config.getRouteReflectorClusterId().getIpv4Address())); } } @@ -486,16 +485,11 @@ final class OpenConfigMappingUtil { if (!enabled.orElse(Boolean.FALSE)) { return null; } - switch (role) { - case Ebgp: - return RevisedErrorHandlingSupportImpl.forExternalPeer(); - case Ibgp: - case Internal: - case RrClient: - return RevisedErrorHandlingSupportImpl.forInternalPeer(); - default: - throw new IllegalStateException("Unhandled role " + role); - } + return switch (role) { + case Ebgp -> RevisedErrorHandlingSupportImpl.forExternalPeer(); + case Ibgp, Internal, RrClient -> RevisedErrorHandlingSupportImpl.forInternalPeer(); + default -> throw new IllegalStateException("Unhandled role " + role); + }; } private static Optional getRevisedErrorHandling(final BgpNeighborGroup group) { diff --git a/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/config/RibImpl.java b/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/config/RibImpl.java index ac09a0db9d..c3eb1ce25d 100644 --- a/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/config/RibImpl.java +++ b/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/config/RibImpl.java @@ -233,7 +233,7 @@ public final class RibImpl implements RIB, BGPRibStateProvider { afiSafi = getAfiSafiWithDefault(global.getAfiSafis(), true).values(); final Config globalConfig = global.getConfig(); asNumber = globalConfig.getAs(); - routerId = IetfInetUtil.INSTANCE.ipv4AddressNoZoneFor(globalConfig.getRouterId()); + routerId = IetfInetUtil.ipv4AddressNoZoneFor(globalConfig.getRouterId()); clusterId = getGlobalClusterIdentifier(globalConfig); final Map pathSelectionModes = OpenConfigMappingUtil .toPathSelectionMode(afiSafi, tableTypeRegistry).entrySet() diff --git a/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/AbstractBGPDispatcherTest.java b/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/AbstractBGPDispatcherTest.java index 117946c94f..cb5e0524ac 100644 --- a/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/AbstractBGPDispatcherTest.java +++ b/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/AbstractBGPDispatcherTest.java @@ -110,7 +110,7 @@ public class AbstractBGPDispatcherTest { capas.add(new OptionalCapabilitiesBuilder() .setCParameters(BgpExtendedMessageUtil.EXTENDED_MESSAGE_CAPABILITY).build()); tlvs.add(new BgpParametersBuilder().setOptionalCapabilities(capas).build()); - final BgpId bgpId = new BgpId(IetfInetUtil.INSTANCE.ipv4AddressFor(socketAddress.getAddress())); + final BgpId bgpId = new BgpId(IetfInetUtil.ipv4AddressFor(socketAddress.getAddress())); return new BGPSessionPreferences(AS_NUMBER, HOLD_TIMER, bgpId, AS_NUMBER, tlvs); } diff --git a/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/AbstractRIBTestSetup.java b/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/AbstractRIBTestSetup.java index 55464e22a6..bfda537920 100644 --- a/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/AbstractRIBTestSetup.java +++ b/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/AbstractRIBTestSetup.java @@ -155,7 +155,7 @@ public class AbstractRIBTestSetup extends DefaultRibPoliciesMockTest { final DataTreeCandidate candidate = mock(DataTreeCandidate.class); final DataTreeCandidateNode rootNode = mock(DataTreeCandidateNode.class); doReturn(rootNode).when(candidate).getRootNode(); - doReturn(type).when(rootNode).getModificationType(); + doReturn(type).when(rootNode).modificationType(); doCallRealMethod().when(rootNode).toString(); doReturn(target).when(candidate).getRootPath(); doCallRealMethod().when(candidate).toString(); @@ -170,12 +170,12 @@ public class AbstractRIBTestSetup extends DefaultRibPoliciesMockTest { .withNodeIdentifier(new NodeIdentifier(PREFIX_QNAME)).withValue(p).build()); final DataTreeCandidateNode child = mock(DataTreeCandidateNode.class); - doReturn(createIdentifier(p)).when(child).getIdentifier(); - doReturn(java.util.Optional.of(b.build())).when(child).getDataAfter(); - doReturn(type).when(child).getModificationType(); + doReturn(createIdentifier(p)).when(child).name(); + doReturn(b.build()).when(child).dataAfter(); + doReturn(type).when(child).modificationType(); children.add(child); } - doReturn(children).when(rootNode).getChildNodes(); + doReturn(children).when(rootNode).childNodes(); col.add(candidate); return col; } diff --git a/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/PeerTest.java b/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/PeerTest.java index b91c156fd8..77486f2494 100644 --- a/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/PeerTest.java +++ b/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/PeerTest.java @@ -98,7 +98,7 @@ public class PeerTest extends AbstractRIBTestSetup { private void overrideMockedBehaviour() { doAnswer(invocation -> { final var node = invocation.getArgument(2, NormalizedNode.class); - final var nodeType = node.getIdentifier().getNodeType(); + final var nodeType = node.name().getNodeType(); if (nodeType.equals(Ipv4Route.QNAME) || nodeType.equals(PREFIX_QNAME)) { routes.put(invocation.getArgument(1), node); } diff --git a/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/config/OpenConfigMappingUtilTest.java b/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/config/OpenConfigMappingUtilTest.java index b2ddabe378..a73930b0b5 100644 --- a/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/config/OpenConfigMappingUtilTest.java +++ b/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/config/OpenConfigMappingUtilTest.java @@ -21,7 +21,6 @@ import static org.opendaylight.protocol.bgp.rib.impl.config.BgpPeerTest.SHORT; import static org.opendaylight.protocol.bgp.rib.impl.config.BgpPeerTest.createAfiSafi; import static org.opendaylight.protocol.bgp.rib.impl.config.BgpPeerTest.createNeighborExpected; import static org.opendaylight.protocol.bgp.rib.impl.config.OpenConfigMappingUtil.HOLDTIMER; -import static org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IetfInetUtil.INSTANCE; import com.google.common.collect.ImmutableMap; import java.math.BigDecimal; @@ -78,6 +77,7 @@ import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.network.instance.re import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.network.instance.rev151018.network.instance.top.network.instances.network.instance.protocols.ProtocolKey; import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.policy.types.rev151009.BGP; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IetfInetUtil; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressNoZone; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; @@ -242,7 +242,7 @@ public class OpenConfigMappingUtilTest { @Test public void testGetNeighborKey() { assertArrayEquals(MD5_PASSWORD.getBytes(StandardCharsets.US_ASCII), - OpenConfigMappingUtil.getNeighborKey(NEIGHBOR).asMap().get(INSTANCE.inetAddressFor(NEIGHBOR_ADDRESS))); + OpenConfigMappingUtil.getNeighborKey(NEIGHBOR).asMap().get(IetfInetUtil.inetAddressFor(NEIGHBOR_ADDRESS))); assertNull(OpenConfigMappingUtil.getNeighborKey(EMPTY_NEIGHBOR)); assertNull(OpenConfigMappingUtil.getNeighborKey(new NeighborBuilder().setNeighborAddress(NEIGHBOR_ADDRESS) .setConfig(new ConfigBuilder().build()).build())); diff --git a/bgp/rib-mock/pom.xml b/bgp/rib-mock/pom.xml index 4785925f68..3162ea8876 100644 --- a/bgp/rib-mock/pom.xml +++ b/bgp/rib-mock/pom.xml @@ -29,6 +29,10 @@ ${project.groupId} util + + ${project.groupId} + bgp-concepts + ${project.groupId} bgp-parser-api diff --git a/bgp/rib-spi/src/main/java/org/opendaylight/protocol/bgp/rib/spi/AbstractRIBSupport.java b/bgp/rib-spi/src/main/java/org/opendaylight/protocol/bgp/rib/spi/AbstractRIBSupport.java index 65a1fd2ce9..d92f697445 100644 --- a/bgp/rib-spi/src/main/java/org/opendaylight/protocol/bgp/rib/spi/AbstractRIBSupport.java +++ b/bgp/rib-spi/src/main/java/org/opendaylight/protocol/bgp/rib/spi/AbstractRIBSupport.java @@ -24,8 +24,8 @@ import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; import com.google.common.collect.ImmutableList; import java.util.Collection; -import java.util.Collections; import java.util.List; +import java.util.Set; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.bgp.concepts.RouteDistinguisherUtil; @@ -63,8 +63,8 @@ import org.opendaylight.yangtools.util.ImmutableOffsetMapTemplate; import org.opendaylight.yangtools.yang.binding.ChildOf; import org.opendaylight.yangtools.yang.binding.ChoiceIn; import org.opendaylight.yangtools.yang.binding.DataObject; -import org.opendaylight.yangtools.yang.binding.Identifiable; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.yang.binding.KeyAware; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Uint32; @@ -90,7 +90,7 @@ import org.slf4j.LoggerFactory; public abstract class AbstractRIBSupport< C extends Routes & DataObject & ChoiceIn, S extends ChildOf, - R extends Route & ChildOf & Identifiable> + R extends Route & ChildOf & KeyAware> implements RIBSupport { public static final String ROUTE_KEY = "route-key"; private static final Logger LOG = LoggerFactory.getLogger(AbstractRIBSupport.class); @@ -171,14 +171,13 @@ public abstract class AbstractRIBSupport< routeKeyQname = QName.create(module, ROUTE_KEY).intern(); routesListIdentifier = NodeIdentifier.create(routeQname); - emptyTable = (MapEntryNode) this.mappingService - .toNormalizedNode(TABLES_II, new TablesBuilder().withKey(tk) - .setAttributes(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib - .rev180329.rib.tables.AttributesBuilder().build()).build()).getValue(); + emptyTable = (MapEntryNode) mappingService.toNormalizedDataObject(TABLES_II, new TablesBuilder().withKey(tk) + .setAttributes(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329 + .rib.tables.AttributesBuilder().build()).build()).node(); pathIdNid = NodeIdentifier.create(QName.create(routeQName(), "path-id").intern()); prefixTypeNid = NodeIdentifier.create(QName.create(destContainerQname, "prefix").intern()); rdNid = NodeIdentifier.create(QName.create(destContainerQname, "route-distinguisher").intern()); - routeDefaultYii = YangInstanceIdentifier.create(BGPRIB_NID, RIB_NID, RIB_NID, LOCRIB_NID, + routeDefaultYii = YangInstanceIdentifier.of(BGPRIB_NID, RIB_NID, RIB_NID, LOCRIB_NID, TABLES_NID, TABLES_NID, ROUTES_NID, routesContainerIdentifier, routesListIdentifier, routesListIdentifier); relativeRoutesPath = ImmutableList.of(routesContainerIdentifier, routesListIdentifier); routeKeyTemplate = ImmutableOffsetMapTemplate.ordered( @@ -355,12 +354,16 @@ public abstract class AbstractRIBSupport< @Override public final Collection changedRoutes(final DataTreeCandidateNode routes) { - return routes.getModifiedChild(routesContainerIdentifier) - .flatMap(myRoutes -> myRoutes.getModifiedChild(routeNid())) - // Well, given the remote possibility of augmentation, we should perform a filter here, - // to make sure the type matches what routeType() reports. - .map(DataTreeCandidateNode::getChildNodes) - .orElse(Collections.emptySet()); + final var myRoutes = routes.modifiedChild(routesContainerIdentifier); + if (myRoutes != null) { + final var route = myRoutes.modifiedChild(routeNid()); + if (route != null) { + // Well, given the remote possibility of augmentation, we should perform a filter here, + // to make sure the type matches what routeType() reports. + return route.childNodes(); + } + } + return Set.of(); } @Override @@ -491,16 +494,10 @@ public abstract class AbstractRIBSupport< final NodeIdentifierWithPredicates routeKey, final DataContainerNode route, final ContainerNode attributes) { // Build the DataContainer data - final DataContainerNodeBuilder b = - ImmutableNodes.mapEntryBuilder(); - b.withNodeIdentifier(routeKey); - + final var b = ImmutableNodes.mapEntryBuilder().withNodeIdentifier(routeKey); route.body().forEach(b::withChild); // Add attributes - final DataContainerNodeBuilder cb = - Builders.containerBuilder(attributes); - cb.withNodeIdentifier(routeAttributesIdentifier()); - b.withChild(cb.build()); + b.withChild(Builders.containerBuilder(attributes).withNodeIdentifier(routeAttributesIdentifier()).build()); tx.put(LogicalDatastoreType.OPERATIONAL, base.node(routeKey), b.build()); } } @@ -540,8 +537,8 @@ public abstract class AbstractRIBSupport< @Override public ContainerNode attributeToContainerNode(final YangInstanceIdentifier attPath, final Attributes attributes) { - final InstanceIdentifier iid = mappingService.fromYangInstanceIdentifier(attPath); - return (ContainerNode) verifyNotNull(mappingService.toNormalizedNode(iid, attributes).getValue()); + final var iid = mappingService.fromYangInstanceIdentifier(attPath); + return (ContainerNode) verifyNotNull(mappingService.toNormalizedDataObject(iid, attributes).node()); } @Override diff --git a/bgp/rib-spi/src/main/java/org/opendaylight/protocol/bgp/rib/spi/RIBNodeIdentifiers.java b/bgp/rib-spi/src/main/java/org/opendaylight/protocol/bgp/rib/spi/RIBNodeIdentifiers.java index 056253275f..372406a60c 100644 --- a/bgp/rib-spi/src/main/java/org/opendaylight/protocol/bgp/rib/spi/RIBNodeIdentifiers.java +++ b/bgp/rib-spi/src/main/java/org/opendaylight/protocol/bgp/rib/spi/RIBNodeIdentifiers.java @@ -7,10 +7,6 @@ */ package org.opendaylight.protocol.bgp.rib.spi; -import static org.opendaylight.protocol.bgp.rib.spi.RIBQNames.LLGR_STALE_QNAME; - -import com.google.common.annotations.Beta; -import com.google.common.collect.ImmutableSet; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329.BgpRib; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329.bgp.rib.Rib; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329.bgp.rib.rib.LocRib; @@ -21,13 +17,11 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib. import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329.rib.Tables; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329.rib.tables.Attributes; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329.rib.tables.Routes; -import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; /** * Utility constant {@link NodeIdentifier}s for various RIB constructs. */ -@Beta public final class RIBNodeIdentifiers { public static final NodeIdentifier BGPRIB_NID = NodeIdentifier.create(BgpRib.QNAME); public static final NodeIdentifier RIB_NID = NodeIdentifier.create(Rib.QNAME); @@ -41,14 +35,10 @@ public final class RIBNodeIdentifiers { public static final NodeIdentifier ROUTES_NID = NodeIdentifier.create(Routes.QNAME); public static final NodeIdentifier ATTRIBUTES_NID = NodeIdentifier.create(Attributes.QNAME); - // Unfortunate side-effect of how yang-data-api operates, we need to deal with the augmentation identifier - public static final AugmentationIdentifier ADJRIBIN_ATTRIBUTES_AID = new AugmentationIdentifier( - ImmutableSet.of(LLGR_STALE_QNAME)); - public static final NodeIdentifier UPTODATE_NID = NodeIdentifier.create(RIBQNames.UPTODATE_QNAME); public static final NodeIdentifier LLGR_STALE_NID = NodeIdentifier.create(RIBQNames.LLGR_STALE_QNAME); private RIBNodeIdentifiers() { - + // Hidden on purpose } } diff --git a/bgp/rib-spi/src/test/java/org/opendaylight/protocol/bgp/rib/spi/AbstractRIBSupportTest.java b/bgp/rib-spi/src/test/java/org/opendaylight/protocol/bgp/rib/spi/AbstractRIBSupportTest.java index 458d1e9f0f..c0e7d7d141 100644 --- a/bgp/rib-spi/src/test/java/org/opendaylight/protocol/bgp/rib/spi/AbstractRIBSupportTest.java +++ b/bgp/rib-spi/src/test/java/org/opendaylight/protocol/bgp/rib/spi/AbstractRIBSupportTest.java @@ -25,6 +25,7 @@ import org.opendaylight.mdsal.binding.dom.adapter.AdapterContext; import org.opendaylight.mdsal.binding.dom.adapter.test.AbstractConcurrentDataBrokerTest; import org.opendaylight.mdsal.binding.dom.adapter.test.AbstractDataBrokerTestCustomizer; import org.opendaylight.mdsal.binding.dom.codec.api.BindingDataObjectCodecTreeNode; +import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer.NodeResult; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.PathId; @@ -52,8 +53,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib. import org.opendaylight.yangtools.yang.binding.ChildOf; import org.opendaylight.yangtools.yang.binding.ChoiceIn; import org.opendaylight.yangtools.yang.binding.DataObject; -import org.opendaylight.yangtools.yang.binding.Identifiable; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.yang.binding.KeyAware; import org.opendaylight.yangtools.yang.common.Uint32; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; @@ -66,9 +67,9 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; public abstract class AbstractRIBSupportTest, S extends ChildOf, - R extends Route & ChildOf & Identifiable> extends AbstractConcurrentDataBrokerTest { - protected static final PathId PATH_ID = new PathId(Uint32.ONE); - protected static final Attributes ATTRIBUTES = new AttributesBuilder().build(); + R extends Route & ChildOf & KeyAware> extends AbstractConcurrentDataBrokerTest { + protected static final @NonNull PathId PATH_ID = new PathId(Uint32.ONE); + protected static final @NonNull Attributes ATTRIBUTES = new AttributesBuilder().build(); private static final InstanceIdentifier RIB = InstanceIdentifier.builder(BgpRib.class) .child(Rib.class, new RibKey(new RibId("rib"))).child(LocRib.class).build(); @@ -115,12 +116,12 @@ public abstract class AbstractRIBSupportTest updateAttributesCodec() { - return adapter.currentSerializer().streamChild(Update.class).streamChild(Attributes.class); + return adapter.currentSerializer().getStreamChild(Update.class).getStreamDataObject(Attributes.class); } protected final ContainerNode createNlriWithDrawnRoute(final DestinationType destUnreach) { return (ContainerNode) updateAttributesCodec() - .streamChild(AttributesUnreach.class).streamChild(MpUnreachNlri.class) + .getStreamChild(AttributesUnreach.class).getStreamDataObject(MpUnreachNlri.class) .serialize(new MpUnreachNlriBuilder() .setWithdrawnRoutes(new WithdrawnRoutesBuilder().setDestinationType(destUnreach).build()) .build()); @@ -128,7 +129,7 @@ public abstract class AbstractRIBSupportTest routesIId = routesIId(); - final Map.Entry normalizedNode = adapter.currentSerializer() - .toNormalizedNode(routesIId, routes); - final ContainerNode container = (ContainerNode) normalizedNode.getValue(); + final NodeResult normalizedNode = adapter.currentSerializer().toNormalizedDataObject(routesIId, routes); + final ContainerNode container = (ContainerNode) normalizedNode.node(); final NodeIdentifier routeNid = new NodeIdentifier(abstractRIBSupport.routeQName()); return ((MapNode) container.getChildByArg(routeNid)).body(); } @@ -184,6 +184,6 @@ public abstract class AbstractRIBSupportTest map = createRoutes(routes); - return Iterables.getOnlyElement(map).getIdentifier(); + return Iterables.getOnlyElement(map).name(); } } diff --git a/bgp/rib-spi/src/test/java/org/opendaylight/protocol/bgp/rib/spi/RIBSupportTest.java b/bgp/rib-spi/src/test/java/org/opendaylight/protocol/bgp/rib/spi/RIBSupportTest.java index d5aaff10dd..b695d64c7c 100644 --- a/bgp/rib-spi/src/test/java/org/opendaylight/protocol/bgp/rib/spi/RIBSupportTest.java +++ b/bgp/rib-spi/src/test/java/org/opendaylight/protocol/bgp/rib/spi/RIBSupportTest.java @@ -19,7 +19,6 @@ import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.Map; -import java.util.Optional; import java.util.Set; import org.junit.Before; import org.junit.Test; @@ -105,15 +104,14 @@ public class RIBSupportTest extends AbstractConcurrentDataBrokerTest { subTree = Mockito.mock(DataTreeCandidateNode.class); final DataTreeCandidateNode emptyNode = Mockito.mock(DataTreeCandidateNode.class); final DataTreeCandidateNode node = Mockito.mock(DataTreeCandidateNode.class); - doReturn(Optional.empty()).when(emptyTree).getModifiedChild(IPV4_ROUTES_IDENTIFIER); + doReturn(null).when(emptyTree).modifiedChild(IPV4_ROUTES_IDENTIFIER); - doReturn(Optional.of(emptyNode)).when(emptySubTree).getModifiedChild(IPV4_ROUTES_IDENTIFIER); - doReturn(Optional.empty()).when(emptyNode).getModifiedChild(new NodeIdentifier(Ipv4Route.QNAME)); + doReturn(emptyNode).when(emptySubTree).modifiedChild(IPV4_ROUTES_IDENTIFIER); + doReturn(null).when(emptyNode).modifiedChild(new NodeIdentifier(Ipv4Route.QNAME)); - doReturn(Optional.of(node)).when(subTree).getModifiedChild(IPV4_ROUTES_IDENTIFIER); - doReturn(Optional.of(node)).when(node).getModifiedChild(new NodeIdentifier(Ipv4Route.QNAME)); - final Collection emptyCollection = new HashSet<>(); - doReturn(emptyCollection).when(node).getChildNodes(); + doReturn(node).when(subTree).modifiedChild(IPV4_ROUTES_IDENTIFIER); + doReturn(node).when(node).modifiedChild(new NodeIdentifier(Ipv4Route.QNAME)); + doReturn(Set.of()).when(node).childNodes(); tx = Mockito.mock(DOMDataTreeWriteTransaction.class); nlri = Mockito.mock(ContainerNode.class); @@ -129,12 +127,12 @@ public class RIBSupportTest extends AbstractConcurrentDataBrokerTest { doReturn(destination).when(nlri).childByArg(new NodeIdentifier(AdvertizedRoutes.QNAME)); doReturn(destinations).when(destination).childByArg(new NodeIdentifier(DestinationType.QNAME)); doReturn(route).when(destinations).childByArg(new NodeIdentifier(Ipv4Prefixes.QNAME)); - doReturn(emptyCollection).when(route).body(); + doReturn(Set.of()).when(route).body(); doAnswer(invocation -> { - final Object[] args = invocation.getArguments(); - routesMap.remove(args[1]); - return args[1]; + final var arg = invocation.getArgument(1); + routesMap.remove(arg); + return arg; }).when(tx).delete(Mockito.eq(LogicalDatastoreType.OPERATIONAL), any(YangInstanceIdentifier.class)); doAnswer(invocation -> { final Object[] args = invocation.getArguments(); diff --git a/bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/LinkstateGraphBuilder.java b/bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/LinkstateGraphBuilder.java index 3154670170..c417bda1b4 100644 --- a/bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/LinkstateGraphBuilder.java +++ b/bgp/topology-provider/src/main/java/org/opendaylight/bgpcep/bgp/topology/provider/LinkstateGraphBuilder.java @@ -270,10 +270,10 @@ public class LinkstateGraphBuilder extends AbstractTopologyBuilder org.opendaylight.mdsal binding-parent - 11.0.9 + 12.0.0-SNAPSHOT diff --git a/bmp/bmp-artifacts/pom.xml b/bmp/bmp-artifacts/pom.xml index 1b085af0a1..d70722ab3d 100644 --- a/bmp/bmp-artifacts/pom.xml +++ b/bmp/bmp-artifacts/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/bmp/bmp-config-example/pom.xml b/bmp/bmp-config-example/pom.xml index 8a7475896a..8b4f53ae19 100644 --- a/bmp/bmp-config-example/pom.xml +++ b/bmp/bmp-config-example/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent - 12.0.5 + 13.0.3 diff --git a/bmp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/app/BmpMonitoringStationImpl.java b/bmp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/app/BmpMonitoringStationImpl.java index b79568c610..10e01044fd 100644 --- a/bmp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/app/BmpMonitoringStationImpl.java +++ b/bmp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/app/BmpMonitoringStationImpl.java @@ -117,7 +117,7 @@ public final class BmpMonitoringStationImpl implements BmpMonitoringStation, Clu if (mr != null) { final Rfc2385Key password = mr.getPassword(); if (password != null && !password.getValue().isEmpty()) { - passwords.put(IetfInetUtil.INSTANCE.inetAddressForNoZone(mr.getAddress()), password.getValue()); + passwords.put(IetfInetUtil.inetAddressForNoZone(mr.getAddress()), password.getValue()); } } } diff --git a/bmp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/app/BmpRouterPeerImpl.java b/bmp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/app/BmpRouterPeerImpl.java index e9e78e46d8..3c49af073f 100644 --- a/bmp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/app/BmpRouterPeerImpl.java +++ b/bmp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/app/BmpRouterPeerImpl.java @@ -145,8 +145,8 @@ public final class BmpRouterPeerImpl implements BmpRouterPeer { this.peerId = peerId; peerYangIId = YangInstanceIdentifier.builder(peersYangIId).nodeWithKey(Peer.QNAME, PEER_ID_QNAME, this.peerId.getValue()).build(); - sentOpenCodec = tree.getSubtreeCodec(SENT_OPEN_IID); - receivedOpenCodec = tree.getSubtreeCodec(RECEIVED_OPEN_IID); + sentOpenCodec = (BindingDataObjectCodecTreeNode) tree.getSubtreeCodec(SENT_OPEN_IID); + receivedOpenCodec = (BindingDataObjectCodecTreeNode) tree.getSubtreeCodec(RECEIVED_OPEN_IID); final Set peerTables = setPeerTables(peerUp.getReceivedOpen()); final DOMDataTreeWriteTransaction wTx = this.domTxChain.newWriteOnlyTransaction(); @@ -420,14 +420,11 @@ public final class BmpRouterPeerImpl implements BmpRouterPeer { } private static String toDom(final MirrorInformationCode informationCode) { - switch (informationCode) { - case ErroredPdu: - return "errored-pdu"; - case MessageLost: - return "message-lost"; - default: - return null; - } + return switch (informationCode) { + case ErroredPdu -> "errored-pdu"; + case MessageLost -> "message-lost"; + default -> null; + }; } private static String getStringIpAddress(final IpAddressNoZone ipAddress) { diff --git a/bmp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/app/TableContext.java b/bmp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/app/TableContext.java index 0f3eb15aaa..3f2cd16f30 100644 --- a/bmp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/app/TableContext.java +++ b/bmp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/app/TableContext.java @@ -56,21 +56,21 @@ final class TableContext { checkState(tableCodecContext instanceof BindingDataObjectCodecTreeNode); final BindingDataObjectCodecTreeNode routeListCodec = ((BindingDataObjectCodecTreeNode)tableCodecContext) - .streamChild(Routes.class) - .streamChild(this.tableSupport.routesCaseClass()) - .streamChild(this.tableSupport.routesContainerClass()) - .streamChild(this.tableSupport.routesListClass()); + .getStreamChild(Routes.class) + .getStreamChild(this.tableSupport.routesCaseClass()) + .getStreamChild(this.tableSupport.routesContainerClass()) + .getStreamDataObject(this.tableSupport.routesListClass()); - attributesCodec = routeListCodec.streamChild(Attributes.class) + attributesCodec = routeListCodec.getStreamDataObject(Attributes.class) .createCachingCodec(this.tableSupport.cacheableAttributeObjects()); - final var updateAttributesCodec = tree.streamChild(Update.class) - .streamChild(Attributes.class); - reachNlriCodec = updateAttributesCodec.streamChild(AttributesReach.class) - .streamChild(MpReachNlri.class) + final var updateAttributesCodec = tree.getStreamChild(Update.class) + .getStreamDataObject(Attributes.class); + reachNlriCodec = updateAttributesCodec.getStreamChild(AttributesReach.class) + .getStreamDataObject(MpReachNlri.class) .createCachingCodec(this.tableSupport.cacheableNlriObjects()); - unreachNlriCodec = updateAttributesCodec.streamChild(AttributesUnreach.class) - .streamChild(MpUnreachNlri.class) + unreachNlriCodec = updateAttributesCodec.getStreamChild(AttributesUnreach.class) + .getStreamDataObject(MpUnreachNlri.class) .createCachingCodec(this.tableSupport.cacheableNlriObjects()); } diff --git a/bmp/pom.xml b/bmp/pom.xml index d7cac1eacf..0501f40b79 100644 --- a/bmp/pom.xml +++ b/bmp/pom.xml @@ -16,7 +16,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/config-loader/config-loader-artifacts/pom.xml b/config-loader/config-loader-artifacts/pom.xml index 1b49afd5eb..3b80ac3a7b 100644 --- a/config-loader/config-loader-artifacts/pom.xml +++ b/config-loader/config-loader-artifacts/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/config-loader/config-loader-impl/pom.xml b/config-loader/config-loader-impl/pom.xml index 28daef84fc..3061d85180 100644 --- a/config-loader/config-loader-impl/pom.xml +++ b/config-loader/config-loader-impl/pom.xml @@ -28,6 +28,24 @@ ${project.groupId} config-loader-spi + + com.github.spotbugs + spotbugs-annotations + true + + + com.google.guava + guava + + + org.checkerframework + checker-qual + provided + + + org.eclipse.jdt + org.eclipse.jdt.annotation + org.opendaylight.yangtools yang-model-api @@ -64,15 +82,6 @@ org.opendaylight.mdsal mdsal-binding-runtime-api - - com.google.guava - guava - - - org.checkerframework - checker-qual - provided - org.osgi org.osgi.service.component.annotations diff --git a/config-loader/config-loader-impl/src/main/java/org/opendaylight/bgpcep/config/loader/impl/AbstractConfigLoader.java b/config-loader/config-loader-impl/src/main/java/org/opendaylight/bgpcep/config/loader/impl/AbstractConfigLoader.java index 0206ae46d9..30efb881e0 100644 --- a/config-loader/config-loader-impl/src/main/java/org/opendaylight/bgpcep/config/loader/impl/AbstractConfigLoader.java +++ b/config-loader/config-loader-impl/src/main/java/org/opendaylight/bgpcep/config/loader/impl/AbstractConfigLoader.java @@ -13,7 +13,6 @@ import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.RandomAccessFile; -import java.net.URISyntaxException; import java.nio.channels.FileChannel; import java.nio.channels.FileLock; import java.util.ArrayList; @@ -36,13 +35,12 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter; import org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter; -import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult; +import org.opendaylight.yangtools.yang.data.impl.schema.NormalizationResultHolder; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.api.EffectiveStatementInference; import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.xml.sax.SAXException; /** * Reference implementation of configuration loading bits, without worrying where files are actually coming from. @@ -98,7 +96,7 @@ abstract class AbstractConfigLoader implements ConfigLoader { context.updateSchemaNode(currentContext); final ProcessorRegistration reg = new ProcessorRegistration(); - this.configServices.put(reg, context); + configServices.put(reg, context); final File[] fList = directory().listFiles(); if (fList != null) { @@ -160,8 +158,8 @@ abstract class AbstractConfigLoader implements ConfigLoader { @Holding("this") private NormalizedNode parseDefaultConfigFile(final EffectiveStatementInference schema, final String filename) throws IOException, XMLStreamException { - final NormalizedNodeResult result = new NormalizedNodeResult(); - final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result); + final NormalizationResultHolder resultHolder = new NormalizationResultHolder(); + final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(resultHolder); final File newFile = new File(directory(), filename); try (RandomAccessFile raf = new RandomAccessFile(newFile, READ)) { @@ -189,7 +187,7 @@ abstract class AbstractConfigLoader implements ConfigLoader { try (XmlParserStream xmlParser = XmlParserStream.create(streamWriter, schema)) { xmlParser.parse(reader); - } catch (final URISyntaxException | XMLStreamException | IOException | SAXException e) { + } catch (XMLStreamException | IOException e) { LOG.warn("Failed to parse xml", e); } finally { reader.close(); @@ -197,6 +195,6 @@ abstract class AbstractConfigLoader implements ConfigLoader { } } - return result.getResult(); + return resultHolder.getResult().data(); } } diff --git a/config-loader/config-loader-spi/pom.xml b/config-loader/config-loader-spi/pom.xml index 5c101f1e67..26de5b4479 100644 --- a/config-loader/config-loader-spi/pom.xml +++ b/config-loader/config-loader-spi/pom.xml @@ -24,14 +24,18 @@ ${project.artifactId} - - org.opendaylight.yangtools - concepts - com.google.guava guava + + org.eclipse.jdt + org.eclipse.jdt.annotation + + + org.opendaylight.yangtools + concepts + org.opendaylight.yangtools yang-data-api diff --git a/config-loader/pom.xml b/config-loader/pom.xml index 8da30e9b9a..3116ee8a87 100644 --- a/config-loader/pom.xml +++ b/config-loader/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/config-loader/routing-policy-config-loader/pom.xml b/config-loader/routing-policy-config-loader/pom.xml index 4abb794129..dd296ef358 100644 --- a/config-loader/routing-policy-config-loader/pom.xml +++ b/config-loader/routing-policy-config-loader/pom.xml @@ -30,6 +30,10 @@ ${project.groupId} config-loader-spi + + com.google.guava + guava + org.opendaylight.yangtools yang-model-api @@ -38,6 +42,10 @@ org.opendaylight.yangtools yang-data-api + + org.opendaylight.yangtools + yang-common + org.opendaylight.mdsal mdsal-common-api @@ -46,10 +54,6 @@ org.opendaylight.mdsal mdsal-dom-api - - com.google.guava - guava - org.osgi org.osgi.service.component.annotations @@ -99,6 +103,11 @@ test-jar test + + org.opendaylight.mdsal + mdsal-binding-api + test + ${project.groupId} testtool-util diff --git a/distribution-karaf/pom.xml b/distribution-karaf/pom.xml index 7a255ac1ef..4c84e4852a 100644 --- a/distribution-karaf/pom.xml +++ b/distribution-karaf/pom.xml @@ -9,7 +9,7 @@ org.opendaylight.odlparent karaf4-parent - 12.0.5 + 13.0.3 @@ -98,7 +98,7 @@ org.opendaylight.netconf - features-restconf + features-netconf features xml runtime diff --git a/feature-repo-parent/pom.xml b/feature-repo-parent/pom.xml index 6bb48875a7..c2e5b5bbf8 100644 --- a/feature-repo-parent/pom.xml +++ b/feature-repo-parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent feature-repo-parent - 12.0.5 + 13.0.3 diff --git a/features/algo/pom.xml b/features/algo/pom.xml index 1a9a75aabb..136cfa0bde 100644 --- a/features/algo/pom.xml +++ b/features/algo/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/features/bgp/odl-bgpcep-bgp-benchmark/src/main/feature/feature.xml b/features/bgp/odl-bgpcep-bgp-benchmark/src/main/feature/feature.xml index a16336109d..7af481c380 100644 --- a/features/bgp/odl-bgpcep-bgp-benchmark/src/main/feature/feature.xml +++ b/features/bgp/odl-bgpcep-bgp-benchmark/src/main/feature/feature.xml @@ -11,7 +11,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0"> - odl-mdsal-broker - odl-controller-blueprint + odl-mdsal-broker + odl-controller-blueprint diff --git a/features/bgp/odl-bgpcep-bgp-dependencies/src/main/feature/feature.xml b/features/bgp/odl-bgpcep-bgp-dependencies/src/main/feature/feature.xml index a0905dc28f..b7ae84bb1b 100644 --- a/features/bgp/odl-bgpcep-bgp-dependencies/src/main/feature/feature.xml +++ b/features/bgp/odl-bgpcep-bgp-dependencies/src/main/feature/feature.xml @@ -8,6 +8,6 @@ --> - odl-yangtools-data-api + odl-yangtools-data-api diff --git a/features/bgp/odl-bgpcep-bgp-evpn/src/main/feature/feature.xml b/features/bgp/odl-bgpcep-bgp-evpn/src/main/feature/feature.xml index d221f6aa2d..8096913023 100644 --- a/features/bgp/odl-bgpcep-bgp-evpn/src/main/feature/feature.xml +++ b/features/bgp/odl-bgpcep-bgp-evpn/src/main/feature/feature.xml @@ -11,6 +11,6 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0"> - odl-mdsal-rfc8294-netty + odl-mdsal-rfc8294-netty diff --git a/features/bgp/odl-bgpcep-bgp-labeled-unicast/src/main/feature/feature.xml b/features/bgp/odl-bgpcep-bgp-labeled-unicast/src/main/feature/feature.xml index d2ea29626a..62b9bf9f68 100644 --- a/features/bgp/odl-bgpcep-bgp-labeled-unicast/src/main/feature/feature.xml +++ b/features/bgp/odl-bgpcep-bgp-labeled-unicast/src/main/feature/feature.xml @@ -11,6 +11,6 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0"> - odl-mdsal-rfc8294-netty + odl-mdsal-rfc8294-netty diff --git a/features/bgp/odl-bgpcep-bgp-linkstate/src/main/feature/feature.xml b/features/bgp/odl-bgpcep-bgp-linkstate/src/main/feature/feature.xml index 045bfc0627..721e4dd6ca 100644 --- a/features/bgp/odl-bgpcep-bgp-linkstate/src/main/feature/feature.xml +++ b/features/bgp/odl-bgpcep-bgp-linkstate/src/main/feature/feature.xml @@ -11,7 +11,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0"> - odl-mdsal-broker - odl-mdsal-rfc8294-netty + odl-mdsal-broker + odl-mdsal-rfc8294-netty diff --git a/features/bgp/odl-bgpcep-bgp-openconfig-rp-impl/src/main/feature/feature.xml b/features/bgp/odl-bgpcep-bgp-openconfig-rp-impl/src/main/feature/feature.xml index f89185e824..ccb4d08964 100644 --- a/features/bgp/odl-bgpcep-bgp-openconfig-rp-impl/src/main/feature/feature.xml +++ b/features/bgp/odl-bgpcep-bgp-openconfig-rp-impl/src/main/feature/feature.xml @@ -11,6 +11,6 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0"> - odl-mdsal-broker + odl-mdsal-broker diff --git a/features/bgp/odl-bgpcep-bgp-openconfig-rp-statement/src/main/feature/feature.xml b/features/bgp/odl-bgpcep-bgp-openconfig-rp-statement/src/main/feature/feature.xml index 1045794683..a1982781c3 100644 --- a/features/bgp/odl-bgpcep-bgp-openconfig-rp-statement/src/main/feature/feature.xml +++ b/features/bgp/odl-bgpcep-bgp-openconfig-rp-statement/src/main/feature/feature.xml @@ -11,6 +11,6 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0"> - odl-mdsal-broker + odl-mdsal-broker diff --git a/features/bgp/odl-bgpcep-bgp-parser-api/src/main/feature/feature.xml b/features/bgp/odl-bgpcep-bgp-parser-api/src/main/feature/feature.xml index 0c866cf883..ae408a7f03 100644 --- a/features/bgp/odl-bgpcep-bgp-parser-api/src/main/feature/feature.xml +++ b/features/bgp/odl-bgpcep-bgp-parser-api/src/main/feature/feature.xml @@ -11,7 +11,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0"> - odl-yangtools-data - odl-yangtools-netty + odl-yangtools-data + odl-yangtools-netty diff --git a/features/bgp/odl-bgpcep-bgp-rib-api/src/main/feature/feature.xml b/features/bgp/odl-bgpcep-bgp-rib-api/src/main/feature/feature.xml index 625de8cae6..81acbf6e3d 100644 --- a/features/bgp/odl-bgpcep-bgp-rib-api/src/main/feature/feature.xml +++ b/features/bgp/odl-bgpcep-bgp-rib-api/src/main/feature/feature.xml @@ -11,9 +11,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0"> - odl-mdsal-model-rfc8343 - odl-mdsal-singleton-common - odl-mdsal-dom-api - odl-mdsal-binding-runtime + odl-mdsal-model-rfc8343 + odl-mdsal-singleton-common + odl-mdsal-dom-api + odl-mdsal-binding-runtime diff --git a/features/bgp/odl-bgpcep-bgp-rib-impl/src/main/feature/feature.xml b/features/bgp/odl-bgpcep-bgp-rib-impl/src/main/feature/feature.xml index c8d13300eb..a3863066bb 100644 --- a/features/bgp/odl-bgpcep-bgp-rib-impl/src/main/feature/feature.xml +++ b/features/bgp/odl-bgpcep-bgp-rib-impl/src/main/feature/feature.xml @@ -11,8 +11,8 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0"> - odl-controller-blueprint - odl-controller-exp-netty-config + odl-controller-blueprint + odl-controller-exp-netty-config mvn:org.opendaylight.bgpcep/bgp-config-example/${project.version}/xml/routing-policy-default-config diff --git a/features/bgp/pom.xml b/features/bgp/pom.xml index 966b31f3e4..9bec032628 100644 --- a/features/bgp/pom.xml +++ b/features/bgp/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/features/bgpcep-extras/odl-bgpcep-data-change-counter/src/main/feature/feature.xml b/features/bgpcep-extras/odl-bgpcep-data-change-counter/src/main/feature/feature.xml index 2290b4dafe..f7dc754add 100644 --- a/features/bgpcep-extras/odl-bgpcep-data-change-counter/src/main/feature/feature.xml +++ b/features/bgpcep-extras/odl-bgpcep-data-change-counter/src/main/feature/feature.xml @@ -8,7 +8,7 @@ --> - odl-mdsal-model-draft-clemm-netmod-yang-network-topo-01-minimal - odl-mdsal-broker + odl-mdsal-model-draft-clemm-netmod-yang-network-topo-01-minimal + odl-mdsal-broker diff --git a/features/bgpcep-extras/odl-bgpcep-extras-dependencies/src/main/feature/feature.xml b/features/bgpcep-extras/odl-bgpcep-extras-dependencies/src/main/feature/feature.xml index ba943c6fee..02d5b54e62 100644 --- a/features/bgpcep-extras/odl-bgpcep-extras-dependencies/src/main/feature/feature.xml +++ b/features/bgpcep-extras/odl-bgpcep-extras-dependencies/src/main/feature/feature.xml @@ -8,6 +8,6 @@ --> - odl-netty-4 + odl-netty-4 diff --git a/features/bgpcep-extras/pom.xml b/features/bgpcep-extras/pom.xml index 5097b3b9cb..4bd99a6c7a 100644 --- a/features/bgpcep-extras/pom.xml +++ b/features/bgpcep-extras/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/features/bmp/pom.xml b/features/bmp/pom.xml index 3a1479a460..341fffa1d3 100644 --- a/features/bmp/pom.xml +++ b/features/bmp/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/features/concepts/odl-bgpcep-concepts/src/main/feature/feature.xml b/features/concepts/odl-bgpcep-concepts/src/main/feature/feature.xml index ae1d350bfb..54e899a817 100644 --- a/features/concepts/odl-bgpcep-concepts/src/main/feature/feature.xml +++ b/features/concepts/odl-bgpcep-concepts/src/main/feature/feature.xml @@ -11,7 +11,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0"> - odl-mdsal-model-rfc6991 - odl-mdsal-model-rfc8294 + odl-mdsal-model-rfc6991 + odl-mdsal-model-rfc8294 diff --git a/features/concepts/pom.xml b/features/concepts/pom.xml index fc6b455a5e..7196f05ff3 100644 --- a/features/concepts/pom.xml +++ b/features/concepts/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/features/config-loader/odl-bgpcep-bmp-config-loader/src/main/feature/feature.xml b/features/config-loader/odl-bgpcep-bmp-config-loader/src/main/feature/feature.xml index a9a38e09f4..4a3b5fc2e4 100644 --- a/features/config-loader/odl-bgpcep-bmp-config-loader/src/main/feature/feature.xml +++ b/features/config-loader/odl-bgpcep-bmp-config-loader/src/main/feature/feature.xml @@ -11,6 +11,6 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0"> - odl-mdsal-broker + odl-mdsal-broker diff --git a/features/config-loader/odl-bgpcep-config-loader-impl/src/main/feature/feature.xml b/features/config-loader/odl-bgpcep-config-loader-impl/src/main/feature/feature.xml index b8a58a304e..85dd87da74 100644 --- a/features/config-loader/odl-bgpcep-config-loader-impl/src/main/feature/feature.xml +++ b/features/config-loader/odl-bgpcep-config-loader-impl/src/main/feature/feature.xml @@ -11,6 +11,6 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0"> - odl-yangtools-codec + odl-yangtools-codec diff --git a/features/config-loader/odl-bgpcep-config-loader-spi/src/main/feature/feature.xml b/features/config-loader/odl-bgpcep-config-loader-spi/src/main/feature/feature.xml index 8c36d99b43..1b7f976e8a 100644 --- a/features/config-loader/odl-bgpcep-config-loader-spi/src/main/feature/feature.xml +++ b/features/config-loader/odl-bgpcep-config-loader-spi/src/main/feature/feature.xml @@ -11,6 +11,6 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0"> - odl-mdsal-binding-runtime + odl-mdsal-binding-runtime diff --git a/features/config-loader/odl-bgpcep-topology-config-loader/src/main/feature/feature.xml b/features/config-loader/odl-bgpcep-topology-config-loader/src/main/feature/feature.xml index 21545f2628..0cfb78a079 100644 --- a/features/config-loader/odl-bgpcep-topology-config-loader/src/main/feature/feature.xml +++ b/features/config-loader/odl-bgpcep-topology-config-loader/src/main/feature/feature.xml @@ -11,6 +11,6 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0"> - odl-mdsal-broker + odl-mdsal-broker diff --git a/features/config-loader/pom.xml b/features/config-loader/pom.xml index 383a379546..5c6556f9ea 100644 --- a/features/config-loader/pom.xml +++ b/features/config-loader/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/features/graph/odl-bgpcep-graph-api/src/main/feature/feature.xml b/features/graph/odl-bgpcep-graph-api/src/main/feature/feature.xml index 35e5580ea9..5d1396dde3 100644 --- a/features/graph/odl-bgpcep-graph-api/src/main/feature/feature.xml +++ b/features/graph/odl-bgpcep-graph-api/src/main/feature/feature.xml @@ -11,7 +11,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0"> - odl-mdsal-model-rfc6991 - odl-mdsal-model-rfc8294 + odl-mdsal-model-rfc6991 + odl-mdsal-model-rfc8294 diff --git a/features/graph/odl-bgpcep-graph/src/main/feature/feature.xml b/features/graph/odl-bgpcep-graph/src/main/feature/feature.xml index 7f9c5eae20..78b5baf3e0 100644 --- a/features/graph/odl-bgpcep-graph/src/main/feature/feature.xml +++ b/features/graph/odl-bgpcep-graph/src/main/feature/feature.xml @@ -11,6 +11,6 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0"> - odl-mdsal-broker + odl-mdsal-broker diff --git a/features/graph/pom.xml b/features/graph/pom.xml index 1f3ed0c5c9..64d9c1ada3 100644 --- a/features/graph/pom.xml +++ b/features/graph/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/features/pcep/odl-bgpcep-pcep-impl/src/main/feature/feature.xml b/features/pcep/odl-bgpcep-pcep-impl/src/main/feature/feature.xml index f1e03511a0..1ff0ad1ace 100644 --- a/features/pcep/odl-bgpcep-pcep-impl/src/main/feature/feature.xml +++ b/features/pcep/odl-bgpcep-pcep-impl/src/main/feature/feature.xml @@ -11,7 +11,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0"> - odl-controller-exp-netty-config - odl-mdsal-broker + odl-controller-exp-netty-config + odl-mdsal-broker diff --git a/features/pcep/odl-bgpcep-pcep-p2mp-te-lsp/src/main/feature/feature.xml b/features/pcep/odl-bgpcep-pcep-p2mp-te-lsp/src/main/feature/feature.xml index c675cc2999..bc1697db93 100644 --- a/features/pcep/odl-bgpcep-pcep-p2mp-te-lsp/src/main/feature/feature.xml +++ b/features/pcep/odl-bgpcep-pcep-p2mp-te-lsp/src/main/feature/feature.xml @@ -11,6 +11,6 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0"> - odl-mdsal-broker + odl-mdsal-broker diff --git a/features/pcep/odl-bgpcep-pcep-tunnel-provider/src/main/feature/feature.xml b/features/pcep/odl-bgpcep-pcep-tunnel-provider/src/main/feature/feature.xml index fdceb2ec8b..c41720fa30 100644 --- a/features/pcep/odl-bgpcep-pcep-tunnel-provider/src/main/feature/feature.xml +++ b/features/pcep/odl-bgpcep-pcep-tunnel-provider/src/main/feature/feature.xml @@ -8,6 +8,6 @@ --> - odl-apache-commons-lang3 + odl-apache-commons-lang3 diff --git a/features/pcep/odl-bgpcep-programming-api/src/main/feature/feature.xml b/features/pcep/odl-bgpcep-programming-api/src/main/feature/feature.xml index 5a3cf6d5eb..6a237bd8eb 100644 --- a/features/pcep/odl-bgpcep-programming-api/src/main/feature/feature.xml +++ b/features/pcep/odl-bgpcep-programming-api/src/main/feature/feature.xml @@ -8,6 +8,6 @@ --> - odl-mdsal-singleton-common + odl-mdsal-singleton-common diff --git a/features/pcep/odl-bgpcep-programming-impl/src/main/feature/feature.xml b/features/pcep/odl-bgpcep-programming-impl/src/main/feature/feature.xml index f122e49b01..8bbae52134 100644 --- a/features/pcep/odl-bgpcep-programming-impl/src/main/feature/feature.xml +++ b/features/pcep/odl-bgpcep-programming-impl/src/main/feature/feature.xml @@ -11,7 +11,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0"> - odl-controller-exp-netty-config - odl-mdsal-broker + odl-controller-exp-netty-config + odl-mdsal-broker diff --git a/features/pcep/pom.xml b/features/pcep/pom.xml index 374401d402..c573e89335 100644 --- a/features/pcep/pom.xml +++ b/features/pcep/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/features/pom.xml b/features/pom.xml index 86b3e33783..e7cf4e32c0 100644 --- a/features/pom.xml +++ b/features/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/features/rsvp/odl-bgpcep-rsvp-api/src/main/feature/feature.xml b/features/rsvp/odl-bgpcep-rsvp-api/src/main/feature/feature.xml index 8ea5620521..bf2939369c 100644 --- a/features/rsvp/odl-bgpcep-rsvp-api/src/main/feature/feature.xml +++ b/features/rsvp/odl-bgpcep-rsvp-api/src/main/feature/feature.xml @@ -11,6 +11,6 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0"> - odl-yangtools-netty + odl-yangtools-netty diff --git a/features/rsvp/pom.xml b/features/rsvp/pom.xml index 730fbcfc85..4be1f1d850 100644 --- a/features/rsvp/pom.xml +++ b/features/rsvp/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/features/topology/odl-bgpcep-topology-api/src/main/feature/feature.xml b/features/topology/odl-bgpcep-topology-api/src/main/feature/feature.xml index e881cb32ab..24d319bb1d 100644 --- a/features/topology/odl-bgpcep-topology-api/src/main/feature/feature.xml +++ b/features/topology/odl-bgpcep-topology-api/src/main/feature/feature.xml @@ -11,6 +11,6 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0"> - odl-mdsal-model-draft-clemm-netmod-yang-network-topo-01-minimal + odl-mdsal-model-draft-clemm-netmod-yang-network-topo-01-minimal diff --git a/features/topology/odl-bgpcep-topology-tunnel-api/src/main/feature/feature.xml b/features/topology/odl-bgpcep-topology-tunnel-api/src/main/feature/feature.xml index 963ef8bbb9..ce16a8443f 100644 --- a/features/topology/odl-bgpcep-topology-tunnel-api/src/main/feature/feature.xml +++ b/features/topology/odl-bgpcep-topology-tunnel-api/src/main/feature/feature.xml @@ -8,6 +8,6 @@ --> - odl-mdsal-model-draft-clemm-netmod-yang-network-topo-01-minimal + odl-mdsal-model-draft-clemm-netmod-yang-network-topo-01-minimal diff --git a/features/topology/pom.xml b/features/topology/pom.xml index cb4143c942..5e0f6978da 100644 --- a/features/topology/pom.xml +++ b/features/topology/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/graph/graph-api/pom.xml b/graph/graph-api/pom.xml index 414dcdd9ac..fcd09a9e4c 100644 --- a/graph/graph-api/pom.xml +++ b/graph/graph-api/pom.xml @@ -24,6 +24,10 @@ ${project.artifactId} + + com.google.guava + guava + org.opendaylight.mdsal.binding.model.ietf rfc6991-ietf-inet-types @@ -36,13 +40,5 @@ org.opendaylight.mdsal.model ietf-topology - - com.google.guava - guava - - - org.opendaylight.yangtools - yang-common - diff --git a/graph/graph-artifacts/pom.xml b/graph/graph-artifacts/pom.xml index b8c3c2eaaf..1a2154f459 100644 --- a/graph/graph-artifacts/pom.xml +++ b/graph/graph-artifacts/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/graph/graph-impl/pom.xml b/graph/graph-impl/pom.xml index c8679b70dc..0c634fc1b5 100644 --- a/graph/graph-impl/pom.xml +++ b/graph/graph-impl/pom.xml @@ -29,6 +29,10 @@ ${project.groupId} graph-api + + org.eclipse.jdt + org.eclipse.jdt.annotation + org.opendaylight.yangtools concepts diff --git a/graph/graph-impl/src/main/java/org/opendaylight/graph/impl/ConnectedGraphImpl.java b/graph/graph-impl/src/main/java/org/opendaylight/graph/impl/ConnectedGraphImpl.java index 9604591b31..ab8ca79478 100644 --- a/graph/graph-impl/src/main/java/org/opendaylight/graph/impl/ConnectedGraphImpl.java +++ b/graph/graph-impl/src/main/java/org/opendaylight/graph/impl/ConnectedGraphImpl.java @@ -39,7 +39,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.re import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.graph.topology.graph.VertexKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey; import org.opendaylight.yangtools.yang.common.Uint32; -import org.opendaylight.yangtools.yang.common.Uint64; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -72,9 +71,9 @@ public class ConnectedGraphImpl implements ConnectedGraph { private final ConnectedGraphServer connectedGraphServer; public ConnectedGraphImpl(final Graph newGraph, final ConnectedGraphServer server) { - this.graph = newGraph; + graph = newGraph; createConnectedGraph(); - this.connectedGraphServer = server; + connectedGraphServer = server; } /** @@ -83,21 +82,21 @@ public class ConnectedGraphImpl implements ConnectedGraph { * */ private void createConnectedGraph() { - if (this.graph == null) { + if (graph == null) { return; } /* Add all vertices */ - for (Vertex vertex : this.graph.nonnullVertex().values()) { + for (Vertex vertex : graph.nonnullVertex().values()) { ConnectedVertexImpl cvertex = new ConnectedVertexImpl(vertex); vertices.put(cvertex.getKey(), cvertex); } /* Add all edges */ - for (Edge edge : this.graph.nonnullEdge().values()) { + for (Edge edge : graph.nonnullEdge().values()) { ConnectedEdgeImpl cedge = new ConnectedEdgeImpl(edge); edges.put(cedge.getKey(), cedge); } /* Add all prefixes */ - for (Prefix prefix : this.graph.nonnullPrefix().values()) { + for (Prefix prefix : graph.nonnullPrefix().values()) { ConnectedVertexImpl cvertex = vertices.get(prefix.getVertexId().longValue()); if (cvertex != null) { cvertex.addPrefix(prefix); @@ -161,12 +160,12 @@ public class ConnectedGraphImpl implements ConnectedGraph { @Override public Graph getGraph() { - return this.graph; + return graph; } @Override public List getVertices() { - return new ArrayList<>(this.vertices.values()); + return new ArrayList<>(vertices.values()); } @Override @@ -201,7 +200,7 @@ public class ConnectedGraphImpl implements ConnectedGraph { @Override public List getEdges() { - return new ArrayList<>(this.edges.values()); + return new ArrayList<>(edges.values()); } @Override @@ -225,21 +224,14 @@ public class ConnectedGraphImpl implements ConnectedGraph { @Override public ConnectedEdge getConnectedEdge(final Ipv4Address address) { - if (address == null) { - return null; - } - final Uint64 key = Uint32.fromIntBits(IetfInetUtil.INSTANCE.ipv4AddressBits(address)).toUint64(); - return getConnectedEdge(key.longValue()); + return address == null ? null : getConnectedEdge( + Uint32.fromIntBits(IetfInetUtil.ipv4AddressBits(address)).longValue()); } @Override public ConnectedEdge getConnectedEdge(final Ipv6Address address) { - if (address == null) { - return null; - } - final byte[] ip = IetfInetUtil.INSTANCE.ipv6AddressBytes(address); - final Uint64 key = Uint64.fromLongBits(ByteBuffer.wrap(ip, Long.BYTES, Long.BYTES).getLong()); - return getConnectedEdge(key.longValue()); + return address == null ? null : getConnectedEdge( + ByteBuffer.wrap(IetfInetUtil.ipv6AddressBytes(address), Long.BYTES, Long.BYTES).getLong()); } @Override @@ -249,21 +241,21 @@ public class ConnectedGraphImpl implements ConnectedGraph { @Override public List getPrefixes() { - return new ArrayList<>(this.prefixes.values()); + return new ArrayList<>(prefixes.values()); } @Override public Prefix getPrefix(final IpPrefix prefix) { - return this.prefixes.get(prefix); + return prefixes.get(prefix); } - private void callVertexTrigger(ConnectedVertexImpl cvertex, Vertex vertex) { + private void callVertexTrigger(final ConnectedVertexImpl cvertex, final Vertex vertex) { List vertexTriggers = cvertex.getTriggers(); if (vertexTriggers == null || vertexTriggers.isEmpty()) { return; } for (ConnectedGraphTrigger trigger : graphTriggers.values()) { - this.exec.submit(() -> trigger.verifyVertex(vertexTriggers, cvertex, vertex)); + exec.submit(() -> trigger.verifyVertex(vertexTriggers, cvertex, vertex)); } } @@ -272,7 +264,7 @@ public class ConnectedGraphImpl implements ConnectedGraph { checkArgument(vertex != null, "Provided Vertex is a null object"); ConnectedVertexImpl cvertex = updateConnectedVertex(vertex.getVertexId().longValue()); Vertex old = cvertex.getVertex(); - this.connectedGraphServer.addVertex(this.graph, vertex, old); + connectedGraphServer.addVertex(graph, vertex, old); cvertex.setVertex(vertex); if (old != null) { callVertexTrigger(cvertex, old); @@ -287,19 +279,19 @@ public class ConnectedGraphImpl implements ConnectedGraph { if (cvertex != null) { cvertex.disconnect(); vertices.remove(cvertex.getKey()); - this.connectedGraphServer.deleteVertex(this.graph, cvertex.getVertex()); + connectedGraphServer.deleteVertex(graph, cvertex.getVertex()); cvertex.setVertex(null); callVertexTrigger(cvertex, null); } } - private void callEdgeTrigger(ConnectedEdgeImpl cedge, Edge edge) { + private void callEdgeTrigger(final ConnectedEdgeImpl cedge, final Edge edge) { List edgeTriggers = cedge.getTriggers(); if (edgeTriggers == null || edgeTriggers.isEmpty()) { return; } for (ConnectedGraphTrigger trigger : graphTriggers.values()) { - this.exec.submit(() -> trigger.verifyEdge(edgeTriggers, cedge, edge)); + exec.submit(() -> trigger.verifyEdge(edgeTriggers, cedge, edge)); } } @@ -319,7 +311,7 @@ public class ConnectedGraphImpl implements ConnectedGraph { } connectVertices(source, destination, cedge); } - this.connectedGraphServer.addEdge(this.graph, edge, old); + connectedGraphServer.addEdge(graph, edge, old); cedge.setEdge(edge); callEdgeTrigger(cedge, old); return cedge; @@ -334,7 +326,7 @@ public class ConnectedGraphImpl implements ConnectedGraph { checkArgument(key != null, "Provided Edge Key is a null object"); ConnectedEdgeImpl cedge = edges.get(key.getEdgeId().longValue()); if (cedge != null) { - this.connectedGraphServer.deleteEdge(this.graph, cedge.getEdge()); + connectedGraphServer.deleteEdge(graph, cedge.getEdge()); cedge.disconnect(); cedge.setEdge(null); callEdgeTrigger(cedge, null); @@ -347,7 +339,7 @@ public class ConnectedGraphImpl implements ConnectedGraph { ConnectedVertexImpl cvertex = updateConnectedVertex(prefix.getVertexId().longValue()); cvertex.addPrefix(prefix); prefixes.putIfAbsent(prefix.getPrefix(), prefix); - this.connectedGraphServer.addPrefix(this.graph, prefix); + connectedGraphServer.addPrefix(graph, prefix); } @Override @@ -360,18 +352,18 @@ public class ConnectedGraphImpl implements ConnectedGraph { cvertex.removePrefix(prefix); } prefixes.remove(prefix.getPrefix()); - this.connectedGraphServer.deletePrefix(this.graph, prefix); + connectedGraphServer.deletePrefix(graph, prefix); } } @Override public void clear() { LOG.info("Reset Connected Graph({})", graph.getName()); - this.vertices.clear(); - this.edges.clear(); - this.prefixes.clear(); - this.connectedGraphServer.clearGraph(this.graph); - this.graph = null; + vertices.clear(); + edges.clear(); + prefixes.clear(); + connectedGraphServer.clearGraph(graph); + graph = null; } @Override @@ -380,12 +372,12 @@ public class ConnectedGraphImpl implements ConnectedGraph { } @Override - public boolean registerTrigger(ConnectedGraphTrigger trigger, TopologyKey key) { + public boolean registerTrigger(final ConnectedGraphTrigger trigger, final TopologyKey key) { return graphTriggers.putIfAbsent(key, trigger) == null; } @Override - public boolean unRegisterTrigger(ConnectedGraphTrigger trigger, TopologyKey key) { + public boolean unRegisterTrigger(final ConnectedGraphTrigger trigger, final TopologyKey key) { return graphTriggers.remove(key, trigger); } @@ -396,6 +388,6 @@ public class ConnectedGraphImpl implements ConnectedGraph { */ @Override public String toString() { - return this.graph.getName(); + return graph.getName(); } } diff --git a/graph/pom.xml b/graph/pom.xml index 56772888d3..3341362be2 100644 --- a/graph/pom.xml +++ b/graph/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/parent/pom.xml b/parent/pom.xml index ef31a4fcc0..5f67f298cb 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent bundle-parent - 12.0.5 + 13.0.3 @@ -47,7 +47,7 @@ org.opendaylight.controller controller-artifacts - 7.0.6 + 8.0.0-SNAPSHOT import pom @@ -55,7 +55,7 @@ org.opendaylight.yangtools yangtools-artifacts - 10.0.6 + 11.0.0 import pom @@ -63,7 +63,7 @@ org.opendaylight.mdsal mdsal-artifacts - 11.0.9 + 12.0.0-SNAPSHOT pom import @@ -71,7 +71,7 @@ org.opendaylight.netconf netconf-artifacts - 5.0.6 + 6.0.0-SNAPSHOT pom import @@ -79,7 +79,7 @@ org.opendaylight.infrautils infrautils-artifacts - 5.0.4 + 6.0.1 pom import diff --git a/pcep/config-example/pom.xml b/pcep/config-example/pom.xml index 3974a4d1b5..283019cd63 100644 --- a/pcep/config-example/pom.xml +++ b/pcep/config-example/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent - 12.0.5 + 13.0.3 diff --git a/pcep/impl/pom.xml b/pcep/impl/pom.xml index e0571ef207..5b38aaf141 100644 --- a/pcep/impl/pom.xml +++ b/pcep/impl/pom.xml @@ -59,6 +59,11 @@ testtool-util test + + com.github.spotbugs + spotbugs-annotations + true + io.netty netty-buffer diff --git a/pcep/pcep-artifacts/pom.xml b/pcep/pcep-artifacts/pom.xml index 2cc6fe4043..852bc26663 100644 --- a/pcep/pcep-artifacts/pom.xml +++ b/pcep/pcep-artifacts/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/pcep/pom.xml b/pcep/pom.xml index 4a4db254ce..2b1f9a6e9f 100644 --- a/pcep/pom.xml +++ b/pcep/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/pcep/server/pom.xml b/pcep/server/pom.xml index 6595518e4f..16afd4467a 100644 --- a/pcep/server/pom.xml +++ b/pcep/server/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/pcep/server/server-provider/pom.xml b/pcep/server/server-provider/pom.xml index c5efc02e0b..bf0e7f2c45 100644 --- a/pcep/server/server-provider/pom.xml +++ b/pcep/server/server-provider/pom.xml @@ -69,6 +69,14 @@ ${project.groupId} topology-api + + org.eclipse.jdt + org.eclipse.jdt.annotation + + + org.opendaylight.yangtools + yang-common + org.opendaylight.mdsal mdsal-common-api diff --git a/pcep/spi/pom.xml b/pcep/spi/pom.xml index 5246afad4b..d570b7635e 100644 --- a/pcep/spi/pom.xml +++ b/pcep/spi/pom.xml @@ -41,6 +41,18 @@ ${project.groupId} concepts + + com.google.guava + guava + + + io.netty + netty-buffer + + + org.eclipse.jdt + org.eclipse.jdt.annotation + org.opendaylight.yangtools concepts @@ -57,14 +69,6 @@ org.opendaylight.mdsal yang-binding - - io.netty - netty-buffer - - - com.google.guava - guava - com.guicedee.services javax.inject diff --git a/pcep/topology/pom.xml b/pcep/topology/pom.xml index d12e737ff3..5422458415 100644 --- a/pcep/topology/pom.xml +++ b/pcep/topology/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/AbstractTopologySessionListener.java b/pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/AbstractTopologySessionListener.java index cdce51e91b..b86e9095dc 100644 --- a/pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/AbstractTopologySessionListener.java +++ b/pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/AbstractTopologySessionListener.java @@ -158,7 +158,7 @@ public abstract class AbstractTopologySessionListener implements TopologySession // Our augmentation in the topology node final PathComputationClientBuilder pccBuilder = new PathComputationClientBuilder() - .setIpAddress(IetfInetUtil.INSTANCE.ipAddressNoZoneFor(peerAddress)); + .setIpAddress(IetfInetUtil.ipAddressNoZoneFor(peerAddress)); // Let subclass fill the details updateStatefulCapabilities(pccBuilder, peerAddress, psession.getRemoteTlvs()); diff --git a/pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/PCEPTopologyConfiguration.java b/pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/PCEPTopologyConfiguration.java index 7cff6b5c87..83e09177d9 100644 --- a/pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/PCEPTopologyConfiguration.java +++ b/pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/PCEPTopologyConfiguration.java @@ -200,7 +200,7 @@ final class PCEPTopologyConfiguration implements Immutable { private static @NonNull InetSocketAddress getInetSocketAddress(final IpAddressNoZone address, final PortNumber port) { - return new InetSocketAddress(IetfInetUtil.INSTANCE.inetAddressForNoZone(requireNonNull(address)), + return new InetSocketAddress(IetfInetUtil.inetAddressForNoZone(requireNonNull(address)), port.getValue().toJava()); } } diff --git a/pcep/topology/topology-spi/pom.xml b/pcep/topology/topology-spi/pom.xml index 3850de6869..df15d64d64 100644 --- a/pcep/topology/topology-spi/pom.xml +++ b/pcep/topology/topology-spi/pom.xml @@ -41,6 +41,10 @@ com.google.guava guava + + org.eclipse.jdt + org.eclipse.jdt.annotation + diff --git a/pcep/tunnel/pom.xml b/pcep/tunnel/pom.xml index 6948303588..64e108eb34 100644 --- a/pcep/tunnel/pom.xml +++ b/pcep/tunnel/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/pom.xml b/pom.xml index 914a4eaa26..cd33250c8a 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/programming/api/pom.xml b/programming/api/pom.xml index 6187b66276..79696a4eaf 100644 --- a/programming/api/pom.xml +++ b/programming/api/pom.xml @@ -25,6 +25,14 @@ ${project.artifactId} + + com.google.guava + guava + + + org.eclipse.jdt + org.eclipse.jdt.annotation + org.opendaylight.yangtools yang-common @@ -33,10 +41,6 @@ org.opendaylight.mdsal.binding.model.ietf rfc6991-ietf-inet-types - - com.google.guava - guava - diff --git a/programming/pom.xml b/programming/pom.xml index cd09213f07..c3fa7d31fd 100644 --- a/programming/pom.xml +++ b/programming/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/programming/programming-artifacts/pom.xml b/programming/programming-artifacts/pom.xml index 089e07c434..56402450d5 100644 --- a/programming/programming-artifacts/pom.xml +++ b/programming/programming-artifacts/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/programming/spi/pom.xml b/programming/spi/pom.xml index 0af7c48692..40c9ae18e8 100644 --- a/programming/spi/pom.xml +++ b/programming/spi/pom.xml @@ -30,10 +30,19 @@ programming-api + + com.github.spotbugs + spotbugs-annotations + true + com.google.guava guava + + org.eclipse.jdt + org.eclipse.jdt.annotation + org.opendaylight.yangtools concepts diff --git a/rsvp/api/pom.xml b/rsvp/api/pom.xml index ed8350f63f..b50ef2e837 100644 --- a/rsvp/api/pom.xml +++ b/rsvp/api/pom.xml @@ -29,6 +29,14 @@ ${project.groupId} concepts + + com.google.guava + guava + + + org.eclipse.jdt + org.eclipse.jdt.annotation + org.opendaylight.yangtools yang-common @@ -37,10 +45,6 @@ org.opendaylight.mdsal.binding.model.ietf rfc6991-ietf-inet-types - - com.google.guava - guava - diff --git a/rsvp/pom.xml b/rsvp/pom.xml index 637a129790..c0d3882acc 100644 --- a/rsvp/pom.xml +++ b/rsvp/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/rsvp/rsvp-artifacts/pom.xml b/rsvp/rsvp-artifacts/pom.xml index d972a14d9b..b879462780 100644 --- a/rsvp/rsvp-artifacts/pom.xml +++ b/rsvp/rsvp-artifacts/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/single-feature-parent/pom.xml b/single-feature-parent/pom.xml index 0b45fd0116..c8f9b33816 100644 --- a/single-feature-parent/pom.xml +++ b/single-feature-parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent single-feature-parent - 12.0.5 + 13.0.3 diff --git a/testtool-parent/pom.xml b/testtool-parent/pom.xml index 0871fef3f2..93a3e3a8aa 100644 --- a/testtool-parent/pom.xml +++ b/testtool-parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent - 12.0.5 + 13.0.3 diff --git a/topology/api/pom.xml b/topology/api/pom.xml index a6088c57d0..94cb869c75 100644 --- a/topology/api/pom.xml +++ b/topology/api/pom.xml @@ -29,6 +29,14 @@ ${project.groupId} concepts + + com.google.guava + guava + + + org.eclipse.jdt + org.eclipse.jdt.annotation + org.opendaylight.yangtools yang-common @@ -45,10 +53,6 @@ org.opendaylight.mdsal.binding.model.ietf rfc6991-ietf-inet-types - - com.google.guava - guava - @@ -56,7 +60,7 @@ maven-dependency-plugin - + org.opendaylight.mdsal.model:yang-ext diff --git a/topology/pom.xml b/topology/pom.xml index 876474ec8a..e2b8800ab3 100644 --- a/topology/pom.xml +++ b/topology/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/topology/topology-artifacts/pom.xml b/topology/topology-artifacts/pom.xml index 7d7222fe15..0d5c5dda97 100644 --- a/topology/topology-artifacts/pom.xml +++ b/topology/topology-artifacts/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 12.0.5 + 13.0.3 diff --git a/util/src/main/java/org/opendaylight/protocol/util/Ipv4Util.java b/util/src/main/java/org/opendaylight/protocol/util/Ipv4Util.java index 30aeb186a0..362e4e96d5 100644 --- a/util/src/main/java/org/opendaylight/protocol/util/Ipv4Util.java +++ b/util/src/main/java/org/opendaylight/protocol/util/Ipv4Util.java @@ -16,9 +16,7 @@ import java.net.InetAddress; import java.net.InetSocketAddress; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.List; -import java.util.Map.Entry; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IetfInetUtil; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressNoZone; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4AddressNoZone; @@ -47,7 +45,7 @@ public final class Ipv4Util { * @return Ipv4AddressNoZone */ public static Ipv4AddressNoZone addressForByteBuf(final ByteBuf buffer) { - return IetfInetUtil.INSTANCE.ipv4AddressFor(ByteArray.readBytes(buffer, IP4_LENGTH)); + return IetfInetUtil.ipv4AddressFor(ByteArray.readBytes(buffer, IP4_LENGTH)); } /** @@ -67,14 +65,12 @@ public final class Ipv4Util { * @return byte array */ public static byte[] bytesForAddress(final Ipv4AddressNoZone address) { - return IetfInetUtil.INSTANCE.ipv4AddressNoZoneBytes(address); + return IetfInetUtil.ipv4AddressNoZoneBytes(address); } public static int prefixBitsToBytes(final int bits) { - if (bits % Byte.SIZE != 0) { - return bits / Byte.SIZE + 1; - } - return bits / Byte.SIZE; + final int bytes = bits / Byte.SIZE; + return bits % Byte.SIZE == 0 ? bytes : bytes + 1; } /** @@ -91,7 +87,7 @@ public final class Ipv4Util { * @return byte array with prefix length at the end */ public static byte[] bytesForPrefix(final Ipv4Prefix prefix) { - return IetfInetUtil.INSTANCE.ipv4PrefixToBytes(prefix); + return IetfInetUtil.ipv4PrefixToBytes(prefix); } /** @@ -103,15 +99,8 @@ public final class Ipv4Util { */ public static Ipv4Prefix prefixForBytes(final byte[] bytes, final int length) { checkArgument(length <= bytes.length * Byte.SIZE); - - final byte[] tmp; - if (bytes.length != IP4_LENGTH) { - tmp = Arrays.copyOfRange(bytes, 0, IP4_LENGTH); - } else { - tmp = bytes; - } - - return IetfInetUtil.INSTANCE.ipv4PrefixFor(tmp, length); + return IetfInetUtil.ipv4PrefixFor( + bytes.length == IP4_LENGTH ? bytes : Arrays.copyOfRange(bytes, 0, IP4_LENGTH), length); } /** @@ -133,13 +122,13 @@ public final class Ipv4Util { * @return Ipv4Prefix object */ public static Ipv4Prefix prefixForByteBuf(final ByteBuf buf, final int prefixLength) { - final int size = prefixLength / Byte.SIZE + (prefixLength % Byte.SIZE == 0 ? 0 : 1); + final int size = prefixBitsToBytes(prefixLength); final int readable = buf.readableBytes(); checkArgument(size <= readable, "Illegal length of IP prefix: %s/%s", size, readable); - final byte[] bytes = new byte[IP4_LENGTH]; + final var bytes = new byte[IP4_LENGTH]; buf.readBytes(bytes, 0, size); - return IetfInetUtil.INSTANCE.ipv4PrefixFor(bytes, prefixLength); + return IetfInetUtil.ipv4PrefixFor(bytes, prefixLength); } /** @@ -150,9 +139,9 @@ public final class Ipv4Util { */ public static List prefixListForBytes(final byte[] bytes) { if (bytes.length == 0) { - return Collections.emptyList(); + return List.of(); } - final List list = new ArrayList<>(); + final var list = new ArrayList(); int byteOffset = 0; while (byteOffset < bytes.length) { final int bitLength = Byte.toUnsignedInt(bytes[byteOffset]); @@ -163,7 +152,7 @@ public final class Ipv4Util { continue; } - list.add(IetfInetUtil.INSTANCE.ipv4PrefixForShort(bytes, byteOffset, bitLength)); + list.add(IetfInetUtil.ipv4PrefixForShort(bytes, byteOffset, bitLength)); byteOffset += bitLength / Byte.SIZE; if (bitLength % Byte.SIZE != 0) { byteOffset++; @@ -191,7 +180,7 @@ public final class Ipv4Util { * @return IpAddressNoZone */ public static IpAddressNoZone getIpAddress(final InetAddress inetAddress) { - return IetfInetUtil.INSTANCE.ipAddressNoZoneFor(inetAddress); + return IetfInetUtil.ipAddressNoZoneFor(inetAddress); } /** @@ -227,9 +216,8 @@ public final class Ipv4Util { } public static Ipv4Prefix incrementIpv4Prefix(final Ipv4Prefix ipv4Prefix) { - final Entry splitIpv4Prefix = IetfInetUtil.INSTANCE.splitIpv4Prefix(ipv4Prefix); - return IetfInetUtil.INSTANCE.ipv4PrefixFor(incrementIpv4Address(splitIpv4Prefix.getKey()), - splitIpv4Prefix.getValue()); + final var splitIpv4Prefix = IetfInetUtil.splitIpv4Prefix(ipv4Prefix); + return IetfInetUtil.ipv4PrefixFor(incrementIpv4Address(splitIpv4Prefix.getKey()), splitIpv4Prefix.getValue()); } /** @@ -239,10 +227,8 @@ public final class Ipv4Util { * @return String value of Ipv4Address or Ipv6Address */ public static String toStringIP(final IpAddressNoZone ipAddress) { - if (ipAddress.getIpv4AddressNoZone() != null) { - return ipAddress.getIpv4AddressNoZone().getValue(); - } - return ipAddress.getIpv6AddressNoZone().getValue(); + final var ipv4 = ipAddress.getIpv4AddressNoZone(); + return ipv4 != null ? ipv4.getValue() : ipAddress.getIpv6AddressNoZone().getValue(); } /** @@ -256,7 +242,7 @@ public final class Ipv4Util { */ public static void writeIpv4Address(final Ipv4AddressNoZone ipv4Address, final ByteBuf output) { if (ipv4Address != null) { - output.writeBytes(IetfInetUtil.INSTANCE.ipv4AddressNoZoneBytes(ipv4Address)); + output.writeBytes(IetfInetUtil.ipv4AddressNoZoneBytes(ipv4Address)); } else { output.writeInt(0); } @@ -281,7 +267,7 @@ public final class Ipv4Util { } public static void writeMinimalPrefix(final Ipv4Prefix ipv4Prefix, final ByteBuf output) { - final byte[] bytes = IetfInetUtil.INSTANCE.ipv4PrefixToBytes(ipv4Prefix); + final var bytes = IetfInetUtil.ipv4PrefixToBytes(ipv4Prefix); writeMinimalPrefix(output, bytes, bytes[IP4_LENGTH]); } diff --git a/util/src/main/java/org/opendaylight/protocol/util/Ipv6Util.java b/util/src/main/java/org/opendaylight/protocol/util/Ipv6Util.java index 3da2cab4e0..1130718af4 100644 --- a/util/src/main/java/org/opendaylight/protocol/util/Ipv6Util.java +++ b/util/src/main/java/org/opendaylight/protocol/util/Ipv6Util.java @@ -14,7 +14,6 @@ import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.List; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IetfInetUtil; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6AddressNoZone; @@ -52,7 +51,7 @@ public final class Ipv6Util { * @return Ipv6Address */ public static Ipv6AddressNoZone addressForByteBuf(final ByteBuf buffer) { - return IetfInetUtil.INSTANCE.ipv6AddressFor(ByteArray.readBytes(buffer, IPV6_LENGTH)); + return IetfInetUtil.ipv6AddressFor(ByteArray.readBytes(buffer, IPV6_LENGTH)); } /** @@ -71,7 +70,7 @@ public final class Ipv6Util { * @return byte array */ public static byte[] bytesForAddress(final Ipv6AddressNoZone address) { - return IetfInetUtil.INSTANCE.ipv6AddressNoZoneBytes(address); + return IetfInetUtil.ipv6AddressNoZoneBytes(address); } /** @@ -81,7 +80,7 @@ public final class Ipv6Util { * @return byte array with prefix length at the end */ public static byte[] bytesForPrefix(final Ipv6Prefix prefix) { - return IetfInetUtil.INSTANCE.ipv6PrefixToBytes(prefix); + return IetfInetUtil.ipv6PrefixToBytes(prefix); } /** @@ -93,15 +92,8 @@ public final class Ipv6Util { */ public static Ipv6Prefix prefixForBytes(final byte[] bytes, final int length) { checkArgument(length <= bytes.length * Byte.SIZE); - - final byte[] tmp; - if (bytes.length != IPV6_LENGTH) { - tmp = Arrays.copyOfRange(bytes, 0, IPV6_LENGTH); - } else { - tmp = bytes; - } - - return IetfInetUtil.INSTANCE.ipv6PrefixFor(tmp, length); + return IetfInetUtil.ipv6PrefixFor( + bytes.length == IPV6_LENGTH ? bytes : Arrays.copyOfRange(bytes, 0, IPV6_LENGTH), length); } /** @@ -113,13 +105,13 @@ public final class Ipv6Util { */ public static Ipv6Prefix prefixForByteBuf(final ByteBuf buf) { final int prefixLength = buf.readUnsignedByte(); - final int size = prefixLength / Byte.SIZE + (prefixLength % Byte.SIZE == 0 ? 0 : 1); + final int size = Ipv4Util.prefixBitsToBytes(prefixLength); final int readable = buf.readableBytes(); checkArgument(size <= readable, "Illegal length of IP prefix: %s/%s", size, readable); final byte[] bytes = new byte[IPV6_LENGTH]; buf.readBytes(bytes, 0, size); - return IetfInetUtil.INSTANCE.ipv6PrefixFor(bytes, prefixLength); + return IetfInetUtil.ipv6PrefixFor(bytes, prefixLength); } /** @@ -130,9 +122,9 @@ public final class Ipv6Util { */ public static List prefixListForBytes(final byte[] bytes) { if (bytes.length == 0) { - return Collections.emptyList(); + return List.of(); } - final List list = new ArrayList<>(); + final var list = new ArrayList(); int byteOffset = 0; while (byteOffset < bytes.length) { final int bitLength = Byte.toUnsignedInt(bytes[byteOffset]); @@ -142,7 +134,7 @@ public final class Ipv6Util { list.add(EMPTY_PREFIX); continue; } - list.add(IetfInetUtil.INSTANCE.ipv6PrefixForShort(bytes, byteOffset, bitLength)); + list.add(IetfInetUtil.ipv6PrefixForShort(bytes, byteOffset, bitLength)); byteOffset += bitLength / Byte.SIZE; if (bitLength % Byte.SIZE != 0) { byteOffset++; @@ -162,7 +154,7 @@ public final class Ipv6Util { */ public static void writeIpv6Address(final Ipv6AddressNoZone ipv6Address, final ByteBuf output) { if (ipv6Address != null) { - output.writeBytes(IetfInetUtil.INSTANCE.ipv6AddressNoZoneBytes(ipv6Address)); + output.writeBytes(IetfInetUtil.ipv6AddressNoZoneBytes(ipv6Address)); } else { output.writeZero(IPV6_LENGTH); } @@ -187,7 +179,7 @@ public final class Ipv6Util { } public static void writeMinimalPrefix(final Ipv6Prefix ipv6Prefix, final ByteBuf output) { - final byte[] bytes = IetfInetUtil.INSTANCE.ipv6PrefixToBytes(ipv6Prefix); + final var bytes = IetfInetUtil.ipv6PrefixToBytes(ipv6Prefix); Ipv4Util.writeMinimalPrefix(output, bytes, bytes[IPV6_LENGTH]); } } -- 2.36.6