You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by gn...@apache.org on 2016/05/20 13:46:11 UTC

svn commit: r1744740 - in /felix/trunk/scr/src: main/java/org/apache/felix/scr/impl/ main/java/org/apache/felix/scr/impl/helper/ main/java/org/apache/felix/scr/impl/inject/ main/java/org/apache/felix/scr/impl/manager/ test/java/org/apache/felix/scr/imp...

Author: gnodet
Date: Fri May 20 13:46:10 2016
New Revision: 1744740

URL: http://svn.apache.org/viewvc?rev=1744740&view=rev
Log:
[FELIX-5243] Refactor all component methods related code into a separate package

Added:
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ComponentMethod.java
      - copied, changed from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/SuitableMethodNotAccessibleException.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/ActivateMethod.java
      - copied, changed from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ActivateMethod.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/ActivatorParameter.java
      - copied, changed from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ActivatorParameter.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/Annotations.java
      - copied, changed from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/Annotations.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/BaseMethod.java
      - copied, changed from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/BaseMethod.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/BindMethod.java
      - copied, changed from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/BindMethod.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/BindMethods.java
      - copied, changed from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/BindMethods.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/BindParameters.java
      - copied, changed from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/BindParameters.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/ClassUtils.java
      - copied, changed from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ClassUtils.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/ComponentMethodsImpl.java
      - copied, changed from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ComponentMethods.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/DeactivateMethod.java
      - copied, changed from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/DeactivateMethod.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/DuplexReferenceMethods.java
      - copied, changed from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/DuplexReferenceMethods.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/FieldHandler.java
      - copied, changed from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/FieldHandler.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/FieldMethods.java
      - copied, changed from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/FieldMethods.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/ModifiedMethod.java
      - copied, changed from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ModifiedMethod.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/SuitableMethodNotAccessibleException.java
      - copied, changed from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/SuitableMethodNotAccessibleException.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/UnbindMethod.java
      - copied, changed from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/UnbindMethod.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/UpdatedMethod.java
      - copied, changed from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/UpdatedMethod.java
    felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/inject/
    felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/inject/ActivateMethodTest.java
      - copied, changed from r1744739, felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/helper/ActivateMethodTest.java
    felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/inject/AnnotationTest.java
      - copied, changed from r1744739, felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/helper/AnnotationTest.java
    felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/inject/BindMethodTest.java
      - copied, changed from r1744739, felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/helper/BindMethodTest.java
Removed:
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ActivateMethod.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ActivatorParameter.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/Annotations.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/BaseMethod.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/BindMethod.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/BindMethods.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/BindParameters.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ClassUtils.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/DeactivateMethod.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/DuplexReferenceMethods.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/FieldHandler.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/FieldMethods.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ModifiedMethod.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/SuitableMethodNotAccessibleException.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/UnbindMethod.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/UpdatedMethod.java
    felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/helper/ActivateMethodTest.java
    felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/helper/AnnotationTest.java
    felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/helper/BindMethodTest.java
Modified:
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/Activator.java
    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/helper/ComponentMethods.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/MethodResult.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ReferenceMethod.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ComponentFactoryImpl.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ConfigurableComponentHolder.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ServiceFactoryComponentManager.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java
    felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/manager/ConfiguredComponentHolderTest.java
    felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/manager/SingleComponentManagerTest.java

Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/Activator.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/Activator.java?rev=1744740&r1=1744739&r2=1744740&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/Activator.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/Activator.java Fri May 20 13:46:10 2016
@@ -27,7 +27,7 @@ import java.util.concurrent.CountDownLat
 import java.util.concurrent.TimeUnit;
 
 import org.apache.felix.scr.impl.config.ScrConfigurationImpl;
-import org.apache.felix.scr.impl.helper.ClassUtils;
+import org.apache.felix.scr.impl.inject.ClassUtils;
 import org.apache.felix.scr.impl.helper.SimpleLogger;
 import org.apache.felix.scr.impl.runtime.ServiceComponentRuntimeImpl;
 import org.apache.felix.utils.extender.AbstractExtender;

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=1744740&r1=1744739&r2=1744740&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:46:10 2016
@@ -35,9 +35,9 @@ import java.util.concurrent.CountDownLat
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 
+import org.apache.felix.scr.impl.helper.ConfigAdminTracker;
 import org.apache.felix.scr.impl.manager.ComponentActivator;
 import org.apache.felix.scr.impl.manager.ComponentHolder;
-import org.apache.felix.scr.impl.helper.ConfigAdminTracker;
 import org.apache.felix.scr.impl.manager.RegionConfigurationSupport;
 import org.apache.felix.scr.impl.manager.ScrConfiguration;
 import org.apache.felix.scr.impl.helper.SimpleLogger;

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=1744740&r1=1744739&r2=1744740&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:46:10 2016
@@ -29,6 +29,8 @@ import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 
+import org.apache.felix.scr.impl.helper.ComponentMethods;
+import org.apache.felix.scr.impl.inject.ComponentMethodsImpl;
 import org.apache.felix.scr.impl.manager.ComponentActivator;
 import org.apache.felix.scr.impl.manager.ComponentHolder;
 import org.apache.felix.scr.impl.manager.ConfigurableComponentHolder;
@@ -413,7 +415,14 @@ public class ComponentRegistry
      */
     public <S> ComponentHolder<S> createComponentHolder( ComponentActivator activator, ComponentMetadata metadata )
     {
-        return new ConfigurableComponentHolder<S>(activator, metadata);
+        return new ConfigurableComponentHolder<S>(activator, metadata)
+        {
+            @Override
+            protected ComponentMethods createComponentMethods()
+            {
+                return new ComponentMethodsImpl();
+            }
+        };
     }
 
 

