From f2bc827dc75a8aad469853eb629d9e2617c31314 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sun, 8 Nov 2020 13:28:38 +0100 Subject: [PATCH] Remove hand-written ServiceLoader services @MetaInfServices provides automatic generation of these files, hence use it to make bindings to code more explicit. JIRA: BGPCEP-937 Change-Id: I9a4a5627cddfdd7898b83414404d1cae069795ed Signed-off-by: Robert Varga --- bgp/extensions/evpn/pom.xml | 4 ++ .../protocol/bgp/evpn/impl/BGPActivator.java | 3 ++ .../protocol/bgp/evpn/impl/RIBActivator.java | 9 ++-- .../bgp/evpn/impl/TableTypeActivator.java | 11 +++-- ....spi.BGPTableTypeRegistryProviderActivator | 7 --- ...p.parser.spi.BGPExtensionProviderActivator | 7 --- ....bgp.rib.spi.RIBExtensionProviderActivator | 7 --- bgp/extensions/flowspec/pom.xml | 4 ++ .../protocol/bgp/flowspec/BGPActivator.java | 9 ++-- .../protocol/bgp/flowspec/RIBActivator.java | 26 +++++------ .../bgp/flowspec/TableTypeActivator.java | 6 ++- ....spi.BGPTableTypeRegistryProviderActivator | 7 --- ...p.parser.spi.BGPExtensionProviderActivator | 7 --- ....bgp.rib.spi.RIBExtensionProviderActivator | 7 --- bgp/extensions/inet/pom.xml | 5 +++ .../protocol/bgp/inet/BGPActivator.java | 30 ++++++------- .../protocol/bgp/inet/RIBActivator.java | 15 ++++--- .../protocol/bgp/inet/TableTypeActivator.java | 17 ++++---- ....spi.BGPTableTypeRegistryProviderActivator | 7 --- ...p.parser.spi.BGPExtensionProviderActivator | 7 --- ....bgp.rib.spi.RIBExtensionProviderActivator | 7 --- bgp/extensions/l3vpn/pom.xml | 4 ++ .../protocol/bgp/l3vpn/BGPActivator.java | 4 +- .../protocol/bgp/l3vpn/RIBActivator.java | 6 ++- .../bgp/l3vpn/TableTypeActivator.java | 7 +-- ....spi.BGPTableTypeRegistryProviderActivator | 7 --- ...p.parser.spi.BGPExtensionProviderActivator | 7 --- ....bgp.rib.spi.RIBExtensionProviderActivator | 7 --- bgp/extensions/labeled-unicast/pom.xml | 4 ++ .../bgp/labeled/unicast/BGPActivator.java | 35 ++++++--------- .../bgp/labeled/unicast/RIBActivator.java | 14 +++--- .../labeled/unicast/TableTypeActivator.java | 8 ++-- ....spi.BGPTableTypeRegistryProviderActivator | 7 --- ...p.parser.spi.BGPExtensionProviderActivator | 7 --- ....bgp.rib.spi.RIBExtensionProviderActivator | 7 --- bgp/extensions/linkstate/pom.xml | 4 ++ .../bgp/linkstate/impl/BGPActivator.java | 18 +++++--- .../bgp/linkstate/impl/RIBActivator.java | 6 ++- .../linkstate/impl/TableTypeActivator.java | 8 ++-- ....spi.BGPTableTypeRegistryProviderActivator | 7 --- ...p.parser.spi.BGPExtensionProviderActivator | 7 --- ....bgp.rib.spi.RIBExtensionProviderActivator | 7 --- bgp/extensions/mvpn/pom.xml | 4 ++ .../protocol/bgp/mvpn/impl/BGPActivator.java | 4 +- .../protocol/bgp/mvpn/impl/RIBActivator.java | 15 ++++--- .../bgp/mvpn/impl/TableTypeActivator.java | 7 +-- ....spi.BGPTableTypeRegistryProviderActivator | 7 --- ...p.parser.spi.BGPExtensionProviderActivator | 6 --- ....bgp.rib.spi.RIBExtensionProviderActivator | 6 --- bgp/extensions/route-target/pom.xml | 4 ++ .../impl/activators/BGPActivator.java | 4 +- .../impl/activators/RIBActivator.java | 3 ++ .../impl/activators/StatementActivator.java | 3 ++ .../impl/activators/TableTypeActivator.java | 4 +- ...cy.spi.registry.StatementProviderActivator | 13 ------ ....spi.BGPTableTypeRegistryProviderActivator | 13 ------ ...p.parser.spi.BGPExtensionProviderActivator | 12 ------ ....bgp.rib.spi.RIBExtensionProviderActivator | 12 ------ bgp/openconfig-rp-statement/pom.xml | 5 +++ .../policy/statement/StatementActivator.java | 4 ++ ...cy.spi.registry.StatementProviderActivator | 7 --- bgp/parser-impl/pom.xml | 14 ++---- .../bgp/parser/impl/BGPActivator.java | 2 + ...p.parser.spi.BGPExtensionProviderActivator | 7 --- bmp/bmp-parser-impl/pom.xml | 5 +++ .../protocol/bmp/parser/BmpActivator.java | 11 ++--- ...spi.registry.BmpExtensionProviderActivator | 7 --- pcep/auto-bandwidth-extension/pom.xml | 4 ++ .../auto/bandwidth/extension/Activator.java | 15 +++++-- ...ol.pcep.spi.PCEPExtensionProviderActivator | 7 --- pcep/base-parser/pom.xml | 10 ++--- .../parser/BaseParserExtensionActivator.java | 2 + ...ol.pcep.spi.PCEPExtensionProviderActivator | 7 --- pcep/ietf-p2mp-te-lsp/pom.xml | 6 ++- .../protocol/pcep/p2mp/te/lsp/Activator.java | 3 ++ .../pcep/p2mp/te/lsp/P2MPTeLspCapability.java | 19 +++++++- ....opendaylight.protocol.pcep.PCEPCapability | 7 --- ...ol.pcep.spi.PCEPExtensionProviderActivator | 7 --- pcep/ietf-stateful/pom.xml | 9 ++-- .../ietf/initiated/InitiatedActivator.java | 3 ++ .../ietf/stateful/PCEPStatefulCapability.java | 43 +++++++++++-------- .../pcep/ietf/stateful/StatefulActivator.java | 3 ++ .../SyncOptimizationsActivator.java | 4 +- ....opendaylight.protocol.pcep.PCEPCapability | 7 --- ...ol.pcep.spi.PCEPExtensionProviderActivator | 10 ----- pcep/segment-routing/pom.xml | 4 ++ .../routing/PCEPSegmentRoutingCapability.java | 30 ++++++++++--- .../routing/SegmentRoutingActivator.java | 16 +++++-- ....opendaylight.protocol.pcep.PCEPCapability | 7 --- ...ol.pcep.spi.PCEPExtensionProviderActivator | 7 --- rsvp/impl/pom.xml | 5 +++ .../rsvp/parser/impl/RSVPActivator.java | 6 ++- ....parser.spi.RSVPExtensionProviderActivator | 7 --- 93 files changed, 336 insertions(+), 474 deletions(-) delete mode 100644 bgp/extensions/evpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator delete mode 100644 bgp/extensions/evpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator delete mode 100644 bgp/extensions/evpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator delete mode 100644 bgp/extensions/flowspec/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator delete mode 100644 bgp/extensions/flowspec/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator delete mode 100644 bgp/extensions/flowspec/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator delete mode 100644 bgp/extensions/inet/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator delete mode 100644 bgp/extensions/inet/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator delete mode 100644 bgp/extensions/inet/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator delete mode 100644 bgp/extensions/l3vpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator delete mode 100644 bgp/extensions/l3vpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator delete mode 100644 bgp/extensions/l3vpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator delete mode 100644 bgp/extensions/labeled-unicast/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator delete mode 100644 bgp/extensions/labeled-unicast/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator delete mode 100644 bgp/extensions/labeled-unicast/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator delete mode 100644 bgp/extensions/linkstate/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator delete mode 100644 bgp/extensions/linkstate/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator delete mode 100644 bgp/extensions/linkstate/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator delete mode 100644 bgp/extensions/mvpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator delete mode 100644 bgp/extensions/mvpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator delete mode 100644 bgp/extensions/mvpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator delete mode 100644 bgp/extensions/route-target/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.routing.policy.spi.registry.StatementProviderActivator delete mode 100644 bgp/extensions/route-target/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator delete mode 100644 bgp/extensions/route-target/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator delete mode 100644 bgp/extensions/route-target/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator delete mode 100644 bgp/openconfig-rp-statement/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.routing.policy.spi.registry.StatementProviderActivator delete mode 100644 bgp/parser-impl/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator delete mode 100644 bmp/bmp-parser-impl/src/main/resources/META-INF/services/org.opendaylight.protocol.bmp.spi.registry.BmpExtensionProviderActivator delete mode 100644 pcep/auto-bandwidth-extension/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator delete mode 100644 pcep/base-parser/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator delete mode 100644 pcep/ietf-p2mp-te-lsp/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.PCEPCapability delete mode 100644 pcep/ietf-p2mp-te-lsp/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator delete mode 100644 pcep/ietf-stateful/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.PCEPCapability delete mode 100644 pcep/ietf-stateful/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator delete mode 100644 pcep/segment-routing/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.PCEPCapability delete mode 100644 pcep/segment-routing/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator delete mode 100644 rsvp/impl/src/main/resources/META-INF/services/org.opendaylight.protocol.rsvp.parser.spi.RSVPExtensionProviderActivator diff --git a/bgp/extensions/evpn/pom.xml b/bgp/extensions/evpn/pom.xml index e4b08b27ed..f26c08db1c 100644 --- a/bgp/extensions/evpn/pom.xml +++ b/bgp/extensions/evpn/pom.xml @@ -51,6 +51,10 @@ org.opendaylight.mdsal mdsal-rfc8294-netty + + org.kohsuke.metainf-services + metainf-services + diff --git a/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/BGPActivator.java b/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/BGPActivator.java index 6d4dfe2eb1..e338d7a528 100644 --- a/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/BGPActivator.java +++ b/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/BGPActivator.java @@ -10,6 +10,7 @@ package org.opendaylight.protocol.bgp.evpn.impl; import com.google.common.annotations.VisibleForTesting; import java.util.ArrayList; import java.util.List; +import org.kohsuke.MetaInfServices; import org.opendaylight.protocol.bgp.evpn.impl.esi.types.ESIActivator; import org.opendaylight.protocol.bgp.evpn.impl.extended.communities.DefaultGatewayExtCom; import org.opendaylight.protocol.bgp.evpn.impl.extended.communities.ESILabelExtCom; @@ -19,6 +20,7 @@ import org.opendaylight.protocol.bgp.evpn.impl.extended.communities.MACMobExtCom import org.opendaylight.protocol.bgp.evpn.impl.nlri.EvpnNlriParser; import org.opendaylight.protocol.bgp.evpn.impl.nlri.NlriActivator; import org.opendaylight.protocol.bgp.parser.spi.AbstractBGPExtensionProviderActivator; +import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator; import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderContext; import org.opendaylight.protocol.bgp.parser.spi.NextHopParserSerializer; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.EvpnSubsequentAddressFamily; @@ -33,6 +35,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.next.hop.c.next.hop.Ipv6NextHopCase; import org.opendaylight.yangtools.concepts.Registration; +@MetaInfServices(value = BGPExtensionProviderActivator.class) public final class BGPActivator extends AbstractBGPExtensionProviderActivator { @VisibleForTesting static final int L2VPN_AFI = 25; diff --git a/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/RIBActivator.java b/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/RIBActivator.java index f563fefa49..ac63247271 100644 --- a/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/RIBActivator.java +++ b/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/RIBActivator.java @@ -5,26 +5,25 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.protocol.bgp.evpn.impl; -import java.util.Collections; import java.util.List; +import org.kohsuke.MetaInfServices; import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer; import org.opendaylight.protocol.bgp.rib.spi.AbstractRIBExtensionProviderActivator; +import org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator; import org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderContext; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.EvpnSubsequentAddressFamily; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.L2vpnAddressFamily; import org.opendaylight.yangtools.concepts.Registration; +@MetaInfServices(value = RIBExtensionProviderActivator.class) public final class RIBActivator extends AbstractRIBExtensionProviderActivator { - @Override protected List startRIBExtensionProviderImpl( final RIBExtensionProviderContext context, final BindingNormalizedNodeSerializer mappingService) { - return Collections.singletonList(context.registerRIBSupport(L2vpnAddressFamily.class, - EvpnSubsequentAddressFamily.class, + return List.of(context.registerRIBSupport(L2vpnAddressFamily.class, EvpnSubsequentAddressFamily.class, EvpnRibSupport.getInstance(mappingService))); } } \ No newline at end of file diff --git a/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/TableTypeActivator.java b/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/TableTypeActivator.java index 1d8881e14d..61d5b3d43c 100644 --- a/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/TableTypeActivator.java +++ b/bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/TableTypeActivator.java @@ -5,25 +5,24 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.protocol.bgp.evpn.impl; -import com.google.common.collect.Lists; import java.util.List; +import org.kohsuke.MetaInfServices; import org.opendaylight.protocol.bgp.openconfig.spi.AbstractBGPTableTypeRegistryProviderActivator; import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProvider; +import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator; import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.types.rev151009.L2VPNEVPN; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.EvpnSubsequentAddressFamily; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.L2vpnAddressFamily; import org.opendaylight.yangtools.concepts.AbstractRegistration; +@MetaInfServices(value = BGPTableTypeRegistryProviderActivator.class) public final class TableTypeActivator extends AbstractBGPTableTypeRegistryProviderActivator { - @Override protected List startBGPTableTypeRegistryProviderImpl( final BGPTableTypeRegistryProvider provider) { - return Lists.newArrayList(provider.registerBGPTableType(L2vpnAddressFamily.class, - EvpnSubsequentAddressFamily.class, L2VPNEVPN.class)); + return List.of(provider.registerBGPTableType(L2vpnAddressFamily.class, EvpnSubsequentAddressFamily.class, + L2VPNEVPN.class)); } - } diff --git a/bgp/extensions/evpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator b/bgp/extensions/evpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator deleted file mode 100644 index 6cdb52483b..0000000000 --- a/bgp/extensions/evpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved. -# -# This program and the accompanying materials are made available -# under the terms of the Eclipse Public License v1.0 which -# accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.bgp.evpn.impl.TableTypeActivator \ No newline at end of file diff --git a/bgp/extensions/evpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator b/bgp/extensions/evpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator deleted file mode 100644 index 3f0eb871c8..0000000000 --- a/bgp/extensions/evpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c) 2016 Brocade Communications Systems, Inc. and others. All rights reserved. -# -# This program and the accompanying materials are made available -# under the terms of the Eclipse Public License v1.0 which -# accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.bgp.evpn.impl.BGPActivator diff --git a/bgp/extensions/evpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator b/bgp/extensions/evpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator deleted file mode 100644 index e5c2a1e6e9..0000000000 --- a/bgp/extensions/evpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c) 2016 Brocade Communications Systems, Inc. and others. All rights reserved. -# -# This program and the accompanying materials are made available -# under the terms of the Eclipse Public License v1.0 which -# accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.bgp.evpn.impl.RIBActivator diff --git a/bgp/extensions/flowspec/pom.xml b/bgp/extensions/flowspec/pom.xml index 0d0caa8357..44fec5361b 100644 --- a/bgp/extensions/flowspec/pom.xml +++ b/bgp/extensions/flowspec/pom.xml @@ -43,6 +43,10 @@ org.opendaylight.yangtools yang-data-impl + + org.kohsuke.metainf-services + metainf-services + diff --git a/bgp/extensions/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/BGPActivator.java b/bgp/extensions/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/BGPActivator.java index 7f6ad74119..e6e78e4fb4 100644 --- a/bgp/extensions/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/BGPActivator.java +++ b/bgp/extensions/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/BGPActivator.java @@ -12,6 +12,7 @@ import static java.util.Objects.requireNonNull; import java.util.ArrayList; import java.util.List; import org.eclipse.jdt.annotation.NonNull; +import org.kohsuke.MetaInfServices; import org.opendaylight.protocol.bgp.flowspec.extended.communities.RedirectAsFourOctetEcHandler; import org.opendaylight.protocol.bgp.flowspec.extended.communities.RedirectAsTwoOctetEcHandler; import org.opendaylight.protocol.bgp.flowspec.extended.communities.RedirectIpNextHopEcHandler; @@ -25,6 +26,7 @@ import org.opendaylight.protocol.bgp.flowspec.l3vpn.ipv6.FlowspecL3vpnIpv6NlriPa import org.opendaylight.protocol.bgp.inet.codec.nexthop.Ipv4NextHopParserSerializer; import org.opendaylight.protocol.bgp.inet.codec.nexthop.Ipv6NextHopParserSerializer; import org.opendaylight.protocol.bgp.parser.spi.AbstractBGPExtensionProviderActivator; +import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator; import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderContext; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.flowspec.rev200120.FlowspecL3vpnSubsequentAddressFamily; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.flowspec.rev200120.FlowspecSubsequentAddressFamily; @@ -46,22 +48,23 @@ 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.next.hop.c.next.hop.Ipv6NextHopCase; import org.opendaylight.yangtools.concepts.Registration; +@MetaInfServices(value = BGPExtensionProviderActivator.class) public final class BGPActivator extends AbstractBGPExtensionProviderActivator { - private static final int FLOWSPEC_SAFI = 133; private static final int FLOWSPEC_L3VPN_SAFI = 134; private final FlowspecActivator activator; + // FIXME: this needs proper injection public BGPActivator(final @NonNull FlowspecActivator activator) { this.activator = requireNonNull(activator); } @Override protected List startImpl(final BGPExtensionProviderContext context) { - final List regs = new ArrayList<>(); - final SimpleFlowspecExtensionProviderContext flowspecContext = this.activator.getContext(); + final SimpleFlowspecExtensionProviderContext flowspecContext = activator.getContext(); + final List regs = new ArrayList<>(); regs.add(context.registerSubsequentAddressFamily(FlowspecSubsequentAddressFamily.class, FLOWSPEC_SAFI)); regs.add(context.registerSubsequentAddressFamily(FlowspecL3vpnSubsequentAddressFamily.class, FLOWSPEC_L3VPN_SAFI)); diff --git a/bgp/extensions/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/RIBActivator.java b/bgp/extensions/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/RIBActivator.java index f3be126224..3e02804927 100644 --- a/bgp/extensions/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/RIBActivator.java +++ b/bgp/extensions/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/RIBActivator.java @@ -7,12 +7,13 @@ */ package org.opendaylight.protocol.bgp.flowspec; -import java.util.ArrayList; import java.util.List; +import org.kohsuke.MetaInfServices; import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer; import org.opendaylight.protocol.bgp.flowspec.l3vpn.ipv4.FlowspecL3vpnIpv4RIBSupport; import org.opendaylight.protocol.bgp.flowspec.l3vpn.ipv6.FlowspecL3vpnIpv6RIBSupport; import org.opendaylight.protocol.bgp.rib.spi.AbstractRIBExtensionProviderActivator; +import org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator; import org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderContext; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.flowspec.rev200120.FlowspecL3vpnSubsequentAddressFamily; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.flowspec.rev200120.FlowspecSubsequentAddressFamily; @@ -20,27 +21,26 @@ 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.Ipv6AddressFamily; import org.opendaylight.yangtools.concepts.Registration; +@MetaInfServices(value = RIBExtensionProviderActivator.class) public final class RIBActivator extends AbstractRIBExtensionProviderActivator { - private final SimpleFlowspecExtensionProviderContext fsContext; - public RIBActivator(SimpleFlowspecExtensionProviderContext context) { - super(); + // FIXME: this requires proper injection + public RIBActivator(final SimpleFlowspecExtensionProviderContext context) { this.fsContext = context; } @Override protected List startRIBExtensionProviderImpl(final RIBExtensionProviderContext context, final BindingNormalizedNodeSerializer mappingService) { - final List regs = new ArrayList<>(4); - regs.add(context.registerRIBSupport(Ipv4AddressFamily.class, FlowspecSubsequentAddressFamily.class, - FlowspecIpv4RIBSupport.getInstance(this.fsContext, mappingService))); - regs.add(context.registerRIBSupport(Ipv6AddressFamily.class, FlowspecSubsequentAddressFamily.class, - FlowspecIpv6RIBSupport.getInstance(this.fsContext, mappingService))); - regs.add(context.registerRIBSupport(Ipv4AddressFamily.class, FlowspecL3vpnSubsequentAddressFamily.class, - FlowspecL3vpnIpv4RIBSupport.getInstance(this.fsContext, mappingService))); - regs.add(context.registerRIBSupport(Ipv6AddressFamily.class, FlowspecL3vpnSubsequentAddressFamily.class, + return List.of( + context.registerRIBSupport(Ipv4AddressFamily.class, FlowspecSubsequentAddressFamily.class, + FlowspecIpv4RIBSupport.getInstance(this.fsContext, mappingService)), + context.registerRIBSupport(Ipv6AddressFamily.class, FlowspecSubsequentAddressFamily.class, + FlowspecIpv6RIBSupport.getInstance(this.fsContext, mappingService)), + context.registerRIBSupport(Ipv4AddressFamily.class, FlowspecL3vpnSubsequentAddressFamily.class, + FlowspecL3vpnIpv4RIBSupport.getInstance(this.fsContext, mappingService)), + context.registerRIBSupport(Ipv6AddressFamily.class, FlowspecL3vpnSubsequentAddressFamily.class, FlowspecL3vpnIpv6RIBSupport.getInstance(this.fsContext, mappingService))); - return regs; } } diff --git a/bgp/extensions/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/TableTypeActivator.java b/bgp/extensions/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/TableTypeActivator.java index 6b2311242f..fc0aaab1c7 100644 --- a/bgp/extensions/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/TableTypeActivator.java +++ b/bgp/extensions/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/TableTypeActivator.java @@ -7,10 +7,11 @@ */ package org.opendaylight.protocol.bgp.flowspec; -import java.util.Arrays; import java.util.List; +import org.kohsuke.MetaInfServices; import org.opendaylight.protocol.bgp.openconfig.spi.AbstractBGPTableTypeRegistryProviderActivator; import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProvider; +import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.flowspec.rev200120.FlowspecL3vpnSubsequentAddressFamily; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.flowspec.rev200120.FlowspecSubsequentAddressFamily; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev180329.IPV4FLOW; @@ -21,11 +22,12 @@ 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.Ipv6AddressFamily; import org.opendaylight.yangtools.concepts.AbstractRegistration; +@MetaInfServices(value = BGPTableTypeRegistryProviderActivator.class) public final class TableTypeActivator extends AbstractBGPTableTypeRegistryProviderActivator { @Override protected List startBGPTableTypeRegistryProviderImpl( final BGPTableTypeRegistryProvider provider) { - return Arrays.asList( + return List.of( provider.registerBGPTableType(Ipv4AddressFamily.class, FlowspecSubsequentAddressFamily.class, IPV4FLOW.class), provider.registerBGPTableType(Ipv6AddressFamily.class, FlowspecSubsequentAddressFamily.class, diff --git a/bgp/extensions/flowspec/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator b/bgp/extensions/flowspec/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator deleted file mode 100644 index ce0bcc1cfd..0000000000 --- a/bgp/extensions/flowspec/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved. -# -# This program and the accompanying materials are made available -# under the terms of the Eclipse Public License v1.0 which -# accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.bgp.flowspec.TableTypeActivator \ No newline at end of file diff --git a/bgp/extensions/flowspec/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator b/bgp/extensions/flowspec/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator deleted file mode 100644 index b69f6c32c2..0000000000 --- a/bgp/extensions/flowspec/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c) 2016 Brocade Communications Systems, Inc. and others. All rights reserved. -# -# This program and the accompanying materials are made available -# under the terms of the Eclipse Public License v1.0 which -# accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.bgp.flowspec.BGPActivator diff --git a/bgp/extensions/flowspec/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator b/bgp/extensions/flowspec/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator deleted file mode 100644 index 2d1fda0900..0000000000 --- a/bgp/extensions/flowspec/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c) 2016 Brocade Communications Systems, Inc. and others. All rights reserved. -# -# This program and the accompanying materials are made available -# under the terms of the Eclipse Public License v1.0 which -# accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.bgp.flowspec.RIBActivator diff --git a/bgp/extensions/inet/pom.xml b/bgp/extensions/inet/pom.xml index 491fbdee3d..8a6d6d6290 100644 --- a/bgp/extensions/inet/pom.xml +++ b/bgp/extensions/inet/pom.xml @@ -23,6 +23,11 @@ ${project.artifactId} + + org.kohsuke.metainf-services + metainf-services + + ${project.groupId} diff --git a/bgp/extensions/inet/src/main/java/org/opendaylight/protocol/bgp/inet/BGPActivator.java b/bgp/extensions/inet/src/main/java/org/opendaylight/protocol/bgp/inet/BGPActivator.java index a28069186d..aea81d913a 100644 --- a/bgp/extensions/inet/src/main/java/org/opendaylight/protocol/bgp/inet/BGPActivator.java +++ b/bgp/extensions/inet/src/main/java/org/opendaylight/protocol/bgp/inet/BGPActivator.java @@ -7,14 +7,15 @@ */ package org.opendaylight.protocol.bgp.inet; -import java.util.ArrayList; import java.util.List; +import org.kohsuke.MetaInfServices; import org.opendaylight.protocol.bgp.inet.codec.Ipv4NlriParser; import org.opendaylight.protocol.bgp.inet.codec.Ipv6BgpPrefixSidParser; import org.opendaylight.protocol.bgp.inet.codec.Ipv6NlriParser; import org.opendaylight.protocol.bgp.inet.codec.nexthop.Ipv4NextHopParserSerializer; import org.opendaylight.protocol.bgp.inet.codec.nexthop.Ipv6NextHopParserSerializer; import org.opendaylight.protocol.bgp.parser.spi.AbstractBGPExtensionProviderActivator; +import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator; import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderContext; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.inet.rev180329.ipv4.routes.Ipv4Routes; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.inet.rev180329.ipv6.routes.Ipv6Routes; @@ -26,27 +27,22 @@ 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.next.hop.c.next.hop.Ipv6NextHopCase; import org.opendaylight.yangtools.concepts.Registration; +@MetaInfServices(value = BGPExtensionProviderActivator.class) public final class BGPActivator extends AbstractBGPExtensionProviderActivator { - @Override protected List startImpl(final BGPExtensionProviderContext context) { - final List regs = new ArrayList<>(6); - - final Ipv4NextHopParserSerializer ipv4NextHopParser = new Ipv4NextHopParserSerializer(); final Ipv4NlriParser ipv4Codec = new Ipv4NlriParser(); - regs.add(context.registerNlriParser(Ipv4AddressFamily.class, UnicastSubsequentAddressFamily.class, - ipv4Codec, ipv4NextHopParser, Ipv4NextHopCase.class, Ipv6NextHopCase.class)); - regs.add(context.registerNlriSerializer(Ipv4Routes.class, ipv4Codec)); - - final Ipv6NextHopParserSerializer ipv6NextHopParser = new Ipv6NextHopParserSerializer(); final Ipv6NlriParser ipv6Codec = new Ipv6NlriParser(); - regs.add(context.registerNlriParser(Ipv6AddressFamily.class, UnicastSubsequentAddressFamily.class, ipv6Codec, - ipv6NextHopParser, Ipv4NextHopCase.class, Ipv6NextHopCase.class)); - regs.add(context.registerNlriSerializer(Ipv6Routes.class, ipv6Codec)); - final Ipv6BgpPrefixSidParser tlvHandler = new Ipv6BgpPrefixSidParser(); - regs.add(context.registerBgpPrefixSidTlvParser(tlvHandler.getType(), tlvHandler)); - regs.add(context.registerBgpPrefixSidTlvSerializer(Ipv6SidTlv.class, tlvHandler)); - return regs; + + return List.of( + context.registerNlriParser(Ipv4AddressFamily.class, UnicastSubsequentAddressFamily.class, + ipv4Codec, new Ipv4NextHopParserSerializer(), Ipv4NextHopCase.class, Ipv6NextHopCase.class), + context.registerNlriParser(Ipv6AddressFamily.class, UnicastSubsequentAddressFamily.class, ipv6Codec, + new Ipv6NextHopParserSerializer(), Ipv4NextHopCase.class, Ipv6NextHopCase.class), + context.registerNlriSerializer(Ipv4Routes.class, ipv4Codec), + context.registerNlriSerializer(Ipv6Routes.class, ipv6Codec), + context.registerBgpPrefixSidTlvParser(tlvHandler.getType(), tlvHandler), + context.registerBgpPrefixSidTlvSerializer(Ipv6SidTlv.class, tlvHandler)); } } diff --git a/bgp/extensions/inet/src/main/java/org/opendaylight/protocol/bgp/inet/RIBActivator.java b/bgp/extensions/inet/src/main/java/org/opendaylight/protocol/bgp/inet/RIBActivator.java index 15c9dee0fd..aefbeceaca 100644 --- a/bgp/extensions/inet/src/main/java/org/opendaylight/protocol/bgp/inet/RIBActivator.java +++ b/bgp/extensions/inet/src/main/java/org/opendaylight/protocol/bgp/inet/RIBActivator.java @@ -7,25 +7,26 @@ */ package org.opendaylight.protocol.bgp.inet; -import com.google.common.collect.Lists; import java.util.List; +import org.kohsuke.MetaInfServices; import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer; import org.opendaylight.protocol.bgp.rib.spi.AbstractRIBExtensionProviderActivator; +import org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator; import org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderContext; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.Ipv4AddressFamily; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.Ipv6AddressFamily; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.UnicastSubsequentAddressFamily; import org.opendaylight.yangtools.concepts.Registration; +@MetaInfServices(value = RIBExtensionProviderActivator.class) public final class RIBActivator extends AbstractRIBExtensionProviderActivator { - @Override protected List startRIBExtensionProviderImpl(final RIBExtensionProviderContext context, final BindingNormalizedNodeSerializer mappingService) { - return Lists.newArrayList( - context.registerRIBSupport(Ipv4AddressFamily.class, - UnicastSubsequentAddressFamily.class, IPv4RIBSupport.getInstance(mappingService)), - context.registerRIBSupport(Ipv6AddressFamily.class, - UnicastSubsequentAddressFamily.class, IPv6RIBSupport.getInstance(mappingService))); + return List.of( + context.registerRIBSupport(Ipv4AddressFamily.class, UnicastSubsequentAddressFamily.class, + IPv4RIBSupport.getInstance(mappingService)), + context.registerRIBSupport(Ipv6AddressFamily.class, UnicastSubsequentAddressFamily.class, + IPv6RIBSupport.getInstance(mappingService))); } } diff --git a/bgp/extensions/inet/src/main/java/org/opendaylight/protocol/bgp/inet/TableTypeActivator.java b/bgp/extensions/inet/src/main/java/org/opendaylight/protocol/bgp/inet/TableTypeActivator.java index 81b0fb63b1..ecad26c3a5 100644 --- a/bgp/extensions/inet/src/main/java/org/opendaylight/protocol/bgp/inet/TableTypeActivator.java +++ b/bgp/extensions/inet/src/main/java/org/opendaylight/protocol/bgp/inet/TableTypeActivator.java @@ -5,13 +5,13 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.protocol.bgp.inet; -import com.google.common.collect.Lists; import java.util.List; +import org.kohsuke.MetaInfServices; import org.opendaylight.protocol.bgp.openconfig.spi.AbstractBGPTableTypeRegistryProviderActivator; import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProvider; +import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator; import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.types.rev151009.IPV4UNICAST; import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.types.rev151009.IPV6UNICAST; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.Ipv4AddressFamily; @@ -19,16 +19,15 @@ 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.UnicastSubsequentAddressFamily; import org.opendaylight.yangtools.concepts.AbstractRegistration; +@MetaInfServices(value = BGPTableTypeRegistryProviderActivator.class) public final class TableTypeActivator extends AbstractBGPTableTypeRegistryProviderActivator { - @Override protected List startBGPTableTypeRegistryProviderImpl( final BGPTableTypeRegistryProvider provider) { - return Lists.newArrayList( - provider.registerBGPTableType(Ipv4AddressFamily.class, - UnicastSubsequentAddressFamily.class, IPV4UNICAST.class), - provider.registerBGPTableType(Ipv6AddressFamily.class, - UnicastSubsequentAddressFamily.class, IPV6UNICAST.class)); + return List.of( + provider.registerBGPTableType(Ipv4AddressFamily.class, UnicastSubsequentAddressFamily.class, + IPV4UNICAST.class), + provider.registerBGPTableType(Ipv6AddressFamily.class, UnicastSubsequentAddressFamily.class, + IPV6UNICAST.class)); } - } diff --git a/bgp/extensions/inet/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator b/bgp/extensions/inet/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator deleted file mode 100644 index 2470d4125f..0000000000 --- a/bgp/extensions/inet/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved. -# -# This program and the accompanying materials are made available -# under the terms of the Eclipse Public License v1.0 which -# accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.bgp.inet.TableTypeActivator \ No newline at end of file diff --git a/bgp/extensions/inet/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator b/bgp/extensions/inet/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator deleted file mode 100644 index c3e5136356..0000000000 --- a/bgp/extensions/inet/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved. -# -# This program and the accompanying materials are made available -# under the terms of the Eclipse Public License v1.0 which -# accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.bgp.inet.BGPActivator diff --git a/bgp/extensions/inet/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator b/bgp/extensions/inet/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator deleted file mode 100644 index bb8d0d8be9..0000000000 --- a/bgp/extensions/inet/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c)2013 Cisco Systems, Inc. All rights reserved. -# -# This program and the accompanying materials are made available -# under the terms of the Eclipse Public License v1.0 which -# accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.bgp.inet.RIBActivator diff --git a/bgp/extensions/l3vpn/pom.xml b/bgp/extensions/l3vpn/pom.xml index e6df933a9d..82f9c96932 100644 --- a/bgp/extensions/l3vpn/pom.xml +++ b/bgp/extensions/l3vpn/pom.xml @@ -39,6 +39,10 @@ org.opendaylight.mdsal mdsal-binding-spec-util + + org.kohsuke.metainf-services + metainf-services + diff --git a/bgp/extensions/l3vpn/src/main/java/org/opendaylight/protocol/bgp/l3vpn/BGPActivator.java b/bgp/extensions/l3vpn/src/main/java/org/opendaylight/protocol/bgp/l3vpn/BGPActivator.java index af7ed2678f..0fe6adbd10 100644 --- a/bgp/extensions/l3vpn/src/main/java/org/opendaylight/protocol/bgp/l3vpn/BGPActivator.java +++ b/bgp/extensions/l3vpn/src/main/java/org/opendaylight/protocol/bgp/l3vpn/BGPActivator.java @@ -5,12 +5,12 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.protocol.bgp.l3vpn; import com.google.common.annotations.VisibleForTesting; import java.util.ArrayList; import java.util.List; +import org.kohsuke.MetaInfServices; import org.opendaylight.protocol.bgp.inet.codec.nexthop.Ipv4NextHopParserSerializer; import org.opendaylight.protocol.bgp.inet.codec.nexthop.Ipv6NextHopParserSerializer; import org.opendaylight.protocol.bgp.l3vpn.mcast.nlri.L3vpnMcastIpv4NlriHandler; @@ -20,6 +20,7 @@ import org.opendaylight.protocol.bgp.l3vpn.unicast.ipv4.VpnIpv4NlriParser; import org.opendaylight.protocol.bgp.l3vpn.unicast.ipv6.VpnIpv6NextHopParserSerializer; import org.opendaylight.protocol.bgp.l3vpn.unicast.ipv6.VpnIpv6NlriParser; import org.opendaylight.protocol.bgp.parser.spi.AbstractBGPExtensionProviderActivator; +import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator; import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderContext; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.l3vpn.mcast.rev180417.McastMplsLabeledVpnSubsequentAddressFamily; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.l3vpn.mcast.rev180417.l3vpn.mcast.routes.ipv4.L3vpnMcastRoutesIpv4; @@ -38,6 +39,7 @@ import org.opendaylight.yangtools.concepts.Registration; * * @author Claudio D. Gasparini */ +@MetaInfServices(value = BGPExtensionProviderActivator.class) public final class BGPActivator extends AbstractBGPExtensionProviderActivator { @VisibleForTesting static final int MCAST_L3VPN_SAFI = 129; diff --git a/bgp/extensions/l3vpn/src/main/java/org/opendaylight/protocol/bgp/l3vpn/RIBActivator.java b/bgp/extensions/l3vpn/src/main/java/org/opendaylight/protocol/bgp/l3vpn/RIBActivator.java index aa94da4438..2b969d2b8d 100644 --- a/bgp/extensions/l3vpn/src/main/java/org/opendaylight/protocol/bgp/l3vpn/RIBActivator.java +++ b/bgp/extensions/l3vpn/src/main/java/org/opendaylight/protocol/bgp/l3vpn/RIBActivator.java @@ -7,14 +7,15 @@ */ package org.opendaylight.protocol.bgp.l3vpn; -import com.google.common.collect.Lists; import java.util.List; +import org.kohsuke.MetaInfServices; import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer; import org.opendaylight.protocol.bgp.l3vpn.mcast.L3VpnMcastIpv4RIBSupport; import org.opendaylight.protocol.bgp.l3vpn.mcast.L3VpnMcastIpv6RIBSupport; import org.opendaylight.protocol.bgp.l3vpn.unicast.ipv4.VpnIpv4RIBSupport; import org.opendaylight.protocol.bgp.l3vpn.unicast.ipv6.VpnIpv6RIBSupport; import org.opendaylight.protocol.bgp.rib.spi.AbstractRIBExtensionProviderActivator; +import org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator; import org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderContext; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.l3vpn.mcast.rev180417.McastMplsLabeledVpnSubsequentAddressFamily; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.Ipv4AddressFamily; @@ -27,11 +28,12 @@ import org.opendaylight.yangtools.concepts.Registration; * * @author Claudio D. Gasparini */ +@MetaInfServices(value = RIBExtensionProviderActivator.class) public final class RIBActivator extends AbstractRIBExtensionProviderActivator { @Override protected List startRIBExtensionProviderImpl(final RIBExtensionProviderContext context, final BindingNormalizedNodeSerializer mappingService) { - return Lists.newArrayList( + return List.of( context.registerRIBSupport(Ipv4AddressFamily.class, MplsLabeledVpnSubsequentAddressFamily.class, VpnIpv4RIBSupport.getInstance(mappingService)), context.registerRIBSupport(Ipv6AddressFamily.class, diff --git a/bgp/extensions/l3vpn/src/main/java/org/opendaylight/protocol/bgp/l3vpn/TableTypeActivator.java b/bgp/extensions/l3vpn/src/main/java/org/opendaylight/protocol/bgp/l3vpn/TableTypeActivator.java index 381eb06cbd..393a97be22 100644 --- a/bgp/extensions/l3vpn/src/main/java/org/opendaylight/protocol/bgp/l3vpn/TableTypeActivator.java +++ b/bgp/extensions/l3vpn/src/main/java/org/opendaylight/protocol/bgp/l3vpn/TableTypeActivator.java @@ -5,13 +5,13 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.protocol.bgp.l3vpn; -import com.google.common.collect.Lists; import java.util.List; +import org.kohsuke.MetaInfServices; import org.opendaylight.protocol.bgp.openconfig.spi.AbstractBGPTableTypeRegistryProviderActivator; import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProvider; +import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator; import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.types.rev151009.L3VPNIPV4MULTICAST; import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.types.rev151009.L3VPNIPV4UNICAST; import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.types.rev151009.L3VPNIPV6MULTICAST; @@ -27,11 +27,12 @@ import org.opendaylight.yangtools.concepts.AbstractRegistration; * * @author Claudio D. Gasparini */ +@MetaInfServices(value = BGPTableTypeRegistryProviderActivator.class) public final class TableTypeActivator extends AbstractBGPTableTypeRegistryProviderActivator { @Override protected List startBGPTableTypeRegistryProviderImpl( final BGPTableTypeRegistryProvider provider) { - return Lists.newArrayList( + return List.of( provider.registerBGPTableType(Ipv4AddressFamily.class, MplsLabeledVpnSubsequentAddressFamily.class, L3VPNIPV4UNICAST.class), provider.registerBGPTableType(Ipv6AddressFamily.class, diff --git a/bgp/extensions/l3vpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator b/bgp/extensions/l3vpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator deleted file mode 100644 index dfe746c892..0000000000 --- a/bgp/extensions/l3vpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved. -# -# This program and the accompanying materials are made available -# under the terms of the Eclipse Public License v1.0 which -# accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.bgp.l3vpn.TableTypeActivator \ No newline at end of file diff --git a/bgp/extensions/l3vpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator b/bgp/extensions/l3vpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator deleted file mode 100644 index 05ed701d1b..0000000000 --- a/bgp/extensions/l3vpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c) 2016 Brocade Communications Systems, Inc. and others. All rights reserved. -# -# This program and the accompanying materials are made available -# under the terms of the Eclipse Public License v1.0 which -# accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.bgp.l3vpn.BGPActivator \ No newline at end of file diff --git a/bgp/extensions/l3vpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator b/bgp/extensions/l3vpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator deleted file mode 100644 index 5ff83465c1..0000000000 --- a/bgp/extensions/l3vpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c) 2016 Brocade Communications Systems, Inc. and others. All rights reserved. -# -# This program and the accompanying materials are made available -# under the terms of the Eclipse Public License v1.0 which -# accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.bgp.l3vpn.RIBActivator \ No newline at end of file diff --git a/bgp/extensions/labeled-unicast/pom.xml b/bgp/extensions/labeled-unicast/pom.xml index 440f818869..616cc225a8 100644 --- a/bgp/extensions/labeled-unicast/pom.xml +++ b/bgp/extensions/labeled-unicast/pom.xml @@ -48,6 +48,10 @@ org.slf4j slf4j-api + + org.kohsuke.metainf-services + metainf-services + diff --git a/bgp/extensions/labeled-unicast/src/main/java/org/opendaylight/protocol/bgp/labeled/unicast/BGPActivator.java b/bgp/extensions/labeled-unicast/src/main/java/org/opendaylight/protocol/bgp/labeled/unicast/BGPActivator.java index 869eb98a62..f3ae65b80d 100644 --- a/bgp/extensions/labeled-unicast/src/main/java/org/opendaylight/protocol/bgp/labeled/unicast/BGPActivator.java +++ b/bgp/extensions/labeled-unicast/src/main/java/org/opendaylight/protocol/bgp/labeled/unicast/BGPActivator.java @@ -7,11 +7,12 @@ */ package org.opendaylight.protocol.bgp.labeled.unicast; -import java.util.ArrayList; import java.util.List; +import org.kohsuke.MetaInfServices; import org.opendaylight.protocol.bgp.inet.codec.nexthop.Ipv4NextHopParserSerializer; import org.opendaylight.protocol.bgp.inet.codec.nexthop.Ipv6NextHopParserSerializer; import org.opendaylight.protocol.bgp.parser.spi.AbstractBGPExtensionProviderActivator; +import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator; import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderContext; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.labeled.unicast.rev180329.LabeledUnicastSubsequentAddressFamily; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.labeled.unicast.rev180329.labeled.unicast.routes.LabeledUnicastRoutes; @@ -23,34 +24,26 @@ 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.next.hop.c.next.hop.Ipv6NextHopCase; import org.opendaylight.yangtools.concepts.Registration; +@MetaInfServices(value = BGPExtensionProviderActivator.class) public final class BGPActivator extends AbstractBGPExtensionProviderActivator { - private static final int LABELED_UNICAST_SAFI = 4; @Override protected List startImpl(final BGPExtensionProviderContext context) { - final List regs = new ArrayList<>(8); final LUNlriParser luNlriParser = new LUNlriParser(); - - regs.add(context.registerSubsequentAddressFamily(LabeledUnicastSubsequentAddressFamily.class, - LABELED_UNICAST_SAFI)); - - final Ipv4NextHopParserSerializer ipv4NextHopParser = new Ipv4NextHopParserSerializer(); - final Ipv6NextHopParserSerializer ipv6NextHopParser = new Ipv6NextHopParserSerializer(); - regs.add(context.registerNlriParser(Ipv4AddressFamily.class, LabeledUnicastSubsequentAddressFamily.class, - luNlriParser, ipv4NextHopParser, Ipv4NextHopCase.class)); - regs.add(context.registerNlriParser(Ipv6AddressFamily.class, LabeledUnicastSubsequentAddressFamily.class, - luNlriParser, ipv6NextHopParser, Ipv6NextHopCase.class)); - - regs.add(context.registerNlriSerializer(LabeledUnicastRoutes.class, luNlriParser)); - final LabelIndexTlvParser labelHandler = new LabelIndexTlvParser(); final OriginatorSrgbTlvParser originatorHandler = new OriginatorSrgbTlvParser(); - regs.add(context.registerBgpPrefixSidTlvParser(labelHandler.getType(), labelHandler)); - regs.add(context.registerBgpPrefixSidTlvParser(originatorHandler.getType(), originatorHandler)); - regs.add(context.registerBgpPrefixSidTlvSerializer(LuLabelIndexTlv.class, labelHandler)); - regs.add(context.registerBgpPrefixSidTlvSerializer(LuOriginatorSrgbTlv.class, originatorHandler)); - return regs; + return List.of( + context.registerSubsequentAddressFamily(LabeledUnicastSubsequentAddressFamily.class, LABELED_UNICAST_SAFI), + context.registerNlriParser(Ipv4AddressFamily.class, LabeledUnicastSubsequentAddressFamily.class, + luNlriParser, new Ipv4NextHopParserSerializer(), Ipv4NextHopCase.class), + context.registerNlriParser(Ipv6AddressFamily.class, LabeledUnicastSubsequentAddressFamily.class, + luNlriParser, new Ipv6NextHopParserSerializer(), Ipv6NextHopCase.class), + context.registerNlriSerializer(LabeledUnicastRoutes.class, luNlriParser), + context.registerBgpPrefixSidTlvParser(labelHandler.getType(), labelHandler), + context.registerBgpPrefixSidTlvParser(originatorHandler.getType(), originatorHandler), + context.registerBgpPrefixSidTlvSerializer(LuLabelIndexTlv.class, labelHandler), + context.registerBgpPrefixSidTlvSerializer(LuOriginatorSrgbTlv.class, originatorHandler)); } } diff --git a/bgp/extensions/labeled-unicast/src/main/java/org/opendaylight/protocol/bgp/labeled/unicast/RIBActivator.java b/bgp/extensions/labeled-unicast/src/main/java/org/opendaylight/protocol/bgp/labeled/unicast/RIBActivator.java index 661418ebeb..96b012ea87 100644 --- a/bgp/extensions/labeled-unicast/src/main/java/org/opendaylight/protocol/bgp/labeled/unicast/RIBActivator.java +++ b/bgp/extensions/labeled-unicast/src/main/java/org/opendaylight/protocol/bgp/labeled/unicast/RIBActivator.java @@ -7,26 +7,26 @@ */ package org.opendaylight.protocol.bgp.labeled.unicast; -import java.util.ArrayList; import java.util.List; +import org.kohsuke.MetaInfServices; import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer; import org.opendaylight.protocol.bgp.rib.spi.AbstractRIBExtensionProviderActivator; +import org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator; import org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderContext; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.labeled.unicast.rev180329.LabeledUnicastSubsequentAddressFamily; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.Ipv4AddressFamily; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.Ipv6AddressFamily; import org.opendaylight.yangtools.concepts.Registration; +@MetaInfServices(value = RIBExtensionProviderActivator.class) public class RIBActivator extends AbstractRIBExtensionProviderActivator { - @Override protected List startRIBExtensionProviderImpl(final RIBExtensionProviderContext context, final BindingNormalizedNodeSerializer mappingService) { - final List regs = new ArrayList<>(2); - regs.add(context.registerRIBSupport(Ipv4AddressFamily.class, LabeledUnicastSubsequentAddressFamily.class, - LabeledUnicastIpv4RIBSupport.getInstance(mappingService))); - regs.add(context.registerRIBSupport(Ipv6AddressFamily.class, LabeledUnicastSubsequentAddressFamily.class, + return List.of( + context.registerRIBSupport(Ipv4AddressFamily.class, LabeledUnicastSubsequentAddressFamily.class, + LabeledUnicastIpv4RIBSupport.getInstance(mappingService)), + context.registerRIBSupport(Ipv6AddressFamily.class, LabeledUnicastSubsequentAddressFamily.class, LabeledUnicastIpv6RIBSupport.getInstance(mappingService))); - return regs; } } diff --git a/bgp/extensions/labeled-unicast/src/main/java/org/opendaylight/protocol/bgp/labeled/unicast/TableTypeActivator.java b/bgp/extensions/labeled-unicast/src/main/java/org/opendaylight/protocol/bgp/labeled/unicast/TableTypeActivator.java index 8af0d64f66..9d59f87655 100644 --- a/bgp/extensions/labeled-unicast/src/main/java/org/opendaylight/protocol/bgp/labeled/unicast/TableTypeActivator.java +++ b/bgp/extensions/labeled-unicast/src/main/java/org/opendaylight/protocol/bgp/labeled/unicast/TableTypeActivator.java @@ -7,10 +7,11 @@ */ package org.opendaylight.protocol.bgp.labeled.unicast; -import com.google.common.collect.ImmutableList; import java.util.List; +import org.kohsuke.MetaInfServices; import org.opendaylight.protocol.bgp.openconfig.spi.AbstractBGPTableTypeRegistryProviderActivator; import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProvider; +import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator; import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.types.rev151009.IPV4LABELLEDUNICAST; import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.types.rev151009.IPV6LABELLEDUNICAST; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.labeled.unicast.rev180329.LabeledUnicastSubsequentAddressFamily; @@ -18,16 +19,15 @@ 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.Ipv6AddressFamily; import org.opendaylight.yangtools.concepts.AbstractRegistration; +@MetaInfServices(value = BGPTableTypeRegistryProviderActivator.class) public final class TableTypeActivator extends AbstractBGPTableTypeRegistryProviderActivator { - @Override protected List startBGPTableTypeRegistryProviderImpl( final BGPTableTypeRegistryProvider provider) { - return ImmutableList.of( + return List.of( provider.registerBGPTableType(Ipv4AddressFamily.class, LabeledUnicastSubsequentAddressFamily.class, IPV4LABELLEDUNICAST.class), provider.registerBGPTableType(Ipv6AddressFamily.class, LabeledUnicastSubsequentAddressFamily.class, IPV6LABELLEDUNICAST.class)); } - } diff --git a/bgp/extensions/labeled-unicast/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator b/bgp/extensions/labeled-unicast/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator deleted file mode 100644 index 41f62ba464..0000000000 --- a/bgp/extensions/labeled-unicast/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved. -# -# This program and the accompanying materials are made available -# under the terms of the Eclipse Public License v1.0 which -# accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.bgp.labeled.unicast.TableTypeActivator \ No newline at end of file diff --git a/bgp/extensions/labeled-unicast/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator b/bgp/extensions/labeled-unicast/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator deleted file mode 100644 index 149475d436..0000000000 --- a/bgp/extensions/labeled-unicast/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c) 2016 Brocade Communications Systems, Inc. and others. All rights reserved. -# -# This program and the accompanying materials are made available -# under the terms of the Eclipse Public License v1.0 which -# accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.bgp.labeled.unicast.BGPActivator diff --git a/bgp/extensions/labeled-unicast/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator b/bgp/extensions/labeled-unicast/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator deleted file mode 100644 index 7c4df06871..0000000000 --- a/bgp/extensions/labeled-unicast/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c) 2016 Brocade Communications Systems, Inc. and others. All rights reserved. -# -# This program and the accompanying materials are made available -# under the terms of the Eclipse Public License v1.0 which -# accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.bgp.labeled.unicast.RIBActivator diff --git a/bgp/extensions/linkstate/pom.xml b/bgp/extensions/linkstate/pom.xml index 4dcc70c683..0dde1a456e 100644 --- a/bgp/extensions/linkstate/pom.xml +++ b/bgp/extensions/linkstate/pom.xml @@ -51,6 +51,10 @@ org.opendaylight.mdsal mdsal-rfc8294-netty + + org.kohsuke.metainf-services + metainf-services + diff --git a/bgp/extensions/linkstate/src/main/java/org/opendaylight/protocol/bgp/linkstate/impl/BGPActivator.java b/bgp/extensions/linkstate/src/main/java/org/opendaylight/protocol/bgp/linkstate/impl/BGPActivator.java index 848149ca39..9f98346135 100644 --- a/bgp/extensions/linkstate/src/main/java/org/opendaylight/protocol/bgp/linkstate/impl/BGPActivator.java +++ b/bgp/extensions/linkstate/src/main/java/org/opendaylight/protocol/bgp/linkstate/impl/BGPActivator.java @@ -7,8 +7,10 @@ */ package org.opendaylight.protocol.bgp.linkstate.impl; +import com.google.common.base.MoreObjects; import java.util.ArrayList; import java.util.List; +import org.kohsuke.MetaInfServices; import org.opendaylight.protocol.bgp.linkstate.impl.attribute.LinkstateAttributeParser; import org.opendaylight.protocol.bgp.linkstate.impl.attribute.sr.binding.sid.sub.tlvs.BackupUnnumberedParser; import org.opendaylight.protocol.bgp.linkstate.impl.attribute.sr.binding.sid.sub.tlvs.EroMetricParser; @@ -48,6 +50,7 @@ import org.opendaylight.protocol.bgp.linkstate.impl.tlvs.RouterIdTlvParser; import org.opendaylight.protocol.bgp.linkstate.spi.pojo.SimpleBindingSubTlvsRegistry; import org.opendaylight.protocol.bgp.linkstate.spi.pojo.SimpleNlriTypeRegistry; import org.opendaylight.protocol.bgp.parser.spi.AbstractBGPExtensionProviderActivator; +import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator; import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderContext; import org.opendaylight.protocol.bgp.parser.spi.NextHopParserSerializer; import org.opendaylight.protocol.rsvp.parser.spi.RSVPTeObjectRegistry; @@ -76,24 +79,20 @@ import org.opendaylight.yangtools.concepts.Registration; /** * Activator for registering linkstate extensions to BGP parser. */ +@MetaInfServices(value = BGPExtensionProviderActivator.class) public final class BGPActivator extends AbstractBGPExtensionProviderActivator { - private static final int LINKSTATE_AFI = 16388; - private static final int LINKSTATE_SAFI = 71; private final boolean ianaLinkstateAttributeType; - private final RSVPTeObjectRegistry rsvpTeObjectRegistry; public BGPActivator() { - super(); - this.ianaLinkstateAttributeType = true; - this.rsvpTeObjectRegistry = null; + this(true, null); } + // FIXME: this should be properly injected public BGPActivator(final boolean ianaLinkstateAttributeType, final RSVPTeObjectRegistry rsvpTeObjectRegistry) { - super(); this.rsvpTeObjectRegistry = rsvpTeObjectRegistry; this.ianaLinkstateAttributeType = ianaLinkstateAttributeType; } @@ -267,4 +266,9 @@ public final class BGPActivator extends AbstractBGPExtensionProviderActivator { regs.add(nlriTypeReg.registerTlvParser(ospfRouterParser.getType(), ospfRouterParser)); regs.add(nlriTypeReg.registerTlvSerializer(ospfRouterParser.getTlvQName(), ospfRouterParser)); } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this).add("ianaLinkstateAttribute", ianaLinkstateAttributeType).toString(); + } } diff --git a/bgp/extensions/linkstate/src/main/java/org/opendaylight/protocol/bgp/linkstate/impl/RIBActivator.java b/bgp/extensions/linkstate/src/main/java/org/opendaylight/protocol/bgp/linkstate/impl/RIBActivator.java index abf8681e42..f9aa38f9d6 100644 --- a/bgp/extensions/linkstate/src/main/java/org/opendaylight/protocol/bgp/linkstate/impl/RIBActivator.java +++ b/bgp/extensions/linkstate/src/main/java/org/opendaylight/protocol/bgp/linkstate/impl/RIBActivator.java @@ -7,10 +7,11 @@ */ package org.opendaylight.protocol.bgp.linkstate.impl; -import java.util.Collections; import java.util.List; +import org.kohsuke.MetaInfServices; import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer; import org.opendaylight.protocol.bgp.rib.spi.AbstractRIBExtensionProviderActivator; +import org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator; import org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderContext; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.LinkstateAddressFamily; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.LinkstateSubsequentAddressFamily; @@ -19,11 +20,12 @@ import org.opendaylight.yangtools.concepts.Registration; /** * Activator for registering Linkstate AFI/SAFI to RIB. */ +@MetaInfServices(value = RIBExtensionProviderActivator.class) public final class RIBActivator extends AbstractRIBExtensionProviderActivator { @Override protected List startRIBExtensionProviderImpl(final RIBExtensionProviderContext context, final BindingNormalizedNodeSerializer mappingService) { - return Collections.singletonList(context.registerRIBSupport(LinkstateAddressFamily.class, + return List.of(context.registerRIBSupport(LinkstateAddressFamily.class, LinkstateSubsequentAddressFamily.class, LinkstateRIBSupport.getInstance(mappingService))); } } diff --git a/bgp/extensions/linkstate/src/main/java/org/opendaylight/protocol/bgp/linkstate/impl/TableTypeActivator.java b/bgp/extensions/linkstate/src/main/java/org/opendaylight/protocol/bgp/linkstate/impl/TableTypeActivator.java index 8fa1d8e1d3..c80dacef64 100644 --- a/bgp/extensions/linkstate/src/main/java/org/opendaylight/protocol/bgp/linkstate/impl/TableTypeActivator.java +++ b/bgp/extensions/linkstate/src/main/java/org/opendaylight/protocol/bgp/linkstate/impl/TableTypeActivator.java @@ -5,24 +5,24 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.protocol.bgp.linkstate.impl; -import com.google.common.collect.Lists; import java.util.List; +import org.kohsuke.MetaInfServices; import org.opendaylight.protocol.bgp.openconfig.spi.AbstractBGPTableTypeRegistryProviderActivator; import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProvider; +import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.LinkstateAddressFamily; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.LinkstateSubsequentAddressFamily; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev180329.LINKSTATE; import org.opendaylight.yangtools.concepts.AbstractRegistration; +@MetaInfServices(value = BGPTableTypeRegistryProviderActivator.class) public final class TableTypeActivator extends AbstractBGPTableTypeRegistryProviderActivator { @Override protected List startBGPTableTypeRegistryProviderImpl( final BGPTableTypeRegistryProvider provider) { - return Lists.newArrayList(provider.registerBGPTableType(LinkstateAddressFamily.class, + return List.of(provider.registerBGPTableType(LinkstateAddressFamily.class, LinkstateSubsequentAddressFamily.class, LINKSTATE.class)); } - } diff --git a/bgp/extensions/linkstate/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator b/bgp/extensions/linkstate/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator deleted file mode 100644 index 3e0046d60b..0000000000 --- a/bgp/extensions/linkstate/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved. -# -# This program and the accompanying materials are made available -# under the terms of the Eclipse Public License v1.0 which -# accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.bgp.linkstate.impl.TableTypeActivator \ No newline at end of file diff --git a/bgp/extensions/linkstate/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator b/bgp/extensions/linkstate/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator deleted file mode 100644 index be962e2824..0000000000 --- a/bgp/extensions/linkstate/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c)2013 Cisco Systems, Inc. All rights reserved. -# -# This program and the accompanying materials are made available -# under the terms of the Eclipse Public License v1.0 which -# accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.bgp.linkstate.impl.BGPActivator diff --git a/bgp/extensions/linkstate/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator b/bgp/extensions/linkstate/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator deleted file mode 100644 index 3c5ffda5ea..0000000000 --- a/bgp/extensions/linkstate/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c)2013 Cisco Systems, Inc. All rights reserved. -# -# This program and the accompanying materials are made available -# under the terms of the Eclipse Public License v1.0 which -# accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.bgp.linkstate.impl.RIBActivator diff --git a/bgp/extensions/mvpn/pom.xml b/bgp/extensions/mvpn/pom.xml index de61796d1a..338d910a14 100644 --- a/bgp/extensions/mvpn/pom.xml +++ b/bgp/extensions/mvpn/pom.xml @@ -47,6 +47,10 @@ org.opendaylight.yangtools yang-common-netty + + org.kohsuke.metainf-services + metainf-services + diff --git a/bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/BGPActivator.java b/bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/BGPActivator.java index 58f23dcf66..7aa38d81ac 100644 --- a/bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/BGPActivator.java +++ b/bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/BGPActivator.java @@ -5,12 +5,12 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.protocol.bgp.mvpn.impl; import com.google.common.annotations.VisibleForTesting; import java.util.ArrayList; import java.util.List; +import org.kohsuke.MetaInfServices; import org.opendaylight.protocol.bgp.inet.codec.nexthop.Ipv4NextHopParserSerializer; import org.opendaylight.protocol.bgp.inet.codec.nexthop.Ipv6NextHopParserSerializer; import org.opendaylight.protocol.bgp.mvpn.impl.attributes.PEDistinguisherLabelsAttributeHandler; @@ -18,6 +18,7 @@ import org.opendaylight.protocol.bgp.mvpn.impl.attributes.PMSITunnelAttributeHan import org.opendaylight.protocol.bgp.mvpn.impl.nlri.MvpnIpv4NlriHandler; import org.opendaylight.protocol.bgp.mvpn.impl.nlri.MvpnIpv6NlriHandler; import org.opendaylight.protocol.bgp.parser.spi.AbstractBGPExtensionProviderActivator; +import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator; import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderContext; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.ipv4.rev180417.mvpn.routes.ipv4.MvpnRoutesIpv4; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.ipv6.rev180417.mvpn.routes.ipv6.MvpnRoutesIpv6; @@ -33,6 +34,7 @@ import org.opendaylight.yangtools.concepts.Registration; * * @author Claudio D. Gasparini */ +@MetaInfServices(value = BGPExtensionProviderActivator.class) public final class BGPActivator extends AbstractBGPExtensionProviderActivator { @VisibleForTesting static final int MVPN_SAFI = 5; diff --git a/bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/RIBActivator.java b/bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/RIBActivator.java index 373c07dcd2..5519bac9c2 100644 --- a/bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/RIBActivator.java +++ b/bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/RIBActivator.java @@ -7,10 +7,11 @@ */ package org.opendaylight.protocol.bgp.mvpn.impl; -import com.google.common.collect.Lists; import java.util.List; +import org.kohsuke.MetaInfServices; import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer; import org.opendaylight.protocol.bgp.rib.spi.AbstractRIBExtensionProviderActivator; +import org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator; import org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderContext; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev200120.McastVpnSubsequentAddressFamily; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.Ipv4AddressFamily; @@ -22,15 +23,15 @@ import org.opendaylight.yangtools.concepts.Registration; * * @author Claudio D. Gasparini */ +@MetaInfServices(value = RIBExtensionProviderActivator.class) public final class RIBActivator extends AbstractRIBExtensionProviderActivator { @Override protected List startRIBExtensionProviderImpl(final RIBExtensionProviderContext context, final BindingNormalizedNodeSerializer mappingService) { - return Lists.newArrayList( - context.registerRIBSupport(Ipv4AddressFamily.class, McastVpnSubsequentAddressFamily.class, - MvpnIpv4RIBSupport.getInstance(mappingService)), - context.registerRIBSupport(Ipv6AddressFamily.class, McastVpnSubsequentAddressFamily.class, - MvpnIpv6RIBSupport.getInstance(mappingService)) - ); + return List.of( + context.registerRIBSupport(Ipv4AddressFamily.class, McastVpnSubsequentAddressFamily.class, + MvpnIpv4RIBSupport.getInstance(mappingService)), + context.registerRIBSupport(Ipv6AddressFamily.class, McastVpnSubsequentAddressFamily.class, + MvpnIpv6RIBSupport.getInstance(mappingService))); } } diff --git a/bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/TableTypeActivator.java b/bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/TableTypeActivator.java index 7fa054bfdb..e12d4ca322 100644 --- a/bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/TableTypeActivator.java +++ b/bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/TableTypeActivator.java @@ -5,13 +5,13 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.protocol.bgp.mvpn.impl; -import com.google.common.collect.Lists; import java.util.List; +import org.kohsuke.MetaInfServices; import org.opendaylight.protocol.bgp.openconfig.spi.AbstractBGPTableTypeRegistryProviderActivator; import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProvider; +import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev200120.McastVpnSubsequentAddressFamily; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev180329.IPV4MCASTVPN; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev180329.IPV6MCASTVPN; @@ -24,11 +24,12 @@ import org.opendaylight.yangtools.concepts.AbstractRegistration; * * @author Claudio D. Gasparini */ +@MetaInfServices(value = BGPTableTypeRegistryProviderActivator.class) public final class TableTypeActivator extends AbstractBGPTableTypeRegistryProviderActivator { @Override protected List startBGPTableTypeRegistryProviderImpl( final BGPTableTypeRegistryProvider provider) { - return Lists.newArrayList( + return List.of( provider.registerBGPTableType( Ipv4AddressFamily.class, McastVpnSubsequentAddressFamily.class, IPV4MCASTVPN.class), provider.registerBGPTableType( diff --git a/bgp/extensions/mvpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator b/bgp/extensions/mvpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator deleted file mode 100644 index d72a40865b..0000000000 --- a/bgp/extensions/mvpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. -# -# This program and the accompanying materials are made available -# under the terms of the Eclipse Public License v1.0 which -# accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.bgp.mvpn.impl.TableTypeActivator \ No newline at end of file diff --git a/bgp/extensions/mvpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator b/bgp/extensions/mvpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator deleted file mode 100644 index 78fd9ec6ee..0000000000 --- a/bgp/extensions/mvpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator +++ /dev/null @@ -1,6 +0,0 @@ -# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. -# -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0 which accompanies this distribution, -# and is available at http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.bgp.mvpn.impl.BGPActivator diff --git a/bgp/extensions/mvpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator b/bgp/extensions/mvpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator deleted file mode 100644 index 5b9c8d482d..0000000000 --- a/bgp/extensions/mvpn/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator +++ /dev/null @@ -1,6 +0,0 @@ -# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. -# -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0 which accompanies this distribution, -# and is available at http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.bgp.mvpn.impl.RIBActivator \ No newline at end of file diff --git a/bgp/extensions/route-target/pom.xml b/bgp/extensions/route-target/pom.xml index 21c9ce36ad..9cd482f27f 100644 --- a/bgp/extensions/route-target/pom.xml +++ b/bgp/extensions/route-target/pom.xml @@ -52,6 +52,10 @@ org.opendaylight.mdsal mdsal-binding-spec-util + + org.kohsuke.metainf-services + metainf-services + diff --git a/bgp/extensions/route-target/src/main/java/org/opendaylight/protocol/bgp/route/targetcontrain/impl/activators/BGPActivator.java b/bgp/extensions/route-target/src/main/java/org/opendaylight/protocol/bgp/route/targetcontrain/impl/activators/BGPActivator.java index 726c8d37b2..dd5ee4cb39 100644 --- a/bgp/extensions/route-target/src/main/java/org/opendaylight/protocol/bgp/route/targetcontrain/impl/activators/BGPActivator.java +++ b/bgp/extensions/route-target/src/main/java/org/opendaylight/protocol/bgp/route/targetcontrain/impl/activators/BGPActivator.java @@ -5,14 +5,15 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.protocol.bgp.route.targetcontrain.impl.activators; import com.google.common.annotations.VisibleForTesting; import java.util.ArrayList; import java.util.List; +import org.kohsuke.MetaInfServices; import org.opendaylight.protocol.bgp.inet.codec.nexthop.Ipv4NextHopParserSerializer; import org.opendaylight.protocol.bgp.parser.spi.AbstractBGPExtensionProviderActivator; +import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator; import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderContext; import org.opendaylight.protocol.bgp.route.targetcontrain.impl.nlri.RouteTargetConstrainNlriHandler; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.route.target.constrain.rev180618.RouteTargetConstrainSubsequentAddressFamily; @@ -27,6 +28,7 @@ import org.opendaylight.yangtools.concepts.Registration; * * @author Claudio D. Gasparini */ +@MetaInfServices(value = BGPExtensionProviderActivator.class) public final class BGPActivator extends AbstractBGPExtensionProviderActivator { @VisibleForTesting static final int RT_SAFI = 132; diff --git a/bgp/extensions/route-target/src/main/java/org/opendaylight/protocol/bgp/route/targetcontrain/impl/activators/RIBActivator.java b/bgp/extensions/route-target/src/main/java/org/opendaylight/protocol/bgp/route/targetcontrain/impl/activators/RIBActivator.java index 4290ec0db0..a2b133e37d 100644 --- a/bgp/extensions/route-target/src/main/java/org/opendaylight/protocol/bgp/route/targetcontrain/impl/activators/RIBActivator.java +++ b/bgp/extensions/route-target/src/main/java/org/opendaylight/protocol/bgp/route/targetcontrain/impl/activators/RIBActivator.java @@ -9,8 +9,10 @@ package org.opendaylight.protocol.bgp.route.targetcontrain.impl.activators; import java.util.Collections; import java.util.List; +import org.kohsuke.MetaInfServices; import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer; import org.opendaylight.protocol.bgp.rib.spi.AbstractRIBExtensionProviderActivator; +import org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator; import org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderContext; import org.opendaylight.protocol.bgp.route.targetcontrain.impl.RouteTargetConstrainRIBSupport; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.route.target.constrain.rev180618.RouteTargetConstrainSubsequentAddressFamily; @@ -22,6 +24,7 @@ import org.opendaylight.yangtools.concepts.Registration; * * @author Claudio D. Gasparini */ +@MetaInfServices(value = RIBExtensionProviderActivator.class) public final class RIBActivator extends AbstractRIBExtensionProviderActivator { @Override protected List startRIBExtensionProviderImpl(final RIBExtensionProviderContext context, diff --git a/bgp/extensions/route-target/src/main/java/org/opendaylight/protocol/bgp/route/targetcontrain/impl/activators/StatementActivator.java b/bgp/extensions/route-target/src/main/java/org/opendaylight/protocol/bgp/route/targetcontrain/impl/activators/StatementActivator.java index 56053d41ac..3a219e1916 100644 --- a/bgp/extensions/route-target/src/main/java/org/opendaylight/protocol/bgp/route/targetcontrain/impl/activators/StatementActivator.java +++ b/bgp/extensions/route-target/src/main/java/org/opendaylight/protocol/bgp/route/targetcontrain/impl/activators/StatementActivator.java @@ -9,12 +9,15 @@ package org.opendaylight.protocol.bgp.route.targetcontrain.impl.activators; import java.util.Collections; import java.util.List; +import org.kohsuke.MetaInfServices; import org.opendaylight.protocol.bgp.openconfig.routing.policy.spi.registry.AbstractBGPStatementProviderActivator; +import org.opendaylight.protocol.bgp.openconfig.routing.policy.spi.registry.StatementProviderActivator; import org.opendaylight.protocol.bgp.openconfig.routing.policy.spi.registry.StatementRegistryProvider; import org.opendaylight.protocol.bgp.route.targetcontrain.impl.route.policy.ClientAttributePrependHandler; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.route.target.constrain.rev180618.ClientAttributePrepend; import org.opendaylight.yangtools.concepts.Registration; +@MetaInfServices(value = StatementProviderActivator.class) public final class StatementActivator extends AbstractBGPStatementProviderActivator { @Override protected synchronized List startImpl(final StatementRegistryProvider provider) { diff --git a/bgp/extensions/route-target/src/main/java/org/opendaylight/protocol/bgp/route/targetcontrain/impl/activators/TableTypeActivator.java b/bgp/extensions/route-target/src/main/java/org/opendaylight/protocol/bgp/route/targetcontrain/impl/activators/TableTypeActivator.java index 56cd6b533f..f2192b8a65 100644 --- a/bgp/extensions/route-target/src/main/java/org/opendaylight/protocol/bgp/route/targetcontrain/impl/activators/TableTypeActivator.java +++ b/bgp/extensions/route-target/src/main/java/org/opendaylight/protocol/bgp/route/targetcontrain/impl/activators/TableTypeActivator.java @@ -5,13 +5,14 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.protocol.bgp.route.targetcontrain.impl.activators; import java.util.Collections; import java.util.List; +import org.kohsuke.MetaInfServices; import org.opendaylight.protocol.bgp.openconfig.spi.AbstractBGPTableTypeRegistryProviderActivator; import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProvider; +import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev180329.ROUTETARGETCONSTRAIN; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.route.target.constrain.rev180618.RouteTargetConstrainSubsequentAddressFamily; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.Ipv4AddressFamily; @@ -22,6 +23,7 @@ import org.opendaylight.yangtools.concepts.AbstractRegistration; * * @author Claudio D. Gasparini */ +@MetaInfServices(value = BGPTableTypeRegistryProviderActivator.class) public final class TableTypeActivator extends AbstractBGPTableTypeRegistryProviderActivator { @Override protected List startBGPTableTypeRegistryProviderImpl( diff --git a/bgp/extensions/route-target/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.routing.policy.spi.registry.StatementProviderActivator b/bgp/extensions/route-target/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.routing.policy.spi.registry.StatementProviderActivator deleted file mode 100644 index b27504cf28..0000000000 --- a/bgp/extensions/route-target/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.routing.policy.spi.registry.StatementProviderActivator +++ /dev/null @@ -1,13 +0,0 @@ -# -# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. -# -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0 which accompanies this distribution, -# and is available at http://www.eclipse.org/legal/epl-v10.html -# -# -# This program and the accompanying materials are made available -# under the terms of the Eclipse Public License v1.0 which -# accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.bgp.route.targetcontrain.impl.activators.StatementActivator \ No newline at end of file diff --git a/bgp/extensions/route-target/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator b/bgp/extensions/route-target/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator deleted file mode 100644 index e833335e5a..0000000000 --- a/bgp/extensions/route-target/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryProviderActivator +++ /dev/null @@ -1,13 +0,0 @@ -# -# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. -# -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0 which accompanies this distribution, -# and is available at http://www.eclipse.org/legal/epl-v10.html -# -# -# This program and the accompanying materials are made available -# under the terms of the Eclipse Public License v1.0 which -# accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.bgp.route.targetcontrain.impl.activators.TableTypeActivator \ No newline at end of file diff --git a/bgp/extensions/route-target/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator b/bgp/extensions/route-target/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator deleted file mode 100644 index 7db132f3d5..0000000000 --- a/bgp/extensions/route-target/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. -# -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0 which accompanies this distribution, -# and is available at http://www.eclipse.org/legal/epl-v10.html -# -# -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0 which accompanies this distribution, -# and is available at http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.bgp.route.targetcontrain.impl.activators.BGPActivator diff --git a/bgp/extensions/route-target/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator b/bgp/extensions/route-target/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator deleted file mode 100644 index 2557bf04ef..0000000000 --- a/bgp/extensions/route-target/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. -# -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0 which accompanies this distribution, -# and is available at http://www.eclipse.org/legal/epl-v10.html -# -# -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0 which accompanies this distribution, -# and is available at http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.bgp.route.targetcontrain.impl.activators.RIBActivator \ No newline at end of file diff --git a/bgp/openconfig-rp-statement/pom.xml b/bgp/openconfig-rp-statement/pom.xml index 5884e40a9d..12ba52d2b8 100644 --- a/bgp/openconfig-rp-statement/pom.xml +++ b/bgp/openconfig-rp-statement/pom.xml @@ -83,6 +83,11 @@ org.apache.commons commons-lang3 + + org.kohsuke.metainf-services + metainf-services + + ${project.groupId} diff --git a/bgp/openconfig-rp-statement/src/main/java/org/opendaylight/protocol/bgp/openconfig/routing/policy/statement/StatementActivator.java b/bgp/openconfig-rp-statement/src/main/java/org/opendaylight/protocol/bgp/openconfig/routing/policy/statement/StatementActivator.java index 0ecced8605..e439520630 100644 --- a/bgp/openconfig-rp-statement/src/main/java/org/opendaylight/protocol/bgp/openconfig/routing/policy/statement/StatementActivator.java +++ b/bgp/openconfig-rp-statement/src/main/java/org/opendaylight/protocol/bgp/openconfig/routing/policy/statement/StatementActivator.java @@ -11,8 +11,10 @@ import static java.util.Objects.requireNonNull; import java.util.ArrayList; import java.util.List; +import org.kohsuke.MetaInfServices; import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.protocol.bgp.openconfig.routing.policy.spi.registry.AbstractBGPStatementProviderActivator; +import org.opendaylight.protocol.bgp.openconfig.routing.policy.spi.registry.StatementProviderActivator; import org.opendaylight.protocol.bgp.openconfig.routing.policy.spi.registry.StatementRegistryProvider; import org.opendaylight.protocol.bgp.openconfig.routing.policy.statement.actions.AsPathPrepend; import org.opendaylight.protocol.bgp.openconfig.routing.policy.statement.actions.LocalAsPathPrependHandler; @@ -48,9 +50,11 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.odl.bgp. import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.odl.bgp._default.policy.rev200120.VpnNonMemberCondition; import org.opendaylight.yangtools.concepts.Registration; +@MetaInfServices(value = StatementProviderActivator.class) public final class StatementActivator extends AbstractBGPStatementProviderActivator { private final DataBroker dataBroker; + // FIXME: this needs to be properly injected public StatementActivator(final DataBroker dataBroker) { this.dataBroker = requireNonNull(dataBroker); } diff --git a/bgp/openconfig-rp-statement/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.routing.policy.spi.registry.StatementProviderActivator b/bgp/openconfig-rp-statement/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.routing.policy.spi.registry.StatementProviderActivator deleted file mode 100644 index ad4e97427f..0000000000 --- a/bgp/openconfig-rp-statement/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.openconfig.routing.policy.spi.registry.StatementProviderActivator +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. -# -# This program and the accompanying materials are made available -# under the terms of the Eclipse Public License v1.0 which -# accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.bgp.openconfig.routing.policy.statement.StatementActivator \ No newline at end of file diff --git a/bgp/parser-impl/pom.xml b/bgp/parser-impl/pom.xml index e8292247af..03b3c76557 100644 --- a/bgp/parser-impl/pom.xml +++ b/bgp/parser-impl/pom.xml @@ -85,27 +85,21 @@ org.osgi osgi.cmpn - - javax.annotation - javax.annotation-api - provided - true - javax.inject javax.inject provided true + + org.kohsuke.metainf-services + metainf-services + org.opendaylight.yangtools mockito-configuration - - org.hamcrest - hamcrest-core - ${project.groupId} bgp-util diff --git a/bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/BGPActivator.java b/bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/BGPActivator.java index 8ab76e9b26..77e3c4cc57 100644 --- a/bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/BGPActivator.java +++ b/bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/BGPActivator.java @@ -11,6 +11,7 @@ import java.util.ArrayList; import java.util.List; import javax.inject.Inject; import javax.inject.Singleton; +import org.kohsuke.MetaInfServices; import org.opendaylight.protocol.bgp.parser.impl.message.BGPKeepAliveMessageParser; import org.opendaylight.protocol.bgp.parser.impl.message.BGPNotificationMessageParser; import org.opendaylight.protocol.bgp.parser.impl.message.BGPOpenMessageParser; @@ -117,6 +118,7 @@ import org.osgi.service.component.annotations.Component; @Singleton @Component(immediate = true, service = BGPExtensionProviderActivator.class, property = "type=org.opendaylight.protocol.bgp.parser.impl.BGPActivator") +@MetaInfServices(value = BGPExtensionProviderActivator.class) public final class BGPActivator extends AbstractBGPExtensionProviderActivator { private static final int IPV4_AFI = 1; private static final int IPV6_AFI = 2; diff --git a/bgp/parser-impl/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator b/bgp/parser-impl/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator deleted file mode 100644 index c079dc1715..0000000000 --- a/bgp/parser-impl/src/main/resources/META-INF/services/org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c)2013 Cisco Systems, Inc. All rights reserved. -# -# This program and the accompanying materials are made available -# under the terms of the Eclipse Public License v1.0 which -# accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.bgp.parser.impl.BGPActivator diff --git a/bmp/bmp-parser-impl/pom.xml b/bmp/bmp-parser-impl/pom.xml index 622d7f6d2c..d378a49bb7 100644 --- a/bmp/bmp-parser-impl/pom.xml +++ b/bmp/bmp-parser-impl/pom.xml @@ -82,6 +82,11 @@ io.netty netty-buffer + + org.kohsuke.metainf-services + metainf-services + + ${project.groupId} diff --git a/bmp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/BmpActivator.java b/bmp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/BmpActivator.java index 21fa761a6c..c1ee040f81 100644 --- a/bmp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/BmpActivator.java +++ b/bmp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/BmpActivator.java @@ -5,11 +5,11 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.protocol.bmp.parser; import java.util.ArrayList; import java.util.List; +import org.kohsuke.MetaInfServices; import org.opendaylight.protocol.bgp.parser.spi.AddressFamilyRegistry; import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionConsumerContext; import org.opendaylight.protocol.bgp.parser.spi.MessageRegistry; @@ -41,6 +41,7 @@ import org.opendaylight.protocol.bmp.parser.tlv.StatType012TlvHandler; import org.opendaylight.protocol.bmp.parser.tlv.StatType013TlvHandler; import org.opendaylight.protocol.bmp.parser.tlv.StringTlvHandler; import org.opendaylight.protocol.bmp.spi.registry.AbstractBmpExtensionProviderActivator; +import org.opendaylight.protocol.bmp.spi.registry.BmpExtensionProviderActivator; import org.opendaylight.protocol.bmp.spi.registry.BmpExtensionProviderContext; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev200120.InitiationMessage; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev200120.PeerDownNotification; @@ -69,17 +70,13 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.mess import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev200120.stat.tlvs.UpdatesTreatedAsWithdrawTlv; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev200120.string.tlv.StringTlv; - - -/** - * Created by cgasparini on 15.5.2015. - */ +@MetaInfServices(value = BmpExtensionProviderActivator.class) public final class BmpActivator extends AbstractBmpExtensionProviderActivator { - private final MessageRegistry messageRegistry; private final AddressFamilyRegistry afiRegistry; private final SubsequentAddressFamilyRegistry safiRegistry; + // FIXME: this needs to be properly injected public BmpActivator(final BGPExtensionConsumerContext context) { this.messageRegistry = context.getMessageRegistry(); this.afiRegistry = context.getAddressFamilyRegistry(); diff --git a/bmp/bmp-parser-impl/src/main/resources/META-INF/services/org.opendaylight.protocol.bmp.spi.registry.BmpExtensionProviderActivator b/bmp/bmp-parser-impl/src/main/resources/META-INF/services/org.opendaylight.protocol.bmp.spi.registry.BmpExtensionProviderActivator deleted file mode 100644 index ec2f25c2cd..0000000000 --- a/bmp/bmp-parser-impl/src/main/resources/META-INF/services/org.opendaylight.protocol.bmp.spi.registry.BmpExtensionProviderActivator +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c) 2016 Brocade Communications Systems, Inc. and others. All rights reserved. -# -# This program and the accompanying materials are made available -# under the terms of the Eclipse Public License v1.0 which -# accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.bmp.parser.BmpActivator diff --git a/pcep/auto-bandwidth-extension/pom.xml b/pcep/auto-bandwidth-extension/pom.xml index effc538df1..b1da57deda 100644 --- a/pcep/auto-bandwidth-extension/pom.xml +++ b/pcep/auto-bandwidth-extension/pom.xml @@ -81,6 +81,10 @@ com.google.guava guava + + org.kohsuke.metainf-services + metainf-services + diff --git a/pcep/auto-bandwidth-extension/src/main/java/org/opendaylight/protocol/pcep/auto/bandwidth/extension/Activator.java b/pcep/auto-bandwidth-extension/src/main/java/org/opendaylight/protocol/pcep/auto/bandwidth/extension/Activator.java index 6c5ba9c544..88feca0cf9 100644 --- a/pcep/auto-bandwidth-extension/src/main/java/org/opendaylight/protocol/pcep/auto/bandwidth/extension/Activator.java +++ b/pcep/auto-bandwidth-extension/src/main/java/org/opendaylight/protocol/pcep/auto/bandwidth/extension/Activator.java @@ -7,21 +7,23 @@ */ package org.opendaylight.protocol.pcep.auto.bandwidth.extension; -import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.MoreObjects; import java.util.ArrayList; import java.util.List; +import org.kohsuke.MetaInfServices; +import org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator; import org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderContext; import org.opendaylight.protocol.pcep.spi.pojo.AbstractPCEPExtensionProviderActivator; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.auto.bandwidth.rev181109.bandwidth.usage.object.BandwidthUsage; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev200720.Pcrpt; import org.opendaylight.yangtools.concepts.Registration; +@MetaInfServices(value = PCEPExtensionProviderActivator.class) public class Activator extends AbstractPCEPExtensionProviderActivator { private final int bandwidthUsageObjectType; - @VisibleForTesting public Activator() { - this(1); + this(5); } public Activator(final int bandwidthUsageObjectType) { @@ -33,7 +35,7 @@ public class Activator extends AbstractPCEPExtensionProviderActivator { final List regs = new ArrayList<>(); final BandwidthUsageObjectCodec bandwidthUsageObjectCodec = - new BandwidthUsageObjectCodec(this.bandwidthUsageObjectType); + new BandwidthUsageObjectCodec(bandwidthUsageObjectType); regs.add(context.registerObjectParser(bandwidthUsageObjectCodec)); regs.add(context.registerObjectSerializer(BandwidthUsage.class, bandwidthUsageObjectCodec)); @@ -43,4 +45,9 @@ public class Activator extends AbstractPCEPExtensionProviderActivator { return regs; } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this).add("bandwithUsage", bandwidthUsageObjectType).toString(); + } } diff --git a/pcep/auto-bandwidth-extension/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator b/pcep/auto-bandwidth-extension/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator deleted file mode 100644 index fa65d628ac..0000000000 --- a/pcep/auto-bandwidth-extension/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c) 2016 Brocade Communications Systems, Inc. and others. All rights reserved. -# -# This program and the accompanying materials are made available -# under the terms of the Eclipse Public License v1.0 which -# accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.pcep.auto.bandwidth.extension.Activator diff --git a/pcep/base-parser/pom.xml b/pcep/base-parser/pom.xml index 875d24f037..9407e36592 100644 --- a/pcep/base-parser/pom.xml +++ b/pcep/base-parser/pom.xml @@ -70,14 +70,12 @@ guava - org.osgi - osgi.cmpn + org.kohsuke.metainf-services + metainf-services - javax.annotation - javax.annotation-api - provided - true + org.osgi + osgi.cmpn javax.inject diff --git a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/BaseParserExtensionActivator.java b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/BaseParserExtensionActivator.java index d5ab95aa4d..8bf350b6d7 100644 --- a/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/BaseParserExtensionActivator.java +++ b/pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/BaseParserExtensionActivator.java @@ -11,6 +11,7 @@ import java.util.ArrayList; import java.util.List; import javax.inject.Inject; import javax.inject.Singleton; +import org.kohsuke.MetaInfServices; import org.opendaylight.protocol.pcep.parser.message.PCEPCloseMessageParser; import org.opendaylight.protocol.pcep.parser.message.PCEPErrorMessageParser; import org.opendaylight.protocol.pcep.parser.message.PCEPKeepAliveMessageParser; @@ -154,6 +155,7 @@ import org.opendaylight.yangtools.concepts.Registration; import org.osgi.service.component.annotations.Component; @Singleton +@MetaInfServices(value = PCEPExtensionProviderActivator.class) @Component(immediate = true, service = PCEPExtensionProviderActivator.class, property = "type=org.opendaylight.protocol.pcep.parser.BaseParserExtensionActivator") public final class BaseParserExtensionActivator extends AbstractPCEPExtensionProviderActivator { diff --git a/pcep/base-parser/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator b/pcep/base-parser/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator deleted file mode 100644 index c43b2592d2..0000000000 --- a/pcep/base-parser/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c)2013 Cisco Systems, Inc. All rights reserved. -# -# This program and the accompanying materials are made available -# under the terms of the Eclipse Public License v1.0 which -# accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.pcep.parser.BaseParserExtensionActivator diff --git a/pcep/ietf-p2mp-te-lsp/pom.xml b/pcep/ietf-p2mp-te-lsp/pom.xml index 235879a0c8..db1479ab3c 100644 --- a/pcep/ietf-p2mp-te-lsp/pom.xml +++ b/pcep/ietf-p2mp-te-lsp/pom.xml @@ -48,6 +48,10 @@ ${project.groupId} util + + org.kohsuke.metainf-services + metainf-services + @@ -56,4 +60,4 @@ https://wiki.opendaylight.org/display/ODL/BGPCEP HEAD - \ No newline at end of file + diff --git a/pcep/ietf-p2mp-te-lsp/src/main/java/org/opendaylight/protocol/pcep/p2mp/te/lsp/Activator.java b/pcep/ietf-p2mp-te-lsp/src/main/java/org/opendaylight/protocol/pcep/p2mp/te/lsp/Activator.java index 0f0dd47158..c21b561d89 100644 --- a/pcep/ietf-p2mp-te-lsp/src/main/java/org/opendaylight/protocol/pcep/p2mp/te/lsp/Activator.java +++ b/pcep/ietf-p2mp-te-lsp/src/main/java/org/opendaylight/protocol/pcep/p2mp/te/lsp/Activator.java @@ -9,11 +9,14 @@ package org.opendaylight.protocol.pcep.p2mp.te.lsp; import java.util.ArrayList; import java.util.List; +import org.kohsuke.MetaInfServices; +import org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator; import org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderContext; import org.opendaylight.protocol.pcep.spi.pojo.AbstractPCEPExtensionProviderActivator; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.p2mp.te.lsp.rev181109.p2mp.pce.capability.tlv.P2mpPceCapability; import org.opendaylight.yangtools.concepts.Registration; +@MetaInfServices(value = PCEPExtensionProviderActivator.class) public final class Activator extends AbstractPCEPExtensionProviderActivator { @Override protected List startImpl(final PCEPExtensionProviderContext context) { diff --git a/pcep/ietf-p2mp-te-lsp/src/main/java/org/opendaylight/protocol/pcep/p2mp/te/lsp/P2MPTeLspCapability.java b/pcep/ietf-p2mp-te-lsp/src/main/java/org/opendaylight/protocol/pcep/p2mp/te/lsp/P2MPTeLspCapability.java index 17b5e99347..b7eb60c385 100644 --- a/pcep/ietf-p2mp-te-lsp/src/main/java/org/opendaylight/protocol/pcep/p2mp/te/lsp/P2MPTeLspCapability.java +++ b/pcep/ietf-p2mp-te-lsp/src/main/java/org/opendaylight/protocol/pcep/p2mp/te/lsp/P2MPTeLspCapability.java @@ -7,25 +7,35 @@ */ package org.opendaylight.protocol.pcep.p2mp.te.lsp; +import com.google.common.base.MoreObjects; import java.net.InetSocketAddress; +import org.kohsuke.MetaInfServices; import org.opendaylight.protocol.pcep.PCEPCapability; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.p2mp.te.lsp.rev181109.TlvsP2mpCapabilityAug; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.p2mp.te.lsp.rev181109.TlvsP2mpCapabilityAugBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.p2mp.te.lsp.rev181109.p2mp.pce.capability.tlv.P2mpPceCapabilityBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.open.object.open.TlvsBuilder; +@MetaInfServices public final class P2MPTeLspCapability implements PCEPCapability { private static final TlvsP2mpCapabilityAug PATH_COMPUTATION_CAP_AUG = new TlvsP2mpCapabilityAugBuilder() - .setP2mpPceCapability(new P2mpPceCapabilityBuilder().build()).build(); + .setP2mpPceCapability(new P2mpPceCapabilityBuilder().build()) + .build(); + private final boolean supportsPathComputation; + public P2MPTeLspCapability() { + this(true); + } + + // FIXME: this should return distinct implementations public P2MPTeLspCapability(final boolean supportsP2MPTeLspPathComputation) { this.supportsPathComputation = supportsP2MPTeLspPathComputation; } @Override public void setCapabilityProposal(final InetSocketAddress address, final TlvsBuilder builder) { - if (this.supportsPathComputation) { + if (supportsPathComputation) { builder.addAugmentation(PATH_COMPUTATION_CAP_AUG); } } @@ -34,4 +44,9 @@ public final class P2MPTeLspCapability implements PCEPCapability { public boolean isStateful() { return false; } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this).add("pathComputation", supportsPathComputation).toString(); + } } diff --git a/pcep/ietf-p2mp-te-lsp/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.PCEPCapability b/pcep/ietf-p2mp-te-lsp/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.PCEPCapability deleted file mode 100644 index 1277963547..0000000000 --- a/pcep/ietf-p2mp-te-lsp/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.PCEPCapability +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. -# -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0 which accompanies this distribution, -# and is available at http://www.eclipse.org/legal/epl-v10.html -# -org.opendaylight.protocol.pcep.p2mp.te.lsp.P2MPTeLspCapability \ No newline at end of file diff --git a/pcep/ietf-p2mp-te-lsp/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator b/pcep/ietf-p2mp-te-lsp/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator deleted file mode 100644 index 2c34e7b935..0000000000 --- a/pcep/ietf-p2mp-te-lsp/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. -# -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0 which accompanies this distribution, -# and is available at http://www.eclipse.org/legal/epl-v10.html -# -org.opendaylight.protocol.pcep.p2mp.te.lsp.Activator diff --git a/pcep/ietf-stateful/pom.xml b/pcep/ietf-stateful/pom.xml index bb06f797cb..909594f669 100644 --- a/pcep/ietf-stateful/pom.xml +++ b/pcep/ietf-stateful/pom.xml @@ -77,11 +77,6 @@ concepts - org.opendaylight.mdsal.binding.model.ietf rfc6991-ietf-inet-types @@ -98,6 +93,10 @@ com.google.guava guava + + org.kohsuke.metainf-services + metainf-services + diff --git a/pcep/ietf-stateful/src/main/java/org/opendaylight/protocol/pcep/ietf/initiated/InitiatedActivator.java b/pcep/ietf-stateful/src/main/java/org/opendaylight/protocol/pcep/ietf/initiated/InitiatedActivator.java index e837368d0b..3381b41b72 100644 --- a/pcep/ietf-stateful/src/main/java/org/opendaylight/protocol/pcep/ietf/initiated/InitiatedActivator.java +++ b/pcep/ietf-stateful/src/main/java/org/opendaylight/protocol/pcep/ietf/initiated/InitiatedActivator.java @@ -9,6 +9,8 @@ package org.opendaylight.protocol.pcep.ietf.initiated; import java.util.ArrayList; import java.util.List; +import org.kohsuke.MetaInfServices; +import org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator; import org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderContext; import org.opendaylight.protocol.pcep.spi.TlvRegistry; import org.opendaylight.protocol.pcep.spi.VendorInformationTlvRegistry; @@ -19,6 +21,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.iet import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev200720.stateful.capability.tlv.Stateful; import org.opendaylight.yangtools.concepts.Registration; +@MetaInfServices(value = PCEPExtensionProviderActivator.class) public final class InitiatedActivator extends AbstractPCEPExtensionProviderActivator { @Override protected List startImpl(final PCEPExtensionProviderContext context) { diff --git a/pcep/ietf-stateful/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful/PCEPStatefulCapability.java b/pcep/ietf-stateful/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful/PCEPStatefulCapability.java index e3da912590..bdb0a21906 100644 --- a/pcep/ietf-stateful/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful/PCEPStatefulCapability.java +++ b/pcep/ietf-stateful/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful/PCEPStatefulCapability.java @@ -8,6 +8,7 @@ package org.opendaylight.protocol.pcep.ietf.stateful; import java.net.InetSocketAddress; +import org.kohsuke.MetaInfServices; import org.opendaylight.protocol.pcep.PCEPCapability; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.ietf.stateful.app.config.rev160707.PcepIetfStatefulConfig; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.initiated.rev200720.Stateful1Builder; @@ -15,22 +16,26 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.iet import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev200720.stateful.capability.tlv.StatefulBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.open.object.open.TlvsBuilder; -public class PCEPStatefulCapability implements PCEPCapability { - +@MetaInfServices +public final class PCEPStatefulCapability implements PCEPCapability { private final boolean stateful; private final boolean active; - private final boolean instant; + private final boolean intiated; private final boolean triggeredSync; private final boolean triggeredResync; private final boolean deltaLspSync; private final boolean includeDbVersion; - public PCEPStatefulCapability(final boolean stateful, final boolean active, final boolean instant, + public PCEPStatefulCapability() { + this(true, true, true, true, true, true, true); + } + + public PCEPStatefulCapability(final boolean stateful, final boolean active, final boolean initiated, final boolean triggeredSync, final boolean triggeredResync, final boolean deltaLspSync, final boolean includeDbVersion) { this.stateful = stateful || active || triggeredSync || triggeredResync || deltaLspSync || includeDbVersion; this.active = active; - this.instant = instant; + this.intiated = initiated; this.triggeredSync = triggeredSync; this.triggeredResync = triggeredResync; this.deltaLspSync = deltaLspSync; @@ -44,16 +49,16 @@ public class PCEPStatefulCapability implements PCEPCapability { @Override public void setCapabilityProposal(final InetSocketAddress address, final TlvsBuilder builder) { - if (this.stateful) { + if (stateful) { builder.addAugmentation(new Tlvs1Builder() - .setStateful(new StatefulBuilder().setLspUpdateCapability(this.active) - .addAugmentation(new Stateful1Builder().setInitiation(this.instant).build()) + .setStateful(new StatefulBuilder().setLspUpdateCapability(active) + .addAugmentation(new Stateful1Builder().setInitiation(intiated).build()) .addAugmentation(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller .pcep.sync.optimizations.rev200720.Stateful1Builder() - .setTriggeredInitialSync(this.triggeredSync) - .setTriggeredResync(this.triggeredResync) - .setDeltaLspSyncCapability(this.deltaLspSync) - .setIncludeDbVersion(this.includeDbVersion) + .setTriggeredInitialSync(triggeredSync) + .setTriggeredResync(triggeredResync) + .setDeltaLspSyncCapability(deltaLspSync) + .setIncludeDbVersion(includeDbVersion) .build()) .build()) .build()); @@ -62,30 +67,30 @@ public class PCEPStatefulCapability implements PCEPCapability { @Override public boolean isStateful() { - return this.stateful; + return stateful; } public boolean isActive() { - return this.active; + return active; } public boolean isInstant() { - return this.instant; + return intiated; } public boolean isTriggeredSync() { - return this.triggeredSync; + return triggeredSync; } public boolean isTriggeredResync() { - return this.triggeredResync; + return triggeredResync; } public boolean isDeltaLspSync() { - return this.deltaLspSync; + return deltaLspSync; } public boolean isIncludeDbVersion() { - return this.includeDbVersion; + return includeDbVersion; } } diff --git a/pcep/ietf-stateful/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful/StatefulActivator.java b/pcep/ietf-stateful/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful/StatefulActivator.java index 97601fe692..b53cff4f4f 100644 --- a/pcep/ietf-stateful/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful/StatefulActivator.java +++ b/pcep/ietf-stateful/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful/StatefulActivator.java @@ -9,7 +9,9 @@ package org.opendaylight.protocol.pcep.ietf.stateful; import java.util.ArrayList; import java.util.List; +import org.kohsuke.MetaInfServices; import org.opendaylight.protocol.pcep.spi.ObjectRegistry; +import org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator; import org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderContext; import org.opendaylight.protocol.pcep.spi.TlvRegistry; import org.opendaylight.protocol.pcep.spi.VendorInformationTlvRegistry; @@ -28,6 +30,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.mes import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.open.object.Open; import org.opendaylight.yangtools.concepts.Registration; +@MetaInfServices(value = PCEPExtensionProviderActivator.class) public final class StatefulActivator extends AbstractPCEPExtensionProviderActivator { @Override protected List startImpl(final PCEPExtensionProviderContext context) { diff --git a/pcep/ietf-stateful/src/main/java/org/opendaylight/protocol/pcep/sync/optimizations/SyncOptimizationsActivator.java b/pcep/ietf-stateful/src/main/java/org/opendaylight/protocol/pcep/sync/optimizations/SyncOptimizationsActivator.java index d9701ac77c..793ecc72ad 100644 --- a/pcep/ietf-stateful/src/main/java/org/opendaylight/protocol/pcep/sync/optimizations/SyncOptimizationsActivator.java +++ b/pcep/ietf-stateful/src/main/java/org/opendaylight/protocol/pcep/sync/optimizations/SyncOptimizationsActivator.java @@ -9,6 +9,8 @@ package org.opendaylight.protocol.pcep.sync.optimizations; import java.util.ArrayList; import java.util.List; +import org.kohsuke.MetaInfServices; +import org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator; import org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderContext; import org.opendaylight.protocol.pcep.spi.TlvRegistry; import org.opendaylight.protocol.pcep.spi.VendorInformationTlvRegistry; @@ -20,8 +22,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.iet import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.open.object.Open; import org.opendaylight.yangtools.concepts.Registration; +@MetaInfServices(value = PCEPExtensionProviderActivator.class) public class SyncOptimizationsActivator extends AbstractPCEPExtensionProviderActivator { - @Override protected List startImpl(final PCEPExtensionProviderContext context) { final List regs = new ArrayList<>(); diff --git a/pcep/ietf-stateful/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.PCEPCapability b/pcep/ietf-stateful/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.PCEPCapability deleted file mode 100644 index 32c1e4027d..0000000000 --- a/pcep/ietf-stateful/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.PCEPCapability +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c) 2016 Brocade Communications Systems, Inc. and others. All rights reserved. -# -# This program and the accompanying materials are made available -# under the terms of the Eclipse Public License v1.0 which -# accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.pcep.ietf.stateful.PCEPStatefulCapability \ No newline at end of file diff --git a/pcep/ietf-stateful/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator b/pcep/ietf-stateful/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator deleted file mode 100644 index 9ac0d7b670..0000000000 --- a/pcep/ietf-stateful/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator +++ /dev/null @@ -1,10 +0,0 @@ -# -# Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved. -# -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License v1.0 which accompanies this distribution, -# and is available at http://www.eclipse.org/legal/epl-v10.html -# -org.opendaylight.protocol.pcep.ietf.stateful.StatefulActivator -org.opendaylight.protocol.pcep.ietf.initiated.InitiatedActivator -org.opendaylight.protocol.pcep.sync.optimizations.SyncOptimizationsActivator diff --git a/pcep/segment-routing/pom.xml b/pcep/segment-routing/pom.xml index b7b1aa3351..c9e647a944 100644 --- a/pcep/segment-routing/pom.xml +++ b/pcep/segment-routing/pom.xml @@ -80,6 +80,10 @@ com.google.guava guava + + org.kohsuke.metainf-services + metainf-services + diff --git a/pcep/segment-routing/src/main/java/org/opendaylight/protocol/pcep/segment/routing/PCEPSegmentRoutingCapability.java b/pcep/segment-routing/src/main/java/org/opendaylight/protocol/pcep/segment/routing/PCEPSegmentRoutingCapability.java index a749a51d94..5fc7351f2e 100644 --- a/pcep/segment-routing/src/main/java/org/opendaylight/protocol/pcep/segment/routing/PCEPSegmentRoutingCapability.java +++ b/pcep/segment-routing/src/main/java/org/opendaylight/protocol/pcep/segment/routing/PCEPSegmentRoutingCapability.java @@ -7,37 +7,55 @@ */ package org.opendaylight.protocol.pcep.segment.routing; +import com.google.common.base.MoreObjects; import java.net.InetSocketAddress; +import org.eclipse.jdt.annotation.NonNull; +import org.kohsuke.MetaInfServices; import org.opendaylight.protocol.pcep.PCEPCapability; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.segment.routing.rev200720.Tlvs1; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.segment.routing.rev200720.Tlvs1Builder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.segment.routing.rev200720.sr.pce.capability.tlv.SrPceCapabilityBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.open.object.open.TlvsBuilder; import org.opendaylight.yangtools.yang.common.Uint8; +@MetaInfServices public class PCEPSegmentRoutingCapability implements PCEPCapability { + private static final @NonNull Tlvs1 AUGMENTATION = new Tlvs1Builder() + .setSrPceCapability(new SrPceCapabilityBuilder() + .setNFlag(Boolean.FALSE) + .setXFlag(Boolean.FALSE) + .setMsd(Uint8.ZERO) + .build()) + .build(); private final boolean isSegmentRoutingCapable; + public PCEPSegmentRoutingCapability() { + this(true); + } + public PCEPSegmentRoutingCapability(final boolean isSegmentRoutingCapable) { this.isSegmentRoutingCapable = isSegmentRoutingCapable; } @Override public void setCapabilityProposal(final InetSocketAddress address, final TlvsBuilder builder) { - if (this.isSegmentRoutingCapable) { - builder.addAugmentation(new Tlvs1Builder() - .setSrPceCapability(new SrPceCapabilityBuilder().setNFlag(Boolean.FALSE).setXFlag(Boolean.FALSE) - .setMsd(Uint8.ZERO).build()) - .build()); + if (isSegmentRoutingCapable) { + builder.addAugmentation(AUGMENTATION); } } public boolean isSegmentRoutingCapable() { - return this.isSegmentRoutingCapable; + return isSegmentRoutingCapable; } @Override public boolean isStateful() { return false; } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this).add("srCapable", isSegmentRoutingCapable).toString(); + } } diff --git a/pcep/segment-routing/src/main/java/org/opendaylight/protocol/pcep/segment/routing/SegmentRoutingActivator.java b/pcep/segment-routing/src/main/java/org/opendaylight/protocol/pcep/segment/routing/SegmentRoutingActivator.java index 528472f1e2..65ae9ef134 100644 --- a/pcep/segment-routing/src/main/java/org/opendaylight/protocol/pcep/segment/routing/SegmentRoutingActivator.java +++ b/pcep/segment-routing/src/main/java/org/opendaylight/protocol/pcep/segment/routing/SegmentRoutingActivator.java @@ -7,8 +7,11 @@ */ package org.opendaylight.protocol.pcep.segment.routing; +import com.google.common.base.MoreObjects; import java.util.ArrayList; import java.util.List; +import org.kohsuke.MetaInfServices; +import org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator; import org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderContext; import org.opendaylight.protocol.pcep.spi.TlvRegistry; import org.opendaylight.protocol.pcep.spi.VendorInformationTlvRegistry; @@ -20,13 +23,13 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.path.setup.type.tlv.PathSetupType; import org.opendaylight.yangtools.concepts.Registration; +@MetaInfServices(value = PCEPExtensionProviderActivator.class) public class SegmentRoutingActivator extends AbstractPCEPExtensionProviderActivator { - @Deprecated private final boolean ianaSrSubobjectsType; public SegmentRoutingActivator() { - this.ianaSrSubobjectsType = true; + ianaSrSubobjectsType = true; } @Deprecated @@ -46,7 +49,7 @@ public class SegmentRoutingActivator extends AbstractPCEPExtensionProviderActiva regs.add(context.registerTlvSerializer(SrPceCapability.class, new SrPceCapabilityTlvParser())); /* Subobjects */ - final SrEroSubobjectParser srEroSubobjectParser = new SrEroSubobjectParser(this.ianaSrSubobjectsType); + final SrEroSubobjectParser srEroSubobjectParser = new SrEroSubobjectParser(ianaSrSubobjectsType); regs.add(context.registerEROSubobjectParser(srEroSubobjectParser.getCodePoint(), srEroSubobjectParser)); regs.add(context.registerEROSubobjectSerializer(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang .pcep.segment.routing.rev200720.network.topology.topology.node.path.computation.client.reported.lsp.path.ero @@ -68,7 +71,7 @@ public class SegmentRoutingActivator extends AbstractPCEPExtensionProviderActiva srEroSubobjectParser)); regs.add(context.registerEROSubobjectSerializer(SrEroType.class, srEroSubobjectParser)); - final SrRroSubobjectParser srRroSubobjectParser = new SrRroSubobjectParser(this.ianaSrSubobjectsType); + final SrRroSubobjectParser srRroSubobjectParser = new SrRroSubobjectParser(ianaSrSubobjectsType); regs.add(context.registerRROSubobjectParser(srRroSubobjectParser.getCodePoint(), srRroSubobjectParser)); regs.add(context.registerRROSubobjectSerializer(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang .pcep.segment.routing.rev200720.network.topology.topology.node.path.computation.client.reported.lsp.path.rro @@ -108,4 +111,9 @@ public class SegmentRoutingActivator extends AbstractPCEPExtensionProviderActiva return regs; } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this).add("ianaSubobjects", ianaSrSubobjectsType).toString(); + } } diff --git a/pcep/segment-routing/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.PCEPCapability b/pcep/segment-routing/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.PCEPCapability deleted file mode 100644 index 704e25ae30..0000000000 --- a/pcep/segment-routing/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.PCEPCapability +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c) 2016 Brocade Communications Systems, Inc. and others. All rights reserved. -# -# This program and the accompanying materials are made available -# under the terms of the Eclipse Public License v1.0 which -# accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.pcep.segment.routing.PCEPSegmentRoutingCapability \ No newline at end of file diff --git a/pcep/segment-routing/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator b/pcep/segment-routing/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator deleted file mode 100644 index 18d98b1b97..0000000000 --- a/pcep/segment-routing/src/main/resources/META-INF/services/org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c) 2016 Brocade Communications Systems, Inc. and others. All rights reserved. -# -# This program and the accompanying materials are made available -# under the terms of the Eclipse Public License v1.0 which -# accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.pcep.segment.routing.SegmentRoutingActivator diff --git a/rsvp/impl/pom.xml b/rsvp/impl/pom.xml index 745acccc80..95cb097434 100644 --- a/rsvp/impl/pom.xml +++ b/rsvp/impl/pom.xml @@ -69,6 +69,11 @@ io.netty netty-buffer + + org.kohsuke.metainf-services + metainf-services + + org.opendaylight.yangtools diff --git a/rsvp/impl/src/main/java/org/opendaylight/protocol/rsvp/parser/impl/RSVPActivator.java b/rsvp/impl/src/main/java/org/opendaylight/protocol/rsvp/parser/impl/RSVPActivator.java index 916c0a9a72..ba212bdb4d 100644 --- a/rsvp/impl/src/main/java/org/opendaylight/protocol/rsvp/parser/impl/RSVPActivator.java +++ b/rsvp/impl/src/main/java/org/opendaylight/protocol/rsvp/parser/impl/RSVPActivator.java @@ -9,6 +9,7 @@ package org.opendaylight.protocol.rsvp.parser.impl; import java.util.ArrayList; import java.util.List; +import org.kohsuke.MetaInfServices; import org.opendaylight.protocol.rsvp.parser.impl.subobject.ero.EROAsNumberSubobjectParser; import org.opendaylight.protocol.rsvp.parser.impl.subobject.ero.EROIpv4PrefixSubobjectParser; import org.opendaylight.protocol.rsvp.parser.impl.subobject.ero.EROIpv6PrefixSubobjectParser; @@ -62,6 +63,7 @@ import org.opendaylight.protocol.rsvp.parser.impl.te.SessionAttributeLspObjectPa import org.opendaylight.protocol.rsvp.parser.impl.te.SessionAttributeLspRaObjectParser; import org.opendaylight.protocol.rsvp.parser.spi.AbstractRSVPExtensionProviderActivator; import org.opendaylight.protocol.rsvp.parser.spi.LabelRegistry; +import org.opendaylight.protocol.rsvp.parser.spi.RSVPExtensionProviderActivator; import org.opendaylight.protocol.rsvp.parser.spi.RSVPExtensionProviderContext; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.admin.status.object.AdminStatusObject; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.association.object.AssociationObject; @@ -99,7 +101,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.tspec.object.TspecObject; import org.opendaylight.yangtools.concepts.Registration; -public class RSVPActivator extends AbstractRSVPExtensionProviderActivator { +@MetaInfServices(value = RSVPExtensionProviderActivator.class) +public final class RSVPActivator extends AbstractRSVPExtensionProviderActivator { + @Override protected List startImpl(final RSVPExtensionProviderContext context) { final List regs = new ArrayList<>(); diff --git a/rsvp/impl/src/main/resources/META-INF/services/org.opendaylight.protocol.rsvp.parser.spi.RSVPExtensionProviderActivator b/rsvp/impl/src/main/resources/META-INF/services/org.opendaylight.protocol.rsvp.parser.spi.RSVPExtensionProviderActivator deleted file mode 100644 index ef51a218ce..0000000000 --- a/rsvp/impl/src/main/resources/META-INF/services/org.opendaylight.protocol.rsvp.parser.spi.RSVPExtensionProviderActivator +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c)2013 Cisco Systems, Inc. All rights reserved. -# -# This program and the accompanying materials are made available -# under the terms of the Eclipse Public License v1.0 which -# accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -org.opendaylight.protocol.rsvp.parser.impl.RSVPActivator -- 2.36.6