[jboss-cvs] JBossAS SVN: r96487 - in projects/kernel/trunk: dependency/src/main/java/org/jboss/dependency/spi and 11 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Nov 18 08:00:02 EST 2009
Author: alesj
Date: 2009-11-18 07:59:59 -0500 (Wed, 18 Nov 2009)
New Revision: 96487
Modified:
projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractControllerContext.java
projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/ControllerContext.java
projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/dispatch/AttributeDispatchContext.java
projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/dispatch/InvokeDispatchContext.java
projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/helpers/UnmodifiableControllerContext.java
projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/metadata/AbstractMetaDataVisitorNode.java
projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/metadata/ServiceInjectionValueMetaData.java
projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/metadata/ServiceJBXBValueMetaData.java
projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/metadata/ServiceValueFactoryParameterMetaData.java
projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/metadata/ServiceValueFactoryValueMetaData.java
projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/metadata/ServiceValueMetaData.java
projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/microcontainer/ServiceControllerContext.java
projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractDependencyValueMetaData.java
projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractInjectionValueMetaData.java
projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractInstallMetaData.java
projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractTypeMetaData.java
projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/ThisValueMetaData.java
projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/config/AbstractKernelConfigurator.java
projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/config/Configurator.java
projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/AbstractKernelControllerContext.java
projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/InstantiateAction.java
projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/LifecycleAction.java
projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/PropertyDispatchWrapper.java
projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dispatch/InvokeDispatchHelper.java
projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/registry/AbstractKernelRegistryEntry.java
projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/registry/BeanKernelRegistryEntry.java
projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/spi/config/KernelConfigurator.java
projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/spi/dependency/helpers/UnmodifiableKernelControllerContext.java
Log:
[JBKERNEL-61]; more re-write to unget contexts. Make getTarget lazy as possible.
Modified: projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractControllerContext.java
===================================================================
--- projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractControllerContext.java 2009-11-18 09:59:58 UTC (rev 96486)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractControllerContext.java 2009-11-18 12:59:59 UTC (rev 96487)
@@ -309,6 +309,11 @@
return target;
}
+ public Object ungetTarget()
+ {
+ return null;
+ }
+
/**
* Set the target
*
Modified: projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/ControllerContext.java
===================================================================
--- projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/ControllerContext.java 2009-11-18 09:59:58 UTC (rev 96486)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/ControllerContext.java 2009-11-18 12:59:59 UTC (rev 96487)
@@ -33,7 +33,7 @@
*
*
* @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision$
+ * @author <a href="ales.justin at jboss.org">Ales Justin</a>
*/
public interface ControllerContext extends JBossInterface
{
@@ -73,8 +73,17 @@
* @return the target
*/
Object getTarget();
-
+
/**
+ * Unget context's target.
+ * Some component models track target/service usage,
+ * hence we need an explicit unget call to release our usage.
+ *
+ * @return mostly null, unless some other value should be used and unconfigure
+ */
+ Object ungetTarget();
+
+ /**
* Get the controller that manages this controller context
*
* @return the controller
Modified: projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/dispatch/AttributeDispatchContext.java
===================================================================
--- projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/dispatch/AttributeDispatchContext.java 2009-11-18 09:59:58 UTC (rev 96486)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/dispatch/AttributeDispatchContext.java 2009-11-18 12:59:59 UTC (rev 96487)
@@ -21,6 +21,8 @@
*/
package org.jboss.dependency.spi.dispatch;
+import org.jboss.beans.info.spi.BeanInfo;
+
/**
* The API similar to the DynamicMBean API
* where there are methods to get/set Properties/Attributes.
@@ -51,4 +53,15 @@
* @throws Throwable for any error
*/
void set(String name, Object value) throws Throwable;
+
+ /**
+ * Get bean info.
+ * This can be null if cannot be determined.
+ *
+ * This is used to determine property access.
+ * This way we don't need to access target.
+ *
+ * @return the bean info
+ */
+ BeanInfo getBeanInfo();
}
Modified: projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/dispatch/InvokeDispatchContext.java
===================================================================
--- projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/dispatch/InvokeDispatchContext.java 2009-11-18 09:59:58 UTC (rev 96486)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/dispatch/InvokeDispatchContext.java 2009-11-18 12:59:59 UTC (rev 96487)
@@ -21,6 +21,8 @@
*/
package org.jboss.dependency.spi.dispatch;
+import org.jboss.reflect.spi.ClassInfo;
+
/**
* The API similar to the DynamicMBean API
* where there are methods to get/set Properties/Attributes and invoke on
@@ -44,7 +46,20 @@
Object invoke(String name, Object parameters[], String[] signature) throws Throwable;
/**
+ * Get context's classinfo.
+ * This can be null if it cannot be determined.
+ *
+ * Used when determining type info for parameter and
+ * getting the parameter actual value.
+ * This way we don't require target for more exact parameter matching.
+ *
+ * @return classinfo or null
+ */
+ ClassInfo getClassInfo();
+
+ /**
* Get context's classloader.
+ *
* Used when determining type info for parameter and
* getting the parameter actual value.
*
Modified: projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/helpers/UnmodifiableControllerContext.java
===================================================================
--- projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/helpers/UnmodifiableControllerContext.java 2009-11-18 09:59:58 UTC (rev 96486)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/spi/helpers/UnmodifiableControllerContext.java 2009-11-18 12:59:59 UTC (rev 96487)
@@ -88,6 +88,11 @@
return delegate.getTarget();
}
+ public Object ungetTarget()
+ {
+ return delegate.ungetTarget();
+ }
+
public Controller getController()
{
return delegate.getController();
Modified: projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/metadata/AbstractMetaDataVisitorNode.java
===================================================================
--- projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/metadata/AbstractMetaDataVisitorNode.java 2009-11-18 09:59:58 UTC (rev 96486)
+++ projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/metadata/AbstractMetaDataVisitorNode.java 2009-11-18 12:59:59 UTC (rev 96487)
@@ -46,6 +46,16 @@
return children.iterator();
}
+ /**
+ * This is a helper method so we don't have to explicitly
+ * implement this on every sub-metadata class.
+ */
+ @SuppressWarnings({"JavaDoc", "UnusedDeclaration"})
+ public Object ungetValue(ServiceValueContext valueContext) throws Throwable
+ {
+ return null;
+ }
+
public void visit(ServiceMetaDataVisitor visitor)
{
visitor.visit(this);
Modified: projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/metadata/ServiceInjectionValueMetaData.java
===================================================================
--- projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/metadata/ServiceInjectionValueMetaData.java 2009-11-18 09:59:58 UTC (rev 96486)
+++ projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/metadata/ServiceInjectionValueMetaData.java 2009-11-18 12:59:59 UTC (rev 96487)
@@ -50,7 +50,7 @@
* name of a bean installed in the underlying {@link Controller}
*
* @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision$
+ * @author <a href="ales.justin at jboss.org">Ales Justin</a>
*/
public class ServiceInjectionValueMetaData extends AbstractMetaDataVisitorNode
implements ServiceValueMetaData, Serializable
@@ -181,22 +181,43 @@
ControllerContext context = controller.getContext(dependency, state);
if (context == null)
throw new Error("Should not be here - dependency failed! " + this);
- Object result = context.getTarget();
- if (property != null)
+
+ if (property != null && property.length() > 0)
{
if (context instanceof AttributeDispatchContext)
{
AttributeDispatchContext adc = (AttributeDispatchContext)context;
- result = adc.get(property);
+ return adc.get(property);
}
else
throw new IllegalArgumentException(
"Cannot use property attribute, context is not AttributeDispatchContext: " + context +
", metadata: " + this);
}
- return result;
+ else
+ {
+ return context.getTarget();
+ }
}
+ @Override
+ public Object ungetValue(ServiceValueContext valueContext) throws Throwable
+ {
+ if (property == null || property.length() == 0)
+ {
+ KernelController controller = valueContext.getController();
+
+ ControllerState state = dependentState;
+ if (state == null)
+ state = ControllerState.INSTALLED;
+
+ ControllerContext context = controller.getContext(dependency, state);
+ if (context != null)
+ return context.ungetTarget();
+ }
+ return super.ungetValue(valueContext);
+ }
+
public void visit(ServiceMetaDataVisitor visitor)
{
ServiceControllerContext context = visitor.getControllerContext();
Modified: projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/metadata/ServiceJBXBValueMetaData.java
===================================================================
--- projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/metadata/ServiceJBXBValueMetaData.java 2009-11-18 09:59:58 UTC (rev 96486)
+++ projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/metadata/ServiceJBXBValueMetaData.java 2009-11-18 12:59:59 UTC (rev 96487)
@@ -103,8 +103,7 @@
SchemaBindingResolver resolver = SingletonSchemaResolverFactory.getInstance().getSchemaBindingResolver();
Unmarshaller unmarshaller = UnmarshallerFactory.newInstance().newUnmarshaller();
StringReader reader = new StringReader(buffer.toString());
- Object bean = unmarshaller.unmarshal(reader, resolver);
- return bean;
+ return unmarshaller.unmarshal(reader, resolver);
}
finally
{
Modified: projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/metadata/ServiceValueFactoryParameterMetaData.java
===================================================================
--- projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/metadata/ServiceValueFactoryParameterMetaData.java 2009-11-18 09:59:58 UTC (rev 96486)
+++ projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/metadata/ServiceValueFactoryParameterMetaData.java 2009-11-18 12:59:59 UTC (rev 96487)
@@ -35,6 +35,7 @@
* @author Brian Stansberry
* @version $Revision$
*/
+// TODO - make this proper ServiceValueMetaData
public class ServiceValueFactoryParameterMetaData
{
private final String textValue;
@@ -87,7 +88,12 @@
return getValue(valueContext.getClassloader(), this.textValue, desiredType, valueContext.getAttributeInfo().getName());
}
-
+
+ public Object ungetValue(ServiceValueContext valueContext) throws Exception
+ {
+ return null;
+ }
+
@Override
public boolean equals(Object obj)
{
Modified: projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/metadata/ServiceValueFactoryValueMetaData.java
===================================================================
--- projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/metadata/ServiceValueFactoryValueMetaData.java 2009-11-18 09:59:58 UTC (rev 96486)
+++ projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/metadata/ServiceValueFactoryValueMetaData.java 2009-11-18 12:59:59 UTC (rev 96487)
@@ -86,7 +86,7 @@
throw new IllegalArgumentException("Null method");
this.method = method;
- this.parameterMetaData = (parameters == null ? Collections.EMPTY_LIST : parameters);
+ this.parameterMetaData = (parameters == null ? Collections.<ServiceValueFactoryParameterMetaData>emptyList() : parameters);
this.dependentState = (dependentState == null ? ControllerState.INSTALLED : dependentState);
@@ -141,12 +141,11 @@
if (state == null)
state = ControllerState.INSTALLED;
-
ControllerContext factoryContext = controller.getContext(dependency, state);
if (factoryContext == null)
throw new Error("Should not be here - dependency failed! " + this);
- Object result = null;
+ Object result;
if (factoryContext instanceof InvokeDispatchContext)
{
@@ -168,6 +167,16 @@
return result;
}
+ @Override
+ public Object ungetValue(ServiceValueContext valueContext) throws Throwable
+ {
+ for (ServiceValueFactoryParameterMetaData metadata : parameterMetaData)
+ {
+ metadata.ungetValue(valueContext);
+ }
+ return null;
+ }
+
public void visit(ServiceMetaDataVisitor visitor)
{
ServiceControllerContext context = visitor.getControllerContext();
@@ -246,7 +255,6 @@
}
parameterValues[i] = metadata.getValue(valueContext);
-
}
}
Modified: projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/metadata/ServiceValueMetaData.java
===================================================================
--- projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/metadata/ServiceValueMetaData.java 2009-11-18 09:59:58 UTC (rev 96486)
+++ projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/metadata/ServiceValueMetaData.java 2009-11-18 12:59:59 UTC (rev 96487)
@@ -27,7 +27,7 @@
* The actual implementation depends on the contents of the <code>attribute</code> element.
*
* @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision$
+ * @author <a href="ales.justin at jboss.org">Ales Justin</a>
*/
public interface ServiceValueMetaData extends ServiceMetaDataVisitorNode
{
@@ -40,4 +40,14 @@
* @throws Throwable for any error
*/
Object getValue(ServiceValueContext valueContext) throws Throwable;
+
+ /**
+ * Ungets the value for an attribute that is used when configuring the MBean
+ * and setting its attributes.
+ *
+ * @param valueContext the value context used to load the
+ * @return the value to be used for the MBean attribute
+ * @throws Throwable for any error
+ */
+ Object ungetValue(ServiceValueContext valueContext) throws Throwable;
}
Modified: projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/microcontainer/ServiceControllerContext.java
===================================================================
--- projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/microcontainer/ServiceControllerContext.java 2009-11-18 09:59:58 UTC (rev 96486)
+++ projects/kernel/trunk/jmx-mc-int/src/main/java/org/jboss/system/microcontainer/ServiceControllerContext.java 2009-11-18 12:59:59 UTC (rev 96487)
@@ -24,6 +24,7 @@
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.Iterator;
+
import javax.management.Attribute;
import javax.management.MBeanServer;
import javax.management.ObjectName;
@@ -35,12 +36,16 @@
import org.jboss.dependency.spi.ControllerState;
import org.jboss.dependency.spi.DependencyItem;
import org.jboss.dependency.spi.dispatch.LifecycleDispatchContext;
+import org.jboss.kernel.Kernel;
+import org.jboss.kernel.spi.config.KernelConfigurator;
+import org.jboss.reflect.spi.ClassInfo;
import org.jboss.system.Service;
import org.jboss.system.ServiceContext;
import org.jboss.system.ServiceController;
import org.jboss.system.metadata.ServiceMetaData;
import org.jboss.system.metadata.ServiceMetaDataVisitor;
import org.jboss.system.metadata.ServiceMetaDataVisitorNode;
+import org.jboss.beans.info.spi.BeanInfo;
/**
* ServiceControllerContext. Represents an MBean that is being installed in the Microcontainer and
@@ -188,11 +193,35 @@
getMBeanServer().setAttribute(objectName, attribute);
}
+ public BeanInfo getBeanInfo()
+ {
+ Object target = getTarget();
+ if (target == null)
+ return null;
+
+ try
+ {
+ Kernel kernel = serviceController.getKernel();
+ KernelConfigurator configurator = kernel.getConfigurator();
+ return configurator.getBeanInfo(target.getClass());
+ }
+ catch (Throwable ignored)
+ {
+ return null;
+ }
+ }
+
public Object invoke(String name, Object parameters[], String[] signature) throws Throwable
{
return getMBeanServer().invoke(objectName, name, parameters, signature);
}
+ public ClassInfo getClassInfo()
+ {
+ BeanInfo beanInfo = getBeanInfo();
+ return (beanInfo != null) ? beanInfo.getClassInfo() : null;
+ }
+
public ClassLoader getClassLoader() throws Throwable
{
if (serviceMetaData != null)
Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractDependencyValueMetaData.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractDependencyValueMetaData.java 2009-11-18 09:59:58 UTC (rev 96486)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractDependencyValueMetaData.java 2009-11-18 12:59:59 UTC (rev 96487)
@@ -311,6 +311,22 @@
return info != null ? info.convertValue(result) : result;
}
+ @Override
+ public Object ungetValue(TypeInfo info, ClassLoader cl) throws Throwable
+ {
+ if (property == null || property.length() == 0)
+ {
+ ControllerState state = dependentState;
+ if (state == null)
+ state = ControllerState.INSTALLED;
+ ControllerContext lookup = getControllerContext(getUnderlyingValue(), state);
+ if (lookup != null)
+ return lookup.ungetTarget();
+ }
+
+ return super.ungetValue(info, cl);
+ }
+
protected boolean addDependencyItem()
{
return true;
Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractInjectionValueMetaData.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractInjectionValueMetaData.java 2009-11-18 09:59:58 UTC (rev 96486)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractInjectionValueMetaData.java 2009-11-18 12:59:59 UTC (rev 96487)
@@ -201,6 +201,18 @@
return super.getValue(info, cl);
}
+ @SuppressWarnings({"deprecation"})
+ public Object ungetValue(TypeInfo info, ClassLoader cl) throws Throwable
+ {
+ if (getUnderlyingValue() == null)
+ {
+ ControllerContext lookup = getControllerContext(info.getType(), ControllerState.INSTALLED);
+ if (lookup != null)
+ return lookup.ungetTarget();
+ }
+ return super.ungetValue(info, cl);
+ }
+
protected boolean addDependencyItem()
{
return InjectOption.STRICT.equals(injectionOption) || fromContext != null;
Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractInstallMetaData.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractInstallMetaData.java 2009-11-18 09:59:58 UTC (rev 96486)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractInstallMetaData.java 2009-11-18 12:59:59 UTC (rev 96487)
@@ -23,8 +23,8 @@
import java.io.Serializable;
-import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
import org.jboss.beans.metadata.spi.InstallMetaData;
import org.jboss.beans.metadata.spi.MetaDataVisitor;
@@ -32,7 +32,7 @@
import org.jboss.dependency.spi.ControllerContext;
import org.jboss.dependency.spi.ControllerState;
import org.jboss.dependency.spi.DependencyItem;
-import org.jboss.kernel.spi.config.KernelConfigurator;
+import org.jboss.dependency.spi.dispatch.InvokeDispatchContext;
import org.jboss.kernel.spi.dependency.KernelController;
import org.jboss.kernel.spi.dependency.KernelControllerContext;
import org.jboss.reflect.spi.ClassInfo;
@@ -118,15 +118,14 @@
{
KernelController controller = (KernelController) context.getController();
ControllerContext beanContext = controller.getContext(bean, ControllerState.INSTANTIATED);
- if (beanContext != null)
+ if (beanContext != null && beanContext instanceof InvokeDispatchContext)
{
- KernelConfigurator configurator = controller.getKernel().getConfigurator();
- Object target = beanContext.getTarget();
- return configurator.getClassInfo(target.getClass());
+ InvokeDispatchContext idc = InvokeDispatchContext.class.cast(beanContext);
+ return idc.getClassInfo();
}
else
{
- throw new IllegalArgumentException("Cannot determine install bean class: " + this);
+ throw new IllegalArgumentException("Cannot determine install bean class: " + beanContext + " on " + this);
}
}
return super.getClassInfo(context);
Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractTypeMetaData.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractTypeMetaData.java 2009-11-18 09:59:58 UTC (rev 96486)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/AbstractTypeMetaData.java 2009-11-18 12:59:59 UTC (rev 96487)
@@ -176,14 +176,14 @@
ControllerContext context = controller.getContext(beanName, ControllerState.INSTANTIATED);
if (context != null && context instanceof AttributeDispatchContext)
{
- Object target = context.getTarget();
- if (target != null)
+ AttributeDispatchContext adc = AttributeDispatchContext.class.cast(context);
+ BeanInfo beanInfo = adc.getBeanInfo();
+ if (beanInfo != null)
{
- BeanInfo beanInfo = configurator.getBeanInfo(target.getClass());
PropertyInfo pi = beanInfo.getProperty(propertyName);
if (pi.isReadable())
{
- result = pi.get(target);
+ result = adc.get(propertyName);
}
}
}
Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/ThisValueMetaData.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/ThisValueMetaData.java 2009-11-18 09:59:58 UTC (rev 96486)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/beans/metadata/plugins/ThisValueMetaData.java 2009-11-18 12:59:59 UTC (rev 96487)
@@ -65,6 +65,17 @@
return context.getTarget();
}
+ @Override
+ public Object ungetValue(TypeInfo info, ClassLoader cl) throws Throwable
+ {
+ Controller controller = context.getController();
+ ControllerContext context = controller.getContext(getUnderlyingValue(), ControllerState.INSTANTIATED);
+ if (context != null)
+ return context.ungetTarget();
+
+ return super.ungetValue(info, cl);
+ }
+
public void initialVisit(MetaDataVisitor visitor)
{
context = visitor.getControllerContext();
Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/config/AbstractKernelConfigurator.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/config/AbstractKernelConfigurator.java 2009-11-18 09:59:58 UTC (rev 96486)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/config/AbstractKernelConfigurator.java 2009-11-18 12:59:59 UTC (rev 96487)
@@ -138,9 +138,9 @@
return Configurator.getConstructorJoinPoint(config, info, metaData, beanMetaData, object);
}
- public Joinpoint getConstructorJoinPoint(BeanInfo info, ConstructorMetaData metaData, BeanMetaData beanMetaData, Object object, boolean unget) throws Throwable
+ public Joinpoint ungetConstructorJoinPoint(BeanInfo info, ConstructorMetaData metaData, BeanMetaData beanMetaData, Object object) throws Throwable
{
- return Configurator.getConstructorJoinPoint(config, info, metaData, beanMetaData, object, unget);
+ return Configurator.ungetConstructorJoinPoint(config, info, metaData, beanMetaData, object);
}
public MethodJoinpoint getMethodJoinPoint(BeanInfo info, ClassLoader cl, String name, List<ParameterMetaData> parameters, boolean isStatic, boolean isPublic) throws Throwable
@@ -148,9 +148,9 @@
return Configurator.findMethod(info, cl, name, parameters, isStatic, isPublic);
}
- public MethodJoinpoint getMethodJoinPoint(BeanInfo info, ClassLoader cl, String name, List<ParameterMetaData> parameters, boolean isStatic, boolean isPublic, boolean unget) throws Throwable
+ public MethodJoinpoint ungetMethodJoinPoint(BeanInfo info, ClassLoader cl, String name, List<ParameterMetaData> parameters, boolean isStatic, boolean isPublic) throws Throwable
{
- return Configurator.findMethod(info, cl, name, parameters, isStatic, isPublic, unget);
+ return Configurator.findMethod(info, cl, name, parameters, isStatic, isPublic, true);
}
public void setKernel(Kernel kernel) throws Throwable
Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/config/Configurator.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/config/Configurator.java 2009-11-18 09:59:58 UTC (rev 96486)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/config/Configurator.java 2009-11-18 12:59:59 UTC (rev 96487)
@@ -127,10 +127,26 @@
*/
public static Joinpoint getConstructorJoinPoint(KernelConfig config, BeanInfo info, ConstructorMetaData metaData, BeanMetaData beanMetaData, Object object) throws Throwable
{
- return getConstructorJoinPoint(config, info, metaData, beanMetaData, object, false);
+ return handleConstructorJoinPoint(config, info, metaData, beanMetaData, object, false);
}
/**
+ * Unget a constructor joinpoint
+ *
+ * @param config the kernel config
+ * @param info the bean info
+ * @param metaData the constructor metadata
+ * @param beanMetaData the bean metadata
+ * @param object an opaque object
+ * @return the joinpoint
+ * @throws Throwable for any error
+ */
+ public static Joinpoint ungetConstructorJoinPoint(KernelConfig config, BeanInfo info, ConstructorMetaData metaData, BeanMetaData beanMetaData, Object object) throws Throwable
+ {
+ return handleConstructorJoinPoint(config, info, metaData, beanMetaData, object, false);
+ }
+
+ /**
* Get a constructor joinpoint
*
* @param config the kernel config
@@ -142,7 +158,7 @@
* @return the joinpoint
* @throws Throwable for any error
*/
- public static Joinpoint getConstructorJoinPoint(KernelConfig config, BeanInfo info, ConstructorMetaData metaData, BeanMetaData beanMetaData, Object object, boolean unget) throws Throwable
+ protected static Joinpoint handleConstructorJoinPoint(KernelConfig config, BeanInfo info, ConstructorMetaData metaData, BeanMetaData beanMetaData, Object object, boolean unget) throws Throwable
{
boolean trace = log.isTraceEnabled();
@@ -170,27 +186,20 @@
{
// Get the factory
Object factory;
- if (unget)
+ try
{
- try
- {
- factory = vmd.getValue(null, cl);
- }
- finally
- {
- vmd.ungetValue(null, cl); // do cleanup call
- }
+ factory = vmd.getValue(null, cl);
}
- else
+ finally
{
- factory = vmd.getValue(null, cl);
+ vmd.ungetValue(null, cl); // do cleanup call
}
// Get the parameters
List<ParameterMetaData> parameters = metaData.getParameters();
// Describe the factory
BeanInfo factoryInfo = config.getBeanInfo(factory.getClass());
// Find the method
- MethodJoinpoint joinPoint = findMethod(trace, factoryInfo, cl, metaData.getFactoryMethod(), parameters, false, true, unget);
+ MethodJoinpoint joinPoint = handleMethod(trace, factoryInfo, cl, metaData.getFactoryMethod(), parameters, false, true, unget);
joinPoint.setTarget(factory);
return joinPoint;
}
@@ -202,7 +211,7 @@
List<ParameterMetaData> parameters = metaData.getParameters();
BeanInfo factoryInfo = config.getBeanInfo(factoryClassName, cl);
// Find the method
- return findMethod(trace, factoryInfo, cl, metaData.getFactoryMethod(), parameters, true, true, unget);
+ return handleMethod(trace, factoryInfo, cl, metaData.getFactoryMethod(), parameters, true, true, unget);
}
// Find the constructor
@@ -212,7 +221,7 @@
if (cinfo != null)
{
TypeInfo[] pinfos = cinfo.getParameterTypes();
- Object[] params = getParameters(trace, cl, pinfos, metaData.getParameters(), unget);
+ Object[] params = handleParameters(trace, cl, pinfos, metaData.getParameters(), unget);
joinPoint.setArguments(params);
}
return joinPoint;
@@ -548,10 +557,10 @@
* @return the method join point
* @throws Throwable for any error
*/
- public static MethodJoinpoint findMethod(BeanInfo info, ClassLoader cl, String name, List<ParameterMetaData> parameters, boolean isStatic, boolean isPublic, boolean unget) throws Throwable
+ static MethodJoinpoint findMethod(BeanInfo info, ClassLoader cl, String name, List<ParameterMetaData> parameters, boolean isStatic, boolean isPublic, boolean unget) throws Throwable
{
boolean trace = log.isTraceEnabled();
- return findMethod(trace, info, cl, name, parameters, isStatic, isPublic, unget);
+ return handleMethod(trace, info, cl, name, parameters, isStatic, isPublic, unget);
}
/**
@@ -569,7 +578,7 @@
*/
public static MethodJoinpoint findMethod(boolean trace, BeanInfo info, ClassLoader cl, String name, List<ParameterMetaData> parameters, boolean isStatic, boolean isPublic) throws Throwable
{
- return findMethod(trace, info, cl, name, parameters, isStatic, isPublic, false);
+ return handleMethod(trace, info, cl, name, parameters, isStatic, isPublic, false);
}
/**
@@ -586,7 +595,7 @@
* @return the method join point
* @throws Throwable for any error
*/
- public static MethodJoinpoint findMethod(boolean trace, BeanInfo info, ClassLoader cl, String name, List<ParameterMetaData> parameters, boolean isStatic, boolean isPublic, boolean unget) throws Throwable
+ public static MethodJoinpoint handleMethod(boolean trace, BeanInfo info, ClassLoader cl, String name, List<ParameterMetaData> parameters, boolean isStatic, boolean isPublic, boolean unget) throws Throwable
{
if (info == null)
throw new IllegalArgumentException("Null bean info");
@@ -602,7 +611,7 @@
if (minfo != null)
{
TypeInfo[] pinfos = minfo.getParameterTypes();
- Object[] params = getParameters(trace, cl, pinfos, parameters, unget);
+ Object[] params = handleParameters(trace, cl, pinfos, parameters, unget);
joinPoint.setArguments(params);
}
@@ -659,11 +668,42 @@
* @param cl the classloader
* @param pinfos the parameter infos
* @param parameters the parameter metadata
+ * @return an array of parameters
+ * @throws Throwable for any error
+ */
+ public static Object[] getParameters(boolean trace, ClassLoader cl, TypeInfo[] pinfos, List<ParameterMetaData> parameters) throws Throwable
+ {
+ return handleParameters(trace, cl, pinfos, parameters, false);
+ }
+
+ /**
+ * Unget the parameters.
+ * Cleanup parameter values.
+ *
+ * @param trace whether trace is enabled
+ * @param cl the classloader
+ * @param pinfos the parameter infos
+ * @param parameters the parameter metadata
+ * @return an array of parameters
+ * @throws Throwable for any error
+ */
+ public static Object[] ungetParameters(boolean trace, ClassLoader cl, TypeInfo[] pinfos, List<ParameterMetaData> parameters) throws Throwable
+ {
+ return handleParameters(trace, cl, pinfos, parameters, true);
+ }
+
+ /**
+ * Get the parameters
+ *
+ * @param trace whether trace is enabled
+ * @param cl the classloader
+ * @param pinfos the parameter infos
+ * @param parameters the parameter metadata
* @param unget do we actually do an unget on params
* @return an array of parameters
* @throws Throwable for any error
*/
- public static Object[] getParameters(boolean trace, ClassLoader cl, TypeInfo[] pinfos, List<ParameterMetaData> parameters, boolean unget) throws Throwable
+ public static Object[] handleParameters(boolean trace, ClassLoader cl, TypeInfo[] pinfos, List<ParameterMetaData> parameters, boolean unget) throws Throwable
{
if (parameters == null)
return NO_PARAM_VALUES;
Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/AbstractKernelControllerContext.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/AbstractKernelControllerContext.java 2009-11-18 09:59:58 UTC (rev 96486)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/AbstractKernelControllerContext.java 2009-11-18 12:59:59 UTC (rev 96487)
@@ -48,6 +48,7 @@
import org.jboss.kernel.spi.dependency.KernelController;
import org.jboss.kernel.spi.dependency.KernelControllerContext;
import org.jboss.reflect.spi.MethodInfo;
+import org.jboss.reflect.spi.ClassInfo;
import org.jboss.util.JBossStringBuilder;
/**
@@ -304,6 +305,11 @@
return getInfo().invoke(getTarget(), name, signature, parameters);
}
+ public ClassInfo getClassInfo()
+ {
+ return getInfo().getClassInfo();
+ }
+
// todo - remove or better security
public ClassLoader getClassLoader() throws Throwable
{
Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/InstantiateAction.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/InstantiateAction.java 2009-11-18 09:59:58 UTC (rev 96486)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/InstantiateAction.java 2009-11-18 12:59:59 UTC (rev 96487)
@@ -132,7 +132,7 @@
BeanInfo info = context.getBeanInfo();
MetaData repositoryMetaData = repository.getMetaData(context);
- Joinpoint joinPoint = configurator.getConstructorJoinPoint(info, metaData.getConstructor(), metaData, repositoryMetaData, true);
+ Joinpoint joinPoint = configurator.ungetConstructorJoinPoint(info, metaData.getConstructor(), metaData, repositoryMetaData);
cleanup = cleanupJoinPoint(context, joinPoint);
}
catch (Throwable ignored)
Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/LifecycleAction.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/LifecycleAction.java 2009-11-18 09:59:58 UTC (rev 96486)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/LifecycleAction.java 2009-11-18 12:59:59 UTC (rev 96487)
@@ -225,7 +225,11 @@
ClassLoader cl = Configurator.getClassLoader(metaData);
try
{
- MethodJoinpoint joinpoint = configurator.getMethodJoinPoint(info, cl, method, parameters, false, true, unget);
+ MethodJoinpoint joinpoint;
+ if (unget)
+ joinpoint = configurator.ungetMethodJoinPoint(info, cl, method, parameters, false, true);
+ else
+ joinpoint = configurator.getMethodJoinPoint(info, cl, method, parameters, false, true);
joinpoint.setTarget(target);
return joinpoint;
}
@@ -277,13 +281,13 @@
ClassLoader cl = Configurator.getClassLoader(metaData);
try
{
- joinpoint = configurator.getMethodJoinPoint(info, cl, method, parameters, false, true, false);
+ joinpoint = configurator.getMethodJoinPoint(info, cl, method, parameters, false, true);
joinpoint.setTarget(target);
dispatchJoinPoint(context, joinpoint);
}
finally
{
- joinpoint = configurator.getMethodJoinPoint(info, cl, method, parameters, false, true, true);
+ joinpoint = configurator.ungetMethodJoinPoint(info, cl, method, parameters, false, true);
joinpoint.setTarget(target);
cleanupJoinPoint(context, joinpoint);
}
@@ -362,5 +366,4 @@
// todo some parameter support
return getUninstallParameters(context.getBeanMetaData());
}
-
}
\ No newline at end of file
Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/PropertyDispatchWrapper.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/PropertyDispatchWrapper.java 2009-11-18 09:59:58 UTC (rev 96486)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dependency/PropertyDispatchWrapper.java 2009-11-18 12:59:59 UTC (rev 96487)
@@ -137,18 +137,13 @@
/**
* Nullify by matching type on .
*
- * @param name the property name
+ * @param upperName the property upper name
* @param typeInfo the type info
* @param value the value to set
* @throws Throwable for any error
*/
- protected void nullifyByMatchingType(String name, TypeInfo typeInfo, Object value) throws Throwable
+ protected void nullifyByMatchingType(String upperName, TypeInfo typeInfo, Object value) throws Throwable
{
- // TODO - remove this Character.toUpperCase once Reflect is updated
- String upperName = "set" + Character.toUpperCase(name.charAt(0));
- if (name.length() > 1)
- upperName += name.substring(1);
-
Set<MethodInfo> methods = beanInfo.getMethods();
for (MethodInfo minfo : methods)
{
Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dispatch/InvokeDispatchHelper.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dispatch/InvokeDispatchHelper.java 2009-11-18 09:59:58 UTC (rev 96486)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/dispatch/InvokeDispatchHelper.java 2009-11-18 12:59:59 UTC (rev 96487)
@@ -25,11 +25,11 @@
import org.jboss.beans.metadata.spi.ParameterMetaData;
import org.jboss.beans.metadata.spi.ValueMetaData;
-import org.jboss.dependency.spi.ControllerContext;
import org.jboss.dependency.spi.dispatch.InvokeDispatchContext;
import org.jboss.kernel.plugins.config.Configurator;
import org.jboss.kernel.spi.config.KernelConfigurator;
import org.jboss.logging.Logger;
+import org.jboss.reflect.spi.ClassInfo;
import org.jboss.reflect.spi.MethodInfo;
import org.jboss.reflect.spi.TypeInfo;
@@ -69,16 +69,15 @@
}
else
{
- Object target = (context instanceof ControllerContext) ? ControllerContext.class.cast(context).getTarget() : null;
+ ClassInfo classInfo = context.getClassInfo(); // no need for target
int size = params.size();
signature = Configurator.getParameterTypes(log.isTraceEnabled(), params);
- // TODO - is this ok for non-POJO targets?
ClassLoader classLoader = SecurityActions.getClassLoader(context);
- if (target != null)
+ if (classInfo != null)
{
- MethodInfo methodInfo = Configurator.findMethodInfo(configurator.getClassInfo(target.getClass()), methodName, signature);
+ MethodInfo methodInfo = Configurator.findMethodInfo(classInfo, methodName, signature);
TypeInfo[] infos = methodInfo.getParameterTypes();
- parameters = Configurator.getParameters(log.isTraceEnabled(), classLoader, infos, params, unget);
+ parameters = Configurator.handleParameters(log.isTraceEnabled(), classLoader, infos, params, unget);
// add some more info, if not yet set
for(int i = 0; i < size; i++)
{
@@ -106,7 +105,6 @@
else
parameters[i] = vmd.getValue(typeInfo, classLoader);
}
-
}
}
return (unget == false) ? context.invoke(methodName, parameters, signature) : null;
Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/registry/AbstractKernelRegistryEntry.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/registry/AbstractKernelRegistryEntry.java 2009-11-18 09:59:58 UTC (rev 96486)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/registry/AbstractKernelRegistryEntry.java 2009-11-18 12:59:59 UTC (rev 96487)
@@ -92,7 +92,12 @@
return target;
}
- // @todo SORT THIS OUT, i.e. dependency that doesn't go through controller
+ public Object ungetTarget()
+ {
+ return null;
+ }
+
+// @todo SORT THIS OUT, i.e. dependency that doesn't go through controller
public Controller getController()
{
Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/registry/BeanKernelRegistryEntry.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/registry/BeanKernelRegistryEntry.java 2009-11-18 09:59:58 UTC (rev 96486)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/plugins/registry/BeanKernelRegistryEntry.java 2009-11-18 12:59:59 UTC (rev 96487)
@@ -23,6 +23,7 @@
import org.jboss.beans.info.spi.BeanInfo;
import org.jboss.dependency.spi.dispatch.InvokeDispatchContext;
+import org.jboss.reflect.spi.ClassInfo;
/**
* Bean Kernel registry entry.
@@ -57,11 +58,21 @@
beanInfo.setProperty(target, name, value);
}
+ public BeanInfo getBeanInfo()
+ {
+ return beanInfo;
+ }
+
public Object invoke(String name, Object parameters[], String[] signature) throws Throwable
{
return beanInfo.invoke(target, name, signature, parameters);
}
+ public ClassInfo getClassInfo()
+ {
+ return beanInfo.getClassInfo();
+ }
+
public ClassLoader getClassLoader() throws Throwable
{
if (target == null)
Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/spi/config/KernelConfigurator.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/spi/config/KernelConfigurator.java 2009-11-18 09:59:58 UTC (rev 96486)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/spi/config/KernelConfigurator.java 2009-11-18 12:59:59 UTC (rev 96487)
@@ -202,21 +202,20 @@
Joinpoint getConstructorJoinPoint(BeanInfo info, ConstructorMetaData metaData, BeanMetaData beanMetaData, Object object) throws Throwable;
/**
- * Get a constructor join point a bean info. This will be the constructor
+ * Unget a constructor join point a bean info. This will be the constructor
* that is the closest match to the constructor specified by the passed in constructor
* metadata.
*
- * Note: there is a new unget parameter, which is used to do proper cleanup on the Joinpoint
+ * Note: this will invoke a cleanup on parameter values.
*
* @param info the bean info
* @param metaData the constructor metadata
* @param beanMetaData the bean metadata
* @param object an opaque object. If used with AOP this should be the {@link MetaData} for the bean.
- * @param unget do we actually do an unget on the ctor
* @return the join point
* @throws Throwable for any error
*/
- Joinpoint getConstructorJoinPoint(BeanInfo info, ConstructorMetaData metaData, BeanMetaData beanMetaData, Object object, boolean unget) throws Throwable;
+ Joinpoint ungetConstructorJoinPoint(BeanInfo info, ConstructorMetaData metaData, BeanMetaData beanMetaData, Object object) throws Throwable;
/**
* Get a method joinpoint for a bean.
@@ -241,9 +240,8 @@
* @param parameters the parameter metadata
* @param isStatic whether the method is static
* @param isPublic whether the method is public
- * @param unget do we actually do an unget on the ctor
* @return the method join point
* @throws Throwable for any error
*/
- MethodJoinpoint getMethodJoinPoint(BeanInfo info, ClassLoader cl, String name, List<ParameterMetaData> parameters, boolean isStatic, boolean isPublic, boolean unget) throws Throwable;
+ MethodJoinpoint ungetMethodJoinPoint(BeanInfo info, ClassLoader cl, String name, List<ParameterMetaData> parameters, boolean isStatic, boolean isPublic) throws Throwable;
}
Modified: projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/spi/dependency/helpers/UnmodifiableKernelControllerContext.java
===================================================================
--- projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/spi/dependency/helpers/UnmodifiableKernelControllerContext.java 2009-11-18 09:59:58 UTC (rev 96486)
+++ projects/kernel/trunk/kernel/src/main/java/org/jboss/kernel/spi/dependency/helpers/UnmodifiableKernelControllerContext.java 2009-11-18 12:59:59 UTC (rev 96487)
@@ -28,6 +28,7 @@
import org.jboss.dependency.spi.helpers.UnmodifiableControllerContext;
import org.jboss.kernel.Kernel;
import org.jboss.kernel.spi.dependency.KernelControllerContext;
+import org.jboss.reflect.spi.ClassInfo;
/**
* A wrapper around a {@link KernelControllerContext} that throws UnsupportedOperationException when any
@@ -91,7 +92,7 @@
* Overrides {@link KernelControllerContext#setName(Object)} to throw an {@link UnsupportedOperationException}
* when called.
*
- * @param info the name to set
+ * @param name the name to set
* @throws UnsupportedOperationException when called
*/
public void setName(Object name)
@@ -113,6 +114,11 @@
throw new UnsupportedOperationException("Cannot execute invoke on unmodifiable wrapper.");
}
+ public ClassInfo getClassInfo()
+ {
+ return getDelegate().getClassInfo();
+ }
+
public ClassLoader getClassLoader() throws Throwable
{
return getDelegate().getClassLoader();
More information about the jboss-cvs-commits
mailing list