[jboss-cvs] JBossAS SVN: r70535 - in projects/microcontainer/trunk/kernel/src: main/org/jboss/kernel/plugins/config and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Mar 7 05:27:19 EST 2008


Author: adrian at jboss.org
Date: 2008-03-07 05:27:18 -0500 (Fri, 07 Mar 2008)
New Revision: 70535

Modified:
   projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractParameterMetaData.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractPropertyMetaData.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractTypeMetaData.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/StringValueMetaData.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/config/AbstractKernelConfig.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/config/AbstractKernelConfigurator.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/config/KernelConfig.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/config/KernelConfigurator.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/PropertyJaxbTestCase.java
Log:
[JBMICROCONT-219] - Move the replace/trim, etc to the correct type and initiate in initialVisit. Use getTypeInfo() in StringValueMetaData since a string could be a primitive

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractParameterMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractParameterMetaData.java	2008-03-07 05:18:26 UTC (rev 70534)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractParameterMetaData.java	2008-03-07 10:27:18 UTC (rev 70535)
@@ -72,6 +72,12 @@
     */
    protected int index;
 
+   /** Whether to replace */
+   protected Boolean replace;
+
+   /** Whether to trim */
+   protected Boolean trim;
+   
    /**
     * Create a new parameter meta data
     */
@@ -208,6 +214,36 @@
       }
    }
 
+   @XmlAttribute(name="replace")
+   @ManagementProperty(ignored = true)
+   public void setPropertyReplace(boolean replace)
+   {
+      this.replace = replace;
+   }
+
+   @XmlAttribute(name="trim")
+   @ManagementProperty(ignored = true)
+   public void setPropertyTrim(boolean trim)
+   {
+      this.trim = trim;
+   }
+
+   @Override
+   public void initialVisit(MetaDataVisitor visitor)
+   {
+      ValueMetaData vmd = getValue();
+      if (vmd != null && vmd instanceof StringValueMetaData)
+      {
+         StringValueMetaData svmd = (StringValueMetaData) vmd;
+         if (replace != null)
+            svmd.setReplace(replace);
+         if (trim != null)
+            svmd.setTrim(trim);
+      }
+      
+      super.initialVisit(visitor);
+   }
+
    protected void addChildren(Set<MetaDataVisitorNode> children)
    {
       super.addChildren(children);

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractPropertyMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractPropertyMetaData.java	2008-03-07 05:18:26 UTC (rev 70534)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractPropertyMetaData.java	2008-03-07 10:27:18 UTC (rev 70535)
@@ -66,6 +66,15 @@
    /** The property value */
    protected ValueMetaData value;
 
+   /** The property type */
+   protected String type;
+   
+   /** The property replace */
+   private Boolean replace;
+   
+   /** Whether to trim */
+   private Boolean trim;
+   
    /**
     * Create a new property meta data
     */
@@ -224,49 +233,30 @@
       }
    }
 
+   public String getPropertyType()
+   {
+      return type;
+   }
+   
    @XmlAttribute(name="class")
    @ManagementProperty(ignored = true)
    public void setPropertyType(String type)
    {
-      ValueMetaData valueMetaData = getValue();
-      if (valueMetaData != null && valueMetaData instanceof StringValueMetaData == false)
-         throw new IllegalArgumentException("Property is not a string");
-      if (valueMetaData == null)
-      {
-         valueMetaData = new StringValueMetaData();
-         setValue(valueMetaData);
-      }
-      ((StringValueMetaData) valueMetaData).setType(type);
+      this.type = type;
    }
 
    @XmlAttribute(name="replace")
    @ManagementProperty(ignored = true)
    public void setPropertyReplace(boolean replace)
    {
-      ValueMetaData valueMetaData = getValue();
-      if (valueMetaData != null && valueMetaData instanceof StringValueMetaData == false)
-         throw new IllegalArgumentException("Property is not a string");
-      if (valueMetaData == null)
-      {
-         valueMetaData = new StringValueMetaData();
-         setValue(valueMetaData);
-      }
-      ((StringValueMetaData) valueMetaData).setReplace(replace);
+      this.replace = replace;
    }
 
    @XmlAttribute(name="trim")
    @ManagementProperty(ignored = true)
    public void setPropertyTrim(boolean trim)
    {
-      ValueMetaData valueMetaData = getValue();
-      if (valueMetaData != null && valueMetaData instanceof StringValueMetaData == false)
-         throw new IllegalArgumentException("Property is not a string");
-      if (valueMetaData == null)
-      {
-         valueMetaData = new StringValueMetaData();
-         setValue(valueMetaData);
-      }
-      ((StringValueMetaData) valueMetaData).setTrim(trim);
+      this.trim = trim;
    }
 
    public void initialVisit(MetaDataVisitor visitor)
