You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2017/02/02 09:33:47 UTC
svn commit: r1781360 [1/2] - in /felix/trunk/osgi-r7/scr/src:
main/java/org/apache/felix/scr/impl/inject/
main/java/org/apache/felix/scr/impl/inject/field/
main/java/org/apache/felix/scr/impl/inject/methods/
main/java/org/apache/felix/scr/impl/manager/...
Author: cziegeler
Date: Thu Feb 2 09:33:47 2017
New Revision: 1781360
URL: http://svn.apache.org/viewvc?rev=1781360&view=rev
Log:
FELIX--5457 : Logger Support. Remove additional SimpleLogger argument where possible
Modified:
felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ActivatorParameter.java
felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/BindParameters.java
felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ConstructorMethod.java
felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ConstructorMethodImpl.java
felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/DuplexReferenceMethods.java
felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/LifecycleMethod.java
felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ReferenceMethod.java
felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ValueUtils.java
felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/field/FieldHandler.java
felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/ActivateMethod.java
felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/BaseMethod.java
felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/BindMethod.java
felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/ComponentContextImpl.java
felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java
felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/MultiplePrototypeRefPair.java
felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/RefPair.java
felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/ServiceFactoryComponentManager.java
felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java
felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/SinglePrototypeRefPair.java
felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleRefPair.java
felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/xml/XmlConstants.java
felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/xml/XmlHandler.java
felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/BindMethodTest.java
felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/impl/inject/methods/ActivateMethodTest.java
Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ActivatorParameter.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ActivatorParameter.java?rev=1781360&r1=1781359&r2=1781360&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ActivatorParameter.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ActivatorParameter.java Thu Feb 2 09:33:47 2017
@@ -18,26 +18,18 @@
*/
package org.apache.felix.scr.impl.inject;
-import org.osgi.service.component.ComponentContext;
+import org.apache.felix.scr.impl.manager.ComponentContextImpl;
-public final class ActivatorParameter
+public final class ActivatorParameter extends BaseParameter
{
- private final ComponentContext m_componentContext;
private final int m_reason;
- public ActivatorParameter( ComponentContext componentContext, int reason )
+ public ActivatorParameter( ComponentContextImpl<?> componentContext, int reason )
{
- this.m_componentContext = componentContext;
+ super(componentContext);
this.m_reason = reason;
}
-
- public ComponentContext getComponentContext()
- {
- return m_componentContext;
- }
-
-
public int getReason()
{
return m_reason;
Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/BindParameters.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/BindParameters.java?rev=1781360&r1=1781359&r2=1781360&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/BindParameters.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/BindParameters.java Thu Feb 2 09:33:47 2017
@@ -18,37 +18,32 @@
*/
package org.apache.felix.scr.impl.inject;
-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;
-public class BindParameters
+public class BindParameters extends BaseParameter
{
- private final ComponentContextImpl<?> componentContext;
private final RefPair<?, ?> refPair;
public BindParameters(ComponentContextImpl<?> componentContext, RefPair<?, ?> refPair)
{
- this.componentContext = componentContext;
+ super(componentContext);
this.refPair = refPair;
}
- public ComponentContextImpl<?> getComponentContext()
- {
- return componentContext;
- }
-
public RefPair getRefPair()
{
return refPair;
}
+ @SuppressWarnings({ "unchecked", "rawtypes" })
public Object getServiceObject() {
- return refPair.getServiceObject((ComponentContextImpl) componentContext);
+ return refPair.getServiceObject((ComponentContextImpl)this.getComponentContext());
}
- public boolean getServiceObject(BundleContext context, SimpleLogger logger) {
- return refPair.getServiceObject((ComponentContextImpl) componentContext, context, logger);
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ public boolean getServiceObject(BundleContext context) {
+ return refPair.getServiceObject((ComponentContextImpl)this.getComponentContext(), context);
}
}
Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ConstructorMethod.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ConstructorMethod.java?rev=1781360&r1=1781359&r2=1781360&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ConstructorMethod.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ConstructorMethod.java Thu Feb 2 09:33:47 2017
@@ -20,13 +20,12 @@ package org.apache.felix.scr.impl.inject
import java.util.Map;
-import org.apache.felix.scr.impl.helper.SimpleLogger;
import org.apache.felix.scr.impl.manager.ComponentContextImpl;
import org.apache.felix.scr.impl.manager.DependencyManager;
/**
* This object describes a constructor for a component.
- * The name ConstructorMethod has been chosen to avoid a clash with the
+ * The name ConstructorMethod has been chosen to avoid a clash with the
* existing Constructor class.
*/
public interface ConstructorMethod<T> {
@@ -35,27 +34,25 @@ public interface ConstructorMethod<T> {
public DependencyManager<S, ?> dependencyManager;
public DependencyManager.OpenStatus<S, ?> openStatus;
}
-
+
/**
* Create a new instance
* @param componentClass The implementation class of the component
* @param componentContext The component context
- * @param logger A logger
+ * @param logger A logger
* @return The instance
*/
<S> T newInstance(Class<T> componentClass,
ComponentContextImpl<T> componentContext,
- Map<Integer, ReferencePair<S>> parameterMap,
- SimpleLogger logger )
+ Map<Integer, ReferencePair<S>> parameterMap)
throws Exception;
-
+
public ConstructorMethod<Object> DEFAULT = new ConstructorMethod<Object>() {
-
+
@Override
- public <S> Object newInstance(Class<Object> componentClass,
- ComponentContextImpl<Object> componentContext,
- Map<Integer, ReferencePair<S>> parameterMap,
- SimpleLogger logger)
+ public <S> Object newInstance(Class<Object> componentClass,
+ ComponentContextImpl<Object> componentContext,
+ Map<Integer, ReferencePair<S>> parameterMap)
throws Exception
{
// 112.4.4 The class must be public and have a public constructor without arguments so component instances
Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ConstructorMethodImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ConstructorMethodImpl.java?rev=1781360&r1=1781359&r2=1781360&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ConstructorMethodImpl.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ConstructorMethodImpl.java Thu Feb 2 09:33:47 2017
@@ -22,7 +22,6 @@ import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.util.Map;
-import org.apache.felix.scr.impl.helper.SimpleLogger;
import org.apache.felix.scr.impl.inject.ValueUtils.ValueType;
import org.apache.felix.scr.impl.inject.field.FieldUtils;
import org.apache.felix.scr.impl.manager.ComponentContextImpl;
@@ -46,9 +45,8 @@ public class ConstructorMethodImpl<T> im
@Override
public <S> T newInstance(Class<T> componentClass,
ComponentContextImpl<T> componentContext,
- Map<Integer, ReferencePair<S>> parameterMap,
- SimpleLogger logger)
- throws Exception
+ Map<Integer, ReferencePair<S>> parameterMap)
+ throws Exception
{
if ( !m_initialized ) {
// activation fields
@@ -60,7 +58,7 @@ public class ConstructorMethodImpl<T> im
int index = 0;
for(final String fieldName : componentContext.getComponentMetadata().getActivationFields() )
{
- final FieldUtils.FieldSearchResult result = FieldUtils.searchField(componentClass, fieldName, logger);
+ final FieldUtils.FieldSearchResult result = FieldUtils.searchField(componentClass, fieldName, componentContext.getLogger());
if ( result == null || result.field == null )
{
m_paramTypes[index] = null;
@@ -106,7 +104,7 @@ public class ConstructorMethodImpl<T> im
}
else
{
- m_constructorArgTypes[i] = ValueUtils.getReferenceValueType(componentClass, reference, argTypes[i], null, logger);
+ m_constructorArgTypes[i] = ValueUtils.getReferenceValueType(componentClass, reference, argTypes[i], null, componentContext.getLogger());
}
if ( m_constructorArgTypes[i] == ValueType.ignore )
{
@@ -149,7 +147,8 @@ public class ConstructorMethodImpl<T> im
{
// TODO - get ref pair
final ReferencePair<S> pair = parameterMap.get(i);
- args[i] = ValueUtils.getValue(m_constructorArgTypes[i],
+ args[i] = ValueUtils.getValue(componentClass.getName(),
+ m_constructorArgTypes[i],
m_constructor.getParameterTypes()[i],
componentContext,
null);
@@ -159,7 +158,7 @@ public class ConstructorMethodImpl<T> im
else
{
component = (T)ConstructorMethod.DEFAULT.newInstance((Class<Object>)componentClass,
- (ComponentContextImpl<Object>)componentContext, null, logger);
+ (ComponentContextImpl<Object>)componentContext, null);
}
// activation fields
@@ -167,11 +166,12 @@ public class ConstructorMethodImpl<T> im
{
if ( m_paramTypes[i] != ValueType.ignore )
{
- final Object value = ValueUtils.getValue(m_paramTypes[i],
+ final Object value = ValueUtils.getValue(componentClass.getName(),
+ m_paramTypes[i],
m_fields[i].getType(),
componentContext,
null);
- FieldUtils.setField(m_fields[i], component, value, logger);
+ FieldUtils.setField(m_fields[i], component, value, componentContext.getLogger());
}
}
Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/DuplexReferenceMethods.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/DuplexReferenceMethods.java?rev=1781360&r1=1781359&r2=1781360&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/DuplexReferenceMethods.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/DuplexReferenceMethods.java Thu Feb 2 09:33:47 2017
@@ -48,6 +48,7 @@ public class DuplexReferenceMethods impl
this.unbind = new DuplexReferenceMethod(unbindList);
this.init = new InitReferenceMethod()
{
+ @Override
public boolean init(final Object componentInstance, final SimpleLogger logger)
{
boolean result = true;
@@ -57,7 +58,7 @@ public class DuplexReferenceMethods impl
if ( init != null )
{
result = init.init(componentInstance, logger);
- if ( !result )
+ if ( !result )
{
break;
}
@@ -68,21 +69,25 @@ public class DuplexReferenceMethods impl
};
}
+ @Override
public ReferenceMethod getBind()
{
return this.bind;
}
+ @Override
public ReferenceMethod getUnbind()
{
return this.unbind;
}
+ @Override
public ReferenceMethod getUpdated()
{
return this.updated;
}
+ @Override
public InitReferenceMethod getInit()
{
return this.init;
@@ -98,15 +103,15 @@ public class DuplexReferenceMethods impl
this.methods = methods;
}
+ @Override
public MethodResult invoke(final Object componentInstance,
final BindParameters parameters,
- final MethodResult methodCallFailureResult,
- final SimpleLogger logger) {
+ final MethodResult methodCallFailureResult) {
MethodResult result = null;
- for(final ReferenceMethod m : methods)
+ for(final ReferenceMethod m : methods)
{
- result = m.invoke(componentInstance, parameters, methodCallFailureResult, logger);
- if ( result == null )
+ result = m.invoke(componentInstance, parameters, methodCallFailureResult);
+ if ( result == null )
{
break;
}
@@ -114,17 +119,17 @@ public class DuplexReferenceMethods impl
return result;
}
+ @Override
public <S, T> boolean getServiceObject(
final BindParameters parameters,
- final BundleContext context,
- final SimpleLogger logger)
+ final BundleContext context)
{
// only if all return true, we return true
boolean result = false;
- for(final ReferenceMethod m : methods)
+ for(final ReferenceMethod m : methods)
{
- result = m.getServiceObject(parameters, context, logger);
- if (!result )
+ result = m.getServiceObject(parameters, context);
+ if (!result )
{
break;
}
Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/LifecycleMethod.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/LifecycleMethod.java?rev=1781360&r1=1781359&r2=1781360&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/LifecycleMethod.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/LifecycleMethod.java Thu Feb 2 09:33:47 2017
@@ -18,8 +18,7 @@
*/
package org.apache.felix.scr.impl.inject;
-import org.apache.felix.scr.impl.helper.SimpleLogger;
-import org.osgi.service.component.ComponentContext;
+import org.apache.felix.scr.impl.manager.ComponentContextImpl;
/**
* Interface for invocation one of the lifecycle methods:
@@ -32,9 +31,8 @@ import org.osgi.service.component.Compon
public interface LifecycleMethod {
MethodResult invoke(Object componentInstance,
- ComponentContext componentContext,
+ ComponentContextImpl<?> componentContext,
int reason,
- MethodResult methodCallFailureResult,
- SimpleLogger logger );
+ MethodResult methodCallFailureResult);
}
Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ReferenceMethod.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ReferenceMethod.java?rev=1781360&r1=1781359&r2=1781360&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ReferenceMethod.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ReferenceMethod.java Thu Feb 2 09:33:47 2017
@@ -18,7 +18,6 @@
*/
package org.apache.felix.scr.impl.inject;
-import org.apache.felix.scr.impl.helper.SimpleLogger;
import org.osgi.framework.BundleContext;
/**
@@ -35,15 +34,13 @@ public interface ReferenceMethod
* @param logger Logger
* @return The method result
*/
-
+
<S, T> MethodResult invoke( Object componentInstance,
BindParameters parameters,
- MethodResult methodCallFailureResult,
- SimpleLogger logger );
+ MethodResult methodCallFailureResult );
<S, T> boolean getServiceObject( BindParameters parameters,
- BundleContext context,
- SimpleLogger logger );
+ BundleContext context);
/**
* A NOP implementation.
@@ -51,17 +48,15 @@ public interface ReferenceMethod
ReferenceMethod NOPReferenceMethod = new ReferenceMethod() {
@Override
- public <S, T> MethodResult invoke(final Object componentInstance,
+ public <S, T> MethodResult invoke(final Object componentInstance,
final BindParameters parameters,
- final MethodResult methodCallFailureResult,
- final SimpleLogger logger) {
+ final MethodResult methodCallFailureResult) {
return MethodResult.VOID;
}
@Override
public <S, T> boolean getServiceObject(final BindParameters parameters,
- final BundleContext context,
- final SimpleLogger logger) {
+ final BundleContext context) {
return true;
}
};
Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ValueUtils.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ValueUtils.java?rev=1781360&r1=1781359&r2=1781360&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ValueUtils.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ValueUtils.java Thu Feb 2 09:33:47 2017
@@ -19,6 +19,8 @@
package org.apache.felix.scr.impl.inject;
import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.Map;
@@ -37,6 +39,7 @@ public class ValueUtils {
private static final String LOGGER_CLASS = "org.osgi.service.log.Logger";
private static final String FORMATTER_LOGGER_CLASS = "org.osgi.service.log.FormatterLogger";
+ private static final String LOGGER_FACTORY_CLASS = "org.osgi.service.log.LoggerFactory";
/**
* The value type of the field, activation field or constructor parameter
@@ -48,13 +51,13 @@ public class ValueUtils {
bundleContext, // field activation, constructor
config_map, // field activation, constructor
config_annotation, // field activation, constructor
- logger, // TODO
- formatterLogger, // TODO
+ ref_logger, // reference (field, constructor, method)
+ ref_formatterLogger, // reference (field, constructor, method)
ref_serviceReference, // reference (field, constructor, method)
ref_serviceObjects, // reference (field, constructor, method)
ref_serviceType, // reference (field, constructor, method)
ref_map, // reference (field, constructor, method)
- ref_tuple // reference (field, constructor ??)
+ ref_tuple // reference (field, constructor ??) // TDODO
}
/** Empty array. */
@@ -81,14 +84,6 @@ public class ValueUtils {
{
return ValueType.config_map;
}
- else if ( typeClass.getName().equals(LOGGER_CLASS) )
- {
- return ValueType.logger;
- }
- else if ( typeClass.getName().equals(FORMATTER_LOGGER_CLASS) )
- {
- return ValueType.formatterLogger;
- }
else
{
return ValueType.config_annotation;
@@ -96,11 +91,12 @@ public class ValueUtils {
}
/**
- * Get the value type of the reference for a field/constructor
+ * Get the value type of the reference for a field/constructor argument
+ *
* @param componentClass The component class declaring the reference
* @param metadata The reference metadata
* @param typeClass The type of the field/parameter
- * @param f The optional field. If null, this is a constructor reference
+ * @param f The optional field. If {@code null} this is a constructor reference
* @param logger The logger
* @return The value type for the field. If invalid, {@code ValueType#ignore}
*/
@@ -119,26 +115,41 @@ public class ValueUtils {
// unary reference
if ( !metadata.isMultiple() )
{
+ // service interface or supertype
if ( typeClass.isAssignableFrom(referenceType) )
{
valueType = ValueType.ref_serviceType;
}
+ // service reference
else if ( typeClass == ClassUtils.SERVICE_REFERENCE_CLASS )
{
valueType = ValueType.ref_serviceReference;
}
+ // components service object
else if ( typeClass == ClassUtils.COMPONENTS_SERVICE_OBJECTS_CLASS )
{
valueType = ValueType.ref_serviceObjects;
}
+ // map (properties)
else if ( typeClass == ClassUtils.MAP_CLASS )
{
valueType = ValueType.ref_map;
}
+ // tuple (map.entry)
else if ( typeClass == ClassUtils.MAP_ENTRY_CLASS )
{
valueType = ValueType.ref_tuple;
}
+ // 1.4: Logger - reference needs to be of type LoggerFactory
+ else if ( typeClass.getName().equals(LOGGER_CLASS) && metadata.getInterface().equals(LOGGER_FACTORY_CLASS) )
+ {
+ return ValueType.ref_logger;
+ }
+ // 1.4: FormatterLogger - reference needs to be of type LoggerFactory
+ else if ( typeClass.getName().equals(FORMATTER_LOGGER_CLASS) && metadata.getInterface().equals(LOGGER_FACTORY_CLASS) )
+ {
+ return ValueType.ref_formatterLogger;
+ }
else
{
if ( field != null )
@@ -249,6 +260,7 @@ public class ValueUtils {
/**
* Get the value for the value type
+ * @param componentType The class of the component
* @param type The value type
* @param targetType Optional target type, only required for type {@code ValueType#config_annotation}.
* @param componentContext The component context
@@ -256,7 +268,9 @@ public class ValueUtils {
* @return The value or {@code null}.
*/
@SuppressWarnings("unchecked")
- public static Object getValue( final ValueType type,
+ public static Object getValue(
+ final String componentType,
+ final ValueType type,
final Class<?> targetType,
@SuppressWarnings("rawtypes") final ComponentContextImpl componentContext,
final RefPair<?, ?> refPair)
@@ -264,28 +278,68 @@ public class ValueUtils {
final Object value;
switch ( type )
{
- case ignore : value = null; break;
- case componentContext : value = componentContext; break;
- case bundleContext : value = componentContext.getBundleContext(); break;
- case config_map : // note: getProperties() returns a ReadOnlyDictionary which is a Map
- value = componentContext.getProperties(); break;
- case config_annotation : value = Annotations.toObject(targetType,
- (Map<String, Object>) componentContext.getProperties(),
- componentContext.getBundleContext().getBundle(), componentContext.getComponentMetadata().isConfigureWithInterfaces());
- break;
- case ref_serviceType : value = refPair.getServiceObject(componentContext); break;
- case ref_serviceReference : value = refPair.getRef(); break;
- case ref_serviceObjects : value = componentContext.getComponentServiceObjectsHelper().getServiceObjects(refPair.getRef()); break;
- case ref_map : value = new ReadOnlyDictionary( refPair.getRef() ); break;
- case ref_tuple : final Object tupleKey = new ReadOnlyDictionary( refPair.getRef() );
- final Object tupleValue = refPair.getServiceObject(componentContext);
- value = new MapEntryImpl(tupleKey, tupleValue, refPair.getRef());
- break;
+ case ignore : value = null;
+ break;
+ case componentContext : value = componentContext;
+ break;
+ case bundleContext : value = componentContext.getBundleContext();
+ break;
+ case config_map : // note: getProperties() returns a ReadOnlyDictionary which is a Map
+ value = componentContext.getProperties();
+ break;
+ case config_annotation : value = Annotations.toObject(targetType,
+ (Map<String, Object>) componentContext.getProperties(),
+ componentContext.getBundleContext().getBundle(), componentContext.getComponentMetadata().isConfigureWithInterfaces());
+ break;
+ case ref_serviceType : value = refPair.getServiceObject(componentContext);
+ break;
+ case ref_serviceReference : value = refPair.getRef();
+ break;
+ case ref_serviceObjects : value = componentContext.getComponentServiceObjectsHelper().getServiceObjects(refPair.getRef());
+ break;
+ case ref_map : value = new ReadOnlyDictionary( refPair.getRef() );
+ break;
+ case ref_tuple : final Object tupleKey = new ReadOnlyDictionary( refPair.getRef() );
+ final Object tupleValue = refPair.getServiceObject(componentContext);
+ value = new MapEntryImpl(tupleKey, tupleValue, refPair.getRef());
+ break;
+ case ref_logger :
+ case ref_formatterLogger : value = getLogger(componentType, targetType, componentContext, refPair);
+ break;
default: value = null;
}
return value;
}
+ private static Object getLogger(String componentType,
+ final Class<?> targetType,
+ @SuppressWarnings("rawtypes") final ComponentContextImpl componentContext,
+ final RefPair<?, ?> refPair )
+ {
+ @SuppressWarnings("unchecked")
+ final Object factory = refPair.getServiceObject(componentContext);
+ if ( factory != null )
+ {
+ Exception error = null;
+ try {
+ final Method m = factory.getClass().getMethod("getLogger", new Class[] {String.class, Class.class});
+ return m.invoke(factory, new Object[] {componentType, targetType});
+ } catch (NoSuchMethodException e) {
+ error = e;
+ } catch (SecurityException e) {
+ error = e;
+ } catch (IllegalAccessException e) {
+ error = e;
+ } catch (IllegalArgumentException e) {
+ error = e;
+ } catch (InvocationTargetException e) {
+ error = e;
+ }
+ componentContext.getLogger().log( LogService.LOG_ERROR, "Unexpected error while trying to get logger.", null, error );
+ }
+ return null;
+ }
+
/**
* Comparable map entry using the service reference to compare.
*/
Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/field/FieldHandler.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/field/FieldHandler.java?rev=1781360&r1=1781359&r2=1781360&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/field/FieldHandler.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/field/FieldHandler.java Thu Feb 2 09:33:47 2017
@@ -70,6 +70,7 @@ public class FieldHandler
new Comparator<RefPair<?, ?>>()
{
+ @Override
public int compare(final RefPair<?, ?> o1, final RefPair<?, ?> o2)
{
return o1.getRef().compareTo(o2.getRef());
@@ -182,8 +183,7 @@ public class FieldHandler
private MethodResult updateField(final METHOD_TYPE mType,
final Object componentInstance,
- final BindParameters bp,
- final SimpleLogger logger )
+ final BindParameters bp)
throws InvocationTargetException
{
@SuppressWarnings("rawtypes")
@@ -218,7 +218,8 @@ public class FieldHandler
{
return MethodResult.REACTIVATE;
}
- final Object obj = ValueUtils.getValue(valueType, field.getType(), key, refPair);
+ final Object obj = ValueUtils.getValue(componentInstance.getClass().getName(),
+ valueType, field.getType(), key, refPair);
this.setFieldValue(componentInstance, obj);
this.boundValues.put(refPair, obj);
}
@@ -226,7 +227,8 @@ public class FieldHandler
// bind needs always be done
else
{
- final Object obj = ValueUtils.getValue(valueType, field.getType(), key, refPair);
+ final Object obj = ValueUtils.getValue(componentInstance.getClass().getName(),
+ valueType, field.getType(), key, refPair);
this.setFieldValue(componentInstance, obj);
this.boundValues.put(refPair, obj);
}
@@ -238,7 +240,8 @@ public class FieldHandler
// bind: replace or update the field
if ( mType == METHOD_TYPE.BIND )
{
- final Object obj = ValueUtils.getValue(valueType, field.getType(), key, refPair);
+ final Object obj = ValueUtils.getValue(componentInstance.getClass().getName(),
+ valueType, field.getType(), key, refPair);
this.boundValues.put(refPair, obj);
if ( metadata.isReplace() )
{
@@ -276,7 +279,8 @@ public class FieldHandler
{
if ( !this.metadata.isStatic() )
{
- final Object obj = ValueUtils.getValue(valueType, field.getType(), key, refPair);
+ final Object obj = ValueUtils.getValue(componentInstance.getClass().getName(),
+ valueType, field.getType(), key, refPair);
final Object oldObj = this.boundValues.put(refPair, obj);
if ( metadata.isReplace() )
@@ -349,8 +353,7 @@ public class FieldHandler
MethodResult invoke( final FieldHandler handler,
final METHOD_TYPE mType,
final Object componentInstance,
- final BindParameters rawParameter,
- final SimpleLogger logger )
+ final BindParameters rawParameter)
throws InvocationTargetException;
boolean fieldExists( final FieldHandler handler, final SimpleLogger logger);
@@ -370,28 +373,28 @@ public class FieldHandler
// resolve the field
final FieldUtils.FieldSearchResult result = FieldUtils.searchField( handler.componentClass, handler.metadata.getField(), logger );
- if ( result == null )
+ if ( result == null )
{
- handler.field = null;
+ handler.field = null;
handler.valueType = null;
handler.state = NotFound.INSTANCE;
logger.log(LogService.LOG_ERROR, "Field [{0}] not found; Component will fail",
new Object[] { handler.metadata.getField() }, null);
}
- else
+ else
{
handler.field = result.field;
- if ( !result.usable )
+ if ( !result.usable )
{
handler.valueType = ValueType.ignore;
}
else
{
- handler.valueType = ValueUtils.getReferenceValueType(
+ handler.valueType = ValueUtils.getReferenceValueType(
handler.componentClass,
handler.metadata,
result.field.getType(),
- result.field,
+ result.field,
logger );
}
handler.state = Resolved.INSTANCE;
@@ -400,17 +403,18 @@ public class FieldHandler
}
}
+ @Override
public MethodResult invoke( final FieldHandler handler,
final METHOD_TYPE mType,
final Object componentInstance,
- final BindParameters rawParameter,
- SimpleLogger logger )
+ final BindParameters rawParameter)
throws InvocationTargetException
{
- resolve( handler, logger );
- return handler.state.invoke( handler, mType, componentInstance, rawParameter, logger );
+ resolve( handler, rawParameter.getLogger() );
+ return handler.state.invoke( handler, mType, componentInstance, rawParameter );
}
+ @Override
public boolean fieldExists( final FieldHandler handler, final SimpleLogger logger)
{
resolve( handler, logger );
@@ -425,17 +429,18 @@ public class FieldHandler
{
private static final State INSTANCE = new NotFound();
+ @Override
public MethodResult invoke( final FieldHandler handler,
final METHOD_TYPE mType,
final Object componentInstance,
- final BindParameters rawParameter,
- final SimpleLogger logger )
+ final BindParameters rawParameter)
{
- logger.log( LogService.LOG_ERROR, "Field [{0}] not found", new Object[]
+ rawParameter.getLogger().log( LogService.LOG_ERROR, "Field [{0}] not found", new Object[]
{ handler.metadata.getField() }, null );
return null;
}
+ @Override
public boolean fieldExists( final FieldHandler handler, final SimpleLogger logger)
{
return false;
@@ -449,16 +454,17 @@ public class FieldHandler
{
private static final State INSTANCE = new Resolved();
+ @Override
public MethodResult invoke( final FieldHandler handler,
final METHOD_TYPE mType,
final Object componentInstance,
- final BindParameters rawParameter,
- final SimpleLogger logger )
+ final BindParameters rawParameter)
throws InvocationTargetException
{
- return handler.updateField( mType, componentInstance, rawParameter, logger );
+ return handler.updateField( mType, componentInstance, rawParameter );
}
+ @Override
public boolean fieldExists( final FieldHandler handler, final SimpleLogger logger)
{
return true;
@@ -484,10 +490,10 @@ public class FieldHandler
this.handler = handler;
}
+ @Override
public <S, T> MethodResult invoke(final Object componentInstance,
final BindParameters rawParameter,
- final MethodResult methodCallFailureResult,
- final SimpleLogger logger)
+ final MethodResult methodCallFailureResult)
{
if ( handler.valueType == ValueType.ignore )
{
@@ -499,31 +505,30 @@ public class FieldHandler
return handler.state.invoke( handler,
methodType,
componentInstance,
- rawParameter,
- logger );
+ rawParameter);
}
catch ( final InvocationTargetException ite )
{
- logger.log( LogService.LOG_ERROR, "The {0} field has thrown an exception", new Object[]
+ rawParameter.getLogger().log( LogService.LOG_ERROR, "The {0} field has thrown an exception", new Object[]
{ handler.metadata.getField() }, ite.getCause() );
}
return methodCallFailureResult;
}
+ @Override
public <S, T> boolean getServiceObject(
final BindParameters rawParameter,
- final BundleContext context,
- final SimpleLogger logger)
+ final BundleContext context)
{
if ( methodType != METHOD_TYPE.UNBIND )
{
//??? this resolves which we need.... better way?
if ( rawParameter.getServiceObject() == null
- && handler.fieldExists( logger )
+ && handler.fieldExists( rawParameter.getLogger() )
&& (handler.valueType == ValueType.ref_serviceType || handler.valueType == ValueType.ref_tuple ) )
{
- return rawParameter.getServiceObject(context, logger);
+ return rawParameter.getServiceObject(context);
}
}
return true;
@@ -554,6 +559,7 @@ public class FieldHandler
return new InitReferenceMethod()
{
+ @Override
public boolean init(final Object componentInstance, final SimpleLogger logger)
{
if ( fieldExists( logger ) )
Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/ActivateMethod.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/ActivateMethod.java?rev=1781360&r1=1781359&r2=1781360&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/ActivateMethod.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/ActivateMethod.java Thu Feb 2 09:33:47 2017
@@ -33,8 +33,8 @@ import org.apache.felix.scr.impl.inject.
import org.apache.felix.scr.impl.inject.ClassUtils;
import org.apache.felix.scr.impl.inject.LifecycleMethod;
import org.apache.felix.scr.impl.inject.MethodResult;
+import org.apache.felix.scr.impl.manager.ComponentContextImpl;
import org.apache.felix.scr.impl.metadata.DSVersion;
-import org.osgi.service.component.ComponentContext;
import org.osgi.service.log.LogService;
@@ -42,7 +42,7 @@ public class ActivateMethod extends Base
{
protected final boolean m_supportsInterfaces;
-
+
public ActivateMethod( final String methodName,
final boolean methodRequired,
final Class<?> componentClass,
@@ -200,6 +200,7 @@ public class ActivateMethod extends Base
}
Collections.sort(result, new Comparator<Method>(){
+ @Override
public int compare(Method m1, Method m2)
{
final int l1 = m1.getParameterTypes().length;
@@ -290,23 +291,22 @@ public class ActivateMethod extends Base
/**
* @see org.apache.felix.scr.impl.inject.LifecycleMethod#invoke(java.lang.Object, org.osgi.service.component.ComponentContext, int, org.apache.felix.scr.impl.inject.MethodResult, org.apache.felix.scr.impl.helper.SimpleLogger)
*/
- public MethodResult invoke(final Object componentInstance,
- final ComponentContext componentContext,
- final int reason,
- final MethodResult methodCallFailureResult,
- final SimpleLogger logger) {
- return invoke(componentInstance, new ActivatorParameter(componentContext, reason), methodCallFailureResult, logger);
+ @Override
+ public MethodResult invoke(final Object componentInstance,
+ final ComponentContextImpl<?> componentContext,
+ final int reason,
+ final MethodResult methodCallFailureResult) {
+ return invoke(componentInstance, new ActivatorParameter(componentContext, reason), methodCallFailureResult);
}
@Override
- public MethodResult invoke(final Object componentInstance,
+ public MethodResult invoke(final Object componentInstance,
final ActivatorParameter rawParameter,
- final MethodResult methodCallFailureResult,
- final SimpleLogger logger )
+ final MethodResult methodCallFailureResult)
{
- if (methodExists( logger ))
+ if (methodExists( rawParameter.getLogger() ))
{
- return super.invoke(componentInstance, rawParameter, methodCallFailureResult, logger );
+ return super.invoke(componentInstance, rawParameter, methodCallFailureResult );
}
return null;
}
Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/BaseMethod.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/BaseMethod.java?rev=1781360&r1=1781359&r2=1781360&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/BaseMethod.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/BaseMethod.java Thu Feb 2 09:33:47 2017
@@ -28,6 +28,7 @@ import java.util.Arrays;
import java.util.Map;
import org.apache.felix.scr.impl.helper.SimpleLogger;
+import org.apache.felix.scr.impl.inject.BaseParameter;
import org.apache.felix.scr.impl.inject.ClassUtils;
import org.apache.felix.scr.impl.inject.MethodResult;
import org.apache.felix.scr.impl.metadata.DSVersion;
@@ -37,7 +38,7 @@ import org.osgi.service.log.LogService;
/**
* Component method to be invoked on service (un)binding.
*/
-public abstract class BaseMethod<P>
+public abstract class BaseMethod<P extends BaseParameter>
{
private final DSVersion dsVersion;
@@ -212,7 +213,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 )
throws InvocationTargetException
{
try
@@ -220,23 +221,23 @@ public abstract class BaseMethod<P>
if ( componentInstance != null )
{
final Object[] params = getParameters(m_method, rawParameter);
- logger.log( LogService.LOG_DEBUG, "invoking {0}: {1}: parameters {2}", new Object[]
+ rawParameter.getLogger().log( LogService.LOG_DEBUG, "invoking {0}: {1}: parameters {2}", new Object[]
{ getMethodNamePrefix(), getMethodName(), Arrays.asList( params ) }, null );
Object result = m_method.invoke(componentInstance, params);
- logger.log( LogService.LOG_DEBUG, "invoked {0}: {1}", new Object[]
+ rawParameter.getLogger().log( LogService.LOG_DEBUG, "invoked {0}: {1}", new Object[]
{ getMethodNamePrefix(), getMethodName() }, null );
return new MethodResult((m_method.getReturnType() != Void.TYPE), (Map<String, Object>) result);
}
else
{
- logger.log( LogService.LOG_WARNING, "Method {0}: {1} cannot be called on null object",
+ rawParameter.getLogger().log( LogService.LOG_WARNING, "Method {0}: {1} cannot be called on null object",
new Object[]
{ getMethodNamePrefix(), getMethodName() }, null );
}
}
catch ( IllegalStateException ise )
{
- logger.log( LogService.LOG_DEBUG, ise.getMessage(), null );
+ rawParameter.getLogger().log( LogService.LOG_DEBUG, ise.getMessage(), null );
return null;
}
catch ( IllegalAccessException ex )
@@ -244,7 +245,7 @@ public abstract class BaseMethod<P>
// 112.3.1 If the method is not is not declared protected or
// public, SCR must log an error message with the log service,
// if present, and ignore the method
- logger.log( LogService.LOG_DEBUG, "Method {0} cannot be called", new Object[]
+ rawParameter.getLogger().log( LogService.LOG_DEBUG, "Method {0} cannot be called", new Object[]
{ getMethodName() }, ex );
}
catch ( InvocationTargetException ex )
@@ -496,15 +497,15 @@ public abstract class BaseMethod<P>
* found and called, but the method threw an exception.
*/
public MethodResult invoke( final Object componentInstance, final P rawParameter,
- final MethodResult methodCallFailureResult, SimpleLogger logger )
+ final MethodResult methodCallFailureResult )
{
try
{
- return m_state.invoke( this, componentInstance, rawParameter, logger );
+ return m_state.invoke( this, componentInstance, rawParameter );
}
catch ( InvocationTargetException ite )
{
- logger.log( LogService.LOG_ERROR, "The {0} method has thrown an exception", new Object[]
+ rawParameter.getLogger().log( LogService.LOG_ERROR, "The {0} method has thrown an exception", new Object[]
{ getMethodName() }, ite.getCause() );
if ( methodCallFailureResult != null && methodCallFailureResult.getResult() != null )
{
@@ -524,11 +525,11 @@ public abstract class BaseMethod<P>
private static interface State
{
- <P> MethodResult invoke( final BaseMethod<P> baseMethod, final Object componentInstance, final P rawParameter, SimpleLogger logger )
+ <P extends BaseParameter> MethodResult invoke( final BaseMethod<P> baseMethod, final Object componentInstance, final P rawParameter )
throws InvocationTargetException;
- <P> boolean methodExists( final BaseMethod<P> baseMethod, SimpleLogger logger );
+ <P extends BaseParameter> boolean methodExists( final BaseMethod<P> baseMethod, SimpleLogger logger );
}
private static class NotApplicable implements State
@@ -538,14 +539,14 @@ public abstract class BaseMethod<P>
@Override
- public <P> MethodResult invoke( final BaseMethod<P> baseMethod, final Object componentInstance, final P rawParameter, SimpleLogger logger )
+ public <P extends BaseParameter> MethodResult invoke( final BaseMethod<P> baseMethod, final Object componentInstance, final P rawParameter )
{
return MethodResult.VOID;
}
@Override
- public <P> boolean methodExists( final BaseMethod<P> baseMethod, SimpleLogger logger )
+ public <P extends BaseParameter> boolean methodExists( final BaseMethod<P> baseMethod, SimpleLogger logger )
{
return true;
}
@@ -556,7 +557,7 @@ public abstract class BaseMethod<P>
private static final State INSTANCE = new NotResolved();
- private synchronized <P> void resolve( final BaseMethod<P> baseMethod, SimpleLogger logger )
+ private synchronized <P extends BaseParameter> void resolve( final BaseMethod<P> baseMethod, SimpleLogger logger )
{
logger.log( LogService.LOG_DEBUG, "getting {0}: {1}", new Object[]
{baseMethod.getMethodNamePrefix(), baseMethod.getMethodName()}, null );
@@ -578,16 +579,16 @@ public abstract class BaseMethod<P>
@Override
- public <P> MethodResult invoke( final BaseMethod<P> baseMethod, final Object componentInstance, final P rawParameter, SimpleLogger logger )
+ public <P extends BaseParameter> MethodResult invoke( final BaseMethod<P> baseMethod, final Object componentInstance, final P rawParameter )
throws InvocationTargetException
{
- resolve( baseMethod, logger );
- return baseMethod.getState().invoke( baseMethod, componentInstance, rawParameter, logger );
+ resolve( baseMethod, rawParameter.getLogger() );
+ return baseMethod.getState().invoke( baseMethod, componentInstance, rawParameter );
}
@Override
- public <P> boolean methodExists( final BaseMethod<P> baseMethod, SimpleLogger logger )
+ public <P extends BaseParameter> boolean methodExists( final BaseMethod<P> baseMethod, SimpleLogger logger )
{
resolve( baseMethod, logger );
return baseMethod.getState().methodExists( baseMethod, logger );
@@ -600,19 +601,19 @@ public abstract class BaseMethod<P>
@Override
- public <P> MethodResult invoke( final BaseMethod<P> baseMethod, final Object componentInstance, final P rawParameter, SimpleLogger logger )
+ public <P extends BaseParameter> MethodResult invoke( final BaseMethod<P> baseMethod, final Object componentInstance, final P rawParameter )
{
// 112.3.1 If the method is not found , SCR must log an error
// message with the log service, if present, and ignore the
// method
- logger.log( LogService.LOG_ERROR, "{0} method [{1}] not found", new Object[]
+ rawParameter.getLogger().log( LogService.LOG_ERROR, "{0} method [{1}] not found", new Object[]
{ baseMethod.getMethodNamePrefix(), baseMethod.getMethodName() }, null );
return null;
}
@Override
- public <P> boolean methodExists( final BaseMethod<P> baseMethod, SimpleLogger logger )
+ public <P extends BaseParameter> boolean methodExists( final BaseMethod<P> baseMethod, SimpleLogger logger )
{
return false;
}
@@ -624,15 +625,15 @@ public abstract class BaseMethod<P>
@Override
- public <P> MethodResult invoke( final BaseMethod<P> baseMethod, final Object componentInstance, final P rawParameter, SimpleLogger logger )
+ public <P extends BaseParameter> MethodResult invoke( final BaseMethod<P> baseMethod, final Object componentInstance, final P rawParameter )
throws InvocationTargetException
{
- return baseMethod.invokeMethod( componentInstance, rawParameter, logger );
+ return baseMethod.invokeMethod( componentInstance, rawParameter );
}
@Override
- public <P> boolean methodExists( final BaseMethod<P> baseMethod, SimpleLogger logger )
+ public <P extends BaseParameter> boolean methodExists( final BaseMethod<P> baseMethod, SimpleLogger logger )
{
return true;
}
Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/BindMethod.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/BindMethod.java?rev=1781360&r1=1781359&r2=1781360&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/BindMethod.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/methods/BindMethod.java Thu Feb 2 09:33:47 2017
@@ -468,7 +468,7 @@ implements org.apache.felix.scr.impl.inj
}
// Get the parameters for the current method
- Class[] parameters = method.getParameterTypes();
+ Class<?>[] parameters = method.getParameterTypes();
// Select only the methods that receive a single
// parameter
@@ -577,7 +577,7 @@ implements org.apache.felix.scr.impl.inj
for ( int i = 0; i < candidateBindMethods.length; i++ )
{
final Method method = candidateBindMethods[i];
- final Class[] parameters = method.getParameterTypes();
+ final Class<?>[] parameters = method.getParameterTypes();
if ( parameters.length == 2 && method.getName().equals( getMethodName() ) )
{
@@ -634,13 +634,13 @@ implements org.apache.felix.scr.impl.inj
}
@Override
- public <S, T> boolean getServiceObject( final BindParameters parameters, BundleContext context, SimpleLogger logger )
+ public <S, T> boolean getServiceObject( final BindParameters parameters, BundleContext context )
{
//??? this resolves which we need.... better way?
- if ( parameters.getServiceObject() == null && methodExists( logger ) )
+ if ( parameters.getServiceObject() == null && methodExists( parameters.getComponentContext().getLogger() ) )
{
if ( m_paramTypes.contains(ValueUtils.ValueType.ref_serviceType) ) {
- return parameters.getServiceObject(context, logger);
+ return parameters.getServiceObject(context);
}
}
return true;
@@ -655,7 +655,7 @@ implements org.apache.felix.scr.impl.inj
int i = 0;
for ( ValueUtils.ValueType pt: m_paramTypes )
{
- result[i++] = ValueUtils.getValue(pt, null, key, refPair);
+ result[i++] = ValueUtils.getValue(getComponentClass().getName(), pt, null, key, refPair);
}
return result;
}
Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/ComponentContextImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/ComponentContextImpl.java?rev=1781360&r1=1781359&r2=1781360&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/ComponentContextImpl.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/ComponentContextImpl.java Thu Feb 2 09:33:47 2017
@@ -26,6 +26,7 @@ import java.util.concurrent.TimeUnit;
import org.apache.felix.scr.component.ExtComponentContext;
import org.apache.felix.scr.impl.helper.ComponentServiceObjectsHelper;
import org.apache.felix.scr.impl.helper.ReadOnlyDictionary;
+import org.apache.felix.scr.impl.helper.SimpleLogger;
import org.apache.felix.scr.impl.metadata.ComponentMetadata;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
@@ -48,7 +49,7 @@ public class ComponentContextImpl<S> imp
private final ComponentInstance<S> m_componentInstance = new ComponentInstanceImpl<S>(this);
private final Bundle m_usingBundle;
-
+
private volatile ServiceRegistration<S> m_serviceRegistration;
private volatile S m_implementationObject;
@@ -71,7 +72,7 @@ public class ComponentContextImpl<S> imp
}
this.serviceObjectsHelper = new ComponentServiceObjectsHelper(usingBundle.getBundleContext());
}
-
+
public void unsetServiceRegistration() {
m_serviceRegistration = null;
}
@@ -117,11 +118,12 @@ public class ComponentContextImpl<S> imp
return m_componentManager;
}
- public ComponentMetadata getComponentMetadata()
+ public ComponentMetadata getComponentMetadata()
{
return m_componentManager.getComponentMetadata();
}
-
+
+ @Override
public final Dictionary<String, Object> getProperties()
{
// 112.12.3.5 The Dictionary is read-only and cannot be modified
@@ -129,6 +131,7 @@ public class ComponentContextImpl<S> imp
}
+ @Override
public Object locateService( String name )
{
m_componentManager.obtainActivationReadLock( );
@@ -144,6 +147,7 @@ public class ComponentContextImpl<S> imp
}
+ @Override
public Object locateService( String name, ServiceReference ref )
{
m_componentManager.obtainActivationReadLock( );
@@ -159,6 +163,7 @@ public class ComponentContextImpl<S> imp
}
+ @Override
public Object[] locateServices( String name )
{
m_componentManager.obtainActivationReadLock( );
@@ -174,24 +179,32 @@ public class ComponentContextImpl<S> imp
}
+ @Override
public BundleContext getBundleContext()
{
return m_componentManager.getBundleContext();
}
+ @Override
public Bundle getUsingBundle()
{
return m_usingBundle;
}
+ public SimpleLogger getLogger()
+ {
+ return m_componentManager;
+ }
+ @Override
public ComponentInstance<S> getComponentInstance()
{
return m_componentInstance;
}
+ @Override
public void enableComponent( String name )
{
ComponentActivator activator = m_componentManager.getActivator();
@@ -202,6 +215,7 @@ public class ComponentContextImpl<S> imp
}
+ @Override
public void disableComponent( String name )
{
ComponentActivator activator = m_componentManager.getActivator();
@@ -212,6 +226,7 @@ public class ComponentContextImpl<S> imp
}
+ @Override
public ServiceReference<S> getServiceReference()
{
return m_serviceRegistration == null? null: m_serviceRegistration.getReference();
@@ -220,6 +235,7 @@ public class ComponentContextImpl<S> imp
//---------- Speculative MutableProperties interface ------------------------------
+ @Override
public void setServiceProperties(Dictionary<String, ?> properties)
{
getComponentManager().setServiceProperties(properties );
@@ -269,12 +285,14 @@ public class ComponentContextImpl<S> imp
}
+ @Override
public S getInstance()
{
return m_componentContext.getImplementationObject(true);
}
+ @Override
public void dispose()
{
m_componentContext.getComponentManager().dispose();
Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java?rev=1781360&r1=1781359&r2=1781360&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java Thu Feb 2 09:33:47 2017
@@ -148,6 +148,7 @@ public class DependencyManager<S, T> imp
private volatile Map<ServiceReference<T>, RefPair<S, T>> previousRefMap = EMPTY_REF_MAP;
+ @Override
public void setTracker(ServiceTracker<T, RefPair<S, T>, ExtendedServiceEvent> tracker)
{
m_tracker = tracker;
@@ -156,6 +157,7 @@ public class DependencyManager<S, T> imp
trackerOpened = false;
}
+ @Override
public boolean isSatisfied()
{
ServiceTracker<T, RefPair<S, T>, ExtendedServiceEvent> tracker = getTracker();
@@ -185,6 +187,7 @@ public class DependencyManager<S, T> imp
return trackerOpened;
}
+ @Override
public void setTrackerOpened()
{
trackerOpened = true;
@@ -205,6 +208,7 @@ public class DependencyManager<S, T> imp
return previousRefMap;
}
+ @Override
public void setPreviousRefMap(Map<ServiceReference<T>, RefPair<S, T>> previousRefMap)
{
if (previousRefMap != null)
@@ -241,12 +245,14 @@ public class DependencyManager<S, T> imp
private class FactoryCustomizer extends AbstractCustomizer
{
+ @Override
public RefPair<S, T> addingService(ServiceReference<T> serviceReference)
{
RefPair<S, T> refPair = newRefPair(serviceReference);
return refPair;
}
+ @Override
public void addedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount,
int serviceCount, ExtendedServiceEvent event)
{
@@ -256,11 +262,13 @@ public class DependencyManager<S, T> imp
}
}
+ @Override
public void modifiedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount,
ExtendedServiceEvent event)
{
}
+ @Override
public void removedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount,
ExtendedServiceEvent event)
{
@@ -271,6 +279,7 @@ public class DependencyManager<S, T> imp
}
}
+ @Override
public boolean prebind(ComponentContextImpl<S> key)
{
AtomicInteger trackingCount = new AtomicInteger();
@@ -278,11 +287,13 @@ public class DependencyManager<S, T> imp
return cardinalitySatisfied(serviceCount);
}
+ @Override
public void close()
{
deactivateTracker();
}
+ @Override
public Collection<RefPair<S, T>> getRefs(AtomicInteger trackingCount)
{
return Collections.emptyList();
@@ -295,6 +306,7 @@ public class DependencyManager<S, T> imp
private RefPair<S, T> lastRefPair;
private int lastRefPairTrackingCount;
+ @Override
public RefPair<S, T> addingService(ServiceReference<T> serviceReference)
{
RefPair<S, T> refPair = getPreviousRefMap().get(serviceReference);
@@ -305,6 +317,7 @@ public class DependencyManager<S, T> imp
return refPair;
}
+ @Override
public void addedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount,
int serviceCount, ExtendedServiceEvent event)
{
@@ -348,6 +361,7 @@ public class DependencyManager<S, T> imp
}
}
+ @Override
public void modifiedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount,
ExtendedServiceEvent event)
{
@@ -362,6 +376,7 @@ public class DependencyManager<S, T> imp
tracked(trackingCount);
}
+ @Override
public void removedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount,
ExtendedServiceEvent event)
{
@@ -393,6 +408,7 @@ public class DependencyManager<S, T> imp
ungetService(refPair);
}
+ @Override
public boolean prebind(ComponentContextImpl<S> key)
{
int serviceCount = 0;
@@ -422,6 +438,7 @@ public class DependencyManager<S, T> imp
return false;
}
+ @Override
public void close()
{
AtomicInteger trackingCount = new AtomicInteger();
@@ -432,6 +449,7 @@ public class DependencyManager<S, T> imp
deactivateTracker();
}
+ @Override
public Collection<RefPair<S, T>> getRefs(AtomicInteger trackingCount)
{
if (lastRefPair == null)
@@ -455,12 +473,14 @@ public class DependencyManager<S, T> imp
private class MultipleStaticGreedyCustomizer extends AbstractCustomizer
{
+ @Override
public RefPair<S, T> addingService(ServiceReference<T> serviceReference)
{
RefPair<S, T> refPair = newRefPair(serviceReference);
return refPair;
}
+ @Override
public void addedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount,
int serviceCount, ExtendedServiceEvent event)
{
@@ -488,6 +508,7 @@ public class DependencyManager<S, T> imp
new Object[] { getName(), trackingCount, serviceReference }, null);
}
+ @Override
public void modifiedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount,
ExtendedServiceEvent event)
{
@@ -512,6 +533,7 @@ public class DependencyManager<S, T> imp
new Object[] { getName(), trackingCount, serviceReference }, null);
}
+ @Override
public void removedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount,
ExtendedServiceEvent event)
{
@@ -545,6 +567,7 @@ public class DependencyManager<S, T> imp
new Object[] { getName(), trackingCount, serviceReference }, null);
}
+ @Override
public boolean prebind(ComponentContextImpl<S> key)
{
int serviceCount = 0;
@@ -562,6 +585,7 @@ public class DependencyManager<S, T> imp
return cardinalitySatisfied(serviceCount);
}
+ @Override
public void close()
{
AtomicInteger trackingCount = new AtomicInteger();
@@ -572,6 +596,7 @@ public class DependencyManager<S, T> imp
deactivateTracker();
}
+ @Override
public Collection<RefPair<S, T>> getRefs(AtomicInteger trackingCount)
{
ServiceTracker<T, RefPair<S, T>, ExtendedServiceEvent> tracker = getTracker();
@@ -589,12 +614,14 @@ public class DependencyManager<S, T> imp
private final AtomicReference<Collection<RefPair<S, T>>> refs = new AtomicReference<Collection<RefPair<S, T>>>();
private int trackingCount;
+ @Override
public RefPair<S, T> addingService(ServiceReference<T> serviceReference)
{
RefPair<S, T> refPair = newRefPair(serviceReference);
return refPair;
}
+ @Override
public void addedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount,
int serviceCount, ExtendedServiceEvent event)
{
@@ -610,6 +637,7 @@ public class DependencyManager<S, T> imp
new Object[] { getName(), trackingCount, serviceReference }, null);
}
+ @Override
public void modifiedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount,
ExtendedServiceEvent event)
{
@@ -636,6 +664,7 @@ public class DependencyManager<S, T> imp
new Object[] { getName(), trackingCount, serviceReference }, null);
}
+ @Override
public void removedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount,
ExtendedServiceEvent event)
{
@@ -676,6 +705,7 @@ public class DependencyManager<S, T> imp
new Object[] { getName(), trackingCount, serviceReference }, null);
}
+ @Override
public boolean prebind(ComponentContextImpl<S> key)
{
int serviceCount = 0;
@@ -720,6 +750,7 @@ public class DependencyManager<S, T> imp
return cardinalitySatisfied(serviceCount);
}
+ @Override
public void close()
{
Collection<RefPair<S, T>> refs = this.refs.getAndSet(null);
@@ -733,6 +764,7 @@ public class DependencyManager<S, T> imp
deactivateTracker();
}
+ @Override
public Collection<RefPair<S, T>> getRefs(AtomicInteger trackingCount)
{
trackingCount.set(this.trackingCount);
@@ -747,6 +779,7 @@ public class DependencyManager<S, T> imp
private RefPair<S, T> refPair;
private int trackingCount;
+ @Override
public RefPair<S, T> addingService(ServiceReference<T> serviceReference)
{
RefPair<S, T> refPair = getPreviousRefMap().get(serviceReference);
@@ -757,6 +790,7 @@ public class DependencyManager<S, T> imp
return refPair;
}
+ @Override
public void addedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount,
int serviceCount, ExtendedServiceEvent event)
{
@@ -809,6 +843,7 @@ public class DependencyManager<S, T> imp
}
}
+ @Override
public void modifiedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount,
ExtendedServiceEvent event)
{
@@ -829,6 +864,7 @@ public class DependencyManager<S, T> imp
tracked(trackingCount);
}
+ @Override
public void removedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount,
ExtendedServiceEvent event)
{
@@ -903,6 +939,7 @@ public class DependencyManager<S, T> imp
new Object[] { getName(), trackingCount, serviceReference }, null);
}
+ @Override
public boolean prebind(ComponentContextImpl<S> key)
{
RefPair<S, T> refPair = null;
@@ -933,6 +970,7 @@ public class DependencyManager<S, T> imp
return success;
}
+ @Override
public void close()
{
closeRefPair();
@@ -948,6 +986,7 @@ public class DependencyManager<S, T> imp
refPair = null;
}
+ @Override
public Collection<RefPair<S, T>> getRefs(AtomicInteger trackingCount)
{
Object monitor = getTracker() == null ? null : getTracker().tracked();
@@ -972,12 +1011,14 @@ public class DependencyManager<S, T> imp
private RefPair<S, T> refPair;
private int trackingCount;
+ @Override
public RefPair<S, T> addingService(ServiceReference<T> serviceReference)
{
RefPair<S, T> refPair = newRefPair(serviceReference);
return refPair;
}
+ @Override
public void addedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount,
int serviceCount, ExtendedServiceEvent event)
{
@@ -1022,6 +1063,7 @@ public class DependencyManager<S, T> imp
new Object[] { getName(), trackingCount, serviceReference }, null);
}
+ @Override
public void modifiedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount,
ExtendedServiceEvent event)
{
@@ -1059,6 +1101,7 @@ public class DependencyManager<S, T> imp
new Object[] { getName(), trackingCount, serviceReference }, null);
}
+ @Override
public void removedService(ServiceReference<T> serviceReference, RefPair<S, T> refPair, int trackingCount,
ExtendedServiceEvent event)
{
@@ -1097,6 +1140,7 @@ public class DependencyManager<S, T> imp
new Object[] { getName(), trackingCount, serviceReference }, null);
}
+ @Override
public boolean prebind(ComponentContextImpl<S> key)
{
boolean success = cardinalitySatisfied(0);
@@ -1127,6 +1171,7 @@ public class DependencyManager<S, T> imp
return success;
}
+ @Override
public void close()
{
ServiceTracker<T, RefPair<S, T>, ExtendedServiceEvent> tracker = getTracker();
@@ -1146,6 +1191,7 @@ public class DependencyManager<S, T> imp
}
}
+ @Override
public Collection<RefPair<S, T>> getRefs(AtomicInteger trackingCount)
{
Object monitor = getTracker() == null ? null : getTracker().tracked();
@@ -1167,52 +1213,63 @@ public class DependencyManager<S, T> imp
private class NoPermissionsCustomizer implements Customizer<S, T>
{
+ @Override
public boolean prebind(ComponentContextImpl<S> key)
{
return false;
}
+ @Override
public void close()
{
}
+ @Override
public Collection<RefPair<S, T>> getRefs(AtomicInteger trackingCount)
{
return Collections.emptyList();
}
+ @Override
public boolean isSatisfied()
{
return isOptional();
}
+ @Override
public void setTracker(ServiceTracker<T, RefPair<S, T>, ExtendedServiceEvent> tRefPairServiceTracker)
{
}
+ @Override
public void setTrackerOpened()
{
}
+ @Override
public void setPreviousRefMap(Map<ServiceReference<T>, RefPair<S, T>> previousRefMap)
{
}
+ @Override
public RefPair<S, T> addingService(ServiceReference<T> tServiceReference)
{
return null;
}
+ @Override
public void addedService(ServiceReference<T> tServiceReference, RefPair<S, T> service, int trackingCount,
int serviceCount, ExtendedServiceEvent event)
{
}
+ @Override
public void modifiedService(ServiceReference<T> tServiceReference, RefPair<S, T> service, int trackingCount,
ExtendedServiceEvent event)
{
}
+ @Override
public void removedService(ServiceReference<T> tServiceReference, RefPair<S, T> service, int trackingCount,
ExtendedServiceEvent event)
{
@@ -1384,6 +1441,7 @@ public class DependencyManager<S, T> imp
/* (non-Javadoc)
* @see org.apache.felix.scr.impl.manager.ReferenceManager#getServiceReferences()
*/
+ @Override
public List<ServiceReference<?>> getServiceReferences()
{
Collection<RefPair<S, T>> bound = m_customizer.getRefs(new AtomicInteger());
@@ -1459,7 +1517,7 @@ public class DependencyManager<S, T> imp
}
try
{
- refPair.getServiceObject(key, bundleContext, m_componentManager);
+ refPair.getServiceObject(key, bundleContext);
serviceObject = refPair.getServiceObject(key);
}
catch (Exception e)
@@ -1484,22 +1542,24 @@ public class DependencyManager<S, T> imp
/* (non-Javadoc)
* @see org.apache.felix.scr.impl.manager.ReferenceManager#getName()
*/
+ @Override
public String getName()
{
return m_dependencyMetadata.getName();
}
- public ReferenceMetadata getReferenceMetadata()
+ public ReferenceMetadata getReferenceMetadata()
{
return m_dependencyMetadata;
}
-
+
/**
* Returns <code>true</code> if this dependency manager is satisfied, that
* is if either the dependency is optional or the number of services
* registered in the framework and available to this dependency manager is
* not zero.
*/
+ @Override
public boolean isSatisfied()
{
return m_customizer.isSatisfied();
@@ -1528,9 +1588,9 @@ public class DependencyManager<S, T> imp
public static final class OpenStatus<S, T> {
public final AtomicInteger trackingCount = new AtomicInteger();
- public Collection<RefPair<S, T>> refs;
+ public Collection<RefPair<S, T>> refs;
}
-
+
/**
* initializes a dependency. This method binds all of the service
* occurrences to the instance object
@@ -1562,8 +1622,8 @@ public class DependencyManager<S, T> imp
openLatch.countDown();
return (cardinalitySatisfied(serviceCount) ? status : null);
}
-
- boolean bind(final ComponentContextImpl<S> componentContext, final OpenStatus<S, T> status)
+
+ boolean bind(final ComponentContextImpl<S> componentContext, final OpenStatus<S, T> status)
{
if (!invokeInitMethod(componentContext))
{
@@ -1743,7 +1803,7 @@ public class DependencyManager<S, T> imp
}
MethodResult result = bindMethod.invoke(componentContext.getImplementationObject(false),
- new BindParameters(componentContext, refPair), MethodResult.VOID, m_componentManager);
+ new BindParameters(componentContext, refPair), MethodResult.VOID);
if (result == null)
{
return false;
@@ -1789,8 +1849,7 @@ public class DependencyManager<S, T> imp
}
final MethodResult methodResult = m_bindMethods.getUpdated().invoke(
- componentContext.getImplementationObject(false), new BindParameters(componentContext, refPair), MethodResult.VOID,
- m_componentManager);
+ componentContext.getImplementationObject(false), new BindParameters(componentContext, refPair), MethodResult.VOID);
if (methodResult != null)
{
m_componentManager.setServiceProperties(methodResult, trackingCount);
@@ -1858,8 +1917,7 @@ public class DependencyManager<S, T> imp
}
MethodResult methodResult = m_bindMethods.getUnbind().invoke(
- componentContext.getImplementationObject(false), new BindParameters(componentContext, refPair), MethodResult.VOID,
- m_componentManager);
+ componentContext.getImplementationObject(false), new BindParameters(componentContext, refPair), MethodResult.VOID);
if (methodResult != null)
{
m_componentManager.setServiceProperties(methodResult, trackingCount);
@@ -2205,6 +2263,7 @@ public class DependencyManager<S, T> imp
/* (non-Javadoc)
* @see org.apache.felix.scr.impl.manager.ReferenceManager#getTarget()
*/
+ @Override
public String getTarget()
{
return m_target;
@@ -2221,7 +2280,7 @@ public class DependencyManager<S, T> imp
BundleContext bundleContext = m_componentManager.getBundleContext();
if (bundleContext != null)
{
- return bindMethod.getServiceObject(new BindParameters(key, refPair), bundleContext, m_componentManager);
+ return bindMethod.getServiceObject(new BindParameters(key, refPair), bundleContext);
}
else
{
Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/MultiplePrototypeRefPair.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/MultiplePrototypeRefPair.java?rev=1781360&r1=1781359&r2=1781360&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/MultiplePrototypeRefPair.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/MultiplePrototypeRefPair.java Thu Feb 2 09:33:47 2017
@@ -23,7 +23,6 @@ package org.apache.felix.scr.impl.manage
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
-import org.apache.felix.scr.impl.helper.SimpleLogger;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceObjects;
import org.osgi.framework.ServiceReference;
@@ -74,14 +73,13 @@ public class MultiplePrototypeRefPair<S,
}
@Override
- public boolean getServiceObject(ComponentContextImpl<S> key, BundleContext context,
- SimpleLogger logger)
+ public boolean getServiceObject(ComponentContextImpl<S> key, BundleContext context)
{
final T service = key.getComponentServiceObjectsHelper().getPrototypeRefInstance(this.getRef(), serviceObjects);
if ( service == null )
{
setFailed();
- logger.log(
+ key.getLogger().log(
LogService.LOG_WARNING,
"Could not get service from serviceobjects for ref {0}", new Object[] {getRef()}, null );
return false;
Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/RefPair.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/RefPair.java?rev=1781360&r1=1781359&r2=1781360&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/RefPair.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/RefPair.java Thu Feb 2 09:33:47 2017
@@ -20,7 +20,6 @@
package org.apache.felix.scr.impl.manager;
-import org.apache.felix.scr.impl.helper.SimpleLogger;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceObjects;
import org.osgi.framework.ServiceReference;
@@ -50,7 +49,7 @@ public abstract class RefPair<S, T>
return null;
}
- public abstract boolean getServiceObject( ComponentContextImpl<S> key, BundleContext context, SimpleLogger logger );
+ public abstract boolean getServiceObject( ComponentContextImpl<S> key, BundleContext context );
public abstract T getServiceObject(ComponentContextImpl<S> key);
Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/ServiceFactoryComponentManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/ServiceFactoryComponentManager.java?rev=1781360&r1=1781359&r2=1781360&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/ServiceFactoryComponentManager.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/ServiceFactoryComponentManager.java Thu Feb 2 09:33:47 2017
@@ -232,7 +232,7 @@ public class ServiceFactoryComponentMana
{
S instance = componentContext.getImplementationObject(true);
result = modifiedMethod.invoke( instance,
- componentContext, -1, MethodResult.VOID, this );
+ componentContext, -1, MethodResult.VOID );
}
return result;
Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java?rev=1781360&r1=1781359&r2=1781360&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/SingleComponentManager.java Thu Feb 2 09:33:47 2017
@@ -272,8 +272,7 @@ public class SingleComponentManager<S> e
implementationObject = getComponentMethods().getConstructor().newInstance(implementationObjectClass,
componentContext,
- paramMap,
- this);
+ paramMap);
}
catch ( Throwable t )
@@ -328,7 +327,7 @@ public class SingleComponentManager<S> e
// 5. Call the activate method, if present
final MethodResult failedResult = new MethodResult(true, new HashMap<String, Object>());
final MethodResult result = getComponentMethods().getActivateMethod().invoke( implementationObject,
- componentContext, 1, failedResult, this );
+ componentContext, 1, failedResult );
if ( result == failedResult )
{
this.setFailureReason((Throwable)failedResult.getResult().get("exception"));
@@ -378,7 +377,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,
- componentContext, reason, null, this );
+ componentContext, reason, null );
if ( result != null )
{
setServiceProperties( result, null );
@@ -806,7 +805,7 @@ public class SingleComponentManager<S> e
if ( getInstance() != null )
{
return modifiedMethod.invoke( getInstance(), m_componentContext, -1,
- MethodResult.VOID, this );
+ MethodResult.VOID );
}
return MethodResult.VOID;
}
Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/SinglePrototypeRefPair.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/SinglePrototypeRefPair.java?rev=1781360&r1=1781359&r2=1781360&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/SinglePrototypeRefPair.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/SinglePrototypeRefPair.java Thu Feb 2 09:33:47 2017
@@ -20,7 +20,6 @@
package org.apache.felix.scr.impl.manager;
-import org.apache.felix.scr.impl.helper.SimpleLogger;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceObjects;
import org.osgi.framework.ServiceReference;
@@ -52,14 +51,13 @@ public class SinglePrototypeRefPair<S, T
}
@Override
- public boolean getServiceObject(ComponentContextImpl<S> key, BundleContext context,
- SimpleLogger logger)
+ public boolean getServiceObject(ComponentContextImpl<S> key, BundleContext context)
{
final T service = key.getComponentServiceObjectsHelper().getPrototypeRefInstance(this.getRef(), serviceObjects);
if ( service == null )
{
setFailed();
- logger.log(
+ key.getLogger().log(
LogService.LOG_WARNING,
"Could not get service from serviceobjects for ref {0}", new Object[] {getRef()}, null );
return false;