[jboss-cvs] JBossAS SVN: r64859 - projects/microcontainer/trunk/managed/src/main/org/jboss/managed/plugins/factory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Aug 24 13:58:36 EDT 2007


Author: scott.stark at jboss.org
Date: 2007-08-24 13:58:36 -0400 (Fri, 24 Aug 2007)
New Revision: 64859

Modified:
   projects/microcontainer/trunk/managed/src/main/org/jboss/managed/plugins/factory/AbstractManagedObjectFactory.java
Log:
JBMICROCONT-181, allow the property level ManagementObjectID to modify the ManagedObject name/nameType

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-08-24 17:57:42 UTC (rev 64858)
+++ projects/microcontainer/trunk/managed/src/main/org/jboss/managed/plugins/factory/AbstractManagedObjectFactory.java	2007-08-24 17:58:36 UTC (rev 64859)
@@ -46,6 +46,8 @@
 import org.jboss.managed.api.ManagedParameter;
 import org.jboss.managed.api.ManagedProperty;
 import org.jboss.managed.api.ManagedOperation.Impact;
+import org.jboss.managed.api.annotation.AnnotationDefaults;
+import org.jboss.managed.api.annotation.ManagementComponent;
 import org.jboss.managed.api.annotation.ManagementConstants;
 import org.jboss.managed.api.annotation.ManagementObject;
 import org.jboss.managed.api.annotation.ManagementObjectID;
@@ -70,6 +72,7 @@
 import org.jboss.metatype.api.values.GenericValueSupport;
 import org.jboss.metatype.api.values.MetaValue;
 import org.jboss.metatype.api.values.MetaValueFactory;
+import org.jboss.metatype.api.values.SimpleValue;
 import org.jboss.reflect.spi.ClassInfo;
 import org.jboss.reflect.spi.MethodInfo;
 import org.jboss.reflect.spi.ParameterInfo;
@@ -219,6 +222,10 @@
          attachmentName = managementObject.attachmentName();
          if (attachmentName.length() == 0)
             attachmentName = classInfo.getName();
+         // Check for a component specification
+         ManagementComponent mc = managementObject.componentType();
+         if (mc.equals(AnnotationDefaults.COMP_TYPE) == false)
+            moAnnotations.put(ManagementComponent.class.getName(), mc);
          // ManagementObject level default factory classes
          moFieldsFactory = managementObject.fieldsFactory();
          moConstraintsFactory = managementObject.constraintsFactory();
@@ -248,7 +255,11 @@
             if (managementProperty != null)
                propAnnotations.put(ManagementProperty.class.getName(), managementProperty);
             if (id != null)
+            {
                propAnnotations.put(ManagementObjectID.class.getName(), id);
+               // This overrides the MO nameType
+               nameType = id.type();
+            }
             if (ref != null)
                propAnnotations.put(ManagementObjectRef.class.getName(), ref);
 
@@ -468,6 +479,20 @@
             MetaValue value = getValue(beanInfo, property, object);
             if (value != null)
                property.setField(Fields.VALUE, value);
+            // Need to look for a 
+            Map<String, Annotation> annotations = property.getAnnotations();
+            ManagementObjectID id = (ManagementObjectID) annotations.get(ManagementObjectID.class.getName());
+            if (id != null)
+            {
+               if (value.getMetaType().isSimple() == false)
+               {
+                  log.warn("Cannot create String name from non-Simple property: "+property);
+                  continue;
+               }
+               SimpleValue svalue = (SimpleValue) value;
+               String name = "" + svalue.getValue();
+               managedObject.setName(name);
+            }
          }
       }
    }




More information about the jboss-cvs-commits mailing list