[jboss-cvs] JBossAS SVN: r65753 - in projects/microcontainer/trunk: managed/src/main/org/jboss/managed/plugins and 2 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Oct 2 08:56:10 EDT 2007
Author: alesj
Date: 2007-10-02 08:56:10 -0400 (Tue, 02 Oct 2007)
New Revision: 65753
Modified:
projects/microcontainer/trunk/managed/src/main/org/jboss/managed/api/ManagedProperty.java
projects/microcontainer/trunk/managed/src/main/org/jboss/managed/plugins/ManagedObjectImpl.java
projects/microcontainer/trunk/managed/src/main/org/jboss/managed/plugins/factory/AbstractManagedObjectFactory.java
projects/microcontainer/trunk/metatype/src/main/org/jboss/metatype/api/values/ArrayValueSupport.java
Log:
Wrapping ManagedProperty + Fields via WrapperAdvice in AbstractManagedObjectFactory.
Adding setManagedObject to ManagedProperty.
Added some TODOs with best guess fixes in AbstractManagedObjectFactory due to potential errors --> NPE, CCE, ...
Modified: projects/microcontainer/trunk/managed/src/main/org/jboss/managed/api/ManagedProperty.java
===================================================================
--- projects/microcontainer/trunk/managed/src/main/org/jboss/managed/api/ManagedProperty.java 2007-10-02 11:15:46 UTC (rev 65752)
+++ projects/microcontainer/trunk/managed/src/main/org/jboss/managed/api/ManagedProperty.java 2007-10-02 12:56:10 UTC (rev 65753)
@@ -44,6 +44,7 @@
* @return the managed object
*/
ManagedObject getManagedObject();
+ void setManagedObject(ManagedObject managedObject);
/**
* Get the ManagedObject
Modified: projects/microcontainer/trunk/managed/src/main/org/jboss/managed/plugins/ManagedObjectImpl.java
===================================================================
--- projects/microcontainer/trunk/managed/src/main/org/jboss/managed/plugins/ManagedObjectImpl.java 2007-10-02 11:15:46 UTC (rev 65752)
+++ projects/microcontainer/trunk/managed/src/main/org/jboss/managed/plugins/ManagedObjectImpl.java 2007-10-02 12:56:10 UTC (rev 65753)
@@ -293,7 +293,7 @@
private static Map<String, ManagedProperty> toMap(Set<ManagedProperty> props)
{
HashMap<String, ManagedProperty> properties = new HashMap<String, ManagedProperty>();
- if (props != null)
+ if (props != null && props.isEmpty() == false)
{
for (ManagedProperty prop : props)
{
Modified: projects/microcontainer/trunk/managed/src/main/org/jboss/managed/plugins/factory/AbstractManagedObjectFactory.java
===================================================================
--- projects/microcontainer/trunk/managed/src/main/org/jboss/managed/plugins/factory/AbstractManagedObjectFactory.java 2007-10-02 11:15:46 UTC (rev 65752)
+++ projects/microcontainer/trunk/managed/src/main/org/jboss/managed/plugins/factory/AbstractManagedObjectFactory.java 2007-10-02 12:56:10 UTC (rev 65753)
@@ -62,6 +62,7 @@
import org.jboss.managed.plugins.ManagedOperationImpl;
import org.jboss.managed.plugins.ManagedParameterImpl;
import org.jboss.managed.plugins.ManagedPropertyImpl;
+import org.jboss.managed.plugins.advice.WrapperAdvice;
import org.jboss.managed.spi.factory.InstanceClassFactory;
import org.jboss.managed.spi.factory.ManagedObjectBuilder;
import org.jboss.managed.spi.factory.ManagedObjectPopulator;
@@ -91,9 +92,7 @@
* @version $Revision: 1.1 $
*/
public class AbstractManagedObjectFactory extends ManagedObjectFactory
- implements ManagedObjectBuilder,
- InstanceClassFactory,
- ManagedObjectPopulator<Serializable>
+ implements ManagedObjectBuilder, InstanceClassFactory, ManagedObjectPopulator<Serializable>
{
private static final Logger log = Logger.getLogger(AbstractManagedObjectFactory.class);
@@ -111,6 +110,7 @@
/** The managed object builders */
private Map<Class, WeakReference<ManagedObjectBuilder>> builders = new WeakHashMap<Class, WeakReference<ManagedObjectBuilder>>();
+
/** The instance to class factories */
private Map<Class, WeakReference<InstanceClassFactory>> instanceFactories = new WeakHashMap<Class, WeakReference<InstanceClassFactory>>();
@@ -139,15 +139,14 @@
}
@Override
- public ManagedObject initManagedObject(Serializable object,
- String name, String nameType)
+ public ManagedObject initManagedObject(Serializable object, String name, String nameType)
{
if (object == null)
throw new IllegalArgumentException("Null object");
Class<? extends Serializable> clazz = object.getClass();
InstanceClassFactory icf = getInstanceFactory(clazz);
- Class<? extends Serializable> moClass = null;
+ Class<? extends Serializable> moClass;
try
{
moClass = icf.getManagedObjectClass(object);
@@ -175,7 +174,8 @@
{
if (builder == null)
builders.remove(clazz);
- builders.put(clazz, new WeakReference<ManagedObjectBuilder>(builder));
+ else
+ builders.put(clazz, new WeakReference<ManagedObjectBuilder>(builder));
}
}
@@ -184,9 +184,10 @@
{
synchronized (instanceFactories)
{
- if (instanceFactories == null)
+ if (factory == null)
instanceFactories.remove(clazz);
- instanceFactories.put(clazz, new WeakReference<InstanceClassFactory>(factory));
+ else
+ instanceFactories.put(clazz, new WeakReference<InstanceClassFactory>(factory));
}
}
@@ -214,14 +215,13 @@
throw new IllegalArgumentException("Null class");
ManagedObjectBuilder builder = getBuilder(clazz);
- ManagedObject result = builder.buildManagedObject(clazz);
- return result;
+ return builder.buildManagedObject(clazz);
}
/**
* The ManagedObjectBuilder.buildManagedObject implementation. This is based
* on the org.jboss.managed.api.annotation.* package annotations.
- * @param clazz -
+ * @param clazz the attachment class
* @return the ManagementObject if clazz is properly annotated, null if
* it does not have a ManagementObject annotation.
*/
@@ -420,7 +420,10 @@
{
log.debug("Failed to populate constraints for: "+propertyInfo, e);
}
-
+
+ // wrap fields
+ fields = WrapperAdvice.wrapFields(fields);
+
ManagedProperty property = null;
if (managementProperty != null)
{
@@ -428,24 +431,20 @@
if (factory == ManagementProperty.NULL_PROPERTY_FACTORY.class)
factory = managementProperty.propertyFactory();
if (factory != ManagementProperty.NULL_PROPERTY_FACTORY.class)
- {
property = getManagedProperty(factory, fields);
- }
}
if (property == null)
property = new ManagedPropertyImpl(fields);
- properties.add(property);
+ // wrap property
+ properties.add(WrapperAdvice.wrapManagedProperty(property));
}
else if (trace)
- {
- log.trace("Ignoring property: "+propertyInfo);
- }
-
+ log.trace("Ignoring property: " + propertyInfo);
}
}
/* TODO: Operations. In general the bean metadata does not contain
- operation information.
+ operation information.
*/
Set<ManagedOperation> operations = new HashSet<ManagedOperation>();
@@ -472,11 +471,7 @@
if (operations.size() > 0 )
result.setOperations(operations);
for (ManagedProperty property : properties)
- {
- // FIXME: this either needs to be passed in via the factory or setter added to ManagedProperty
- ManagedPropertyImpl managedPropertyImpl = (ManagedPropertyImpl) property;
- managedPropertyImpl.setManagedObject(result);
- }
+ property.setManagedObject(result);
return result;
}
@@ -490,6 +485,8 @@
ManagedObjectImpl managedObjectImpl = (ManagedObjectImpl) managedObject;
Serializable object = createUnderlyingObject(managedObjectImpl, clazz);
+ // todo - missing this?
+ // managedObjectImpl.setAttachment(object);
populateManagedObject(managedObject, object);
}
@@ -533,7 +530,7 @@
protected void populateValues(ManagedObjectImpl managedObject, Serializable object)
{
InstanceClassFactory icf = getInstanceFactory(object.getClass());
- Class moClass = null;
+ Class moClass;
try
{
moClass = icf.getManagedObjectClass(object);
@@ -594,7 +591,7 @@
if (propertyInfo == null)
throw new IllegalStateException("Unable to find property: " + name + " for " + object.getClass().getName());
- Object value = null;
+ Object value;
try
{
value = propertyInfo.get(object);
@@ -633,8 +630,9 @@
if (MANAGED_OBJECT_META_TYPE == arrayType.getElementType())
{
Collection cvalue = getAsCollection(value);
- ArrayMetaType<GenericMetaType> moType = new ArrayMetaType<GenericMetaType>(1, MANAGED_OBJECT_META_TYPE);
- ArrayValueSupport<GenericValueSupport> moArrayValue = new ArrayValueSupport(moType);
+ // todo - AJ: changed some generics by best guess
+ ArrayMetaType<GenericValueSupport> moType = new ArrayMetaType<GenericValueSupport>(1, MANAGED_OBJECT_META_TYPE);
+ ArrayValueSupport<GenericValueSupport> moArrayValue = new ArrayValueSupport<GenericValueSupport>(moType);
ArrayList<GenericValueSupport> tmp = new ArrayList<GenericValueSupport>();
for(Object element : cvalue)
{
@@ -657,8 +655,7 @@
* @param opAnnotation
* @return
*/
- protected ManagedOperation getManagedOperation(MethodInfo methodInfo,
- ManagementOperation opAnnotation)
+ protected ManagedOperation getManagedOperation(MethodInfo methodInfo, ManagementOperation opAnnotation)
{
String name = methodInfo.getName();
String description = opAnnotation.description();
@@ -668,8 +665,7 @@
TypeInfo returnInfo = methodInfo.getReturnType();
MetaType returnType = metaTypeFactory.resolve(returnInfo);
ArrayList<ManagedParameter> mparams = new ArrayList<ManagedParameter>();
- Class<? extends ManagedParameterConstraintsPopulatorFactory> opConstraintsFactor
- = opAnnotation.constraintsFactory();
+ Class<? extends ManagedParameterConstraintsPopulatorFactory> opConstraintsFactor = opAnnotation.constraintsFactory();
if( paramInfo != null )
{
@@ -722,9 +718,7 @@
ManagedParameter[] parameters = new ManagedParameter[mparams.size()];
mparams.toArray(parameters);
- ManagedOperationImpl op = new ManagedOperationImpl(name, description, impact,
- parameters, returnType);
- return op;
+ return new ManagedOperationImpl(name, description, impact, parameters, returnType);
}
/**
Modified: projects/microcontainer/trunk/metatype/src/main/org/jboss/metatype/api/values/ArrayValueSupport.java
===================================================================
--- projects/microcontainer/trunk/metatype/src/main/org/jboss/metatype/api/values/ArrayValueSupport.java 2007-10-02 11:15:46 UTC (rev 65752)
+++ projects/microcontainer/trunk/metatype/src/main/org/jboss/metatype/api/values/ArrayValueSupport.java 2007-10-02 12:56:10 UTC (rev 65753)
@@ -94,19 +94,17 @@
*/
public int getLength()
{
- int length = Array.getLength(value);
- return length;
+ return Array.getLength(value);
}
public Object getValue(int index)
{
- Object element = Array.get(value, index);
- return element;
+ return Array.get(value, index);
}
public Iterator<T> iterator()
{
- return new ArrayValueIterator(value);
+ return new ArrayValueIterator<T>(value);
}
/**
@@ -235,6 +233,7 @@
this.index = 0;
this.length = Array.getLength(array);
}
+
public boolean hasNext()
{
return index < length;
@@ -243,8 +242,7 @@
public T next()
{
Object next = Array.get(array, index ++);
- T t = (T) next;
- return t;
+ return (T) next;
}
public void remove()
More information about the jboss-cvs-commits
mailing list