X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fblueprint%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fblueprint%2Fext%2FComponentProcessor.java;h=8e8d98ff365d62389aba90459f7abe0ccc6601ee;hb=HEAD;hp=84847a14b1687f87cc7b94bdb58fb4b4eff2f7be;hpb=047e0a0a712e069ea59c503cbe757392d35974a5;p=controller.git diff --git a/opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/ext/ComponentProcessor.java b/opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/ext/ComponentProcessor.java index 84847a14b1..8e8d98ff36 100644 --- a/opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/ext/ComponentProcessor.java +++ b/opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/ext/ComponentProcessor.java @@ -10,8 +10,8 @@ package org.opendaylight.controller.blueprint.ext; import com.google.common.base.Strings; import java.util.ArrayList; import java.util.Dictionary; -import java.util.Hashtable; import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.concurrent.atomic.AtomicBoolean; import org.apache.aries.blueprint.ComponentDefinitionRegistry; @@ -23,9 +23,8 @@ import org.apache.aries.util.AriesFrameworkUtil; import org.opendaylight.controller.blueprint.BlueprintContainerRestartService; import org.osgi.framework.Bundle; import org.osgi.framework.Constants; +import org.osgi.framework.FrameworkUtil; import org.osgi.framework.ServiceRegistration; -import org.osgi.service.blueprint.reflect.BeanProperty; -import org.osgi.service.blueprint.reflect.ComponentMetadata; import org.osgi.service.blueprint.reflect.ValueMetadata; import org.osgi.service.cm.ManagedService; import org.slf4j.Logger; @@ -44,8 +43,8 @@ public class ComponentProcessor implements ComponentDefinitionRegistryProcessor private static final String CM_PERSISTENT_ID_PROPERTY = "persistentId"; private final List> managedServiceRegs = new ArrayList<>(); - private Bundle bundle; - private BlueprintContainerRestartService blueprintContainerRestartService; + private Bundle bundle = null; + private BlueprintContainerRestartService blueprintContainerRestartService = null; private boolean restartDependentsOnUpdates; private boolean useDefaultForReferenceTypes; @@ -54,7 +53,7 @@ public class ComponentProcessor implements ComponentDefinitionRegistryProcessor } public void setBlueprintContainerRestartService(final BlueprintContainerRestartService restartService) { - this.blueprintContainerRestartService = restartService; + blueprintContainerRestartService = restartService; } public void setRestartDependentsOnUpdates(final boolean restartDependentsOnUpdates) { @@ -66,21 +65,19 @@ public class ComponentProcessor implements ComponentDefinitionRegistryProcessor } public void destroy() { - for (ServiceRegistration reg: managedServiceRegs) { - AriesFrameworkUtil.safeUnregisterService(reg); - } + managedServiceRegs.forEach(AriesFrameworkUtil::safeUnregisterService); } @Override public void process(final ComponentDefinitionRegistry registry) { LOG.debug("{}: In process", logName()); - for (String name : registry.getComponentDefinitionNames()) { - ComponentMetadata component = registry.getComponentDefinition(name); - if (component instanceof MutableBeanMetadata) { - processMutableBeanMetadata((MutableBeanMetadata) component); - } else if (component instanceof MutableServiceReferenceMetadata) { - processServiceReferenceMetadata((MutableServiceReferenceMetadata)component); + for (var name : registry.getComponentDefinitionNames()) { + final var component = registry.getComponentDefinition(name); + if (component instanceof MutableBeanMetadata bean) { + processMutableBeanMetadata(bean); + } else if (component instanceof MutableServiceReferenceMetadata serviceRef) { + processServiceReferenceMetadata(serviceRef); } } } @@ -111,18 +108,15 @@ public class ComponentProcessor implements ComponentDefinitionRegistryProcessor LOG.debug("{}: Found PropertyPlaceholder bean: {}, runtime {}", logName(), bean.getId(), bean.getRuntimeClass()); - for (BeanProperty prop : bean.getProperties()) { + for (var prop : bean.getProperties()) { if (CM_PERSISTENT_ID_PROPERTY.equals(prop.getName())) { - if (prop.getValue() instanceof ValueMetadata) { - ValueMetadata persistentId = (ValueMetadata)prop.getValue(); - - LOG.debug("{}: Found {} property, value : {}", logName(), - CM_PERSISTENT_ID_PROPERTY, persistentId.getStringValue()); - + if (prop.getValue() instanceof ValueMetadata persistentId) { + LOG.debug("{}: Found {} property, value : {}", logName(), CM_PERSISTENT_ID_PROPERTY, + persistentId.getStringValue()); registerManagedService(persistentId.getStringValue()); } else { - LOG.debug("{}: {} property metadata {} is not instanceof ValueMetadata", - logName(), CM_PERSISTENT_ID_PROPERTY, prop.getValue()); + LOG.debug("{}: {} property metadata {} is not instanceof ValueMetadata", logName(), + CM_PERSISTENT_ID_PROPERTY, prop.getValue()); } break; @@ -134,7 +128,7 @@ public class ComponentProcessor implements ComponentDefinitionRegistryProcessor private void registerManagedService(final String persistentId) { // Register a ManagedService so we get updates from the ConfigAdmin when the cfg file corresponding // to the persistentId changes. - final ManagedService managedService = new ManagedService() { + final var managedService = new ManagedService() { private final AtomicBoolean initialUpdate = new AtomicBoolean(true); private volatile Dictionary previousProperties; @@ -154,12 +148,11 @@ public class ComponentProcessor implements ComponentDefinitionRegistryProcessor } }; - Dictionary props = new Hashtable<>(); - props.put(Constants.SERVICE_PID, persistentId); - props.put(Constants.BUNDLE_SYMBOLICNAME, bundle.getSymbolicName()); - props.put(Constants.BUNDLE_VERSION, bundle.getHeaders().get(Constants.BUNDLE_VERSION)); - managedServiceRegs.add(bundle.getBundleContext().registerService(ManagedService.class.getName(), - managedService, props)); + managedServiceRegs.add(bundle.getBundleContext().registerService(ManagedService.class, managedService, + FrameworkUtil.asDictionary(Map.of( + Constants.SERVICE_PID, persistentId, + Constants.BUNDLE_SYMBOLICNAME, bundle.getSymbolicName(), + Constants.BUNDLE_VERSION, bundle.getHeaders().get(Constants.BUNDLE_VERSION))))); } private String logName() {