Silence SCR errors 87/98387/7
authormarekzatko <Marek.Zatko@pantheon.tech>
Wed, 10 Nov 2021 09:06:39 +0000 (10:06 +0100)
committerRobert Varga <nite@hq.sk>
Sun, 14 Nov 2021 16:16:37 +0000 (16:16 +0000)
SCR does not like overloaded constructors containing arrays/iterables.
Remove them in favor of using lists. Also improve diagnostics in
OSGiRIBExtensionConsumerContext.

Change-Id: Iccee38dbafa1df4b7de59aedc759b0e765481b39
Signed-off-by: marekzatko <Marek.Zatko@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
bgp/parser-spi/src/main/java/org/opendaylight/protocol/bgp/parser/spi/pojo/DefaultBGPExtensionConsumerContext.java
bgp/rib-spi/src/main/java/org/opendaylight/protocol/bgp/rib/spi/OSGiRIBExtensionConsumerContext.java
bmp/bmp-spi/src/main/java/org/opendaylight/protocol/bmp/spi/registry/DefaultBmpExtensionConsumerContext.java
rsvp/impl/src/test/java/org/opendaylight/protocol/rsvp/parser/impl/RROSubobjectParserTest.java
rsvp/spi/src/main/java/org/opendaylight/protocol/rsvp/parser/spi/pojo/DefaultRSVPExtensionConsumerContext.java

index c9646a43f64676d1751e23c22e1c26737a0bf260..869a8b78ad6ead9c4eaa92197b4a8f82d5f569a2 100644 (file)
@@ -7,8 +7,7 @@
  */
 package org.opendaylight.protocol.bgp.parser.spi.pojo;
 
-import com.google.common.annotations.VisibleForTesting;
-import java.util.Arrays;
+import com.google.common.collect.ImmutableList;
 import java.util.List;
 import java.util.ServiceLoader;
 import javax.inject.Inject;
@@ -42,19 +41,10 @@ public final class DefaultBGPExtensionConsumerContext implements BGPExtensionCon
     private final @NonNull SimpleBGPExtensionProviderContext delegate = new SimpleBGPExtensionProviderContext();
 
     public DefaultBGPExtensionConsumerContext() {
-        this(ServiceLoader.load(BGPExtensionProviderActivator.class));
-    }
-
-    @VisibleForTesting
-    public DefaultBGPExtensionConsumerContext(final BGPExtensionProviderActivator... extensionActivators) {
-        this(Arrays.asList(extensionActivators));
+        this(ImmutableList.copyOf(ServiceLoader.load(BGPExtensionProviderActivator.class)));
     }
 
     @Inject