@@ -278,6 +268,17 @@
       ValueMetaData vmd = getValue();
       if (vmd != null && vmd instanceof AbstractInjectionValueMetaData)
          ((AbstractInjectionValueMetaData) vmd).setPropertyMetaData(this);
+
+      if (vmd != null && vmd instanceof StringValueMetaData)
+      {
+         StringValueMetaData svmd = (StringValueMetaData) vmd;
+         if (type != null)
+            svmd.setType(type);
+         if (replace != null)
+            svmd.setReplace(replace);
+         if (trim != null)
+            svmd.setTrim(trim);
+      }
       
       visitor.setContextState(ControllerState.CONFIGURED);
       super.initialVisit(visitor);

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractTypeMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractTypeMetaData.java	2008-03-07 05:18:26 UTC (rev 70534)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/AbstractTypeMetaData.java	2008-03-07 10:27:18 UTC (rev 70535)
@@ -353,6 +353,26 @@
       return configurator.getClassInfo(classType, cl);
    }
 
+   /**
+    * Get the type info for this type
+    *
+    * @param cl classloader
+    * @return the type info
+    * @throws Throwable for any error
+    */
+   protected TypeInfo getTypeInfo(ClassLoader cl) throws Throwable
+   {
+      return getTypeInfo(type, cl);
+   }
+
+   protected TypeInfo getTypeInfo(String classType, ClassLoader cl) throws Throwable
+   {
+      if (classType == null)
+         return null;
+
+      return configurator.getTypeInfo(classType, cl);
+   }
+
    protected ClassInfo getClass(MetaDataVisitor visitor, String classType) throws Throwable
    {
       KernelControllerContext context = visitor.getControllerContext();

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/StringValueMetaData.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/StringValueMetaData.java	2008-03-07 05:18:26 UTC (rev 70534)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/StringValueMetaData.java	2008-03-07 10:27:18 UTC (rev 70535)
@@ -104,7 +104,7 @@
       if (trace)
          log.trace("getValue value=" + getUnderlyingValue() + " type=" + type + " info=" + info);
 
-      TypeInfo typeInfo = getClassInfo(cl);
+      TypeInfo typeInfo = getTypeInfo(cl);
       if (typeInfo == null)
          typeInfo = info;
       if (typeInfo == null)

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/config/AbstractKernelConfig.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/config/AbstractKernelConfig.java	2008-03-07 05:18:26 UTC (rev 70534)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/config/AbstractKernelConfig.java	2008-03-07 10:27:18 UTC (rev 70535)
@@ -74,6 +74,16 @@
       return configuration.getBeanInfo(typeInfo);
    }
    
+   public TypeInfo getTypeInfo(String className, ClassLoader cl) throws Throwable
+   {
+      return configuration.getTypeInfo(className, cl);
+   }
+   
+   public TypeInfo getTypeInfo(Class<?> clazz) throws Throwable
+   {
+      return configuration.getTypeInfo(clazz);
+   }
+   
    public ClassInfo getClassInfo(String className, ClassLoader cl) throws Throwable
    {
       return configuration.getClassInfo(className, cl);

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/config/AbstractKernelConfigurator.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/config/AbstractKernelConfigurator.java	2008-03-07 05:18:26 UTC (rev 70534)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/config/AbstractKernelConfigurator.java	2008-03-07 10:27:18 UTC (rev 70535)
@@ -85,6 +85,16 @@
       return getBeanInfo(className, cl);
    }
 
