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)
{