Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id BB33F2009F3 for ; Fri, 20 May 2016 15:44:05 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id B9B13160A0E; Fri, 20 May 2016 13:44:05 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id B5FED1609B1 for ; Fri, 20 May 2016 15:44:04 +0200 (CEST) Received: (qmail 34770 invoked by uid 500); 20 May 2016 13:44:04 -0000 Mailing-List: contact commits-help@felix.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@felix.apache.org Delivered-To: mailing list commits@felix.apache.org Received: (qmail 34761 invoked by uid 99); 20 May 2016 13:44:03 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 20 May 2016 13:44:03 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id 86CA6C009F for ; Fri, 20 May 2016 13:44:03 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.799 X-Spam-Level: * X-Spam-Status: No, score=1.799 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RP_MATCHES_RCVD=-0.001] autolearn=disabled Received: from mx2-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id WNk5Ibl2PwUg for ; Fri, 20 May 2016 13:44:01 +0000 (UTC) Received: from mailrelay1-us-west.apache.org (mailrelay1-us-west.apache.org [209.188.14.139]) by mx2-lw-eu.apache.org (ASF Mail Server at mx2-lw-eu.apache.org) with ESMTP id D909C5FB8C for ; Fri, 20 May 2016 13:44:00 +0000 (UTC) Received: from svn01-us-west.apache.org (svn.apache.org [10.41.0.6]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id A6741E0175 for ; Fri, 20 May 2016 13:43:59 +0000 (UTC) Received: from svn01-us-west.apache.org (localhost [127.0.0.1]) by svn01-us-west.apache.org (ASF Mail Server at svn01-us-west.apache.org) with ESMTP id A2E163A0056 for ; Fri, 20 May 2016 13:43:59 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1744736 - in /felix/trunk/scr/src/main/java/org/apache/felix/scr/impl: BundleComponentActivator.java ComponentRegistry.java config/ConfigurableComponentHolder.java config/RegionConfigurationSupport.java manager/AbstractComponentManager.java Date: Fri, 20 May 2016 13:43:59 -0000 To: commits@felix.apache.org From: gnodet@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20160520134359.A2E163A0056@svn01-us-west.apache.org> archived-at: Fri, 20 May 2016 13:44:05 -0000 Author: gnodet Date: Fri May 20 13:43:54 2016 New Revision: 1744736 URL: http://svn.apache.org/viewvc?rev=1744736&view=rev Log: [FELIX-5243] Break dependency to ComponentRegistry Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/BundleComponentActivator.java felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/ComponentRegistry.java felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/config/ConfigurableComponentHolder.java felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/config/RegionConfigurationSupport.java felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/BundleComponentActivator.java URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/BundleComponentActivator.java?rev=1744736&r1=1744735&r2=1744736&view=diff ============================================================================== --- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/BundleComponentActivator.java (original) +++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/BundleComponentActivator.java Fri May 20 13:43:54 2016 @@ -849,8 +849,7 @@ public class BundleComponentActivator im } public RegionConfigurationSupport setRegionConfigurationSupport(ServiceReference reference) { - RegionConfigurationSupport trialRcs = new RegionConfigurationSupport(reference, m_componentRegistry); - RegionConfigurationSupport rcs = m_componentRegistry.registerRegionConfigurationSupport(trialRcs); + RegionConfigurationSupport rcs = m_componentRegistry.registerRegionConfigurationSupport(reference); for (ComponentHolder holder: m_holders) { rcs.configureComponentHolder(holder); Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/ComponentRegistry.java URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/ComponentRegistry.java?rev=1744736&r1=1744735&r2=1744736&view=diff ============================================================================== --- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/ComponentRegistry.java (original) +++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/ComponentRegistry.java Fri May 20 13:43:54 2016 @@ -40,6 +40,7 @@ import org.apache.felix.scr.impl.metadat import org.osgi.framework.Bundle; import org.osgi.framework.Constants; import org.osgi.framework.ServiceReference; +import org.osgi.service.cm.ConfigurationAdmin; import org.osgi.service.component.ComponentConstants; import org.osgi.service.component.ComponentException; import org.osgi.service.log.LogService; @@ -52,9 +53,6 @@ import org.osgi.service.log.LogService; public class ComponentRegistry { - // the name of the ConfigurationAdmin service - public static final String CONFIGURATION_ADMIN = "org.osgi.service.cm.ConfigurationAdmin"; - /** * The map of known components indexed by component name. The values are * either null (for name reservations) or implementations @@ -526,7 +524,18 @@ public class ComponentRegistry private final ConcurrentMap bundleToRcsMap = new ConcurrentHashMap(); - public RegionConfigurationSupport registerRegionConfigurationSupport( + public RegionConfigurationSupport registerRegionConfigurationSupport( + ServiceReference reference) { + RegionConfigurationSupport trialRcs = new RegionConfigurationSupport(reference) { + protected Collection> getComponentHolders(TargetedPID pid) + { + return ComponentRegistry.this.getComponentHoldersByPid(pid); + } + }; + return registerRegionConfigurationSupport(trialRcs); + } + + public RegionConfigurationSupport registerRegionConfigurationSupport( RegionConfigurationSupport trialRcs) { Long bundleId = trialRcs.getBundleId(); RegionConfigurationSupport existing = null; Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/config/ConfigurableComponentHolder.java URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/config/ConfigurableComponentHolder.java?rev=1744736&r1=1744735&r2=1744736&view=diff ============================================================================== --- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/config/ConfigurableComponentHolder.java (original) +++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/config/ConfigurableComponentHolder.java Fri May 20 13:43:54 2016 @@ -29,7 +29,6 @@ import java.util.Iterator; import java.util.List; import java.util.Map; -import org.apache.felix.scr.impl.Activator; import org.apache.felix.scr.impl.helper.ComponentMethods; import org.apache.felix.scr.impl.helper.SimpleLogger; import org.apache.felix.scr.impl.manager.AbstractComponentManager; @@ -819,7 +818,12 @@ public class ConfigurableComponentHolder public boolean isLogEnabled( int level ) { - return Activator.isLogEnabled( level ); + ComponentActivator activator = getActivator(); + if ( activator != null ) + { + return activator.isLogEnabled( level ); + } + return false; } public void log( int level, String message, Throwable ex ) Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/config/RegionConfigurationSupport.java URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/config/RegionConfigurationSupport.java?rev=1744736&r1=1744735&r2=1744736&view=diff ============================================================================== --- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/config/RegionConfigurationSupport.java (original) +++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/config/RegionConfigurationSupport.java Fri May 20 13:43:54 2016 @@ -29,7 +29,6 @@ import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; import org.apache.felix.scr.impl.Activator; -import org.apache.felix.scr.impl.ComponentRegistry; import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; import org.osgi.framework.Constants; @@ -43,15 +42,15 @@ import org.osgi.service.cm.Configuration import org.osgi.service.cm.ConfigurationPermission; import org.osgi.service.log.LogService; -public class RegionConfigurationSupport implements ConfigurationListener +public abstract class RegionConfigurationSupport implements ConfigurationListener { + // the name of the ConfigurationAdmin service + public static final String CONFIGURATION_ADMIN = "org.osgi.service.cm.ConfigurationAdmin"; + private final BundleContext caBundleContext; private final Long bundleId; - // the registry of components to be configured - private final ComponentRegistry m_registry; - private final AtomicInteger reference = new AtomicInteger(1); // the service m_registration of the ConfigurationListener service @@ -63,9 +62,8 @@ public class RegionConfigurationSupport * @param bundleContext of the ConfigurationAdmin we are tracking * @param registry */ - public RegionConfigurationSupport(ServiceReference reference, final ComponentRegistry registry) + public RegionConfigurationSupport(ServiceReference reference) { - this.m_registry = registry; Bundle bundle = reference.getBundle(); this.bundleId = bundle.getBundleId(); this.caBundleContext = bundle.getBundleContext(); @@ -124,7 +122,7 @@ public class RegionConfigurationSupport } final List confPids = holder.getComponentMetadata().getConfigurationPid(); - final ServiceReference caRef = bundleContext.getServiceReference(ComponentRegistry.CONFIGURATION_ADMIN); + final ServiceReference caRef = bundleContext.getServiceReference(CONFIGURATION_ADMIN); if (caRef != null) { final Object cao = bundleContext.getService(caRef); @@ -246,16 +244,7 @@ public class RegionConfigurationSupport // iterate over all components which must be configured with this pid // (since DS 1.2, components may specify a specific configuration PID (112.4.4 configuration-pid) - Collection> holders; - - if (factoryPid == null) - { - holders = this.m_registry.getComponentHoldersByPid(pid); - } - else - { - holders = this.m_registry.getComponentHoldersByPid(factoryPid); - } + Collection> holders = getComponentHolders(factoryPid != null ? factoryPid : pid); Activator.log(LogService.LOG_DEBUG, null, "configurationEvent: Handling {0} of Configuration PID={1} for component holders {2}", new Object[] {getEventType(event), pid, holders}, @@ -402,6 +391,8 @@ public class RegionConfigurationSupport } } + protected abstract Collection> getComponentHolders(TargetedPID pid); + private String getEventType(ConfigurationEvent event) { @@ -463,8 +454,7 @@ public class RegionConfigurationSupport private ConfigurationInfo getConfigurationInfo(final TargetedPID pid, TargetedPID targetedPid, ComponentHolder componentHolder, final BundleContext bundleContext) { - final ServiceReference caRef = bundleContext - .getServiceReference(ComponentRegistry.CONFIGURATION_ADMIN); + final ServiceReference caRef = bundleContext.getServiceReference(CONFIGURATION_ADMIN); if (caRef != null) { try Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java?rev=1744736&r1=1744735&r2=1744736&view=diff ============================================================================== --- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java (original) +++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java Fri May 20 13:43:54 2016 @@ -40,7 +40,6 @@ import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.locks.ReentrantReadWriteLock; -import org.apache.felix.scr.impl.Activator; import org.apache.felix.scr.impl.config.ComponentActivator; import org.apache.felix.scr.impl.config.ComponentContainer; import org.apache.felix.scr.impl.config.ComponentManager; @@ -1028,7 +1027,12 @@ public abstract class AbstractComponentM */ public boolean isLogEnabled( int level ) { - return Activator.isLogEnabled( level ); + ComponentActivator activator = getActivator(); + if ( activator != null ) + { + return activator.isLogEnabled( level ); + } + return false; }