Author: marrs
Date: Fri Jun 18 10:40:08 2010
New Revision: 955928
URL: http://svn.apache.org/viewvc?rev=955928&view=rev
Log:
Refactored to use InvocationUtil which is dynamic proxy aware.
Modified:
felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ConfigurationDependencyImpl.java
Modified:
felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ConfigurationDependencyImpl.java
URL:
http://svn.apache.org/viewvc/felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ConfigurationDependencyImpl.java?rev=955928&r1=955927&r2=955928&view=diff
==============================================================================
---
felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ConfigurationDependencyImpl.java
(original)
+++
felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ConfigurationDependencyImpl.java
Fri Jun 18 10:40:08 2010
@@ -19,7 +19,6 @@
package org.apache.felix.dm.impl.dependencies;
import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Dictionary;
import java.util.HashSet;
@@ -29,6 +28,7 @@ import java.util.Set;
import org.apache.felix.dm.dependencies.ConfigurationDependency;
import org.apache.felix.dm.dependencies.PropertyMetaData;
+import org.apache.felix.dm.impl.InvocationUtil;
import org.apache.felix.dm.impl.Logger;
import org.apache.felix.dm.impl.metatype.MetaTypeProviderImpl;
import org.apache.felix.dm.management.ServiceComponentDependency;
@@ -204,17 +204,14 @@ public class ConfigurationDependencyImpl
}
if (wasAdded) {
String callback = (m_callback == null) ? "updated" : m_callback;
- Method m;
try {
- m = service.getClass().getDeclaredMethod(callback, new Class[]
{ Dictionary.class });
- m.setAccessible(true);
// if exception is thrown here, what does that mean for the
// state of this dependency? how smart do we want to be??
// it's okay like this, if the new settings contain errors, we
// remain in the state we were, assuming that any error causes
// the "old" configuration to stay in effect.
// CM will log any thrown exceptions.
- m.invoke(service, new Object[] { settings });
+ InvocationUtil.invokeMethod(service, service.getClass(),
callback, new Class[][] {{ Dictionary.class }}, new Object[][] {{ settings }},
false);
}
catch (InvocationTargetException e) {
// The component has thrown an exception during it's callback
invocation.