[jboss-cvs] JBossAS SVN: r59616 - projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Sun Jan 14 05:26:18 EST 2007
Author: alesj
Date: 2007-01-14 05:26:15 -0500 (Sun, 14 Jan 2007)
New Revision: 59616
Modified:
projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/InstallAction.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/KernelControllerContextAction.java
Log:
moving DispatchContext methods
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/InstallAction.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/InstallAction.java 2007-01-14 10:02:58 UTC (rev 59615)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/InstallAction.java 2007-01-14 10:26:15 UTC (rev 59616)
@@ -22,20 +22,17 @@
package org.jboss.kernel.plugins.dependency;
import java.util.List;
-import java.util.Set;
-import java.util.HashSet;
import org.jboss.beans.metadata.spi.BeanMetaData;
import org.jboss.beans.metadata.spi.InstallMetaData;
-import org.jboss.beans.metadata.spi.ParameterMetaData;
-import org.jboss.beans.info.spi.BeanInfo;
+import org.jboss.dependency.spi.DispatchContext;
import org.jboss.kernel.Kernel;
-import org.jboss.kernel.spi.dependency.*;
-import org.jboss.kernel.spi.registry.KernelRegistry;
import org.jboss.kernel.spi.config.KernelConfigurator;
-import org.jboss.dependency.spi.DispatchContext;
-import org.jboss.reflect.spi.TypeInfo;
-import org.jboss.reflect.spi.MethodInfo;
+import org.jboss.kernel.spi.dependency.InstallKernelControllerContextAware;
+import org.jboss.kernel.spi.dependency.KernelController;
+import org.jboss.kernel.spi.dependency.KernelControllerContext;
+import org.jboss.kernel.spi.dependency.KernelControllerContextAware;
+import org.jboss.kernel.spi.registry.KernelRegistry;
/**
* InstallAction.
@@ -123,55 +120,4 @@
}
}
- protected Object invoke(KernelConfigurator configurator, DispatchContext context, String name, List<ParameterMetaData> params) throws Throwable
- {
- ClassLoader classLoader = context.getClassLoader();
- int size = (params != null) ? params.size() : 0;
- Object[] parameters = new Object[size];
- String[] signature = new String[size];
- for(int i = 0; i < size; i++)
- {
- ParameterMetaData pmd = params.get(i);
- signature[i] = pmd.getType();
- TypeInfo typeInfo;
- if (signature[i] != null)
- {
- typeInfo = configurator.getClassInfo(signature[i], classLoader);
- }
- else
- {
- typeInfo = findTypeInfo(configurator, context.getTarget(), name, i);
- }
- parameters[i] = pmd.getValue().getValue(typeInfo, classLoader);
- }
- return context.invoke(name, parameters, signature);
- }
-
- private TypeInfo findTypeInfo(KernelConfigurator configurator, Object target, String name, int index) throws Throwable
- {
- if (target == null)
- {
- return null;
- }
- BeanInfo beanInfo = configurator.getBeanInfo(target.getClass());
- Set<MethodInfo> methods = beanInfo.getMethods();
- Set<MethodInfo> possibleMethods = new HashSet<MethodInfo>();
- for(MethodInfo mi : methods)
- {
- if (name.equals(mi.getName()) && mi.getParameterTypes() != null && mi.getParameterTypes().length > index)
- {
- possibleMethods.add(mi);
- }
- }
- if (possibleMethods.isEmpty() || possibleMethods.size() > 1)
- {
- log.warn("Unable to determine parameter TypeInfo, method name: " + name + ", index: " + index + ", target: " + target);
- return null;
- }
- else
- {
- return possibleMethods.iterator().next().getParameterTypes()[index];
- }
- }
-
}
\ No newline at end of file
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/KernelControllerContextAction.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/KernelControllerContextAction.java 2007-01-14 10:02:58 UTC (rev 59615)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/KernelControllerContextAction.java 2007-01-14 10:26:15 UTC (rev 59616)
@@ -22,19 +22,28 @@
package org.jboss.kernel.plugins.dependency;
import java.security.*;
+import java.util.List;
+import java.util.Set;
+import java.util.HashSet;
import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.beans.metadata.spi.ParameterMetaData;
+import org.jboss.beans.info.spi.BeanInfo;
import org.jboss.dependency.plugins.spi.action.ControllerContextAction;
import org.jboss.dependency.spi.ControllerContext;
+import org.jboss.dependency.spi.DispatchContext;
import org.jboss.joinpoint.spi.Joinpoint;
import org.jboss.kernel.plugins.config.Configurator;
import org.jboss.kernel.spi.dependency.KernelController;
import org.jboss.kernel.spi.dependency.KernelControllerContext;
import org.jboss.kernel.spi.dependency.KernelControllerContextAware;
import org.jboss.kernel.spi.metadata.KernelMetaDataRepository;
+import org.jboss.kernel.spi.config.KernelConfigurator;
import org.jboss.logging.Logger;
import org.jboss.metadata.spi.MetaData;
import org.jboss.metadata.spi.stack.MetaDataStack;
+import org.jboss.reflect.spi.TypeInfo;
+import org.jboss.reflect.spi.MethodInfo;
/**
* KernelControllerContextAction.
@@ -46,11 +55,11 @@
{
/** Static log */
private static final Logger staticLog = Logger.getLogger(KernelControllerContextAction.class);
-
+
/** The log */
protected Logger log = Logger.getLogger(getClass());
- /**
+ /**
* Dispatch a joinpoint
*
* @param context the context
@@ -68,7 +77,7 @@
AbstractKernelControllerContext theContext = (AbstractKernelControllerContext) context;
access = theContext.getAccessControlContext();
}
-
+
KernelController controller = (KernelController) context.getController();
KernelMetaDataRepository repository = controller.getKernel().getMetaDataRepository();
MetaData md = repository.getMetaData(context);
@@ -78,7 +87,7 @@
staticLog.warn("NO METADATA! for " + context.getName() + " with scope " + context.getScope());
try
{
-
+
// Dispatch with the bean class loader if it exists
ClassLoader tcl = Thread.currentThread().getContextClassLoader();
try
@@ -109,7 +118,7 @@
{
if( cl != null && access == null )
Thread.currentThread().setContextClassLoader(tcl);
- if (joinpoint instanceof KernelControllerContextAware)
+ if (joinpoint instanceof KernelControllerContextAware)
((KernelControllerContextAware)joinpoint).unsetKernelControllerContext(null);
}
}
@@ -119,7 +128,7 @@
MetaDataStack.pop();
}
}
-
+
public void install(final ControllerContext context) throws Throwable
{
if (System.getSecurityManager() == null || context instanceof AbstractKernelControllerContext == false)
@@ -181,7 +190,7 @@
AccessController.doPrivileged(action);
}
}
-
+
public void installAction(KernelControllerContext context) throws Throwable
{
installActionInternal(context);
@@ -236,4 +245,57 @@
{
}
+ // DispatchContext util methods
+
+ protected Object invoke(KernelConfigurator configurator, DispatchContext context, String name, List<ParameterMetaData> params) throws Throwable
+ {
+ ClassLoader classLoader = context.getClassLoader();
+ int size = (params != null) ? params.size() : 0;
+ Object[] parameters = new Object[size];
+ String[] signature = new String[size];
+ for(int i = 0; i < size; i++)
+ {
+ ParameterMetaData pmd = params.get(i);
+ signature[i] = pmd.getType();
+ TypeInfo typeInfo;
+ if (signature[i] != null)
+ {
+ typeInfo = configurator.getClassInfo(signature[i], classLoader);
+ }
+ else
+ {
+ typeInfo = findTypeInfo(configurator, context.getTarget(), name, i);
+ }
+ parameters[i] = pmd.getValue().getValue(typeInfo, classLoader);
+ }
+ return context.invoke(name, parameters, signature);
+ }
+
+ private TypeInfo findTypeInfo(KernelConfigurator configurator, Object target, String name, int index) throws Throwable
+ {
+ if (target == null)
+ {
+ return null;
+ }
+ BeanInfo beanInfo = configurator.getBeanInfo(target.getClass());
+ Set<MethodInfo> methods = beanInfo.getMethods();
+ Set<MethodInfo> possibleMethods = new HashSet<MethodInfo>();
+ for(MethodInfo mi : methods)
+ {
+ if (name.equals(mi.getName()) && mi.getParameterTypes() != null && mi.getParameterTypes().length > index)
+ {
+ possibleMethods.add(mi);
+ }
+ }
+ if (possibleMethods.isEmpty() || possibleMethods.size() > 1)
+ {
+ log.warn("Unable to determine parameter TypeInfo, method name: " + name + ", index: " + index + ", target: " + target);
+ return null;
+ }
+ else
+ {
+ return possibleMethods.iterator().next().getParameterTypes()[index];
+ }
+ }
+
}
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list