felix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From fmesc...@apache.org
Subject svn commit: r799629 - /felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java
Date Fri, 31 Jul 2009 14:56:34 GMT
Author: fmeschbe
Date: Fri Jul 31 14:56:34 2009
New Revision: 799629

URL: http://svn.apache.org/viewvc?rev=799629&view=rev
Log:
FELIX-1414 Reverting changes of FELIX-950 and FELIX-1213 thus not rebinding
services for unary references in case of the registration of a higher
ranking service.

Modified:
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java

Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java?rev=799629&r1=799628&r2=799629&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java
(original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java
Fri Jul 31 14:56:34 2009
@@ -19,9 +19,6 @@
 package org.apache.felix.scr.impl.manager;
 
 
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Dictionary;
@@ -30,7 +27,6 @@
 import java.util.Map;
 
 import org.apache.felix.scr.Reference;
-import org.apache.felix.scr.impl.helper.ReflectionHelper;
 import org.apache.felix.scr.impl.metadata.ReferenceMetadata;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.Constants;
@@ -266,21 +262,6 @@
 
                     m_componentManager.reactivate( ComponentConstants.DEACTIVATION_REASON_REFERENCE
);
                 }
-                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( ComponentConstants.DEACTIVATION_REASON_REFERENCE
);
-                    }
-                }
             }
 
             // otherwise bind if we have a bind method and the service needs
@@ -293,21 +274,6 @@
                     // bind the service, getting it if required
                     invokeBindMethod( reference );
                 }
-                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] ) )
-                    {
-                        // bind the service, getting it if required
-                        invokeBindMethod( reference );
-
-                        // unbind the old service reference
-                        unbind( boundRefs );
-                    }
-                }
             }
         }
 
@@ -664,56 +630,6 @@
 
 
     /**
-     * Returns <code>true</code> if the <code>newReference</code>
has a higher
-     * ranking than the <code>oldReference</code>, otherwise <code>false</code>
-     * is returned.
-     * <p>
-     * The higher ranking of a service reference is defined in the OSGi
-     * Compendium Services Specification as the service with the highest service
-     * ranking as specified by the service.ranking property. If both services
-     * have the same service ranking, then the service with the lowest service
-     * ID as specified by the service.id property is chosen.
-     *
-     * @param newReference The ServiceReference representing the newly added
-     *      Service
-     * @param oldReference The ServiceReference representing the service which
-     *      is already bound to the component
-     *
-     * @return <code>true</code> if <code>newReference</code> has
higher ranking
-     */
-    private boolean isHigher( ServiceReference newReference, ServiceReference oldReference
)
-    {
-        // get and compare the service.ranking properties
-        int nrRank = getServiceRanking( newReference );
-        int orRank = getServiceRanking( oldReference );
-        if ( nrRank > orRank )
-        {
-            return true;
-        }
-        else if ( nrRank < orRank )
-        {
-            return false;
-        }
-
-        // no ranks are equal, compare the service ids. These ids are never equal,
-        // so unless a problem exists, this should be decisive
-        try
-        {
-            return getServiceId( newReference ) < getServiceId( oldReference );
-        }
-        catch ( Exception e )
-        {
-            // ignore, we don't expect an exception, since the servid.id
-            // property is set by the framework as a Long value; so we neither
-            // expect this property to be null nor to be anything else than Long
-        }
-
-        // fall back to newReference not being higher
-        return false;
-    }
-
-
-    /**
      * Returns the value of the <code>service.ranking</code> service property
      * if the property exists and is of type <code>java.lang.Integer</code>.
If
      * the property does not exist or is of another type, zero is returned as



Mime
View raw message