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/10/27 07:19:50 UTC
svn commit: r1813478 [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/logger/ ...
Author: cziegeler
Date: Fri Oct 27 07:19:49 2017
New Revision: 1813478
URL: http://svn.apache.org/viewvc?rev=1813478&view=rev
Log:
FELIX-5457 : [R7] Logger Support
Added:
felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/logger/
felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/logger/ComponentLogger.java (with props)
Modified:
felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/BaseParameter.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/ClassUtils.java
felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ComponentConstructorImpl.java
felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ComponentMethods.java
felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ComponentMethodsImpl.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/InitReferenceMethod.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/field/FieldUtils.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/AbstractComponentManager.java
felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/manager/ComponentActivator.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/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/test/java/org/apache/felix/scr/impl/PackageIsolationTest.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/manager/ConfiguredComponentHolderTest.java
felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/integration/ComponentFieldActivationTest.java
felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/integration/components/ActivatorComponent.java
felix/trunk/osgi-r7/scr/src/test/java/org/apache/felix/scr/integration/components/FieldActivatorComponent.java
Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/BaseParameter.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/BaseParameter.java?rev=1813478&r1=1813477&r2=1813478&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/BaseParameter.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/BaseParameter.java Fri Oct 27 07:19:49 2017
@@ -18,7 +18,7 @@
*/
package org.apache.felix.scr.impl.inject;
-import org.apache.felix.scr.impl.helper.SimpleLogger;
+import org.apache.felix.scr.impl.logger.ComponentLogger;
import org.apache.felix.scr.impl.manager.ComponentContextImpl;
public abstract class BaseParameter
@@ -36,7 +36,7 @@ public abstract class BaseParameter
return m_componentContext;
}
- public SimpleLogger getLogger()
+ public ComponentLogger getLogger()
{
return m_componentContext.getLogger();
}
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=1813478&r1=1813477&r2=1813478&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 Fri Oct 27 07:19:49 2017
@@ -39,11 +39,11 @@ public class BindParameters extends Base
@SuppressWarnings({ "unchecked", "rawtypes" })
public Object getServiceObject() {
- return refPair.getServiceObject((ComponentContextImpl)this.getComponentContext());
+ return refPair.getServiceObject((ComponentContextImpl)this.getComponentContext());
}
@SuppressWarnings({ "unchecked", "rawtypes" })
public boolean getServiceObject(BundleContext context) {
- return refPair.getServiceObject((ComponentContextImpl)this.getComponentContext(), context);
+ return refPair.getServiceObject((ComponentContextImpl)this.getComponentContext(), context);
}
}
Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ClassUtils.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ClassUtils.java?rev=1813478&r1=1813477&r2=1813478&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ClassUtils.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ClassUtils.java Fri Oct 27 07:19:49 2017
@@ -22,7 +22,7 @@ import java.util.Collection;
import java.util.List;
import java.util.Map;
-import org.apache.felix.scr.impl.helper.SimpleLogger;
+import org.apache.felix.scr.impl.logger.ComponentLogger;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
import org.osgi.service.component.ComponentContext;
@@ -83,14 +83,14 @@ public class ClassUtils
public static Class<?> getClassFromComponentClassLoader(
final Class<?> componentClass,
final String className,
- final SimpleLogger logger )
+ final ComponentLogger logger )
{
if ( logger.isLogEnabled( LogService.LOG_DEBUG ) )
{
logger.log(
LogService.LOG_DEBUG,
- "getReferenceClass: Looking for interface class {0} through loader of {1}",
- new Object[] {className, componentClass.getName()}, null );
+ "getReferenceClass: Looking for interface class {0} through loader of {1}", null,
+ className, componentClass.getName() );
}
try
@@ -107,7 +107,7 @@ public class ClassUtils
if ( logger.isLogEnabled( LogService.LOG_DEBUG ) )
{
logger.log( LogService.LOG_DEBUG,
- "getParameterClass: Found class {0}", new Object[] {referenceClass.getName()}, null );
+ "getParameterClass: Found class {0}", null, referenceClass.getName() );
}
return referenceClass;
}
@@ -141,14 +141,14 @@ public class ClassUtils
logger.log(
LogService.LOG_DEBUG,
"getParameterClass: Checking Bundle {0}/{1}",
- new Object[] {pkg[i].getExportingBundle().getSymbolicName(), pkg[i].getExportingBundle().getBundleId()}, null );
+ null, pkg[i].getExportingBundle().getSymbolicName(), pkg[i].getExportingBundle().getBundleId() );
}
Class<?> referenceClass = pkg[i].getExportingBundle().loadClass( className );
if ( logger.isLogEnabled( LogService.LOG_DEBUG ) )
{
logger.log( LogService.LOG_DEBUG,
- "getParameterClass: Found class {0}", new Object[] {referenceClass.getName()}, null );
+ "getParameterClass: Found class {0}", null,referenceClass.getName() );
}
return referenceClass;
}
@@ -161,7 +161,7 @@ public class ClassUtils
else if ( logger.isLogEnabled( LogService.LOG_DEBUG ) )
{
logger.log( LogService.LOG_DEBUG,
- "getParameterClass: No bundles exporting package {0} found", new Object[] {referenceClassPackage}, null );
+ "getParameterClass: No bundles exporting package {0} found", null, referenceClassPackage );
}
}
else if ( logger.isLogEnabled( LogService.LOG_DEBUG ) )
Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ComponentConstructorImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ComponentConstructorImpl.java?rev=1813478&r1=1813477&r2=1813478&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ComponentConstructorImpl.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ComponentConstructorImpl.java Fri Oct 27 07:19:49 2017
@@ -25,9 +25,9 @@ import java.util.HashMap;
import java.util.List;
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.logger.ComponentLogger;
import org.apache.felix.scr.impl.manager.ComponentContextImpl;
import org.apache.felix.scr.impl.manager.RefPair;
import org.apache.felix.scr.impl.metadata.ComponentMetadata;
@@ -50,7 +50,7 @@ public class ComponentConstructorImpl<T>
@SuppressWarnings("unchecked")
public ComponentConstructorImpl(final ComponentMetadata componentMetadata,
final Class<T> componentClass,
- final SimpleLogger logger)
+ final ComponentLogger logger)
{
// constructor injection
// get reference parameter map
@@ -64,23 +64,23 @@ public class ComponentConstructorImpl<T>
{
// if the index (starting at 0) is equal or higher than the number of constructor arguments
// we log a warning and ignore the reference
- logger.log(LogService.LOG_WARNING,
- "Ignoring reference {0} in component {1} for constructor injection. Parameter index is too high.",
- new Object[] { refMetadata.getName(), componentMetadata.getName() }, null );
+ logger.log(LogService.LOG_ERROR,
+ "Ignoring reference {0} for constructor injection. Parameter index is too high.", null,
+ refMetadata.getName() );
}
else if ( !refMetadata.isStatic() )
{
// if the reference is dynamic, we log a warning and ignore the reference
- logger.log(LogService.LOG_WARNING,
- "Ignoring reference {0} in component {1} for constructor injection. Reference is dynamic.",
- new Object[] { refMetadata.getName(), componentMetadata.getName() }, null );
+ logger.log(LogService.LOG_ERROR,
+ "Ignoring reference {0} for constructor injection. Reference is dynamic.", null,
+ refMetadata.getName() );
}
else if ( paramMap.get(index) != null )
{
// duplicate reference for the same index, we log a warning and ignore the duplicates
- logger.log(LogService.LOG_WARNING,
- "Ignoring reference {0} in component {1} for constructor injection. Another reference has the same index.",
- new Object[] { refMetadata.getName(), componentMetadata.getName() }, null );
+ logger.log(LogService.LOG_ERROR,
+ "Ignoring reference {0} for constructor injection. Another reference has the same index.", null,
+ refMetadata.getName() );
}
else
{
@@ -172,6 +172,7 @@ public class ComponentConstructorImpl<T>
activationFields[index] = null;
}
}
+
index++;
}
}
@@ -180,6 +181,13 @@ public class ComponentConstructorImpl<T>
activationFieldTypes = ValueUtils.EMPTY_VALUE_TYPES;
activationFields = null;
}
+
+ if ( constructor == null )
+ {
+ logger.log(LogService.LOG_ERROR,
+ "Constructor with {0} arguments not found. Component will fail.", null,
+ componentMetadata.getNumberOfConstructorParameters() );
+ }
}
@Override
@@ -190,19 +198,7 @@ public class ComponentConstructorImpl<T>
// no constructor -> throw
if ( constructor == null )
{
- throw new InstantiationException("Constructor not found; Component will fail");
- }
-
- // if we have fields and one is in state failure (type == null) we can directly throw
- int index = 0;
- for(final ValueType t : activationFieldTypes)
- {
- if ( t == null )
- {
- throw new InstantiationException("Field " + componentContext.getComponentMetadata().getActivationFields().get(index)
- + " not found; Component will fail");
- }
- index++;
+ throw new InstantiationException("Constructor not found.");
}
final Object[] args;
@@ -251,7 +247,7 @@ public class ComponentConstructorImpl<T>
// activation fields
for(int i = 0; i<activationFieldTypes.length; i++)
{
- if ( activationFieldTypes[i] != ValueType.ignore )
+ if ( activationFieldTypes[i] != null && activationFieldTypes[i] != ValueType.ignore )
{
final Object value = ValueUtils.getValue(constructor.getDeclaringClass().getName(),
activationFieldTypes[i],
Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ComponentMethods.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ComponentMethods.java?rev=1813478&r1=1813477&r2=1813478&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ComponentMethods.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ComponentMethods.java Fri Oct 27 07:19:49 2017
@@ -18,7 +18,7 @@
*/
package org.apache.felix.scr.impl.inject;
-import org.apache.felix.scr.impl.helper.SimpleLogger;
+import org.apache.felix.scr.impl.logger.ComponentLogger;
import org.apache.felix.scr.impl.metadata.ComponentMetadata;
/**
@@ -28,7 +28,7 @@ public interface ComponentMethods<T>
{
void initComponentMethods( ComponentMetadata componentMetadata,
Class<T> implementationObjectClass,
- SimpleLogger logger);
+ ComponentLogger logger);
LifecycleMethod getActivateMethod();
Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ComponentMethodsImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ComponentMethodsImpl.java?rev=1813478&r1=1813477&r2=1813478&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ComponentMethodsImpl.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/ComponentMethodsImpl.java Fri Oct 27 07:19:49 2017
@@ -25,12 +25,12 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.apache.felix.scr.impl.helper.SimpleLogger;
import org.apache.felix.scr.impl.inject.field.FieldMethods;
import org.apache.felix.scr.impl.inject.methods.ActivateMethod;
import org.apache.felix.scr.impl.inject.methods.BindMethods;
import org.apache.felix.scr.impl.inject.methods.DeactivateMethod;
import org.apache.felix.scr.impl.inject.methods.ModifiedMethod;
+import org.apache.felix.scr.impl.logger.ComponentLogger;
import org.apache.felix.scr.impl.metadata.ComponentMetadata;
import org.apache.felix.scr.impl.metadata.DSVersion;
import org.apache.felix.scr.impl.metadata.ReferenceMetadata;
@@ -53,7 +53,7 @@ public class ComponentMethodsImpl<T> imp
public synchronized void initComponentMethods(
final ComponentMetadata componentMetadata,
final Class<T> implementationObjectClass,
- final SimpleLogger logger)
+ final ComponentLogger logger)
{
if (m_activateMethod != null)
{
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=1813478&r1=1813477&r2=1813478&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 Fri Oct 27 07:19:49 2017
@@ -20,7 +20,7 @@ package org.apache.felix.scr.impl.inject
import java.util.List;
-import org.apache.felix.scr.impl.helper.SimpleLogger;
+import org.apache.felix.scr.impl.logger.ComponentLogger;
import org.osgi.framework.BundleContext;
public class DuplexReferenceMethods implements ReferenceMethods
@@ -32,38 +32,38 @@ public class DuplexReferenceMethods impl
public DuplexReferenceMethods(final List<ReferenceMethods> methods)
{
- final ReferenceMethod[] bindList = new ReferenceMethod[methods.size()];
- final ReferenceMethod[] updatedList = new ReferenceMethod[methods.size()];
- final ReferenceMethod[] unbindList = new ReferenceMethod[methods.size()];
- int index = 0;
- for(final ReferenceMethods m : methods)
- {
- bindList[index] = m.getBind();
- updatedList[index] = m.getUpdated();
- unbindList[index] = m.getUnbind();
- index++;
- }
+ final ReferenceMethod[] bindList = new ReferenceMethod[methods.size()];
+ final ReferenceMethod[] updatedList = new ReferenceMethod[methods.size()];
+ final ReferenceMethod[] unbindList = new ReferenceMethod[methods.size()];
+ int index = 0;
+ for(final ReferenceMethods m : methods)
+ {
+ bindList[index] = m.getBind();
+ updatedList[index] = m.getUpdated();
+ unbindList[index] = m.getUnbind();
+ index++;
+ }
this.bind = new DuplexReferenceMethod(bindList);
this.updated = new DuplexReferenceMethod(updatedList);
this.unbind = new DuplexReferenceMethod(unbindList);
this.init = new InitReferenceMethod()
{
@Override
- public boolean init(final Object componentInstance, final SimpleLogger logger)
+ public boolean init(final Object componentInstance, final ComponentLogger logger)
{
- boolean result = true;
- for(final ReferenceMethods m : methods)
- {
- final InitReferenceMethod init = m.getInit();
- if ( init != null )
- {
- result = init.init(componentInstance, logger);
- if ( !result )
- {
- break;
- }
- }
- }
+ boolean result = true;
+ for(final ReferenceMethods m : methods)
+ {
+ final InitReferenceMethod init = m.getInit();
+ if ( init != null )
+ {
+ result = init.init(componentInstance, logger);
+ if ( !result )
+ {
+ break;
+ }
+ }
+ }
return result;
}
};
@@ -72,25 +72,25 @@ public class DuplexReferenceMethods impl
@Override
public ReferenceMethod getBind()
{
- return this.bind;
+ return this.bind;
}
@Override
public ReferenceMethod getUnbind()
{
- return this.unbind;
+ return this.unbind;
}
@Override
public ReferenceMethod getUpdated()
{
- return this.updated;
+ return this.updated;
}
@Override
public InitReferenceMethod getInit()
{
- return this.init;
+ return this.init;
}
private static final class DuplexReferenceMethod implements ReferenceMethod
@@ -106,16 +106,17 @@ public class DuplexReferenceMethods impl
@Override
public MethodResult invoke(final Object componentInstance,
final BindParameters parameters,
- final MethodResult methodCallFailureResult) {
- MethodResult result = null;
- for(final ReferenceMethod m : methods)
- {
- result = m.invoke(componentInstance, parameters, methodCallFailureResult);
- if ( result == null )
- {
- break;
- }
- }
+ final MethodResult methodCallFailureResult)
+ {
+ MethodResult result = null;
+ for(final ReferenceMethod m : methods)
+ {
+ result = m.invoke(componentInstance, parameters, methodCallFailureResult);
+ if ( result == null )
+ {
+ break;
+ }
+ }
return result;
}
@@ -125,15 +126,15 @@ public class DuplexReferenceMethods impl
final BundleContext context)
{
// only if all return true, we return true
- boolean result = false;
- for(final ReferenceMethod m : methods)
- {
- result = m.getServiceObject(parameters, context);
- if (!result )
- {
- break;
- }
- }
+ boolean result = false;
+ for(final ReferenceMethod m : methods)
+ {
+ result = m.getServiceObject(parameters, context);
+ if (!result )
+ {
+ break;
+ }
+ }
return result;
}
}
Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/InitReferenceMethod.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/InitReferenceMethod.java?rev=1813478&r1=1813477&r2=1813478&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/InitReferenceMethod.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/InitReferenceMethod.java Fri Oct 27 07:19:49 2017
@@ -18,7 +18,7 @@
*/
package org.apache.felix.scr.impl.inject;
-import org.apache.felix.scr.impl.helper.SimpleLogger;
+import org.apache.felix.scr.impl.logger.ComponentLogger;
/**
* Callback for initializing the reference (field references)
@@ -31,5 +31,5 @@ public interface InitReferenceMethod
* @param logger The logger
* @return {@code true} if initialization succeeded
*/
- boolean init( Object componentInstance, SimpleLogger logger );
+ boolean init( Object componentInstance, ComponentLogger logger );
}
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=1813478&r1=1813477&r2=1813478&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 Fri Oct 27 07:19:49 2017
@@ -25,7 +25,7 @@ import java.lang.reflect.Modifier;
import java.util.Map;
import org.apache.felix.scr.impl.helper.ReadOnlyDictionary;
-import org.apache.felix.scr.impl.helper.SimpleLogger;
+import org.apache.felix.scr.impl.logger.ComponentLogger;
import org.apache.felix.scr.impl.manager.ComponentContextImpl;
import org.apache.felix.scr.impl.manager.RefPair;
import org.apache.felix.scr.impl.metadata.ReferenceMetadata;
@@ -101,7 +101,7 @@ public class ValueUtils {
final ReferenceMetadata metadata,
final Class<?> typeClass,
final Field field,
- final SimpleLogger logger )
+ final ComponentLogger logger )
{
final Class<?> referenceType = ClassUtils.getClassFromComponentClassLoader(
componentClass, metadata.getInterface(), logger);
@@ -150,29 +150,29 @@ public class ValueUtils {
{
if ( field != null )
{
- logger.log( LogService.LOG_ERROR, "Field {0} in component {1} has unsupported type {2}", new Object[]
- {metadata.getField(), componentClass, typeClass.getName()}, null );
+ logger.log( LogService.LOG_ERROR, "Field {0} in class {1} has unsupported type {2}", null,
+ metadata.getField(), componentClass, typeClass.getName() );
}
else
{
- logger.log( LogService.LOG_ERROR, "Constructor argument {0} in component {1} has unsupported type {2}", new Object[]
- {metadata.getParameterIndex(), componentClass, typeClass.getName()}, null );
+ logger.log( LogService.LOG_ERROR, "Constructor argument {0} in class {1} has unsupported type {2}", null,
+ metadata.getParameterIndex(), componentClass, typeClass.getName() );
}
valueType = ValueType.ignore;
}
// if the field is dynamic, it has to be volatile (field is ignored, case logged) (112.3.8.1)
if ( field != null && !metadata.isStatic() && !Modifier.isVolatile(field.getModifiers()) ) {
- logger.log( LogService.LOG_ERROR, "Field {0} in component {1} must be declared volatile to handle a dynamic reference", new Object[]
- {metadata.getField(), componentClass}, null );
+ logger.log( LogService.LOG_ERROR, "Field {0} in class {1} must be declared volatile to handle a dynamic reference", null,
+ metadata.getField(), componentClass );
valueType = ValueType.ignore;
}
// the field must not be final (field is ignored, case logged) (112.3.8.1)
if ( field != null && Modifier.isFinal(field.getModifiers()) )
{
- logger.log( LogService.LOG_ERROR, "Field {0} in component {1} must not be declared as final", new Object[]
- {metadata.getField(), componentClass}, null );
+ logger.log( LogService.LOG_ERROR, "Field {0} in class {1} must not be declared as final", null,
+ metadata.getField(), componentClass );
valueType = ValueType.ignore;
}
}
@@ -204,13 +204,13 @@ public class ValueUtils {
{
if ( field != null )
{
- logger.log( LogService.LOG_ERROR, "Field {0} in component {1} has unsupported type {2}", new Object[]
- {metadata.getField(), componentClass, typeClass.getName()}, null );
+ logger.log( LogService.LOG_ERROR, "Field {0} in class {1} has unsupported type {2}", null,
+ metadata.getField(), componentClass, typeClass.getName() );
}
else
{
- logger.log( LogService.LOG_ERROR, "Constructor argument {0} in component {1} has unsupported type {2}", new Object[]
- {metadata.getParameterIndex(), componentClass, typeClass.getName()}, null );
+ logger.log( LogService.LOG_ERROR, "Constructor argument {0} in class {1} has unsupported type {2}", null,
+ metadata.getParameterIndex(), componentClass, typeClass.getName() );
}
valueType = ValueType.ignore;
}
@@ -221,8 +221,8 @@ public class ValueUtils {
// if the field is dynamic wit has to be volatile (field is ignored, case logged) (112.3.8.1)
if ( !metadata.isStatic() && !Modifier.isVolatile(field.getModifiers()) )
{
- logger.log( LogService.LOG_ERROR, "Field {0} in component {1} must be declared volatile to handle a dynamic reference", new Object[]
- {metadata.getField(), componentClass}, null );
+ logger.log( LogService.LOG_ERROR, "Field {0} in class {1} must be declared volatile to handle a dynamic reference", null,
+ metadata.getField(), componentClass );
valueType = ValueType.ignore;
}
@@ -230,16 +230,16 @@ public class ValueUtils {
// only collection and list allowed
if ( typeClass != ClassUtils.LIST_CLASS && typeClass != ClassUtils.COLLECTION_CLASS )
{
- logger.log( LogService.LOG_ERROR, "Field {0} in component {1} has unsupported type {2}."+
- " It must be one of java.util.Collection or java.util.List.",
- new Object[] {metadata.getField(), componentClass, typeClass.getName()}, null );
+ logger.log( LogService.LOG_ERROR, "Field {0} in class {1} has unsupported type {2}."+
+ " It must be one of java.util.Collection or java.util.List.", null,
+ metadata.getField(), componentClass, typeClass.getName() );
valueType = ValueType.ignore;
}
if ( Modifier.isFinal(field.getModifiers()) )
{
- logger.log( LogService.LOG_ERROR, "Field {0} in component {1} must not be declared as final", new Object[]
- {metadata.getField(), componentClass}, null );
+ logger.log( LogService.LOG_ERROR, "Field {0} in class {1} must not be declared as final", null,
+ metadata.getField(), componentClass );
valueType = ValueType.ignore;
}
}
@@ -247,8 +247,8 @@ public class ValueUtils {
// static references only allowed for replace strategy
if ( metadata.isStatic() && !metadata.isReplace() )
{
- logger.log( LogService.LOG_ERROR, "Update strategy for field {0} in component {1} only allowed for non static field references.", new Object[]
- {metadata.getField(), componentClass}, null );
+ logger.log( LogService.LOG_ERROR, "Update strategy for field {0} in class {1} only allowed for non static field references.", null,
+ metadata.getField(), componentClass );
valueType = ValueType.ignore;
}
return valueType;
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=1813478&r1=1813477&r2=1813478&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 Fri Oct 27 07:19:49 2017
@@ -28,7 +28,6 @@ import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.CopyOnWriteArraySet;
-import org.apache.felix.scr.impl.helper.SimpleLogger;
import org.apache.felix.scr.impl.inject.BindParameters;
import org.apache.felix.scr.impl.inject.ClassUtils;
import org.apache.felix.scr.impl.inject.InitReferenceMethod;
@@ -37,6 +36,7 @@ import org.apache.felix.scr.impl.inject.
import org.apache.felix.scr.impl.inject.ValueUtils;
import org.apache.felix.scr.impl.inject.ValueUtils.ValueType;
import org.apache.felix.scr.impl.inject.field.FieldUtils.FieldSearchResult;
+import org.apache.felix.scr.impl.logger.ComponentLogger;
import org.apache.felix.scr.impl.manager.ComponentContextImpl;
import org.apache.felix.scr.impl.manager.RefPair;
import org.apache.felix.scr.impl.metadata.ReferenceMetadata;
@@ -86,7 +86,7 @@ public class FieldHandler
private boolean initField(final Object componentInstance,
- final SimpleLogger logger )
+ final ComponentLogger logger )
{
if ( valueType == ValueType.ignore )
{
@@ -98,7 +98,7 @@ public class FieldHandler
{
if ( metadata.isReplace() )
{
- this.setFieldValue(componentInstance, new CopyOnWriteArrayList<Object>());
+ this.setFieldValue(componentInstance, new CopyOnWriteArrayList<>());
}
else
{
@@ -111,26 +111,26 @@ public class FieldHandler
{
if ( Modifier.isFinal(this.field.getModifiers()) )
{
- logger.log( LogService.LOG_ERROR, "Field {0} in component {1} must not be declared as final", new Object[]
- {metadata.getField(), this.componentClass}, null );
+ logger.log( LogService.LOG_ERROR, "Field {0} in class {1} must not be declared as final", null,
+ metadata.getField(), this.componentClass );
valueType = ValueType.ignore;
return true;
}
if ( fieldType != ClassUtils.LIST_CLASS && fieldType != ClassUtils.COLLECTION_CLASS )
{
- logger.log( LogService.LOG_ERROR, "Field {0} in component {1} has unsupported type {2}."+
- " It must be one of java.util.Collection or java.util.List.",
- new Object[] {metadata.getField(), this.componentClass, fieldType.getName()}, null );
+ logger.log( LogService.LOG_ERROR, "Field {0} in class {1} has unsupported type {2}."+
+ " It must be one of java.util.Collection or java.util.List.", null,
+ metadata.getField(), this.componentClass, fieldType.getName() );
valueType = ValueType.ignore;
return true;
}
if ( fieldType == ClassUtils.LIST_CLASS )
{
- this.setFieldValue(componentInstance, new CopyOnWriteArrayList<Object>());
+ this.setFieldValue(componentInstance, new CopyOnWriteArrayList<>());
}
else
{
- this.setFieldValue(componentInstance, new CopyOnWriteArraySet<Object>());
+ this.setFieldValue(componentInstance, new CopyOnWriteArraySet<>());
}
}
}
@@ -149,8 +149,8 @@ public class FieldHandler
{
valueType = ValueType.ignore;
- logger.log( LogService.LOG_ERROR, "Field {0} in component {1} can't be initialized.",
- new Object[] {metadata.getField(), this.componentClass}, ite );
+ logger.log( LogService.LOG_ERROR, "Field {0} in class {1} can't be initialized.",
+ ite, metadata.getField(), this.componentClass );
return false;
}
@@ -159,7 +159,7 @@ public class FieldHandler
private Collection<Object> getReplaceCollection(final BindParameters bp)
{
- final List<Object> objects = new ArrayList<Object>();
+ final List<Object> objects = new ArrayList<>();
for(final Object val : bp.getComponentContext().getBoundValues(metadata.getName()).values())
{
objects.add(val);
@@ -336,13 +336,13 @@ public class FieldHandler
private static interface State
{
- MethodResult invoke( final FieldHandler handler,
- final METHOD_TYPE mType,
- final Object componentInstance,
- final BindParameters rawParameter)
+ MethodResult invoke( FieldHandler handler,
+ METHOD_TYPE mType,
+ Object componentInstance,
+ BindParameters rawParameter)
throws InvocationTargetException;
- boolean fieldExists( final FieldHandler handler, final SimpleLogger logger);
+ boolean fieldExists( FieldHandler handler, ComponentLogger logger);
}
/**
@@ -352,13 +352,12 @@ public class FieldHandler
{
private static final State INSTANCE = new NotResolved();
- private void resolve(final FieldHandler handler, final SimpleLogger logger)
+ private void resolve(final FieldHandler handler, final ComponentLogger logger)
{
- logger.log( LogService.LOG_DEBUG, "getting field: {0}", new Object[]
- {handler.metadata.getField()}, null );
+ logger.log( LogService.LOG_DEBUG, "getting field: {0}", null, handler.metadata.getField() );
// resolve the field
- final FieldUtils.FieldSearchResult result = FieldUtils.searchField( handler.componentClass, handler.metadata.getField(), logger );
+ final FieldUtils.FieldSearchResult result = FieldUtils.searchField( handler.componentClass, handler.metadata.getField(), logger );
handler.setSearchResult(result, logger);
}
@@ -374,7 +373,7 @@ public class FieldHandler
}
@Override
- public boolean fieldExists( final FieldHandler handler, final SimpleLogger logger)
+ public boolean fieldExists( final FieldHandler handler, final ComponentLogger logger)
{
resolve( handler, logger );
return handler.state.fieldExists( handler, logger );
@@ -394,13 +393,13 @@ public class FieldHandler
final Object componentInstance,
final BindParameters rawParameter)
{
- rawParameter.getLogger().log( LogService.LOG_ERROR, "Field [{0}] not found", new Object[]
- { handler.metadata.getField() }, null );
+ rawParameter.getLogger().log( LogService.LOG_ERROR, "Field [{0}] not found", null,
+ handler.metadata.getField() );
return null;
}
@Override
- public boolean fieldExists( final FieldHandler handler, final SimpleLogger logger)
+ public boolean fieldExists( final FieldHandler handler, final ComponentLogger logger)
{
return false;
}
@@ -424,26 +423,27 @@ public class FieldHandler
}
@Override
- public boolean fieldExists( final FieldHandler handler, final SimpleLogger logger)
+ public boolean fieldExists( final FieldHandler handler, final ComponentLogger logger)
{
return true;
}
}
- public boolean fieldExists( SimpleLogger logger )
+ public boolean fieldExists( ComponentLogger logger )
{
return this.state.fieldExists( this, logger );
}
- synchronized void setSearchResult(FieldSearchResult result, SimpleLogger logger)
+ synchronized void setSearchResult(FieldSearchResult result, ComponentLogger logger)
{
if (result == null)
{
field = null;
valueType = null;
state = NotFound.INSTANCE;
+ // TODO - will component really fail?
logger.log(LogService.LOG_ERROR, "Field [{0}] not found; Component will fail",
- new Object[] { metadata.getField() }, null);
+ null, metadata.getField());
}
else
{
@@ -459,7 +459,7 @@ public class FieldHandler
}
state = Resolved.INSTANCE;
logger.log(LogService.LOG_DEBUG, "Found field: {0}",
- new Object[] { result.field }, null);
+ null, result.field );
}
}
@@ -496,8 +496,8 @@ public class FieldHandler
}
catch ( final InvocationTargetException ite )
{
- rawParameter.getLogger().log( LogService.LOG_ERROR, "The {0} field has thrown an exception", new Object[]
- { handler.metadata.getField() }, ite.getCause() );
+ rawParameter.getLogger().log( LogService.LOG_ERROR, "The {0} field has thrown an exception", null,
+ handler.metadata.getField() );
}
return methodCallFailureResult;
@@ -547,7 +547,7 @@ public class FieldHandler
{
@Override
- public boolean init(final Object componentInstance, final SimpleLogger logger)
+ public boolean init(final Object componentInstance, final ComponentLogger logger)
{
if ( fieldExists( logger ) )
{
Modified: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/field/FieldUtils.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/field/FieldUtils.java?rev=1813478&r1=1813477&r2=1813478&view=diff
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/field/FieldUtils.java (original)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/inject/field/FieldUtils.java Fri Oct 27 07:19:49 2017
@@ -24,8 +24,8 @@ import java.lang.reflect.Modifier;
import java.security.AccessController;
import java.security.PrivilegedAction;
-import org.apache.felix.scr.impl.helper.SimpleLogger;
import org.apache.felix.scr.impl.inject.ClassUtils;
+import org.apache.felix.scr.impl.logger.ComponentLogger;
import org.osgi.service.log.LogService;
/**
@@ -34,20 +34,20 @@ import org.osgi.service.log.LogService;
public class FieldUtils {
/**
- * Return type for {@link FieldUtils#searchField(Class, String, SimpleLogger)}
+ * Return type for {@link FieldUtils#searchField(Class, String, ComponentLogger)}
*/
- public static final class FieldSearchResult
+ public static final class FieldSearchResult
{
public final Field field;
public final boolean usable;
-
+
public FieldSearchResult(final Field f, final boolean usable)
{
this.field = f;
this.usable = usable;
}
}
-
+
/**
* Searches the field named {@code fieldName} in the given
* {@code targetClass}. If the target class has no acceptable field
@@ -69,7 +69,7 @@ public class FieldUtils {
*/
public static FieldSearchResult searchField( final Class<?> componentClass,
final String fieldName,
- final SimpleLogger logger )
+ final ComponentLogger logger )
{
final ClassLoader targetClasslLoader = componentClass.getClassLoader();
final String targetPackage = ClassUtils.getPackageName( componentClass );
@@ -79,13 +79,10 @@ public class FieldUtils {
while (true)
{
- if ( logger.isLogEnabled( LogService.LOG_DEBUG ) )
- {
- logger.log( LogService.LOG_DEBUG,
- "Locating field " + fieldName + " in class " + theClass.getName(), null );
- }
+ logger.log( LogService.LOG_DEBUG,
+ "Locating field {0} in class {1}", null, fieldName, theClass.getName() );
- try
+ try
{
final FieldSearchResult result = getField( componentClass, theClass, fieldName, acceptPrivate, acceptPackage, logger );
if ( result != null )
@@ -95,8 +92,9 @@ public class FieldUtils {
}
catch ( final InvocationTargetException ex )
{
- logger.log( LogService.LOG_WARNING, "{0} cannot be found in component class {1}", new Object[]
- {fieldName, componentClass.getName()}, ex.getTargetException() );
+ logger.log( LogService.LOG_ERROR, "Field {0} cannot be found in component class {1}. The field will be ignored.",
+ ex.getTargetException(),
+ fieldName, componentClass.getName() );
return null;
}
@@ -117,9 +115,9 @@ public class FieldUtils {
acceptPrivate = false;
}
- // nothing found
- logger.log( LogService.LOG_WARNING, "{0} cannot be found in component class {1}", new Object[]
- {fieldName, componentClass.getName()}, null );
+ // nothing found
+ logger.log( LogService.LOG_ERROR, "Field {0} cannot be found in component class {1}. The field will be ignored.", null,
+ fieldName, componentClass.getName() );
return new FieldSearchResult(null, false);
}
@@ -147,7 +145,7 @@ public class FieldUtils {
final String fieldName,
final boolean acceptPrivate,
final boolean acceptPackage,
- final SimpleLogger logger )
+ final ComponentLogger logger )
throws InvocationTargetException
{
try
@@ -164,8 +162,7 @@ public class FieldUtils {
// parameters
if ( logger.isLogEnabled( LogService.LOG_DEBUG ) )
{
- logger.log( LogService.LOG_DEBUG, "Declared Field {0}.{1} not found", new Object[]
- { targetClass.getName(), fieldName }, null );
+ logger.log( LogService.LOG_DEBUG, "Declared Field {0}.{1} not found", null, targetClass.getName(), fieldName );
}
}
catch ( Throwable throwable )
@@ -192,7 +189,7 @@ public class FieldUtils {
* <p>
* If the field is usable, this method makes the field accessible.
* <p>
- * If the field is not usable, a {@code FieldSearchResult} with the usable
+ * If the field is not usable, a {@code FieldSearchResult} with the usable
* flag set to {@code false} is returned and an error is logged with
* the provided logger.
*
@@ -207,7 +204,7 @@ public class FieldUtils {
final Field field,
final boolean acceptPrivate,
final boolean acceptPackage,
- final SimpleLogger logger)
+ final ComponentLogger logger)
{
// check modifiers now
final int mod = field.getModifiers();
@@ -215,8 +212,7 @@ public class FieldUtils {
// static fields
if ( Modifier.isStatic( mod ) )
{
- logger.log( LogService.LOG_ERROR, "Field {0} must not be static", new Object[]
- { toString(componentClass, field) }, null );
+ logger.log( LogService.LOG_ERROR, "Field {0} must not be static", null, toString(componentClass, field) );
return new FieldSearchResult(field, false);
}
@@ -249,8 +245,7 @@ public class FieldUtils {
// else don't accept
// the method would fit the requirements but is not acceptable
logger.log( LogService.LOG_ERROR,
- "findField: Suitable but non-accessible field {0}", new Object[]
- { toString(componentClass, field) }, null );
+ "findField: Suitable but non-accessible field {0}", null, toString(componentClass, field));
return new FieldSearchResult(field, false);
}
@@ -263,13 +258,13 @@ public class FieldUtils {
public static String toString(final Class<?> componentClass,
final Field field)
{
- if ( componentClass.getName().equals(field.getDeclaringClass().getName()) )
+ if ( componentClass.getName().equals(field.getDeclaringClass().getName()) )
{
return field.getName() + " in component class " + componentClass.getName();
}
return field.getName() + " in class " + field.getDeclaringClass().getName() + ", subclass of component class " + componentClass.getName();
}
-
+
/**
* Make the field accessible
* @param field The field
@@ -278,6 +273,7 @@ public class FieldUtils {
{
AccessController.doPrivileged( new PrivilegedAction<Object>()
{
+ @Override
public Object run()
{
field.setAccessible( true );
@@ -293,10 +289,10 @@ public class FieldUtils {
* @param value The value to set
* @param logger The logger
*/
- public static void setField( final Field f,
+ public static void setField( final Field f,
final Object component,
final Object value,
- final SimpleLogger logger )
+ final ComponentLogger logger )
{
try
{
@@ -304,13 +300,11 @@ public class FieldUtils {
}
catch ( final IllegalArgumentException iae )
{
- logger.log( LogService.LOG_ERROR, "Field {0} in component {1} can't be set", new Object[]
- {f.getName(), component.getClass().getName()}, iae );
+ logger.log( LogService.LOG_ERROR, "Field {0} can't be set", iae, f.getName() );
}
catch ( final IllegalAccessException iae )
{
- logger.log( LogService.LOG_ERROR, "Field {0} in component {1} can't be set", new Object[]
- {f.getName(), component.getClass().getName()}, iae );
+ logger.log( LogService.LOG_ERROR, "Field {0} can't be set", iae, f.getName() );
}
}
}
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=1813478&r1=1813477&r2=1813478&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 Fri Oct 27 07:19:49 2017
@@ -27,12 +27,12 @@ import java.util.Comparator;
import java.util.List;
import java.util.Map;
-import org.apache.felix.scr.impl.helper.SimpleLogger;
import org.apache.felix.scr.impl.inject.ActivatorParameter;
import org.apache.felix.scr.impl.inject.Annotations;
import org.apache.felix.scr.impl.inject.ClassUtils;
import org.apache.felix.scr.impl.inject.LifecycleMethod;
import org.apache.felix.scr.impl.inject.MethodResult;
+import org.apache.felix.scr.impl.logger.ComponentLogger;
import org.apache.felix.scr.impl.manager.ComponentContextImpl;
import org.apache.felix.scr.impl.metadata.DSVersion;
import org.osgi.service.log.LogService;
@@ -56,7 +56,10 @@ public class ActivateMethod extends Base
@Override
- protected MethodInfo<Object> doFindMethod( Class<?> targetClass, boolean acceptPrivate, boolean acceptPackage, SimpleLogger logger )
+ protected MethodInfo<Object> doFindMethod( final Class<?> targetClass,
+ final boolean acceptPrivate,
+ final boolean acceptPackage,
+ final ComponentLogger logger )
throws SuitableMethodNotAccessibleException, InvocationTargetException
{
@@ -69,7 +72,7 @@ public class ActivateMethod extends Base
{ ClassUtils.COMPONENT_CONTEXT_CLASS }, acceptPrivate, acceptPackage, logger );
if ( method != null )
{
- return new MethodInfo<Object>(method);
+ return new MethodInfo<>(method);
}
}
catch ( SuitableMethodNotAccessibleException thrown )
@@ -91,7 +94,7 @@ public class ActivateMethod extends Base
{
if ( accept( m, acceptPrivate, acceptPackage, returnValue() ) )
{
- return new MethodInfo<Object>(m);
+ return new MethodInfo<>(m);
}
suitableMethodNotAccessible = true;
}
@@ -99,7 +102,7 @@ public class ActivateMethod extends Base
{
if ( accept( m, acceptPrivate, acceptPackage, returnValue() ) )
{
- return new MethodInfo<Object>(m);
+ return new MethodInfo<>(m);
}
suitableMethodNotAccessible = true;
}
@@ -107,7 +110,7 @@ public class ActivateMethod extends Base
{
if ( accept( m, acceptPrivate, acceptPackage, returnValue() ) )
{
- return new MethodInfo<Object>(m);
+ return new MethodInfo<>(m);
}
suitableMethodNotAccessible = true;
}
@@ -115,7 +118,7 @@ public class ActivateMethod extends Base
{
if ( accept( m, acceptPrivate, acceptPackage, returnValue() ) )
{
- return new MethodInfo<Object>(m);
+ return new MethodInfo<>(m);
}
suitableMethodNotAccessible = true;
}
@@ -123,7 +126,7 @@ public class ActivateMethod extends Base
{
if ( accept( m, acceptPrivate, acceptPackage, returnValue() ) )
{
- return new MethodInfo<Object>(m);
+ return new MethodInfo<>(m);
}
suitableMethodNotAccessible = true;
}
@@ -149,7 +152,7 @@ public class ActivateMethod extends Base
{
if ( accept( m, acceptPrivate, acceptPackage, returnValue() ) )
{
- return new MethodInfo<Object>(m);
+ return new MethodInfo<>(m);
}
suitableMethodNotAccessible = true;
}
@@ -159,7 +162,7 @@ public class ActivateMethod extends Base
{
if ( accept( m, acceptPrivate, acceptPackage, returnValue() ) )
{
- return new MethodInfo<Object>(m);
+ return new MethodInfo<>(m);
}
suitableMethodNotAccessible = true;
}
@@ -194,7 +197,7 @@ public class ActivateMethod extends Base
*/
List<Method> getSortedMethods(Class<?> targetClass)
{
- List<Method> result = new ArrayList<Method>();
+ List<Method> result = new ArrayList<>();
Method[] methods = targetClass.getDeclaredMethods();
for (Method m: methods)
{
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=1813478&r1=1813477&r2=1813478&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 Fri Oct 27 07:19:49 2017
@@ -31,6 +31,7 @@ import org.apache.felix.scr.impl.helper.
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.logger.ComponentLogger;
import org.apache.felix.scr.impl.metadata.DSVersion;
import org.osgi.service.log.LogService;
@@ -107,7 +108,7 @@ public abstract class BaseMethod<P exten
protected abstract void setTypes(T types);
- synchronized void setMethod(MethodInfo<T> methodInfo, SimpleLogger logger)
+ synchronized void setMethod(MethodInfo<T> methodInfo, ComponentLogger logger)
{
this.m_method = methodInfo == null ? null : methodInfo.getMethod();
@@ -115,21 +116,21 @@ public abstract class BaseMethod<P exten
{
setTypes(methodInfo.getTypes());
m_state = Resolved.INSTANCE;
- logger.log( LogService.LOG_DEBUG, "Found {0} method: {1}", new Object[]
- { getMethodNamePrefix(), m_method }, null);
+ logger.log( LogService.LOG_DEBUG, "Found {0} method: {1}", null,
+ getMethodNamePrefix(), m_method );
}
else if ( m_methodRequired )
{
m_state = NotFound.INSTANCE;
logger.log(LogService.LOG_ERROR, "{0} method [{1}] not found; Component will fail",
- new Object[]
- { getMethodNamePrefix(), getMethodName() }, null);
+ null,
+ getMethodNamePrefix(), getMethodName());
}
else
{
// optional method not found, log as DEBUG and ignore
- logger.log( LogService.LOG_DEBUG, "{0} method [{1}] not found, ignoring", new Object[]
- { getMethodNamePrefix(), getMethodName() }, null );
+ logger.log( LogService.LOG_DEBUG, "{0} method [{1}] not found, ignoring", null,
+ getMethodNamePrefix(), getMethodName() );
m_state = NotApplicable.INSTANCE;
}
}
@@ -153,7 +154,7 @@ public abstract class BaseMethod<P exten
* trying to find the requested method.
* @param logger
*/
- private MethodInfo<T> findMethod(SimpleLogger logger) throws InvocationTargetException
+ private MethodInfo<T> findMethod(final ComponentLogger logger) throws InvocationTargetException
{
boolean acceptPrivate = getDSVersion().isDS11();
boolean acceptPackage = getDSVersion().isDS11();
@@ -186,8 +187,8 @@ public abstract class BaseMethod<P exten
{
// log and return null
logger.log( LogService.LOG_ERROR,
- "findMethod: Suitable but non-accessible method {0} found in class {1}, subclass of {2}", new Object[]
- { getMethodName(), theClass.getName(), targetClass.getName() }, null );
+ "findMethod: Suitable but non-accessible method {0} found in class {1}, subclass of {2}", null,
+ getMethodName(), theClass.getName(), targetClass.getName() );
break;
}
@@ -213,9 +214,10 @@ public abstract class BaseMethod<P exten
}
- protected abstract MethodInfo<T> doFindMethod(final Class<?> targetClass,
- final boolean acceptPrivate,
- final boolean acceptPackage, SimpleLogger logger ) throws SuitableMethodNotAccessibleException, InvocationTargetException;
+ protected abstract MethodInfo<T> doFindMethod(Class<?> targetClass,
+ boolean acceptPrivate,
+ boolean acceptPackage,
+ ComponentLogger logger ) throws SuitableMethodNotAccessibleException, InvocationTargetException;
private MethodResult invokeMethod(final Object componentInstance, final P rawParameter )
@@ -226,18 +228,18 @@ public abstract class BaseMethod<P exten
if ( componentInstance != null )
{
final Object[] params = getParameters(m_method, rawParameter);
- rawParameter.getLogger().log( LogService.LOG_DEBUG, "invoking {0}: {1}: parameters {2}", new Object[]
- { getMethodNamePrefix(), getMethodName(), Arrays.asList( params ) }, null );
+ rawParameter.getLogger().log( LogService.LOG_DEBUG, "invoking {0}: {1}: parameters {2}", null,
+ getMethodNamePrefix(), getMethodName(), Arrays.asList( params ) );
Object result = m_method.invoke(componentInstance, params);
- rawParameter.getLogger().log( LogService.LOG_DEBUG, "invoked {0}: {1}", new Object[]
- { getMethodNamePrefix(), getMethodName() }, null );
+ rawParameter.getLogger().log( LogService.LOG_DEBUG, "invoked {0}: {1}", null,
+ getMethodNamePrefix(), getMethodName() );
return new MethodResult((m_method.getReturnType() != Void.TYPE), (Map<String, Object>) result);
}
else
{
rawParameter.getLogger().log( LogService.LOG_WARNING, "Method {0}: {1} cannot be called on null object",
- new Object[]
- { getMethodNamePrefix(), getMethodName() }, null );
+ null,
+ getMethodNamePrefix(), getMethodName() );
}
}
catch ( IllegalStateException ise )
@@ -250,8 +252,8 @@ public abstract class BaseMethod<P exten
// 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
- rawParameter.getLogger().log( LogService.LOG_DEBUG, "Method {0} cannot be called", new Object[]
- { getMethodName() }, ex );
+ rawParameter.getLogger().log( LogService.LOG_DEBUG, "Method {0} cannot be called", ex,
+ getMethodName() );
}
catch ( InvocationTargetException ex )
{
@@ -315,8 +317,12 @@ public abstract class BaseMethod<P exten
* @throws InvocationTargetException If an unexpected Throwable is caught
* trying to access the desired method.
*/
- public /* static */ Method getMethod( Class<?> clazz, String name, Class[] parameterTypes, boolean acceptPrivate,
- boolean acceptPackage, SimpleLogger logger ) throws SuitableMethodNotAccessibleException,
+ public /* static */ Method getMethod( Class<?> clazz,
+ String name,
+ Class[] parameterTypes,
+ boolean acceptPrivate,
+ boolean acceptPackage,
+ ComponentLogger logger ) throws SuitableMethodNotAccessibleException,
InvocationTargetException
{
try
@@ -340,8 +346,8 @@ public abstract class BaseMethod<P exten
if ( logger.isLogEnabled( LogService.LOG_DEBUG ) )
{
String argList = ( parameterTypes != null ) ? Arrays.asList( parameterTypes ).toString() : "";
- logger.log( LogService.LOG_DEBUG, "Declared Method {0}.{1}({2}) not found", new Object[]
- { clazz.getName(), name, argList }, null );
+ logger.log( LogService.LOG_DEBUG, "Declared Method {0}.{1}({2}) not found", null,
+ clazz.getName(), name, argList );
}
}
catch ( NoClassDefFoundError cdfe )
@@ -510,8 +516,8 @@ public abstract class BaseMethod<P exten
}
catch ( InvocationTargetException ite )
{
- rawParameter.getLogger().log( LogService.LOG_ERROR, "The {0} method has thrown an exception", new Object[]
- { getMethodName() }, ite.getCause() );
+ rawParameter.getLogger().log( LogService.LOG_ERROR, "The {0} method has thrown an exception", ite.getCause(),
+ getMethodName() );
if ( methodCallFailureResult != null && methodCallFailureResult.getResult() != null )
{
methodCallFailureResult.getResult().put("exception", ite.getCause());
@@ -522,7 +528,7 @@ public abstract class BaseMethod<P exten
}
- public boolean methodExists( SimpleLogger logger )
+ public boolean methodExists( ComponentLogger logger )
{
return m_state.methodExists( this, logger );
}
@@ -557,11 +563,11 @@ public abstract class BaseMethod<P exten
private static interface State
{
- <P extends BaseParameter, T> MethodResult invoke( final BaseMethod<P, T> baseMethod, final Object componentInstance, final P rawParameter )
+ <P extends BaseParameter, T> MethodResult invoke( BaseMethod<P, T> baseMethod, Object componentInstance, P rawParameter )
throws InvocationTargetException;
- <P extends BaseParameter, T> boolean methodExists( final BaseMethod<P, T> baseMethod, SimpleLogger logger );
+ <P extends BaseParameter, T> boolean methodExists( BaseMethod<P, T> baseMethod, ComponentLogger logger );
}
private static class NotApplicable implements State
@@ -578,7 +584,7 @@ public abstract class BaseMethod<P exten
@Override
- public <P extends BaseParameter, T> boolean methodExists( final BaseMethod<P, T> baseMethod, SimpleLogger logger )
+ public <P extends BaseParameter, T> boolean methodExists( final BaseMethod<P, T> baseMethod, ComponentLogger logger )
{
return true;
}
@@ -589,10 +595,10 @@ public abstract class BaseMethod<P exten
private static final State INSTANCE = new NotResolved();
- private <P extends BaseParameter, T> void resolve( final BaseMethod<P, T> baseMethod, SimpleLogger logger )
+ private <P extends BaseParameter, T> void resolve( final BaseMethod<P, T> baseMethod, ComponentLogger logger )
{
- logger.log( LogService.LOG_DEBUG, "getting {0}: {1}", new Object[]
- {baseMethod.getMethodNamePrefix(), baseMethod.getMethodName()}, null );
+ logger.log( LogService.LOG_DEBUG, "getting {0}: {1}", null,
+ baseMethod.getMethodNamePrefix(), baseMethod.getMethodName() );
// resolve the method
MethodInfo<T> method = null;
@@ -602,8 +608,8 @@ public abstract class BaseMethod<P exten
}
catch ( InvocationTargetException ex )
{
- logger.log( LogService.LOG_WARNING, "{0} cannot be found", new Object[]
- {baseMethod.getMethodName()}, ex.getTargetException() );
+ logger.log( LogService.LOG_WARNING, "{0} cannot be found", ex.getTargetException(),
+ baseMethod.getMethodName() );
}
baseMethod.setMethod( method, logger );
@@ -620,7 +626,7 @@ public abstract class BaseMethod<P exten
@Override
- public <P extends BaseParameter, T> boolean methodExists( final BaseMethod<P, T> baseMethod, SimpleLogger logger )
+ public <P extends BaseParameter, T> boolean methodExists( final BaseMethod<P, T> baseMethod, ComponentLogger logger )
{
resolve( baseMethod, logger );
return baseMethod.getState().methodExists( baseMethod, logger );
@@ -638,14 +644,14 @@ public abstract class BaseMethod<P exten
// 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
- rawParameter.getLogger().log( LogService.LOG_ERROR, "{0} method [{1}] not found", new Object[]
- { baseMethod.getMethodNamePrefix(), baseMethod.getMethodName() }, null );
+ rawParameter.getLogger().log( LogService.LOG_ERROR, "{0} method [{1}] not found", null,
+ baseMethod.getMethodNamePrefix(), baseMethod.getMethodName() );
return null;
}
@Override
- public <P extends BaseParameter, T> boolean methodExists( final BaseMethod<P, T> baseMethod, SimpleLogger logger )
+ public <P extends BaseParameter, T> boolean methodExists( final BaseMethod<P, T> baseMethod, ComponentLogger logger )
{
return false;
}
@@ -665,7 +671,7 @@ public abstract class BaseMethod<P exten
@Override
- public <P extends BaseParameter, T> boolean methodExists( final BaseMethod<P, T> baseMethod, SimpleLogger logger )
+ public <P extends BaseParameter, T> boolean methodExists( final BaseMethod<P, T> baseMethod, ComponentLogger 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=1813478&r1=1813477&r2=1813478&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 Fri Oct 27 07:19:49 2017
@@ -25,10 +25,10 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import org.apache.felix.scr.impl.helper.SimpleLogger;
import org.apache.felix.scr.impl.inject.BindParameters;
import org.apache.felix.scr.impl.inject.ClassUtils;
import org.apache.felix.scr.impl.inject.ValueUtils;
+import org.apache.felix.scr.impl.logger.ComponentLogger;
import org.apache.felix.scr.impl.manager.ComponentContextImpl;
import org.apache.felix.scr.impl.manager.RefPair;
import org.apache.felix.scr.impl.metadata.DSVersion;
@@ -79,7 +79,7 @@ implements org.apache.felix.scr.impl.inj
protected MethodInfo<List<ValueUtils.ValueType>> doFindMethod( final Class<?> targetClass,
final boolean acceptPrivate,
final boolean acceptPackage,
- final SimpleLogger logger )
+ final ComponentLogger logger )
throws SuitableMethodNotAccessibleException, InvocationTargetException
{
// 112.3.1 The method is searched for using the following priority
@@ -112,7 +112,7 @@ implements org.apache.felix.scr.impl.inj
{
logger.log( LogService.LOG_DEBUG, "doFindMethod: Found Method " + method, null );
}
- return new MethodInfo<List<ValueUtils.ValueType>>(method, Collections.singletonList(ValueUtils.ValueType.ref_serviceReference));
+ return new MethodInfo<>(method, Collections.singletonList(ValueUtils.ValueType.ref_serviceReference));
}
}
catch ( SuitableMethodNotAccessibleException ex )
@@ -132,7 +132,7 @@ implements org.apache.felix.scr.impl.inj
{
logger.log( LogService.LOG_DEBUG, "doFindMethod: Found Method " + method, null );
}
- return new MethodInfo<List<ValueUtils.ValueType>>(method, Collections.singletonList(ValueUtils.ValueType.ref_serviceObjects));
+ return new MethodInfo<>(method, Collections.singletonList(ValueUtils.ValueType.ref_serviceObjects));
}
}
catch ( SuitableMethodNotAccessibleException ex )
@@ -164,7 +164,7 @@ implements org.apache.felix.scr.impl.inj
{
logger.log( LogService.LOG_DEBUG, "doFindMethod: Found Method " + method, null );
}
- return new MethodInfo<List<ValueUtils.ValueType>>(method,
+ return new MethodInfo<>(method,
Collections.singletonList(ValueUtils.ValueType.ref_serviceType));
}
}
@@ -183,7 +183,7 @@ implements org.apache.felix.scr.impl.inj
{
logger.log( LogService.LOG_DEBUG, "doFindMethod: Found Method " + method, null );
}
- return new MethodInfo<List<ValueUtils.ValueType>>(method,
+ return new MethodInfo<>(method,
Collections.singletonList(ValueUtils.ValueType.ref_serviceType));
}
}
@@ -204,7 +204,7 @@ implements org.apache.felix.scr.impl.inj
{
logger.log( LogService.LOG_DEBUG, "doFindMethod: Found Method " + method, null );
}
- return new MethodInfo<List<ValueUtils.ValueType>>(method,
+ return new MethodInfo<>(method,
Collections.singletonList(ValueUtils.ValueType.ref_map));
}
}
@@ -228,10 +228,10 @@ implements org.apache.felix.scr.impl.inj
{
logger.log( LogService.LOG_DEBUG, "doFindMethod: Found Method " + method, null );
}
- List<ValueUtils.ValueType> paramTypes = new ArrayList<ValueUtils.ValueType>(2);
+ List<ValueUtils.ValueType> paramTypes = new ArrayList<>(2);
paramTypes.add(ValueUtils.ValueType.ref_serviceType);
paramTypes.add(ValueUtils.ValueType.ref_map);
- return new MethodInfo<List<ValueUtils.ValueType>>(method, paramTypes);
+ return new MethodInfo<>(method, paramTypes);
}
}
catch ( SuitableMethodNotAccessibleException ex )
@@ -250,10 +250,10 @@ implements org.apache.felix.scr.impl.inj
{
logger.log( LogService.LOG_DEBUG, "doFindMethod: Found Method " + method, null );
}
- List<ValueUtils.ValueType> paramTypes = new ArrayList<ValueUtils.ValueType>(2);
+ List<ValueUtils.ValueType> paramTypes = new ArrayList<>(2);
paramTypes.add(ValueUtils.ValueType.ref_serviceType);
paramTypes.add(ValueUtils.ValueType.ref_map);
- return new MethodInfo<List<ValueUtils.ValueType>>(method,
+ return new MethodInfo<>(method,
paramTypes);
}
}
@@ -272,7 +272,7 @@ implements org.apache.felix.scr.impl.inj
Class<?>[] parameterTypes = m.getParameterTypes();
boolean matches = true;
boolean specialMatch = true;
- List<ValueUtils.ValueType> paramTypes = new ArrayList<ValueUtils.ValueType>(parameterTypes.length);
+ List<ValueUtils.ValueType> paramTypes = new ArrayList<>(parameterTypes.length);
for (Class<?> paramType: parameterTypes) {
if (paramType == ClassUtils.SERVICE_REFERENCE_CLASS)
{
@@ -345,7 +345,7 @@ implements org.apache.felix.scr.impl.inj
{
logger.log( LogService.LOG_DEBUG, "doFindMethod: Found Method " + m, null );
}
- return new MethodInfo<List<ValueUtils.ValueType>>(m, paramTypes);
+ return new MethodInfo<>(m, paramTypes);
}
suitableMethodNotAccessible = true;
}
@@ -366,8 +366,8 @@ implements org.apache.felix.scr.impl.inj
if ( suitableMethodNotAccessible )
{
logger.log( LogService.LOG_ERROR,
- "doFindMethod: Suitable but non-accessible method found in class {0}", new Object[]
- { targetClass.getName() }, null );
+ "doFindMethod: Suitable but non-accessible method found in class {0}",null,
+ targetClass.getName() );
throw new SuitableMethodNotAccessibleException();
}
@@ -400,14 +400,14 @@ implements org.apache.felix.scr.impl.inj
* @throws InvocationTargetException If an unexpected Throwable is caught
* trying to find the requested method.
*/
- private Method getServiceReferenceMethod( final Class<?> targetClass, boolean acceptPrivate, boolean acceptPackage, SimpleLogger logger )
+ private Method getServiceReferenceMethod( final Class<?> targetClass, boolean acceptPrivate, boolean acceptPackage, ComponentLogger logger )
throws SuitableMethodNotAccessibleException, InvocationTargetException
{
return getMethod( targetClass, getMethodName(), new Class[]
{ ClassUtils.SERVICE_REFERENCE_CLASS }, acceptPrivate, acceptPackage, logger );
}
- private Method getComponentObjectsMethod( final Class<?> targetClass, boolean acceptPrivate, boolean acceptPackage, SimpleLogger logger )
+ private Method getComponentObjectsMethod( final Class<?> targetClass, boolean acceptPrivate, boolean acceptPackage, ComponentLogger logger )
throws SuitableMethodNotAccessibleException, InvocationTargetException
{
return getMethod(targetClass, getMethodName(),
@@ -436,7 +436,7 @@ implements org.apache.felix.scr.impl.inj
* trying to find the requested method.
*/
private Method getServiceObjectMethod( final Class<?> targetClass, final Class<?> parameterClass, boolean acceptPrivate,
- boolean acceptPackage, SimpleLogger logger ) throws SuitableMethodNotAccessibleException, InvocationTargetException
+ boolean acceptPackage, ComponentLogger logger ) throws SuitableMethodNotAccessibleException, InvocationTargetException
{
return getMethod( targetClass, getMethodName(), new Class[]
{ parameterClass }, acceptPrivate, acceptPackage, logger );
@@ -462,7 +462,7 @@ implements org.apache.felix.scr.impl.inj
* found which is not accessible
*/
private Method getServiceObjectAssignableMethod( final Class<?> targetClass, final Class<?> parameterClass,
- boolean acceptPrivate, boolean acceptPackage, SimpleLogger logger ) throws SuitableMethodNotAccessibleException
+ boolean acceptPrivate, boolean acceptPackage, ComponentLogger logger ) throws SuitableMethodNotAccessibleException
{
// Get all potential bind methods
Method candidateBindMethods[] = targetClass.getDeclaredMethods();
@@ -559,7 +559,7 @@ implements org.apache.felix.scr.impl.inj
* trying to find the requested method.
*/
private Method getServiceObjectWithMapMethod( final Class<?> targetClass, final Class<?> parameterClass,
- boolean acceptPrivate, boolean acceptPackage, SimpleLogger logger ) throws SuitableMethodNotAccessibleException,
+ boolean acceptPrivate, boolean acceptPackage, ComponentLogger logger ) throws SuitableMethodNotAccessibleException,
InvocationTargetException
{
return getMethod( targetClass, getMethodName(), new Class[]
@@ -644,7 +644,7 @@ implements org.apache.felix.scr.impl.inj
* trying to find the requested method.
*/
private Method getMapMethod( final Class<?> targetClass, final Class<?> parameterClass,
- boolean acceptPrivate, boolean acceptPackage, SimpleLogger logger ) throws SuitableMethodNotAccessibleException,
+ boolean acceptPrivate, boolean acceptPackage, ComponentLogger logger ) throws SuitableMethodNotAccessibleException,
InvocationTargetException
{
return getMethod( targetClass, getMethodName(), new Class[]
Added: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/logger/ComponentLogger.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/logger/ComponentLogger.java?rev=1813478&view=auto
==============================================================================
--- felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/logger/ComponentLogger.java (added)
+++ felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/logger/ComponentLogger.java Fri Oct 27 07:19:49 2017
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.felix.scr.impl.logger;
+
+/**
+ * The <code>ComponentLogger</code> interface defines a simple API to enable some logging
+ * for a component. This avoids avoids that all clients doing logging on behalf of
+ * a component need to pass in things like {@code ComponentMetadata} or the component Id.
+ */
+public interface ComponentLogger
+{
+
+ /**
+ * Returns {@code true} if logging for the given level is enabled.
+ */
+ boolean isLogEnabled( int level );
+
+
+ /**
+ * Method to actually emit the log message. If the LogService is available,
+ * the message will be logged through the LogService. Otherwise the message
+ * is logged to stdout (or stderr in case of LOG_ERROR level messages),
+ *
+ * @param level The log level to log the message at
+ * @param pattern The {@code java.text.MessageFormat} message format
+ * string for preparing the message
+ * @param ex An optional <code>Throwable</code> whose stack trace is written,
+ * @param arguments The format arguments for the <code>pattern</code>
+ * string.
+ */
+ void log( int level, String pattern, Throwable ex, Object... arguments );
+
+
+ /**
+ * Writes a messages for the given <code>ComponentMetadata</code>.
+ *
+ * @param level The log level of the messages. This corresponds to the log
+ * levels defined by the OSGi LogService.
+ * @param message The message to print
+ * @param ex The <code>Throwable</code> causing the message to be logged.
+ */
+ void log( int level, String message, Throwable ex );
+
+}
Propchange: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/logger/ComponentLogger.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: felix/trunk/osgi-r7/scr/src/main/java/org/apache/felix/scr/impl/logger/ComponentLogger.java
------------------------------------------------------------------------------
svn:keywords = author date id revision rev url