[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