+   public TypeInfo getTypeInfo(String className, ClassLoader cl) throws Throwable
+   {
+      return config.getTypeInfo(className, cl);
+   }
+
+   public TypeInfo getTypeInfo(Class<?> clazz) throws Throwable
+   {
+      return config.getTypeInfo(clazz);
+   }
+
    public ClassInfo getClassInfo(String className, ClassLoader cl) throws Throwable
    {
       return config.getClassInfo(className, cl);

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/config/KernelConfig.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/config/KernelConfig.java	2008-03-07 05:18:26 UTC (rev 70534)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/config/KernelConfig.java	2008-03-07 10:27:18 UTC (rev 70535)
@@ -73,6 +73,25 @@
    BeanInfo getBeanInfo(TypeInfo type) throws Throwable;
    
    /**
+    * Get the type info for a class
+    * 
+    * @param className the class name
+    * @param cl the classloader
+    * @return the type info
+    * @throws Throwable for any error
+    */
+   TypeInfo getTypeInfo(String className, ClassLoader cl) throws Throwable;
+   
+   /**
+    * Get the type info for a class
+    * 
+    * @param clazz the class
+    * @return the type info
+    * @throws Throwable for any error
+    */
+   TypeInfo getTypeInfo(Class<?> clazz) throws Throwable;
+
+   /**
     * Get the class info for a class
     * 
     * @param className the class name

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/config/KernelConfigurator.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/config/KernelConfigurator.java	2008-03-07 05:18:26 UTC (rev 70534)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/spi/config/KernelConfigurator.java	2008-03-07 10:27:18 UTC (rev 70535)
@@ -87,6 +87,25 @@
    BeanInfo getBeanInfo(BeanMetaData metaData) throws Throwable;
    
    /**
+    * Get the type info for a class
+    * 
+    * @param className the class name
+    * @param cl the classloader
+    * @return the type info
+    * @throws Throwable for any error
+    */
+   TypeInfo getTypeInfo(String className, ClassLoader cl) throws Throwable;
+   
+   /**
+    * Get the type info for a class
+    * 
+    * @param clazz the class
+    * @return the type info
+    * @throws Throwable for any error
+    */
+   TypeInfo getTypeInfo(Class<?> clazz) throws Throwable;
+   
+   /**
     * Get the class info for a class
     * 
     * @param className the class name

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/PropertyJaxbTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/PropertyJaxbTestCase.java	2008-03-07 05:18:26 UTC (rev 70534)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/xml/test/PropertyJaxbTestCase.java	2008-03-07 10:27:18 UTC (rev 70535)
@@ -26,6 +26,7 @@
 
 import junit.framework.Test;
 import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
+import org.jboss.beans.metadata.plugins.AbstractPropertyMetaData;
 import org.jboss.beans.metadata.plugins.StringValueMetaData;
 import org.jboss.beans.metadata.spi.PropertyMetaData;
 import org.jboss.beans.metadata.spi.ValueMetaData;
@@ -74,11 +75,8 @@
       PropertyMetaData property = getProperty();
       assertNotNull("PropertyName", property.getName());
       assertNull(property.getAnnotations());
-      ValueMetaData value = property.getValue();
-      assertNotNull(value);
-      assertTrue(value instanceof StringValueMetaData);
-      StringValueMetaData string = (StringValueMetaData) value;
-      assertEquals("PropertyClass", string.getType());
+      AbstractPropertyMetaData apmd = assertInstanceOf(property, AbstractPropertyMetaData.class);
+      assertEquals("PropertyClass", apmd.getPropertyType());
    }
 
    public void testPropertyWithAnnotation() throws Exception




More information about the jboss-cvs-commits mailing list