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 2017/01/10 14:59:45 UTC

svn commit: r1778137 [2/2] - in /felix/trunk/osgi-r7/scr: ./ src/main/java/org/apache/felix/scr/impl/ src/main/java/org/apache/felix/scr/impl/helper/ src/main/java/org/apache/felix/scr/impl/inject/ src/main/java/org/apache/felix/scr/impl/inject/field/ ...

Copied: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/ActivateMethod.java (from r1778136, felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ActivateMethod.java)
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/ActivateMethod.java?p2=felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/ActivateMethod.java&p1=felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ActivateMethod.java&r1=1778136&r2=1778137&rev=1778137&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ActivateMethod.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/ActivateMethod.java Tue Jan 10 14:59:45 2017
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.scr.impl.inject;
+package org.apache.felix.scr.impl.inject.methods;
 
 
 import java.lang.reflect.InvocationTargetException;
@@ -27,15 +27,19 @@ import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.felix.scr.impl.helper.ComponentMethod;
-import org.apache.felix.scr.impl.helper.MethodResult;
 import org.apache.felix.scr.impl.helper.SimpleLogger;
+import org.apache.felix.scr.impl.inject.ActivatorParameter;
+import org.apache.felix.scr.impl.inject.Annotations;
+import org.apache.felix.scr.impl.inject.ClassUtils;
+import org.apache.felix.scr.impl.inject.LifecycleMethod;
+import org.apache.felix.scr.impl.inject.MethodResult;
+import org.apache.felix.scr.impl.inject.SuitableMethodNotAccessibleException;
 import org.apache.felix.scr.impl.metadata.DSVersion;
 import org.osgi.service.component.ComponentContext;
 import org.osgi.service.log.LogService;
 
 
