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>
*/
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;
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) {
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
@Override
RIBExtensionProviderContext delegate() {
- return verifyNotNull(delegate);
+ return verifyNotNull(delegate, "Attempted to access deactived component");
}
}
*/
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;
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) {
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;
@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(
*/
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;
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) {