Copied: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ComponentMethod.java (from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/SuitableMethodNotAccessibleException.java)
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ComponentMethod.java?p2=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ComponentMethod.java&p1=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/SuitableMethodNotAccessibleException.java&r1=1744739&r2=1744740&rev=1744740&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/SuitableMethodNotAccessibleException.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ComponentMethod.java Fri May 20 13:46:10 2016
@@ -18,7 +18,12 @@
  */
 package org.apache.felix.scr.impl.helper;
 
+import org.osgi.service.component.ComponentContext;
 
-public class SuitableMethodNotAccessibleException extends Exception
-{
-}
\ No newline at end of file
+public interface ComponentMethod {
+
+    MethodResult invoke(final Object componentInstance,
+                        final ComponentContext componentContext, final int reason,
+                        final MethodResult methodCallFailureResult, SimpleLogger logger );
+
+}

Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ComponentMethods.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ComponentMethods.java?rev=1744740&r1=1744739&r2=1744740&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ComponentMethods.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ComponentMethods.java Fri May 20 13:46:10 2016
@@ -20,80 +20,21 @@
 
 package org.apache.felix.scr.impl.helper;
 
-import java.util.HashMap;
-import java.util.Map;
-
 import org.apache.felix.scr.impl.metadata.ComponentMetadata;
-import org.apache.felix.scr.impl.metadata.DSVersion;
-import org.apache.felix.scr.impl.metadata.ReferenceMetadata;
 
 /**
  * @version $Rev$ $Date$
  */
-public class ComponentMethods
+public interface ComponentMethods
 {
-    private ActivateMethod m_activateMethod;
-    private ModifiedMethod m_modifiedMethod;
-    private DeactivateMethod m_deactivateMethod;
-
-    private final Map<String, ReferenceMethods> bindMethodMap = new HashMap<String, ReferenceMethods>();
-
-    public synchronized void initComponentMethods( ComponentMetadata componentMetadata, Class<?> implementationObjectClass )
-    {
-        if (m_activateMethod != null)
-        {
-            return;
-        }
-        DSVersion dsVersion = componentMetadata.getDSVersion();
-        boolean configurableServiceProperties = componentMetadata.isConfigurableServiceProperties();
-        boolean supportsInterfaces = componentMetadata.isConfigureWithInterfaces();
-        m_activateMethod = new ActivateMethod( componentMetadata.getActivate(), componentMetadata
-                .isActivateDeclared(), implementationObjectClass, dsVersion, configurableServiceProperties, supportsInterfaces );
-        m_deactivateMethod = new DeactivateMethod( componentMetadata.getDeactivate(),
-                componentMetadata.isDeactivateDeclared(), implementationObjectClass, dsVersion, configurableServiceProperties, supportsInterfaces );
-
-        m_modifiedMethod = new ModifiedMethod( componentMetadata.getModified(), implementationObjectClass, dsVersion, configurableServiceProperties, supportsInterfaces );
-
-        for ( ReferenceMetadata referenceMetadata: componentMetadata.getDependencies() )
-        {
-            final String refName = referenceMetadata.getName();
-            final ReferenceMethods methods;
-            if ( referenceMetadata.getField() != null && referenceMetadata.getBind() != null)
-            {
-                methods = new DuplexReferenceMethods(
-                        new FieldMethods( referenceMetadata, implementationObjectClass, dsVersion, configurableServiceProperties),
-                        new BindMethods( referenceMetadata, implementationObjectClass, dsVersion, configurableServiceProperties));
-            }
-            else if ( referenceMetadata.getField() != null )
-            {
-                methods = new FieldMethods( referenceMetadata, implementationObjectClass, dsVersion, configurableServiceProperties);
-            }
-            else
-            {
-                methods = new BindMethods( referenceMetadata, implementationObjectClass, dsVersion, configurableServiceProperties);
-            }
-            bindMethodMap.put( refName, methods );
-        }
-    }
-
-    public ActivateMethod getActivateMethod()
-    {
-        return m_activateMethod;
-    }
-
-    public DeactivateMethod getDeactivateMethod()
-    {
-        return m_deactivateMethod;
-    }
-
-    public ModifiedMethod getModifiedMethod()
-    {
-        return m_modifiedMethod;
-    }
-
-    public ReferenceMethods getBindMethods(String refName )
-    {
-        return bindMethodMap.get( refName );
-    }
+    void initComponentMethods( ComponentMetadata componentMetadata, Class<?> implementationObjectClass );
+
+    ComponentMethod getActivateMethod();
+
+    ComponentMethod getDeactivateMethod();
+
+    ComponentMethod getModifiedMethod();
+
+    ReferenceMethods getBindMethods(String refName );
 
 }

Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/MethodResult.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/MethodResult.java?rev=1744740&r1=1744739&r2=1744740&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/MethodResult.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/MethodResult.java Fri May 20 13:46:10 2016
@@ -50,7 +50,7 @@ public class MethodResult
 
     private final boolean hasResult;
 