-public class ActivateMethod extends BaseMethod<ActivatorParameter> implements ComponentMethod
+public class ActivateMethod extends BaseMethod<ActivatorParameter> implements LifecycleMethod
 {
 
     protected final boolean m_supportsInterfaces;
@@ -285,7 +289,7 @@ public class ActivateMethod extends Base
     }
 
     /**
-     * @see org.apache.felix.scr.impl.helper.ComponentMethod#invoke(java.lang.Object, org.osgi.service.component.ComponentContext, int, org.apache.felix.scr.impl.helper.MethodResult, org.apache.felix.scr.impl.helper.SimpleLogger)
+     * @see org.apache.felix.scr.impl.inject.LifecycleMethod#invoke(java.lang.Object, org.osgi.service.component.ComponentContext, int, org.apache.felix.scr.impl.inject.MethodResult, org.apache.felix.scr.impl.helper.SimpleLogger)
      */
     public MethodResult invoke(final Object componentInstance, 
     		final ComponentContext componentContext, 

Copied: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/BaseMethod.java (from r1778136, felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/BaseMethod.java)
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/BaseMethod.java?p2=felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/BaseMethod.java&p1=felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/BaseMethod.java&r1=1778136&r2=1778137&rev=1778137&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/BaseMethod.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/BaseMethod.java Tue Jan 10 14:59:45 2017
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.scr.impl.inject;
+package org.apache.felix.scr.impl.inject.methods;
 
 
 import java.lang.reflect.InvocationTargetException;
@@ -27,8 +27,10 @@ import java.security.PrivilegedAction;
 import java.util.Arrays;
 import java.util.Map;
 
-import org.apache.felix.scr.impl.helper.MethodResult;
 import org.apache.felix.scr.impl.helper.SimpleLogger;
+import org.apache.felix.scr.impl.inject.ClassUtils;
+import org.apache.felix.scr.impl.inject.MethodResult;
+import org.apache.felix.scr.impl.inject.SuitableMethodNotAccessibleException;
 import org.apache.felix.scr.impl.metadata.DSVersion;
 import org.osgi.service.log.LogService;
 
@@ -344,7 +346,7 @@ public abstract class BaseMethod<P>
             // be loaded
             if ( logger.isLogEnabled( LogService.LOG_WARNING ) )
             {
-                StringBuffer buf = new StringBuffer();
+                StringBuilder buf = new StringBuilder();
                 buf.append( "Failure loooking up method " ).append( name ).append( '(' );
                 for ( int i = 0; parameterTypes != null && i < parameterTypes.length; i++ )
                 {

Copied: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/BindMethod.java (from r1778136, felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/BindMethod.java)
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/BindMethod.java?p2=felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/BindMethod.java&p1=felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/BindMethod.java&r1=1778136&r2=1778137&rev=1778137&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/BindMethod.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/BindMethod.java Tue Jan 10 14:59:45 2017
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.scr.impl.inject;
+package org.apache.felix.scr.impl.inject.methods;
 
 
 import java.lang.reflect.InvocationTargetException;
@@ -26,10 +26,11 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.felix.scr.impl.helper.ComponentServiceObjectsHelper;
-import org.apache.felix.scr.impl.helper.MethodResult;
 import org.apache.felix.scr.impl.helper.ReadOnlyDictionary;
 import org.apache.felix.scr.impl.helper.SimpleLogger;
+import org.apache.felix.scr.impl.inject.BindParameters;
+import org.apache.felix.scr.impl.inject.ClassUtils;
+import org.apache.felix.scr.impl.inject.SuitableMethodNotAccessibleException;
 import org.apache.felix.scr.impl.manager.ComponentContextImpl;
 import org.apache.felix.scr.impl.manager.RefPair;
 import org.apache.felix.scr.impl.metadata.DSVersion;
@@ -39,9 +40,10 @@ import org.osgi.service.log.LogService;
 
 /**
  * Component method to be invoked on service (un)binding.
+ * @param <S>
  */
 public class BindMethod extends BaseMethod<BindParameters>
-implements org.apache.felix.scr.impl.helper.ReferenceMethod
+implements org.apache.felix.scr.impl.inject.ReferenceMethod
 {
     private final String m_referenceClassName;
 
@@ -639,22 +641,18 @@ implements org.apache.felix.scr.impl.hel
             { ClassUtils.MAP_CLASS }, acceptPrivate, acceptPackage, logger );
     }
 
-    public <S, T> boolean getServiceObject( ComponentContextImpl<S> key, RefPair<S, T> refPair, BundleContext context, SimpleLogger logger )
+    public <S, T> boolean getServiceObject( final BindParameters parameters, BundleContext context, SimpleLogger logger )
     {
         //??? this resolves which we need.... better way?
-        if ( refPair.getServiceObject(key) == null && methodExists( logger ) )
+        if ( parameters.getRefPair().getServiceObject(parameters.getComponentContext()) == null && methodExists( logger ) )
         {
             if ( m_paramTypes.contains(ParamType.serviceType) ) {
-                return refPair.getServiceObject(key, context, logger);
+                return parameters.getRefPair().getServiceObject(parameters.getComponentContext(), context, logger);
             }
         }
         return true;
     }
 
-    public MethodResult invoke(Object componentInstance, ComponentContextImpl<?> componentContext, RefPair<?, ?> refPair, MethodResult methodCallFailureResult, SimpleLogger logger) {
-        return invoke(componentInstance, new BindParameters(componentContext, refPair), methodCallFailureResult, logger);
-    }
-
     @Override
     protected Object[] getParameters( Method method, BindParameters bp )
     {

Copied: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/BindMethods.java (from r1778136, felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/BindMethods.java)
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/BindMethods.java?p2=felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/BindMethods.java&p1=felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/BindMethods.java&r1=1778136&r2=1778137&rev=1778137&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/BindMethods.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/BindMethods.java Tue Jan 10 14:59:45 2017
@@ -16,17 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+package org.apache.felix.scr.impl.inject.methods;
 
 
-package org.apache.felix.scr.impl.inject;
-
-
-import org.apache.felix.scr.impl.helper.InitReferenceMethod;
-import org.apache.felix.scr.impl.helper.ReferenceMethod;
-import org.apache.felix.scr.impl.helper.ReferenceMethods;
-import org.apache.felix.scr.impl.inject.BindMethod;
-import org.apache.felix.scr.impl.inject.UnbindMethod;
-import org.apache.felix.scr.impl.inject.UpdatedMethod;
+import org.apache.felix.scr.impl.inject.InitReferenceMethod;
+import org.apache.felix.scr.impl.inject.ReferenceMethod;
+import org.apache.felix.scr.impl.inject.ReferenceMethods;
 import org.apache.felix.scr.impl.metadata.DSVersion;
 import org.apache.felix.scr.impl.metadata.ReferenceMetadata;
 

Copied: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/DeactivateMethod.java (from r1778136, felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/DeactivateMethod.java)
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/DeactivateMethod.java?p2=felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/DeactivateMethod.java&p1=felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/DeactivateMethod.java&r1=1778136&r2=1778137&rev=1778137&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/DeactivateMethod.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/DeactivateMethod.java Tue Jan 10 14:59:45 2017
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.scr.impl.inject;
+package org.apache.felix.scr.impl.inject.methods;
 
 import org.apache.felix.scr.impl.metadata.DSVersion;
 

Copied: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/ModifiedMethod.java (from r1778136, felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ModifiedMethod.java)
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/ModifiedMethod.java?p2=felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/ModifiedMethod.java&p1=felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ModifiedMethod.java&r1=1778136&r2=1778137&rev=1778137&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ModifiedMethod.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/ModifiedMethod.java Tue Jan 10 14:59:45 2017
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.scr.impl.inject;
+package org.apache.felix.scr.impl.inject.methods;
 
 import org.apache.felix.scr.impl.metadata.DSVersion;
 

Copied: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/UnbindMethod.java (from r1778136, felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/UnbindMethod.java)
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/UnbindMethod.java?p2=felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/UnbindMethod.java&p1=felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/UnbindMethod.java&r1=1778136&r2=1778137&rev=1778137&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/UnbindMethod.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/UnbindMethod.java Tue Jan 10 14:59:45 2017
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.scr.impl.inject;
+package org.apache.felix.scr.impl.inject.methods;
 
 import org.apache.felix.scr.impl.metadata.DSVersion;
 
@@ -25,7 +25,7 @@ import org.apache.felix.scr.impl.metadat
  * Component method to be invoked on service unbinding.
  */
 public class UnbindMethod extends BindMethod
-implements org.apache.felix.scr.impl.helper.ReferenceMethod
+implements org.apache.felix.scr.impl.inject.ReferenceMethod
 {
 
     public UnbindMethod( final String methodName,

Copied: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/UpdatedMethod.java (from r1778136, felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/UpdatedMethod.java)
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/UpdatedMethod.java?p2=felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/UpdatedMethod.java&p1=felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/UpdatedMethod.java&r1=1778136&r2=1778137&rev=1778137&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/UpdatedMethod.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/UpdatedMethod.java Tue Jan 10 14:59:45 2017
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.scr.impl.inject;
+package org.apache.felix.scr.impl.inject.methods;
 
 import org.apache.felix.scr.impl.metadata.DSVersion;
 
@@ -25,7 +25,7 @@ import org.apache.felix.scr.impl.metadat
  * Component method to be invoked on service property update of a bound service.
  */
 public class UpdatedMethod extends BindMethod
-implements org.apache.felix.scr.impl.helper.ReferenceMethod
+implements org.apache.felix.scr.impl.inject.ReferenceMethod
 {
 
     public UpdatedMethod( final String methodName,

Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java?rev=1778137&r1=1778136&r2=1778137&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java Tue Jan 10 14:59:45 2017
@@ -40,9 +40,9 @@ import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 
-import org.apache.felix.scr.impl.helper.ComponentMethods;
-import org.apache.felix.scr.impl.helper.MethodResult;
 import org.apache.felix.scr.impl.helper.SimpleLogger;
+import org.apache.felix.scr.impl.inject.ComponentMethods;
+import org.apache.felix.scr.impl.inject.MethodResult;
 import org.apache.felix.scr.impl.metadata.ComponentMetadata;
 import org.apache.felix.scr.impl.metadata.ReferenceMetadata;
 import org.apache.felix.scr.impl.metadata.ServiceMetadata;

Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/ComponentFactoryImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/ComponentFactoryImpl.java?rev=1778137&r1=1778136&r2=1778137&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/ComponentFactoryImpl.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/ComponentFactoryImpl.java Tue Jan 10 14:59:45 2017
@@ -28,7 +28,7 @@ import java.util.Map;
 
 import org.apache.felix.scr.component.ExtFactoryComponentInstance;
 import org.apache.felix.scr.impl.BundleComponentActivator;
-import org.apache.felix.scr.impl.helper.ComponentMethods;
+import org.apache.felix.scr.impl.inject.ComponentMethods;
 import org.apache.felix.scr.impl.metadata.ComponentMetadata;
 import org.apache.felix.scr.impl.metadata.ReferenceMetadata;
 import org.apache.felix.scr.impl.metadata.TargetedPID;

Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/ConfigurableComponentHolder.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/ConfigurableComponentHolder.java?rev=1778137&r1=1778136&r2=1778137&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/ConfigurableComponentHolder.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/ConfigurableComponentHolder.java Tue Jan 10 14:59:45 2017
@@ -29,8 +29,8 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.felix.scr.impl.helper.ComponentMethods;
 import org.apache.felix.scr.impl.helper.SimpleLogger;
+import org.apache.felix.scr.impl.inject.ComponentMethods;
 import org.apache.felix.scr.impl.metadata.ComponentMetadata;
 import org.apache.felix.scr.impl.metadata.ServiceMetadata.Scope;
 import org.apache.felix.scr.impl.metadata.TargetedPID;

Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java?rev=1778137&r1=1778136&r2=1778137&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java Tue Jan 10 14:59:45 2017
@@ -31,9 +31,10 @@ import java.util.concurrent.atomic.Atomi
 import java.util.concurrent.atomic.AtomicReference;
 
 import org.apache.felix.scr.impl.helper.Coercions;
-import org.apache.felix.scr.impl.helper.MethodResult;
-import org.apache.felix.scr.impl.helper.ReferenceMethod;
-import org.apache.felix.scr.impl.helper.ReferenceMethods;
+import org.apache.felix.scr.impl.inject.BindParameters;
+import org.apache.felix.scr.impl.inject.MethodResult;
+import org.apache.felix.scr.impl.inject.ReferenceMethod;
+import org.apache.felix.scr.impl.inject.ReferenceMethods;
 import org.apache.felix.scr.impl.metadata.ReferenceMetadata;
 import org.apache.felix.scr.impl.metadata.ReferenceMetadata.ReferenceScope;
 import org.apache.felix.scr.impl.metadata.ServiceMetadata.Scope;
@@ -1525,6 +1526,11 @@ public class DependencyManager<S, T> imp
         return m_customizer.prebind(key);
     }
 
+    public static final class OpenStatus<S, T> {
+        public final AtomicInteger trackingCount = new AtomicInteger();
+        public Collection<RefPair<S, T>> refs;    	
+    }
+    
     /**
      * initializes a dependency. This method binds all of the service
      * occurrences to the instance object
@@ -1533,32 +1539,44 @@ public class DependencyManager<S, T> imp
      * @return true if the dependency is satisfied and at least the minimum
      *      number of services could be bound. Otherwise false is returned.
      */
-    boolean open(ComponentContextImpl<S> componentContext, EdgeInfo edgeInfo)
+    OpenStatus<S, T> open(ComponentContextImpl<S> componentContext, EdgeInfo edgeInfo)
     {
-        if (!invokeInitMethod(componentContext))
-        {
-            m_componentManager.log(LogService.LOG_DEBUG, "For dependency {0}, failed to initialize object",
-                new Object[] { getName() }, null);
-            return false;
-        }
-
         int serviceCount = 0;
-        AtomicInteger trackingCount = new AtomicInteger();
-        Collection<RefPair<S, T>> refs;
+        final OpenStatus<S, T> status = new OpenStatus<S, T>();
         CountDownLatch openLatch;
         synchronized (m_tracker.tracked())
         {
-            refs = m_customizer.getRefs(trackingCount);
-            edgeInfo.setOpen(trackingCount.get());
+        	status.refs = m_customizer.getRefs(status.trackingCount);
+            edgeInfo.setOpen(status.trackingCount.get());
             openLatch = edgeInfo.getOpenLatch();
         }
         m_componentManager.log(LogService.LOG_DEBUG, "For dependency {0}, optional: {1}; to bind: {2}",
-            new Object[] { getName(), isOptional(), refs }, null);
-        for (RefPair<S, T> refPair : refs)
+            new Object[] { getName(), isOptional(), status.refs }, null);
+        for (RefPair<S, T> refPair : status.refs)
+        {
+            if (!refPair.isDeleted() && !refPair.isFailed())
+            {
+                serviceCount++;
+            }
+        }
+        openLatch.countDown();
+        return (cardinalitySatisfied(serviceCount) ? status : null);
+    }
+    
+    boolean bind(final ComponentContextImpl<S> componentContext, final OpenStatus<S, T> status) 
+    {
+        if (!invokeInitMethod(componentContext))
+        {
+            m_componentManager.log(LogService.LOG_DEBUG, "For dependency {0}, failed to initialize object",
+                new Object[] { getName() }, null);
+            return false;
+        }
+        int serviceCount = 0;
+        for (RefPair<S, T> refPair : status.refs)
         {
             if (!refPair.isDeleted() && !refPair.isFailed())
             {
-                if (!doInvokeBindMethod(componentContext, refPair, trackingCount.get()))
+                if (!doInvokeBindMethod(componentContext, refPair, status.trackingCount.get()))
                 {
                     m_componentManager.log(LogService.LOG_DEBUG,
                         "For dependency {0}, failed to invoke bind method on object {1}",
@@ -1568,7 +1586,6 @@ public class DependencyManager<S, T> imp
                 serviceCount++;
             }
         }
-        openLatch.countDown();
         return cardinalitySatisfied(serviceCount);
     }
 
@@ -1716,7 +1733,8 @@ public class DependencyManager<S, T> imp
     private boolean doInvokeBindMethod(ComponentContextImpl<S> componentContext, RefPair<S, T> refPair,
         int trackingCount)
     {
-        if (!getServiceObject(componentContext, m_bindMethods.getBind(), refPair))
+    	final ReferenceMethod bindMethod = m_bindMethods.getBind();
+        if (!getServiceObject(componentContext, bindMethod, refPair))
         {
             m_componentManager.log(LogService.LOG_WARNING,
                 "DependencyManager : invokeBindMethod : Service not available from service registry for ServiceReference {0} for reference {1}",
@@ -1724,8 +1742,8 @@ public class DependencyManager<S, T> imp
             return false;
 
         }
-        MethodResult result = m_bindMethods.getBind().invoke(componentContext.getImplementationObject(false),
-            componentContext, refPair, MethodResult.VOID, m_componentManager);
+        MethodResult result = bindMethod.invoke(componentContext.getImplementationObject(false),
+            new BindParameters(componentContext, refPair), MethodResult.VOID, m_componentManager);
         if (result == null)
         {
             return false;
@@ -1771,7 +1789,7 @@ public class DependencyManager<S, T> imp
 
             }
             final MethodResult methodResult = m_bindMethods.getUpdated().invoke(
-                componentContext.getImplementationObject(false), componentContext, refPair, MethodResult.VOID,
+                componentContext.getImplementationObject(false), new BindParameters(componentContext, refPair), MethodResult.VOID,
                 m_componentManager);
             if (methodResult != null)
             {
@@ -1840,7 +1858,7 @@ public class DependencyManager<S, T> imp
 
             }
             MethodResult methodResult = m_bindMethods.getUnbind().invoke(
-                componentContext.getImplementationObject(false), componentContext, refPair, MethodResult.VOID,
+                componentContext.getImplementationObject(false), new BindParameters(componentContext, refPair), MethodResult.VOID,
                 m_componentManager);
             if (methodResult != null)
             {
@@ -2203,7 +2221,7 @@ public class DependencyManager<S, T> imp
         BundleContext bundleContext = m_componentManager.getBundleContext();
         if (bundleContext != null)
         {
-            return bindMethod.getServiceObject(key, refPair, bundleContext, m_componentManager);
+            return bindMethod.getServiceObject(new BindParameters(key, refPair), bundleContext, m_componentManager);
         }
         else
         {

Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/PrototypeServiceFactoryComponentManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/PrototypeServiceFactoryComponentManager.java?rev=1778137&r1=1778136&r2=1778137&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/PrototypeServiceFactoryComponentManager.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/PrototypeServiceFactoryComponentManager.java Tue Jan 10 14:59:45 2017
@@ -18,7 +18,7 @@
  */
 package org.apache.felix.scr.impl.manager;
 
-import org.apache.felix.scr.impl.helper.ComponentMethods;
+import org.apache.felix.scr.impl.inject.ComponentMethods;
 import org.osgi.framework.PrototypeServiceFactory;
 
 public class PrototypeServiceFactoryComponentManager<S> extends ServiceFactoryComponentManager<S> implements PrototypeServiceFactory<S>

Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/ServiceFactoryComponentManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/ServiceFactoryComponentManager.java?rev=1778137&r1=1778136&r2=1778137&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/ServiceFactoryComponentManager.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/ServiceFactoryComponentManager.java Tue Jan 10 14:59:45 2017
@@ -24,9 +24,9 @@ import java.util.Collection;
 import java.util.Dictionary;
 import java.util.IdentityHashMap;
 
-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.inject.LifecycleMethod;
+import org.apache.felix.scr.impl.inject.ComponentMethods;
+import org.apache.felix.scr.impl.inject.MethodResult;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.ServiceRegistration;
 import org.osgi.service.component.ComponentConstants;
@@ -215,7 +215,7 @@ public class ServiceFactoryComponentMana
 
     protected MethodResult invokeModifiedMethod()
     {
-        ComponentMethod modifiedMethod = getComponentMethods().getModifiedMethod();
+        LifecycleMethod modifiedMethod = getComponentMethods().getModifiedMethod();
         MethodResult result = MethodResult.VOID;
         for ( ComponentContextImpl<S> componentContext : getComponentContexts() )
         {

Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java?rev=1778137&r1=1778136&r2=1778137&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java Tue Jan 10 14:59:45 2017
@@ -23,15 +23,16 @@ import java.util.ArrayList;
 import java.util.Dictionary;
 import java.util.HashMap;
 import java.util.Hashtable;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.TreeMap;
 import java.util.concurrent.atomic.AtomicInteger;
 
-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.ComponentMetadata;
+import org.apache.felix.scr.impl.inject.LifecycleMethod;
+import org.apache.felix.scr.impl.inject.ComponentMethods;
+import org.apache.felix.scr.impl.inject.ConstructorMethod;
+import org.apache.felix.scr.impl.inject.MethodResult;
+import org.apache.felix.scr.impl.manager.DependencyManager.OpenStatus;
 import org.apache.felix.scr.impl.metadata.TargetedPID;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.Constants;
@@ -218,7 +219,7 @@ public class SingleComponentManager<S> e
 	protected S createImplementationObject( Bundle usingBundle, SetImplementationObject<S> setter, ComponentContextImpl<S> componentContext )
     {
         final Class<S> implementationObjectClass;
-        final S implementationObject;
+        S implementationObject = null;
 
         // 1. Load the component implementation class
         // 2. Create the component instance and component context
@@ -229,136 +230,93 @@ public class SingleComponentManager<S> e
             log( LogService.LOG_WARNING, "Bundle shut down during instantiation of the implementation object", null);
             return null;
         }
+                
+        // bind target services 
+        final List<DependencyManager.OpenStatus<S, ?>> openStatusList = new ArrayList<DependencyManager.OpenStatus<S,?>>();
         
-        ReferenceManager<S, ?> failedDm = null;
-        
-        // bind target services for constructor injection
-        final TreeMap<Integer, DependencyManager<S, ?>> paramMap;
-        if ( ComponentMetadata.CONSTRUCTOR_MARKER.equals(getComponentMetadata().getActivate()))
-        {
-        	paramMap = new TreeMap<Integer, DependencyManager<S,?>>();
-	        for ( DependencyManager<S, ?> dm : getDependencyManagers())
+        final Map<Integer, ConstructorMethod.ReferencePair<S>> paramMap = ( getComponentMetadata().isActivateConstructor() ? new HashMap<Integer, ConstructorMethod.ReferencePair<S>>() : null);
+        boolean failed = false;
+	    for ( DependencyManager<S, ?> dm : getDependencyManagers())
+	    {
+            // if a dependency turned unresolved since the validation check,
+            // creating the instance fails here, so we deactivate and return
+            // null.
+            DependencyManager.OpenStatus<S, ?> open = dm.open( componentContext, componentContext.getEdgeInfo( dm ) );
+            if ( open == null )
+            {
+                log( LogService.LOG_DEBUG, "Cannot create component instance due to failure to bind reference {0}",
+                        new Object[] { dm.getName() }, null );
+
+                failed = true;
+                break;
+            }
+            openStatusList.add(open);
+        	if ( dm.getReferenceMetadata().getParameterIndex() != null)
+        	{
+        		final ConstructorMethod.ReferencePair<S> pair = new ConstructorMethod.ReferencePair<S>();
+        		pair.dependencyManager = dm;
+        		pair.openStatus = open;
+                paramMap.put(dm.getReferenceMetadata().getParameterIndex(), pair);
+	        }
+	    }
+
+	    if ( !failed )
+	    {
+	        try
 	        {
-	            if ( failedDm == null )
-	            {
-	            	if ( dm.getReferenceMetadata().getParameterIndex() != null)
-	            	{
-		                // if a dependency turned unresolved since the validation check,
-		                // creating the instance fails here, so we deactivate and return
-		                // null.
-		                boolean open = dm.open( componentContext, componentContext.getEdgeInfo( dm ) );
-		                if ( !open )
-		                {
-		                    log( LogService.LOG_DEBUG, "Cannot create component instance due to failure to bind reference {0}",
-		                            new Object[] { dm.getName() }, null );
-		
-		                    failedDm = dm;
-		                }
-		                paramMap.put(dm.getReferenceMetadata().getParameterIndex(), dm);
-	                }
-	            }
+	            // 112.4.4 The class is retrieved with the loadClass method of the component's bundle
+	            implementationObjectClass = (Class<S>) bundle.loadClass(
+	                    getComponentMetadata().getImplementationClassName() )  ;
+	
+	            implementationObject = getComponentMethods().getConstructor().newInstance(implementationObjectClass,
+	            		componentContext,
+	            		paramMap,
+	            		this);
+	            
 	        }
-	        if (failedDm != null)
+	        catch ( Throwable t )
 	        {
-	            // make sure, we keep no bindings. Only close the dm's we opened.
-	            boolean skip = true;
-	            for ( DependencyManager<S, ?> md: getReversedDependencyManagers() )
-	            {
-	                if ( skip )
-	                {
-	                	if ( failedDm == md ) 
-	                	{
-	                		skip = false;
-	                	}
-	                }
-	                else
-	                {
-	                	if ( md.getReferenceMetadata().getParameterIndex() != null )
-	                	{
-	                		md.close( componentContext, componentContext.getEdgeInfo( md ) );
-	                	}
-	                }
-	                md.deactivate();
-	            }
+	            // failed to instantiate, return null
+	            log( LogService.LOG_ERROR, "Error during instantiation of the implementation object", t );
 	            return null;
 	        }
-        }
-        else
-        {
-        	paramMap = null;
-        }
-        
-        try
-        {
-            // 112.4.4 The class is retrieved with the loadClass method of the component's bundle
-            implementationObjectClass = (Class<S>) bundle.loadClass(
-                    getComponentMetadata().getImplementationClassName() )  ;
-
-            implementationObject = getComponentMethods().getConstructor().newInstance(implementationObjectClass,
-            		componentContext,
-            		paramMap,
-            		this);
-            
-        }
-        catch ( Throwable t )
-        {
-            // failed to instantiate, return null
-            log( LogService.LOG_ERROR, "Error during instantiation of the implementation object", t );
-            return null;
-        }
-
-        componentContext.setImplementationObject(implementationObject);
-
-        // 3. set the implementation object prematurely
-        setter.presetComponentContext( componentContext );
-
-        // 4. Bind the target services
-
-        for ( DependencyManager<S, ?> dm: getDependencyManagers())
-        {
-            if ( failedDm == null )
-            {
-            	if (dm.getReferenceMetadata().getParameterIndex() == null)
-            	{
-	                // if a dependency turned unresolved since the validation check,
-	                // creating the instance fails here, so we deactivate and return
-	                // null.
-	                boolean open = dm.open( componentContext, componentContext.getEdgeInfo( dm ) );
-	                if ( !open )
-	                {
-	                    log( LogService.LOG_DEBUG, "Cannot create component instance due to failure to bind reference {0}",
-	                            new Object[] { dm.getName() }, null );
 	
-	                    failedDm = dm;
+	        componentContext.setImplementationObject(implementationObject);
 	
-	                }
-            	}
-            }
-            else
-            {
-            	if ( dm.getReferenceMetadata().getParameterIndex() == null )
-            	{
-            		componentContext.getEdgeInfo( dm ).ignore();
-            	}
-            }
-        }
+	        // 3. set the implementation object prematurely
+	        setter.presetComponentContext( componentContext );
 
-        if (failedDm != null)
+	        // 4. Bind the target services
+            final Iterator<DependencyManager.OpenStatus<S, ?>> iter = openStatusList.iterator();
+	        for ( DependencyManager<S, ?> dm: getDependencyManagers())
+	        {
+	        	final DependencyManager.OpenStatus<S, ?> open = iter.next();
+		        if ( !dm.bind(componentContext, (OpenStatus) open) )
+		        {
+                    log( LogService.LOG_DEBUG, "Cannot create component instance due to failure to bind reference {0}",
+                            new Object[] { dm.getName() }, null );
+                    failed = true;
+                    break;
+		        }
+	        }
+	    }
+        if (failed)
         {
             // make sure, we keep no bindings. Only close the dm's we opened.
-            boolean skip = true;
+            int skipCount = getReversedDependencyManagers().size() - openStatusList.size();
             for ( DependencyManager<S, ?> md: getReversedDependencyManagers() )
             {
-                if ( skip && failedDm == md )
-                {
-                    skip = false;
-                }
-                if ( !skip || md.getReferenceMetadata().getParameterIndex() != null )
-                {
-                    md.close( componentContext, componentContext.getEdgeInfo( md ) );
-                }
+            	if ( skipCount > 0 )
+            	{
+            		skipCount--;
+            	} 
+            	else 
+            	{
+            		md.close( componentContext, componentContext.getEdgeInfo( md ) );
+            	}
                 md.deactivate();
             }
+
             setter.resetImplementationObject( implementationObject );
             return null;
 
@@ -376,10 +334,13 @@ public class SingleComponentManager<S> e
                 md.close( componentContext, componentContext.getEdgeInfo( md ) );
             }
 
-            // make sure the implementation object is not available
-            setter.resetImplementationObject( implementationObject );
+            if ( implementationObject != null )
+            {
+            	// make sure the implementation object is not available
+            	setter.resetImplementationObject( implementationObject );
+            }
 
-           return null;
+            return null;
         }
         else
         {
@@ -836,7 +797,7 @@ public class SingleComponentManager<S> e
 
     protected MethodResult invokeModifiedMethod()
     {
-        ComponentMethod modifiedMethod = getComponentMethods().getModifiedMethod();
+        LifecycleMethod modifiedMethod = getComponentMethods().getModifiedMethod();
         if ( getInstance() != null )
         {
             return modifiedMethod.invoke( getInstance(), m_componentContext, -1,

Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/ThreadDump.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/ThreadDump.java?rev=1778137&r1=1778136&r2=1778137&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/ThreadDump.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/ThreadDump.java Tue Jan 10 14:59:45 2017
@@ -32,7 +32,7 @@ public class ThreadDump implements Calla
     public String call() throws Exception
     {
         ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
-        StringBuffer b = new StringBuffer( "Thread dump\n" );
+        StringBuilder b = new StringBuilder( "Thread dump\n" );
         ThreadInfo[] infos = threadMXBean.dumpAllThreads( threadMXBean.isObjectMonitorUsageSupported(), threadMXBean.isSynchronizerUsageSupported() );
         for ( int i = 0; i < infos.length; i++ )
         {

Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/metadata/ComponentMetadata.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/metadata/ComponentMetadata.java?rev=1778137&r1=1778136&r2=1778137&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/metadata/ComponentMetadata.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/metadata/ComponentMetadata.java Tue Jan 10 14:59:45 2017
@@ -56,7 +56,7 @@ public class ComponentMetadata
     private static final ServiceMetadata SERVICE_DUPLICATE = new ServiceMetadata();
 
 	/** If the activate method has this value, a constructor is used instead. */
-	public static final String CONSTRUCTOR_MARKER = "-init-";
+	private static final String CONSTRUCTOR_MARKER = "-init-";
 	       
     // the namespace code of the namespace declaring this component
     private final DSVersion m_dsVersion;
@@ -618,7 +618,17 @@ public class ComponentMetadata
         return m_activateDeclared;
     }
 
-
+    /**
+     * Returns whether the activate is done through a constructor rather
+     * than a method
+     * @return {@code true} if a constructor is used
+     * @since 2.1.0 (DS 1.4)
+     */
+    public boolean isActivateConstructor()
+    {
+    	return CONSTRUCTOR_MARKER.equals(m_activate);
+    }
+    
     /**
      * Returns the names of the activation fields
      *
@@ -1009,7 +1019,7 @@ public class ComponentMetadata
         }
         
         // constructor injection requires DS 1.4
-        if ( CONSTRUCTOR_MARKER.equals(this.getActivate()) )
+        if ( this.isActivateConstructor() )
         {
         	if ( !m_dsVersion.isDS14() )
         	{

Modified: felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/PackageIsolationTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/PackageIsolationTest.java?rev=1778137&r1=1778136&r2=1778137&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/PackageIsolationTest.java (original)
+++ felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/PackageIsolationTest.java Tue Jan 10 14:59:45 2017
@@ -28,7 +28,6 @@ import java.util.Map;
 import java.util.Set;
 import java.util.regex.Pattern;
 
-import junit.framework.TestCase;
 import org.objectweb.asm.AnnotationVisitor;
 import org.objectweb.asm.ClassReader;
 import org.objectweb.asm.ClassVisitor;
@@ -42,6 +41,8 @@ import org.objectweb.asm.TypePath;
 import org.objectweb.asm.signature.SignatureReader;
 import org.objectweb.asm.signature.SignatureVisitor;
 
+import junit.framework.TestCase;
+
 /**
  * Ensure that the helper / manager / metadata packages can actually be used
  * without any other packages.
@@ -52,6 +53,9 @@ public class PackageIsolationTest extend
         final List<String> packages = Arrays.asList(
                 "org/apache/felix/scr/component",
                 "org/apache/felix/scr/impl/helper",
+                "org/apache/felix/scr/impl/inject",
+                "org/apache/felix/scr/impl/inject/field",
+                "org/apache/felix/scr/impl/inject/methods",
                 "org/apache/felix/scr/impl/manager",
                 "org/apache/felix/scr/impl/metadata");
 

Modified: felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/BindMethodTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/BindMethodTest.java?rev=1778137&r1=1778136&r2=1778137&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/BindMethodTest.java (original)
+++ felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/BindMethodTest.java Tue Jan 10 14:59:45 2017
@@ -19,13 +19,9 @@
 package org.apache.felix.scr.impl.inject;
 
 
-import junit.framework.TestCase;
-
 import org.apache.felix.scr.impl.BundleComponentActivator;
 import org.apache.felix.scr.impl.MockBundle;
-import org.apache.felix.scr.impl.helper.ComponentMethods;
-import org.apache.felix.scr.impl.inject.BindMethod;
-import org.apache.felix.scr.impl.inject.BindParameters;
+import org.apache.felix.scr.impl.inject.methods.BindMethod;
 import org.apache.felix.scr.impl.manager.ComponentContainer;
 import org.apache.felix.scr.impl.manager.ComponentContextImpl;
 import org.apache.felix.scr.impl.manager.RefPair;
@@ -44,6 +40,8 @@ import org.osgi.framework.BundleContext;
 import org.osgi.framework.Constants;
 import org.osgi.framework.ServiceReference;
 
+import junit.framework.TestCase;
+
 
 public class BindMethodTest extends TestCase
 {
@@ -455,7 +453,7 @@ public class BindMethodTest extends Test
                 FakeService.class.getName(), dsVersion, false );
         RefPair refPair = new SingleRefPair( m_serviceReference );
         ComponentContextImpl<T1> cc = new ComponentContextImpl(icm, new MockBundle(), null);
-        assertTrue( bm.getServiceObject( cc, refPair, m_context, icm ) );
+        assertTrue( bm.getServiceObject( new BindParameters(cc, refPair), m_context, icm ) );
         BindParameters bp = new BindParameters(cc, refPair);
         bm.invoke( component, bp, null, icm );
         assertEquals( expectCallPerformed, component.callPerformed );

Copied: felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/methods/ActivateMethodTest.java (from r1778136, felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/ActivateMethodTest.java)
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/methods/ActivateMethodTest.java?p2=felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/methods/ActivateMethodTest.java&p1=felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/ActivateMethodTest.java&r1=1778136&r2=1778137&rev=1778137&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/ActivateMethodTest.java (original)
+++ felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/methods/ActivateMethodTest.java Tue Jan 10 14:59:45 2017
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.scr.impl.inject;
+package org.apache.felix.scr.impl.inject.methods;
 
 
 import java.lang.reflect.Method;
@@ -28,7 +28,11 @@ import junit.framework.TestCase;
 
 import org.apache.felix.scr.impl.BundleComponentActivator;
 import org.apache.felix.scr.impl.manager.ComponentContainer;
-import org.apache.felix.scr.impl.helper.ComponentMethods;
+import org.apache.felix.scr.impl.inject.ActivatorParameter;
+import org.apache.felix.scr.impl.inject.ComponentMethods;
+import org.apache.felix.scr.impl.inject.ComponentMethodsImpl;
+import org.apache.felix.scr.impl.inject.methods.ActivateMethod;
+import org.apache.felix.scr.impl.inject.methods.BaseMethod;
 import org.apache.felix.scr.impl.manager.SingleComponentManager;
 import org.apache.felix.scr.impl.metadata.ComponentMetadata;
 import org.apache.felix.scr.impl.metadata.DSVersion;

Modified: felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/manager/ConfiguredComponentHolderTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/manager/ConfiguredComponentHolderTest.java?rev=1778137&r1=1778136&r2=1778137&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/manager/ConfiguredComponentHolderTest.java (original)
+++ felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/manager/ConfiguredComponentHolderTest.java Tue Jan 10 14:59:45 2017
@@ -25,7 +25,8 @@ import java.util.List;
 import java.util.Map;
 
 import junit.framework.TestCase;
-import org.apache.felix.scr.impl.helper.ComponentMethods;
+
+import org.apache.felix.scr.impl.inject.ComponentMethods;
 import org.apache.felix.scr.impl.inject.ComponentMethodsImpl;
 import org.apache.felix.scr.impl.metadata.ComponentMetadata;
 import org.apache.felix.scr.impl.metadata.DSVersion;

Modified: felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/manager/SingleComponentManagerTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/manager/SingleComponentManagerTest.java?rev=1778137&r1=1778136&r2=1778137&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/manager/SingleComponentManagerTest.java (original)
+++ felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/manager/SingleComponentManagerTest.java Tue Jan 10 14:59:45 2017
@@ -27,7 +27,7 @@ import java.util.concurrent.atomic.Atomi
 
 import javax.imageio.spi.ServiceRegistry;
 
-import org.apache.felix.scr.impl.helper.ComponentMethods;
+import org.apache.felix.scr.impl.inject.ComponentMethods;
 import org.apache.felix.scr.impl.inject.ComponentMethodsImpl;
 import org.apache.felix.scr.impl.manager.AbstractComponentManager.State;
 import org.apache.felix.scr.impl.metadata.ComponentMetadata;