[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