Author: fmeschbe
Date: Wed Jun 10 12:06:41 2009
New Revision: 783311
URL: http://svn.apache.org/viewvc?rev=783311&view=rev
Log:
FELIX-1213 Reactivate component with static reference if a new service
with higher ranking than a bound service is registered
Modified:
felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/DependencyManager.java
Modified:
felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/DependencyManager.java
URL:
http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/DependencyManager.java?rev=783311&r1=783310&r2=783311&view=diff
==============================================================================
---
felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/DependencyManager.java
(original)
+++
felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/DependencyManager.java
Wed Jun 10 12:06:41 2009
@@ -230,6 +230,21 @@
m_componentManager.reactivate();
}
+ else
+ {
+ // single service binding only which already exists
+ // we have to check whether the bound service is to be
+ // replaced
+ ServiceReference[] boundRefs = getBoundServiceReferences();
+ if ( isHigher( reference, boundRefs[0] ) )
+ {
+ m_componentManager.log( LogService.LOG_DEBUG,
"Dependency Manager: Service "
+ + m_dependencyMetadata.getName() + " with higher
ranking registered, reactivate component",
+ m_componentManager.getComponentMetadata(), null );
+
+ m_componentManager.reactivate();
+ }
+ }
}
// otherwise bind if we have a bind method and the service needs