You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2018/01/20 15:45:06 UTC
svn commit: r1821754 - in
/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager:
AbstractComponentManager.java SingleComponentManager.java
Author: cziegeler
Date: Sat Jan 20 15:45:06 2018
New Revision: 1821754
URL: http://svn.apache.org/viewvc?rev=1821754&view=rev
Log:
FELIX-5775 : Service properties not updated for lazy service when configuration changes
Modified:
felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java
felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java
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=1821754&r1=1821753&r2=1821754&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 Sat Jan 20 15:45:06 2018
@@ -446,6 +446,7 @@ public abstract class AbstractComponentM
long count = taskCounter.incrementAndGet();
+ @Override
public void run()
{
try
@@ -537,6 +538,7 @@ public abstract class AbstractComponentM
long count = taskCounter.incrementAndGet();
+ @Override
public void run()
{
try
@@ -591,6 +593,7 @@ public abstract class AbstractComponentM
//---------- Component interface ------------------------------------------
+ @Override
public long getId()
{
return m_componentId;
@@ -969,6 +972,11 @@ public abstract class AbstractComponentM
return true;
}
+ protected ServiceRegistration<S> getServiceRegistration()
+ {
+ return registrationManager.getServiceRegistration();
+ }
+
AtomicInteger getTrackingCount()
{
return m_trackingCount;
@@ -1085,6 +1093,7 @@ public abstract class AbstractComponentM
/**
* Returns <code>true</code> if logging for the given level is enabled.
*/
+ @Override
public boolean isLogEnabled(int level)
{
ComponentActivator activator = getActivator();
@@ -1095,6 +1104,7 @@ public abstract class AbstractComponentM
return false;
}
+ @Override
public void log(int level, String message, Throwable ex)
{
ComponentActivator activator = getActivator();
@@ -1104,6 +1114,7 @@ public abstract class AbstractComponentM
}
}
+ @Override
public void log(int level, String message, Object[] arguments, Throwable ex)
{
ComponentActivator activator = getActivator();
@@ -1227,6 +1238,7 @@ public abstract class AbstractComponentM
return m_dependencyManagers;
}
+ @Override
public List<? extends ReferenceManager<S, ?>> getReferenceManagers()
{
return m_dependencyManagers;
@@ -1279,6 +1291,7 @@ public abstract class AbstractComponentM
/* (non-Javadoc)
* @see org.apache.felix.scr.impl.manager.ComponentManager#getProperties()
*/
+ @Override
public abstract Map<String, Object> getProperties();
public abstract void setServiceProperties(Dictionary<String, ?> serviceProperties);
@@ -1401,6 +1414,7 @@ public abstract class AbstractComponentM
return m_container.getComponentMetadata();
}
+ @Override
public int getSpecState()
{
return getState().getSpecState();
Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java?rev=1821754&r1=1821753&r2=1821754&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java Sat Jan 20 15:45:06 2018
@@ -30,6 +30,7 @@ import java.util.concurrent.atomic.Atomi
import org.apache.felix.scr.impl.helper.ComponentMethod;
import org.apache.felix.scr.impl.helper.ComponentMethods;
import org.apache.felix.scr.impl.helper.MethodResult;
+import org.apache.felix.scr.impl.metadata.DSVersion;
import org.apache.felix.scr.impl.metadata.TargetedPID;
import org.osgi.framework.Bundle;
import org.osgi.framework.Constants;
@@ -108,12 +109,14 @@ public class SingleComponentManager<S> e
{
S tmpComponent = createImplementationObject( null, new SetImplementationObject<S>()
{
+ @Override
public void presetComponentContext( ComponentContextImpl<S> componentContext )
{
m_componentContext = componentContext;
}
+ @Override
public void resetImplementationObject( S implementationObject )
{
m_componentContext = null;
@@ -515,7 +518,7 @@ public class SingleComponentManager<S> e
if (m_componentContext != null)
{
m_componentContext.unsetServiceRegistration();
- }
+ }
}
@Override
@@ -528,9 +531,14 @@ public class SingleComponentManager<S> e
return super.getServiceProperties();
}
- final ServiceRegistration<S> getServiceRegistration()
+ @Override
+ protected ServiceRegistration<S> getServiceRegistration()
{
- return m_componentContext == null? null: m_componentContext.getServiceRegistration();
+ if ( getComponentMetadata().getDSVersion() == DSVersion.DS12Felix )
+ {
+ return m_componentContext != null ? m_componentContext.getServiceRegistration() : null;
+ }
+ return super.getServiceRegistration();
}
@@ -801,6 +809,7 @@ public class SingleComponentManager<S> e
return regProps.equals( props );
}
+ @Override
public S getService( Bundle bundle, ServiceRegistration<S> serviceRegistration )
{
if ( getActivator().enterCreate( serviceRegistration.getReference() ) )
@@ -838,7 +847,7 @@ public class SingleComponentManager<S> e
//This is backup. Normally done in createComponent.
getActivator().leaveCreate(serviceRegistration.getReference());
}
-
+
}
finally
{
@@ -930,6 +939,7 @@ public class SingleComponentManager<S> e
}
+ @Override
public void ungetService( Bundle bundle, ServiceRegistration<S> serviceRegistration, S o )
{
obtainStateLock( );