-    MethodResult(final boolean hasResult, final Map<String, Object> result)
+    public MethodResult(final boolean hasResult, final Map<String, Object> result)
     {
         this.hasResult = hasResult;
         this.result = result;

Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ReferenceMethod.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ReferenceMethod.java?rev=1744740&r1=1744739&r2=1744740&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ReferenceMethod.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ReferenceMethod.java Fri May 20 13:46:10 2016
@@ -30,8 +30,10 @@ import org.osgi.framework.BundleContext;
  */
 public interface ReferenceMethod
 {
-    MethodResult invoke( final Object componentInstance, final BindParameters rawParameter,
-            final MethodResult methodCallFailureResult, SimpleLogger logger );
+    MethodResult invoke( final Object componentInstance,
+                         final ComponentContextImpl<?> componentContext,
+                         final RefPair<?, ?> refPair,
+                         final MethodResult methodCallFailureResult, SimpleLogger logger );
 
     <S, T> boolean getServiceObject( ComponentContextImpl<S> key, RefPair<S, T> refPair, BundleContext context, SimpleLogger logger );
 }

Copied: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/ActivateMethod.java (from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ActivateMethod.java)
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/ActivateMethod.java?p2=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/ActivateMethod.java&p1=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ActivateMethod.java&r1=1744739&r2=1744740&rev=1744740&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ActivateMethod.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/ActivateMethod.java Fri May 20 13:46:10 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.scr.impl.helper;
+package org.apache.felix.scr.impl.inject;
 
 
 import java.lang.reflect.InvocationTargetException;
@@ -27,13 +27,16 @@ 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.metadata.DSVersion;
 import org.osgi.framework.BundleContext;
 import org.osgi.service.component.ComponentContext;
 import org.osgi.service.log.LogService;
 
 
-public class ActivateMethod extends BaseMethod<ActivatorParameter>
+public class ActivateMethod extends BaseMethod<ActivatorParameter> implements ComponentMethod
 {
 
     protected static final Class<?> COMPONENT_CONTEXT_CLASS = ComponentContext.class;
@@ -287,6 +290,10 @@ public class ActivateMethod extends Base
         return "activate";
     }
 
+    public MethodResult invoke(Object componentInstance, ComponentContext componentContext, int reason, MethodResult methodCallFailureResult, SimpleLogger logger) {
+        return invoke(componentInstance, new ActivatorParameter(componentContext, reason), methodCallFailureResult, logger);
+    }
+
     @Override
     public MethodResult invoke( Object componentInstance, ActivatorParameter rawParameter, final MethodResult methodCallFailureResult, SimpleLogger logger )
     {

Copied: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/ActivatorParameter.java (from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ActivatorParameter.java)
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/ActivatorParameter.java?p2=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/ActivatorParameter.java&p1=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ActivatorParameter.java&r1=1744739&r2=1744740&rev=1744740&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ActivatorParameter.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/ActivatorParameter.java Fri May 20 13:46:10 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.scr.impl.helper;
+package org.apache.felix.scr.impl.inject;
 
 import org.osgi.service.component.ComponentContext;
 

Copied: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/Annotations.java (from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/Annotations.java)
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/Annotations.java?p2=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/Annotations.java&p1=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/Annotations.java&r1=1744739&r2=1744740&rev=1744740&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/Annotations.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/Annotations.java Fri May 20 13:46:10 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.scr.impl.helper;
+package org.apache.felix.scr.impl.inject;
 
 import java.lang.reflect.Array;
 import java.lang.reflect.InvocationHandler;
@@ -31,6 +31,7 @@ import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import org.apache.felix.scr.impl.helper.Coercions;
 import org.osgi.framework.Bundle;
 import org.osgi.service.component.ComponentException;
 

Copied: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/BaseMethod.java (from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/BaseMethod.java)
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/BaseMethod.java?p2=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/BaseMethod.java&p1=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/BaseMethod.java&r1=1744739&r2=1744740&rev=1744740&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/BaseMethod.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/BaseMethod.java Fri May 20 13:46:10 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.scr.impl.helper;
+package org.apache.felix.scr.impl.inject;
 
 
 import java.lang.reflect.InvocationTargetException;
@@ -27,6 +27,8 @@ 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.metadata.DSVersion;
 import org.osgi.service.log.LogService;
 
@@ -209,7 +211,7 @@ public abstract class BaseMethod<P>
             final boolean acceptPackage, SimpleLogger logger ) throws SuitableMethodNotAccessibleException, InvocationTargetException;
 
 
-    private MethodResult invokeMethod( final Object componentInstance, final P rawParameter, SimpleLogger logger )
+    private MethodResult invokeMethod(final Object componentInstance, final P rawParameter, SimpleLogger logger )
         throws InvocationTargetException
     {
         try

Copied: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/BindMethod.java (from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/BindMethod.java)
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/BindMethod.java?p2=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/BindMethod.java&p1=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/BindMethod.java&r1=1744739&r2=1744740&rev=1744740&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/BindMethod.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/BindMethod.java Fri May 20 13:46:10 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.scr.impl.helper;
+package org.apache.felix.scr.impl.inject;
 
 
 import java.lang.reflect.InvocationTargetException;
@@ -26,6 +26,10 @@ 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.manager.ComponentContextImpl;
 import org.apache.felix.scr.impl.manager.RefPair;
 import org.apache.felix.scr.impl.metadata.DSVersion;
@@ -647,6 +651,10 @@ implements org.apache.felix.scr.impl.hel
         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/scr/src/main/java/org/apache/felix/scr/impl/inject/BindMethods.java (from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/BindMethods.java)
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/BindMethods.java?p2=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/BindMethods.java&p1=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/BindMethods.java&r1=1744739&r2=1744740&rev=1744740&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/BindMethods.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/BindMethods.java Fri May 20 13:46:10 2016
@@ -18,9 +18,15 @@
  */
 
 
-package org.apache.felix.scr.impl.helper;
+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.metadata.DSVersion;
 import org.apache.felix.scr.impl.metadata.ReferenceMetadata;
 
@@ -36,19 +42,19 @@ public class BindMethods implements Refe
     public BindMethods( ReferenceMetadata m_dependencyMetadata, Class<?> instanceClass,
             final DSVersion dsVersion, final boolean configurableServiceProperties )
     {
-        m_bind = new org.apache.felix.scr.impl.helper.BindMethod(
+        m_bind = new BindMethod(
                 m_dependencyMetadata.getBind(),
                 instanceClass,
                 m_dependencyMetadata.getInterface(),
                 dsVersion, configurableServiceProperties
         );
-        m_updated = new org.apache.felix.scr.impl.helper.UpdatedMethod(
+        m_updated = new UpdatedMethod(
                 m_dependencyMetadata.getUpdated(),
                 instanceClass,
                 m_dependencyMetadata.getInterface(),
                 dsVersion, configurableServiceProperties
         );
-        m_unbind = new org.apache.felix.scr.impl.helper.UnbindMethod(
+        m_unbind = new UnbindMethod(
                 m_dependencyMetadata.getUnbind(),
                 instanceClass,
                 m_dependencyMetadata.getInterface(),

Copied: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/BindParameters.java (from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/BindParameters.java)
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/BindParameters.java?p2=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/BindParameters.java&p1=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/BindParameters.java&r1=1744739&r2=1744740&rev=1744740&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/BindParameters.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/BindParameters.java Fri May 20 13:46:10 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.scr.impl.helper;
+package org.apache.felix.scr.impl.inject;
 
 import org.apache.felix.scr.impl.manager.ComponentContextImpl;
 import org.apache.felix.scr.impl.manager.RefPair;

Copied: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/ClassUtils.java (from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ClassUtils.java)
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/ClassUtils.java?p2=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/ClassUtils.java&p1=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ClassUtils.java&r1=1744739&r2=1744740&rev=1744740&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ClassUtils.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/ClassUtils.java Fri May 20 13:46:10 2016
@@ -16,13 +16,14 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.scr.impl.helper;
+package org.apache.felix.scr.impl.inject;
 
 
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.felix.scr.impl.helper.SimpleLogger;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
 import org.osgi.service.component.ComponentServiceObjects;

Copied: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/ComponentMethodsImpl.java (from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ComponentMethods.java)
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/ComponentMethodsImpl.java?p2=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/ComponentMethodsImpl.java&p1=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ComponentMethods.java&r1=1744739&r2=1744740&rev=1744740&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ComponentMethods.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/ComponentMethodsImpl.java Fri May 20 13:46:10 2016
@@ -18,11 +18,20 @@
  */
 
 
-package org.apache.felix.scr.impl.helper;
+package org.apache.felix.scr.impl.inject;
 
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.felix.scr.impl.helper.ComponentMethod;
+import org.apache.felix.scr.impl.helper.ComponentMethods;
+import org.apache.felix.scr.impl.helper.ReferenceMethods;
+import org.apache.felix.scr.impl.inject.ActivateMethod;
+import org.apache.felix.scr.impl.inject.BindMethods;
+import org.apache.felix.scr.impl.inject.DeactivateMethod;
+import org.apache.felix.scr.impl.inject.DuplexReferenceMethods;
+import org.apache.felix.scr.impl.inject.FieldMethods;
+import org.apache.felix.scr.impl.inject.ModifiedMethod;
 import org.apache.felix.scr.impl.metadata.ComponentMetadata;
 import org.apache.felix.scr.impl.metadata.DSVersion;
 import org.apache.felix.scr.impl.metadata.ReferenceMetadata;
@@ -30,7 +39,7 @@ import org.apache.felix.scr.impl.metadat
 /**
  * @version $Rev$ $Date$
  */
-public class ComponentMethods
+public class ComponentMethodsImpl implements ComponentMethods
 {
     private ActivateMethod m_activateMethod;
     private ModifiedMethod m_modifiedMethod;
@@ -76,17 +85,17 @@ public class ComponentMethods
         }
     }
 
-    public ActivateMethod getActivateMethod()
+    public ComponentMethod getActivateMethod()
     {
         return m_activateMethod;
     }
 
-    public DeactivateMethod getDeactivateMethod()
+    public ComponentMethod getDeactivateMethod()
     {
         return m_deactivateMethod;
     }
 
-    public ModifiedMethod getModifiedMethod()
+    public ComponentMethod getModifiedMethod()
     {
         return m_modifiedMethod;
     }

Copied: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/DeactivateMethod.java (from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/DeactivateMethod.java)
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/DeactivateMethod.java?p2=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/DeactivateMethod.java&p1=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/DeactivateMethod.java&r1=1744739&r2=1744740&rev=1744740&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/DeactivateMethod.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/DeactivateMethod.java Fri May 20 13:46:10 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.scr.impl.helper;
+package org.apache.felix.scr.impl.inject;
 
 import org.apache.felix.scr.impl.metadata.DSVersion;
 

Copied: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/DuplexReferenceMethods.java (from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/DuplexReferenceMethods.java)
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/DuplexReferenceMethods.java?p2=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/DuplexReferenceMethods.java&p1=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/DuplexReferenceMethods.java&r1=1744739&r2=1744740&rev=1744740&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/DuplexReferenceMethods.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/DuplexReferenceMethods.java Fri May 20 13:46:10 2016
@@ -16,8 +16,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.scr.impl.helper;
+package org.apache.felix.scr.impl.inject;
 
+import org.apache.felix.scr.impl.helper.InitReferenceMethod;
+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.helper.SimpleLogger;
 import org.apache.felix.scr.impl.manager.ComponentContextImpl;
 import org.apache.felix.scr.impl.manager.RefPair;
 import org.osgi.framework.BundleContext;
@@ -93,12 +98,13 @@ public class DuplexReferenceMethods impl
         }
 
         public MethodResult invoke(Object componentInstance,
-                BindParameters rawParameter,
-                MethodResult methodCallFailureResult, SimpleLogger logger)
-        {
-            if ( first.invoke(componentInstance, rawParameter, methodCallFailureResult, logger) != null )
+                                   ComponentContextImpl<?> componentContext,
+                                   RefPair<?, ?> refPair,
+                                   MethodResult methodCallFailureResult,
+                                   SimpleLogger logger) {
+            if ( first.invoke(componentInstance, componentContext, refPair, methodCallFailureResult, logger) != null )
             {
-                return second.invoke(componentInstance, rawParameter, methodCallFailureResult, logger);
+                return second.invoke(componentInstance, componentContext, refPair, methodCallFailureResult, logger);
             }
             return null;
         }

Copied: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/FieldHandler.java (from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/FieldHandler.java)
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/FieldHandler.java?p2=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/FieldHandler.java&p1=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/FieldHandler.java&r1=1744739&r2=1744740&rev=1744740&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/FieldHandler.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/FieldHandler.java Fri May 20 13:46:10 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.scr.impl.helper;
+package org.apache.felix.scr.impl.inject;
 
 
 import java.lang.reflect.Field;
@@ -33,6 +33,11 @@ import java.util.TreeMap;
 import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.CopyOnWriteArraySet;
 
+import org.apache.felix.scr.impl.helper.InitReferenceMethod;
+import org.apache.felix.scr.impl.helper.MethodResult;
+import org.apache.felix.scr.impl.helper.ReadOnlyDictionary;
+import org.apache.felix.scr.impl.helper.ReferenceMethod;
+import org.apache.felix.scr.impl.helper.SimpleLogger;
 import org.apache.felix.scr.impl.manager.ComponentContextImpl;
 import org.apache.felix.scr.impl.manager.RefPair;
 import org.apache.felix.scr.impl.metadata.ReferenceMetadata;
@@ -556,10 +561,10 @@ public class FieldHandler
         return objects;
     }
 
-    private MethodResult updateField( final METHOD_TYPE mType,
-            final Object componentInstance,
-            final BindParameters bp,
-            final SimpleLogger logger )
+    private MethodResult updateField(final METHOD_TYPE mType,
+                                     final Object componentInstance,
+                                     final BindParameters bp,
+                                     final SimpleLogger logger )
         throws InvocationTargetException
     {
         final ComponentContextImpl key = bp.getComponentContext();
@@ -927,6 +932,17 @@ public class FieldHandler
             this.handler = handler;
         }
 
+        public MethodResult invoke(Object componentInstance,
+                                   ComponentContextImpl<?> componentContext,
+                                   RefPair<?, ?> refPair,
+                                   MethodResult methodCallFailureResult,
+                                   SimpleLogger logger) {
+            return invoke(componentInstance,
+                    new BindParameters(componentContext, refPair),
+                    methodCallFailureResult,
+                    logger);
+        }
+
         public MethodResult invoke(final Object componentInstance,
                 final BindParameters rawParameter,
                 final MethodResult methodCallFailureResult,

Copied: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/FieldMethods.java (from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/FieldMethods.java)
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/FieldMethods.java?p2=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/FieldMethods.java&p1=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/FieldMethods.java&r1=1744739&r2=1744740&rev=1744740&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/FieldMethods.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/FieldMethods.java Fri May 20 13:46:10 2016
@@ -16,8 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.scr.impl.helper;
+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.metadata.DSVersion;
 import org.apache.felix.scr.impl.metadata.ReferenceMetadata;
 

Copied: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/ModifiedMethod.java (from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ModifiedMethod.java)
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/ModifiedMethod.java?p2=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/ModifiedMethod.java&p1=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ModifiedMethod.java&r1=1744739&r2=1744740&rev=1744740&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/ModifiedMethod.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/ModifiedMethod.java Fri May 20 13:46:10 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.scr.impl.helper;
+package org.apache.felix.scr.impl.inject;
 
 import org.apache.felix.scr.impl.metadata.DSVersion;
 

Copied: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/SuitableMethodNotAccessibleException.java (from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/SuitableMethodNotAccessibleException.java)
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/SuitableMethodNotAccessibleException.java?p2=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/SuitableMethodNotAccessibleException.java&p1=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/SuitableMethodNotAccessibleException.java&r1=1744739&r2=1744740&rev=1744740&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/SuitableMethodNotAccessibleException.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/SuitableMethodNotAccessibleException.java Fri May 20 13:46:10 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.scr.impl.helper;
+package org.apache.felix.scr.impl.inject;
 
 
 public class SuitableMethodNotAccessibleException extends Exception

Copied: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/UnbindMethod.java (from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/UnbindMethod.java)
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/UnbindMethod.java?p2=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/UnbindMethod.java&p1=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/UnbindMethod.java&r1=1744739&r2=1744740&rev=1744740&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/UnbindMethod.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/UnbindMethod.java Fri May 20 13:46:10 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.scr.impl.helper;
+package org.apache.felix.scr.impl.inject;
 
 import org.apache.felix.scr.impl.metadata.DSVersion;
 

Copied: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/UpdatedMethod.java (from r1744739, felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/UpdatedMethod.java)
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/UpdatedMethod.java?p2=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/UpdatedMethod.java&p1=felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/UpdatedMethod.java&r1=1744739&r2=1744740&rev=1744740&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/helper/UpdatedMethod.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/UpdatedMethod.java Fri May 20 13:46:10 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.scr.impl.helper;
+package org.apache.felix.scr.impl.inject;
 
 import org.apache.felix.scr.impl.metadata.DSVersion;
 

Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ComponentFactoryImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ComponentFactoryImpl.java?rev=1744740&r1=1744739&r2=1744740&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ComponentFactoryImpl.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ComponentFactoryImpl.java Fri May 20 13:46:10 2016
@@ -89,9 +89,9 @@ public class ComponentFactoryImpl<S> ext
     
     protected TargetedPID m_targetedPID;
 
-    public ComponentFactoryImpl( ComponentContainer<S> container )
+    public ComponentFactoryImpl( ComponentContainer<S> container, ComponentMethods componentMethods )
     {
-        super( container, new ComponentMethods() );
+        super( container, componentMethods );
         m_componentInstances = new IdentityHashMap<SingleComponentManager<S>, SingleComponentManager<S>>();
         m_configuration = new HashMap<String, Object>();
     }

Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ConfigurableComponentHolder.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ConfigurableComponentHolder.java?rev=1744740&r1=1744739&r2=1744740&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ConfigurableComponentHolder.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ConfigurableComponentHolder.java Fri May 20 13:46:10 2016
@@ -58,7 +58,7 @@ import org.osgi.util.promise.Promises;
  * <code>service.factoryPid</code> equals the component name.</li>
  * </ul>
  */
-public class ConfigurableComponentHolder<S> implements ComponentHolder<S>, ComponentContainer<S>, SimpleLogger
+public abstract class ConfigurableComponentHolder<S> implements ComponentHolder<S>, ComponentContainer<S>, SimpleLogger
 {
 
     /**
@@ -150,10 +150,12 @@ public class ConfigurableComponentHolder
         this.m_configurations = new Dictionary[pidCount];
         this.m_changeCount = new Long[pidCount];
         this.m_components = new HashMap<String, AbstractComponentManager<S>>();
-        this.m_componentMethods = new ComponentMethods();
+        this.m_componentMethods = createComponentMethods();
         this.m_enabled = false;
     }
 
+    protected abstract ComponentMethods createComponentMethods();
+
     protected AbstractComponentManager<S> createComponentManager(boolean factoryConfiguration)
     {
 
@@ -163,7 +165,7 @@ public class ConfigurableComponentHolder
             //TODO is there any check to make sure factory component factories are enabled before creating them?
             if ( !m_componentMetadata.isObsoleteFactoryComponentFactory() || !factoryConfiguration )
             {
-                manager = new ComponentFactoryImpl<S>(this );
+                manager = new ComponentFactoryImpl<S>(this, m_componentMethods);
             }
             else
             {

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=1744740&r1=1744739&r2=1744740&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 May 20 13:46:10 2016
@@ -31,7 +31,6 @@ import java.util.concurrent.CountDownLat
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicReference;
 
-import org.apache.felix.scr.impl.helper.BindParameters;
 import org.apache.felix.scr.impl.helper.Coercions;
 import org.apache.felix.scr.impl.helper.MethodResult;
 import org.apache.felix.scr.impl.helper.ReferenceMethod;
@@ -1654,8 +1653,7 @@ public class DependencyManager<S, T> imp
             return false;
 
         }
-        BindParameters bp = new BindParameters(componentContext, refPair);
-        MethodResult result = m_bindMethods.getBind().invoke( componentContext.getImplementationObject( false ), bp, MethodResult.VOID, m_componentManager );
+        MethodResult result = m_bindMethods.getBind().invoke( componentContext.getImplementationObject( false ), componentContext, refPair, MethodResult.VOID, m_componentManager );
         if ( result == null )
         {
             return false;
@@ -1700,8 +1698,7 @@ public class DependencyManager<S, T> imp
                 return false;
 
             }
-            final BindParameters bp = new BindParameters(componentContext, refPair);
-            final MethodResult methodResult = m_bindMethods.getUpdated().invoke( componentContext.getImplementationObject( false ), bp, MethodResult.VOID, m_componentManager );
+            final MethodResult methodResult = m_bindMethods.getUpdated().invoke( componentContext.getImplementationObject( false ), componentContext, refPair, MethodResult.VOID, m_componentManager );
             if ( methodResult != null)
             {
                 m_componentManager.setServiceProperties( methodResult );
@@ -1768,8 +1765,7 @@ public class DependencyManager<S, T> imp
                 return;
 
             }
-            BindParameters bp = new BindParameters(componentContext, refPair);
-            MethodResult methodResult = m_bindMethods.getUnbind().invoke( componentContext.getImplementationObject( false ), bp, MethodResult.VOID, m_componentManager );
+            MethodResult methodResult = m_bindMethods.getUnbind().invoke( componentContext.getImplementationObject( false ), componentContext, refPair, MethodResult.VOID, m_componentManager );
             if ( methodResult != null )
             {
                 m_componentManager.setServiceProperties( methodResult );

Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ServiceFactoryComponentManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ServiceFactoryComponentManager.java?rev=1744740&r1=1744739&r2=1744740&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ServiceFactoryComponentManager.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ServiceFactoryComponentManager.java Fri May 20 13:46:10 2016
@@ -24,10 +24,9 @@ import java.util.Collection;
 import java.util.Dictionary;
 import java.util.IdentityHashMap;
 
-import org.apache.felix.scr.impl.helper.ActivatorParameter;
+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.helper.ModifiedMethod;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.ServiceRegistration;
 import org.osgi.service.component.ComponentConstants;
@@ -214,13 +213,13 @@ public class ServiceFactoryComponentMana
 
     protected MethodResult invokeModifiedMethod()
     {
-        ModifiedMethod modifiedMethod = getComponentMethods().getModifiedMethod();
+        ComponentMethod modifiedMethod = getComponentMethods().getModifiedMethod();
         MethodResult result = MethodResult.VOID;
         for ( ComponentContextImpl<S> componentContext : getComponentContexts() )
         {
             S instance = componentContext.getImplementationObject(true);
             result = modifiedMethod.invoke( instance,
-                    new ActivatorParameter( componentContext, -1 ), MethodResult.VOID, this );
+                    componentContext, -1, MethodResult.VOID, this );
 
         }
         return result;

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=1744740&r1=1744739&r2=1744740&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 Fri May 20 13:46:10 2016
@@ -27,10 +27,9 @@ import java.util.List;
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import org.apache.felix.scr.impl.helper.ActivatorParameter;
+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.helper.ModifiedMethod;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.Constants;
 import org.osgi.framework.ServiceFactory;
@@ -297,8 +296,8 @@ public class SingleComponentManager<S> e
         }
 
         // 5. Call the activate method, if present
-        final MethodResult result = getComponentMethods().getActivateMethod().invoke( implementationObject, new ActivatorParameter(
-                componentContext, 1 ), null, this );
+        final MethodResult result = getComponentMethods().getActivateMethod().invoke( implementationObject,
+                componentContext, 1, null, this );
         if ( result == null )
         {
             // 112.5.8 If the activate method throws an exception, SCR must log an error message
@@ -338,7 +337,7 @@ public class SingleComponentManager<S> e
             // method throws an exception, SCR must log an error message containing the
             // exception with the Log Service and continue) has already been logged
             final MethodResult result = getComponentMethods().getDeactivateMethod().invoke( implementationObject,
-                    new ActivatorParameter( componentContext, reason ), null, this );
+                    componentContext, reason, null, this );
             if ( result != null )
             {
                 setServiceProperties( result );
@@ -763,10 +762,10 @@ public class SingleComponentManager<S> e
 
     protected MethodResult invokeModifiedMethod()
     {
-        ModifiedMethod modifiedMethod = getComponentMethods().getModifiedMethod();
+        ComponentMethod modifiedMethod = getComponentMethods().getModifiedMethod();
         if ( getInstance() != null )
         {
-            return modifiedMethod.invoke( getInstance(), new ActivatorParameter( m_componentContext, -1 ),
+            return modifiedMethod.invoke( getInstance(), m_componentContext, -1,
                     MethodResult.VOID, this );
         }
         return MethodResult.VOID;

Copied: felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/inject/ActivateMethodTest.java (from r1744739, felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/helper/ActivateMethodTest.java)
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/inject/ActivateMethodTest.java?p2=felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/inject/ActivateMethodTest.java&p1=felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/helper/ActivateMethodTest.java&r1=1744739&r2=1744740&rev=1744740&view=diff
==============================================================================
--- felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/helper/ActivateMethodTest.java (original)
+++ felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/inject/ActivateMethodTest.java Fri May 20 13:46:10 2016
@@ -16,10 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.scr.impl.helper;
+package org.apache.felix.scr.impl.inject;
 
 
-import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 import java.util.Hashtable;
 import java.util.List;
@@ -29,19 +28,15 @@ 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.ActivateMethod;
-import org.apache.felix.scr.impl.helper.ActivatorParameter;
 import org.apache.felix.scr.impl.helper.ComponentMethods;
 import org.apache.felix.scr.impl.manager.SingleComponentManager;
 import org.apache.felix.scr.impl.metadata.ComponentMetadata;
 import org.apache.felix.scr.impl.metadata.DSVersion;
-import org.apache.felix.scr.impl.xml.XmlHandler;
 import org.apache.felix.scr.impl.metadata.instances.AcceptMethod;
 import org.apache.felix.scr.impl.metadata.instances.BaseObject;
 import org.apache.felix.scr.impl.metadata.instances.Level1Object;
 import org.apache.felix.scr.impl.metadata.instances.Level3Object;
 import org.apache.felix.scr.impl.metadata.instances2.Level2Object;
-import org.apache.felix.scr.integration.components.ActivatorComponent;
 import org.easymock.EasyMock;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
@@ -296,7 +291,7 @@ public class ActivateMethodTest extends
     private void checkMethod( BaseObject obj, String methodName, String methodDesc, DSVersion version )
     {
         ComponentContainer<?> container = newContainer();
-        SingleComponentManager<?> icm = new SingleComponentManager( container, new ComponentMethods() );
+        SingleComponentManager<?> icm = new SingleComponentManager( container, new ComponentMethodsImpl() );
         ActivateMethod am = new ActivateMethod( methodName, methodName != null, obj.getClass(), version, false, false );
         am.invoke( obj, new ActivatorParameter( m_ctx, -1 ), null, icm );
         Method m = am.getMethod();
@@ -367,7 +362,7 @@ public class ActivateMethodTest extends
     private void ensureMethodNotFoundMethod( BaseObject obj, String methodName, DSVersion version )
     {
         ComponentContainer container = newContainer();
-        SingleComponentManager icm = new SingleComponentManager( container, new ComponentMethods() );
+        SingleComponentManager icm = new SingleComponentManager( container, new ComponentMethodsImpl() );
         ActivateMethod am = new ActivateMethod( methodName, methodName != null, obj.getClass(), version, false, false );
         am.invoke( obj, new ActivatorParameter( m_ctx, -1 ), null, icm );
         Method m = am.getMethod();

Copied: felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/inject/AnnotationTest.java (from r1744739, felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/helper/AnnotationTest.java)
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/inject/AnnotationTest.java?p2=felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/inject/AnnotationTest.java&p1=felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/helper/AnnotationTest.java&r1=1744739&r2=1744740&rev=1744740&view=diff
==============================================================================
--- felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/helper/AnnotationTest.java (original)
+++ felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/inject/AnnotationTest.java Fri May 20 13:46:10 2016
@@ -16,11 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.scr.impl.helper;
+package org.apache.felix.scr.impl.inject;
 
 import java.lang.reflect.Array;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;

Copied: felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/inject/BindMethodTest.java (from r1744739, felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/helper/BindMethodTest.java)
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/inject/BindMethodTest.java?p2=felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/inject/BindMethodTest.java&p1=felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/helper/BindMethodTest.java&r1=1744739&r2=1744740&rev=1744740&view=diff
==============================================================================
--- felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/helper/BindMethodTest.java (original)
+++ felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/inject/BindMethodTest.java Fri May 20 13:46:10 2016
@@ -16,13 +16,16 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.felix.scr.impl.helper;
+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.manager.ComponentContainer;
 import org.apache.felix.scr.impl.manager.ComponentContextImpl;
 import org.apache.felix.scr.impl.manager.RefPair;
@@ -36,7 +39,6 @@ import org.apache.felix.scr.impl.manager
 import org.apache.felix.scr.impl.manager.components2.T2;
 import org.apache.felix.scr.impl.metadata.ComponentMetadata;
 import org.apache.felix.scr.impl.metadata.DSVersion;
-import org.apache.felix.scr.impl.metadata.ReferenceMetadata;
 import org.easymock.EasyMock;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.Constants;
@@ -448,7 +450,7 @@ public class BindMethodTest extends Test
         final String expectCallPerformed )
     {
         ComponentContainer container = newContainer();
-        SingleComponentManager icm = new SingleComponentManager( container, new ComponentMethods() );
+        SingleComponentManager icm = new SingleComponentManager( container, new ComponentMethodsImpl() );
         BindMethod bm = new BindMethod( methodName, component.getClass(),
                 FakeService.class.getName(), dsVersion, false );
         RefPair refPair = new SingleRefPair( m_serviceReference );

Modified: felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/manager/ConfiguredComponentHolderTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/manager/ConfiguredComponentHolderTest.java?rev=1744740&r1=1744739&r2=1744740&view=diff
==============================================================================
--- felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/manager/ConfiguredComponentHolderTest.java (original)
+++ felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/manager/ConfiguredComponentHolderTest.java Fri May 20 13:46:10 2016
@@ -26,6 +26,7 @@ import java.util.Map;
 
 import junit.framework.TestCase;
 import org.apache.felix.scr.impl.helper.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;
 import org.apache.felix.scr.impl.metadata.TargetedPID;
@@ -193,6 +194,10 @@ public class ConfiguredComponentHolderTe
         {
             return new MockImmediateComponentManager( this );
         }
+
+        protected ComponentMethods createComponentMethods() {
+            return new ComponentMethodsImpl();
+        }
     }
 
     private static class MockImmediateComponentManager<S> extends SingleComponentManager<S>
@@ -203,7 +208,7 @@ public class ConfiguredComponentHolderTe
 
         public MockImmediateComponentManager( ComponentContainer container )
         {
-            super( container, new ComponentMethods() );
+            super( container, new ComponentMethodsImpl() );
         }
 
 

Modified: felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/manager/SingleComponentManagerTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/manager/SingleComponentManagerTest.java?rev=1744740&r1=1744739&r2=1744740&view=diff
==============================================================================
--- felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/manager/SingleComponentManagerTest.java (original)
+++ felix/trunk/scr/src/test/java/org/apache/felix/scr/impl/manager/SingleComponentManagerTest.java Fri May 20 13:46:10 2016
@@ -26,6 +26,7 @@ import java.lang.reflect.Field;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.felix.scr.impl.helper.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;
 import org.junit.Test;
@@ -46,7 +47,7 @@ public class SingleComponentManagerTest
         ComponentContainer<Object> cc = Mockito.mock(ComponentContainer.class);
         Mockito.when(cc.getComponentMetadata()).thenReturn(cm);
 
-        SingleComponentManager<Object> scm = new SingleComponentManager<Object>(cc, new ComponentMethods()) {
+        SingleComponentManager<Object> scm = new SingleComponentManager<Object>(cc, new ComponentMethodsImpl()) {
             @Override
             boolean getServiceInternal(ServiceRegistration<Object> serviceRegistration)
             {
@@ -87,7 +88,7 @@ public class SingleComponentManagerTest
         ComponentContainer<Object> cc = Mockito.mock(ComponentContainer.class);
         Mockito.when(cc.getComponentMetadata()).thenReturn(cm);
 
-        SingleComponentManager<?> scm = new SingleComponentManager<Object>(cc, new ComponentMethods()) {
+        SingleComponentManager<?> scm = new SingleComponentManager<Object>(cc, new ComponentMethodsImpl()) {
             @Override
             boolean getServiceInternal(ServiceRegistration<Object> serviceRegistration)
             {