-    public DefaultBGPExtensionConsumerContext(final Iterable<BGPExtensionProviderActivator> extensionActivators) {
-        extensionActivators.forEach(activator -> activator.start(delegate));
-    }
-
     @Activate
     public DefaultBGPExtensionConsumerContext(final @Reference(policyOption = ReferencePolicyOption.GREEDY)
             List<BGPExtensionProviderActivator> extensionActivators) {
index 0a8ba5d7be14c6b49cb25df055936373d9e333f0..2a9393463b864a686d166dcd9a978d3f3e26408f 100644 (file)
@@ -18,19 +18,15 @@ import org.osgi.service.component.annotations.Reference;
 import org.osgi.service.component.annotations.ReferencePolicyOption;
 
 @Component(immediate = true, service = RIBExtensionConsumerContext.class)
-public final class OSGiRIBExtensionConsumerContext extends ForwardingRIBExtensionConsumerContext  {
-    @Reference(policyOption = ReferencePolicyOption.GREEDY)
-    List<RIBExtensionProviderActivator> extensionActivators;
-    @Reference
-    BindingNormalizedNodeSerializer mappingCodec;
-
-    private SimpleRIBExtensionProviderContext delegate = null;
+public final class OSGiRIBExtensionConsumerContext extends ForwardingRIBExtensionConsumerContext {
+    private SimpleRIBExtensionProviderContext delegate;
 
     @Activate
-    void activate() {
-        final SimpleRIBExtensionProviderContext local = new SimpleRIBExtensionProviderContext();
-        extensionActivators.forEach(activator -> activator.startRIBExtensionProvider(local, mappingCodec));
-        delegate = local;
+    public OSGiRIBExtensionConsumerContext(final @Reference BindingNormalizedNodeSerializer mappingCodec,
+            final @Reference(policyOption = ReferencePolicyOption.GREEDY)
+                List<RIBExtensionProviderActivator> extensionActivators) {
+        delegate = new SimpleRIBExtensionProviderContext();
+        extensionActivators.forEach(activator -> activator.startRIBExtensionProvider(delegate, mappingCodec));
     }
 
     @Deactivate
@@ -40,6 +36,6 @@ public final class OSGiRIBExtensionConsumerContext extends ForwardingRIBExtensio
 
     @Override
     RIBExtensionProviderContext delegate() {
-        return verifyNotNull(delegate);
+        return verifyNotNull(delegate, "Attempted to access deactived component");
     }
 }
index 0662898059ddfd42eaa0be7946ef87bf785224bc..5138dd8d8c00bebf36106bda713f1ca6e2a73043 100644 (file)
@@ -7,8 +7,7 @@
  */
 package org.opendaylight.protocol.bmp.spi.registry;
 
-import com.google.common.annotations.VisibleForTesting;
-import java.util.Arrays;
+import com.google.common.collect.ImmutableList;
 import java.util.List;
 import java.util.ServiceLoader;
 import javax.inject.Inject;
@@ -28,19 +27,10 @@ public final class DefaultBmpExtensionConsumerContext implements BmpExtensionCon
     private final @NonNull SimpleBmpExtensionProviderContext delegate = new SimpleBmpExtensionProviderContext();
 
     public DefaultBmpExtensionConsumerContext() {
-        this(ServiceLoader.load(BmpExtensionProviderActivator.class));
-    }
-
-    @VisibleForTesting
-    public DefaultBmpExtensionConsumerContext(final BmpExtensionProviderActivator... extensionActivators) {
-        this(Arrays.asList(extensionActivators));
+        this(ImmutableList.copyOf(ServiceLoader.load(BmpExtensionProviderActivator.class)));
     }
 
     @Inject
-    public DefaultBmpExtensionConsumerContext(final Iterable<BmpExtensionProviderActivator> extensionActivators) {
-        extensionActivators.forEach(activator -> activator.start(delegate));
-    }
-
     @Activate
     public DefaultBmpExtensionConsumerContext(final @Reference(policyOption = ReferencePolicyOption.GREEDY)
             List<BmpExtensionProviderActivator> extensionActivators) {
index ec78d0698fcd106694e836974673441051023895..31b69b74cbc3dc7eeed734cf17780dd935a5e35a 100644 (file)
@@ -13,6 +13,7 @@ import static org.junit.Assert.fail;
 
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
+import java.util.List;
 import org.junit.Test;
 import org.opendaylight.protocol.rsvp.parser.impl.subobject.rro.RROIpv4PrefixSubobjectParser;
 import org.opendaylight.protocol.rsvp.parser.impl.subobject.rro.RROIpv6PrefixSubobjectParser;
@@ -211,7 +212,7 @@ public class RROSubobjectParserTest {
 
     @Test
     public void testRROLabelSubobject() throws Exception {
-        final RSVPExtensionConsumerContext ctx = new DefaultRSVPExtensionConsumerContext(new RSVPActivator());
+        final RSVPExtensionConsumerContext ctx = new DefaultRSVPExtensionConsumerContext(List.of(new RSVPActivator()));
         final RROLabelSubobjectParser parser = new RROLabelSubobjectParser(ctx.getLabelHandlerRegistry());
         final SubobjectContainerBuilder subs = new SubobjectContainerBuilder();
         subs.setSubobjectType(new LabelCaseBuilder().setLabel(
index b2d73cbb36ff8cc15bbeb6815be6b6917cb21f3a..c5e38855de5b20c9c625c3ad72777ae40bc19167 100644 (file)
@@ -8,8 +8,7 @@
  */
 package org.opendaylight.protocol.rsvp.parser.spi.pojo;
 
-import com.google.common.annotations.VisibleForTesting;
-import java.util.Arrays;
+import com.google.common.collect.ImmutableList;
 import java.util.List;
 import java.util.ServiceLoader;
 import javax.inject.Inject;
@@ -39,19 +38,10 @@ public final class DefaultRSVPExtensionConsumerContext implements RSVPExtensionC
     private final @NonNull SimpleRSVPExtensionProviderContext delegate = new SimpleRSVPExtensionProviderContext();
 
     public DefaultRSVPExtensionConsumerContext() {
-        this(ServiceLoader.load(RSVPExtensionProviderActivator.class));
-    }
-
-    @VisibleForTesting
-    public DefaultRSVPExtensionConsumerContext(final RSVPExtensionProviderActivator... extensionActivators) {
-        this(Arrays.asList(extensionActivators));
+        this(ImmutableList.copyOf(ServiceLoader.load(RSVPExtensionProviderActivator.class)));
     }
 
     @Inject
-    public DefaultRSVPExtensionConsumerContext(final Iterable<RSVPExtensionProviderActivator> extensionActivators) {
-        extensionActivators.forEach(activator -> activator.start(delegate));
-    }
-
     @Activate
     public DefaultRSVPExtensionConsumerContext(final @Reference(policyOption = ReferencePolicyOption.GREEDY)
             List<RSVPExtensionProviderActivator> extensionActivators) {