[jboss-cvs] JBossAS SVN: r59968 - in projects/microcontainer/trunk: container/src/main/org/jboss/reflect/plugins and 8 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Jan 24 09:54:37 EST 2007


Author: alesj
Date: 2007-01-24 09:54:37 -0500 (Wed, 24 Jan 2007)
New Revision: 59968

Modified:
   projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/xml/AOPBeansSchemaInitializer.java
   projects/microcontainer/trunk/container/src/main/org/jboss/reflect/plugins/ClassInfoImpl.java
   projects/microcontainer/trunk/container/src/main/org/jboss/reflect/plugins/ValueConvertor.java
   projects/microcontainer/trunk/container/src/main/org/jboss/reflect/plugins/introspection/ParameterizedClassInfo.java
   projects/microcontainer/trunk/container/src/main/org/jboss/reflect/plugins/javassist/JavassistTypeInfo.java
   projects/microcontainer/trunk/container/src/main/org/jboss/reflect/spi/PrimitiveInfo.java
   projects/microcontainer/trunk/container/src/main/org/jboss/reflect/spi/TypeInfo.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/xml/JavaBeanSchemaInitializer.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/config/xml/JavaBeanSchemaInitializer20.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanSchemaBinding.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanSchemaBinding20.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/ConfigTestSuite.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/PropertyTestCase.java
   projects/microcontainer/trunk/spring-int/src/main/org/jboss/spring/deployment/xml/SpringSchemaBinding.java
Log:
Moved property replecament into MC - and disabled XB replecament.

Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/xml/AOPBeansSchemaInitializer.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/xml/AOPBeansSchemaInitializer.java	2007-01-24 14:53:03 UTC (rev 59967)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/beans/xml/AOPBeansSchemaInitializer.java	2007-01-24 14:54:37 UTC (rev 59968)
@@ -76,6 +76,9 @@
    
    public SchemaBinding init(SchemaBinding schema)
    {
+      // ignore XB property replacement
+      schema.setReplacePropertyRefs(false);
+
       // aspect binding
       TypeBinding aspectType = schema.getType(aspectTypeQName);
       BeanSchemaBindingHelper.initBeanFactoryHandlers(aspectType);

Modified: projects/microcontainer/trunk/container/src/main/org/jboss/reflect/plugins/ClassInfoImpl.java
===================================================================
--- projects/microcontainer/trunk/container/src/main/org/jboss/reflect/plugins/ClassInfoImpl.java	2007-01-24 14:53:03 UTC (rev 59967)
+++ projects/microcontainer/trunk/container/src/main/org/jboss/reflect/plugins/ClassInfoImpl.java	2007-01-24 14:54:37 UTC (rev 59968)
@@ -25,7 +25,14 @@
 import java.lang.reflect.Modifier;
 import java.util.HashMap;
 
-import org.jboss.reflect.spi.*;
+import org.jboss.reflect.spi.AnnotationValue;
+import org.jboss.reflect.spi.ClassInfo;
+import org.jboss.reflect.spi.ConstructorInfo;
+import org.jboss.reflect.spi.FieldInfo;
+import org.jboss.reflect.spi.InterfaceInfo;
+import org.jboss.reflect.spi.MethodInfo;
+import org.jboss.reflect.spi.TypeInfo;
+import org.jboss.reflect.spi.TypeInfoFactory;
 import org.jboss.util.JBossStringBuilder;
 import org.jboss.util.UnreachableStatementException;
 
@@ -452,6 +459,11 @@
       return ValueConvertor.convertValue(getType(), value);
    }
 
+   public Object convertValue(Object value, boolean replaceProperties) throws Throwable
+   {
+      return ValueConvertor.convertValue(getType(), value, replaceProperties);
+   }
+
    public boolean isArray()
    {
       return getType().isArray();
@@ -545,6 +557,11 @@
          throw new UnreachableStatementException();
       }
 
+      public Object convertValue(Object value, boolean replaceProperties) throws Throwable
+      {
+         throw new UnreachableStatementException();
+      }
+
       public TypeInfo getArrayType(int depth)
       {
          throw new UnreachableStatementException();

Modified: projects/microcontainer/trunk/container/src/main/org/jboss/reflect/plugins/ValueConvertor.java
===================================================================
--- projects/microcontainer/trunk/container/src/main/org/jboss/reflect/plugins/ValueConvertor.java	2007-01-24 14:53:03 UTC (rev 59967)
+++ projects/microcontainer/trunk/container/src/main/org/jboss/reflect/plugins/ValueConvertor.java	2007-01-24 14:54:37 UTC (rev 59968)
@@ -31,6 +31,7 @@
 import org.jboss.reflect.plugins.introspection.ReflectionUtils;
 import org.jboss.reflect.spi.ProgressionConvertor;
 import org.jboss.reflect.spi.ProgressionConvertorFactory;
+import org.jboss.util.StringPropertyReplacer;
 import org.jboss.util.propertyeditor.PropertyEditors;
 
 /**
@@ -72,12 +73,34 @@
    @SuppressWarnings("unchecked")
    public static Object convertValue(Class<? extends Object> clazz, Object value) throws Throwable
    {
+      return convertValue(clazz, value, false);
+   }
+
+   /**
+    * Convert a value
+    *
+    * @param clazz             the class
+    * @param value             the value
+    * @param replaceProperties whether to replace system properties
+    * @return the value or null if there is no editor
+    * @throws Throwable for any error
+    */
+   public static Object convertValue(Class<? extends Object> clazz, Object value, boolean replaceProperties) throws Throwable
+   {
       if (clazz == null)
          throw new IllegalArgumentException("Null class");
       if (value == null)
          return null;
 
       Class<? extends Object> valueClass = value.getClass();
+
+      // If we have a string replace any system properties when requested
+      if (replaceProperties && valueClass == String.class)
+      {
+         String string = (String)value;
+         value = StringPropertyReplacer.replaceProperties(string);
+      }
+
       if (clazz.isAssignableFrom(valueClass))
          return value;
 
@@ -94,7 +117,7 @@
          PropertyEditor editor = PropertyEditorManager.findEditor(clazz);
          if (editor != null)
          {
-            editor.setAsText((String) value);
+            editor.setAsText((String)value);
             return editor.getValue();
          }
       }

Modified: projects/microcontainer/trunk/container/src/main/org/jboss/reflect/plugins/introspection/ParameterizedClassInfo.java
===================================================================
--- projects/microcontainer/trunk/container/src/main/org/jboss/reflect/plugins/introspection/ParameterizedClassInfo.java	2007-01-24 14:53:03 UTC (rev 59967)
+++ projects/microcontainer/trunk/container/src/main/org/jboss/reflect/plugins/introspection/ParameterizedClassInfo.java	2007-01-24 14:54:37 UTC (rev 59968)
@@ -24,7 +24,14 @@
 import java.lang.reflect.ParameterizedType;
 
 import org.jboss.reflect.plugins.ClassInfoImpl;
-import org.jboss.reflect.spi.*;
+import org.jboss.reflect.spi.AnnotationValue;
+import org.jboss.reflect.spi.ClassInfo;
+import org.jboss.reflect.spi.ConstructorInfo;
+import org.jboss.reflect.spi.FieldInfo;
+import org.jboss.reflect.spi.InterfaceInfo;
+import org.jboss.reflect.spi.MethodInfo;
+import org.jboss.reflect.spi.TypeInfo;
+import org.jboss.reflect.spi.TypeInfoFactory;
 import org.jboss.util.JBossObject;
 import org.jboss.util.JBossStringBuilder;
 
@@ -168,6 +175,11 @@
       return delegate.convertValue(value);
    }
 
+   public Object convertValue(Object value, boolean replaceProperties) throws Throwable
+   {
+      return delegate.convertValue(value, replaceProperties);
+   }
+
    public TypeInfo getArrayType(int depth)
    {
       return delegate.getArrayType(depth);

Modified: projects/microcontainer/trunk/container/src/main/org/jboss/reflect/plugins/javassist/JavassistTypeInfo.java
===================================================================
--- projects/microcontainer/trunk/container/src/main/org/jboss/reflect/plugins/javassist/JavassistTypeInfo.java	2007-01-24 14:53:03 UTC (rev 59967)
+++ projects/microcontainer/trunk/container/src/main/org/jboss/reflect/plugins/javassist/JavassistTypeInfo.java	2007-01-24 14:54:37 UTC (rev 59968)
@@ -32,9 +32,15 @@
 import javassist.CtField;
 import javassist.CtMethod;
 import javassist.NotFoundException;
-
 import org.jboss.reflect.plugins.ValueConvertor;
-import org.jboss.reflect.spi.*;
+import org.jboss.reflect.spi.AnnotationValue;
+import org.jboss.reflect.spi.ClassInfo;
+import org.jboss.reflect.spi.ConstructorInfo;
+import org.jboss.reflect.spi.FieldInfo;
+import org.jboss.reflect.spi.InterfaceInfo;
+import org.jboss.reflect.spi.MethodInfo;
+import org.jboss.reflect.spi.TypeInfo;
+import org.jboss.reflect.spi.TypeInfoFactory;
 import org.jboss.util.JBossStringBuilder;
 
 /**
@@ -355,6 +361,11 @@
       return ValueConvertor.convertValue(getType(), value);
    }
 
+   public Object convertValue(Object value, boolean replaceProperties) throws Throwable
+   {
+      return ValueConvertor.convertValue(getType(), value, replaceProperties);
+   }
+
    protected int getHashCode()
    {
       return getName().hashCode();

Modified: projects/microcontainer/trunk/container/src/main/org/jboss/reflect/spi/PrimitiveInfo.java
===================================================================
--- projects/microcontainer/trunk/container/src/main/org/jboss/reflect/spi/PrimitiveInfo.java	2007-01-24 14:53:03 UTC (rev 59967)
+++ projects/microcontainer/trunk/container/src/main/org/jboss/reflect/spi/PrimitiveInfo.java	2007-01-24 14:54:37 UTC (rev 59968)
@@ -154,6 +154,16 @@
       return ValueConvertor.convertValue(type, value);
    }
 
+   public Object convertValue(Object value, boolean replaceProperties) throws Throwable
+   {
+      Object progressResult = ValueConvertor.progressValue(type, value);
+      if (progressResult != null)
+      {
+         return progressResult;
+      }
+      return ValueConvertor.convertValue(type, value, replaceProperties);
+   }
+
    public boolean isArray()
    {
       return false;

Modified: projects/microcontainer/trunk/container/src/main/org/jboss/reflect/spi/TypeInfo.java
===================================================================
--- projects/microcontainer/trunk/container/src/main/org/jboss/reflect/spi/TypeInfo.java	2007-01-24 14:53:03 UTC (rev 59967)
+++ projects/microcontainer/trunk/container/src/main/org/jboss/reflect/spi/TypeInfo.java	2007-01-24 14:54:37 UTC (rev 59968)
@@ -56,6 +56,16 @@
    Object convertValue(Object value) throws Throwable;
    
    /**
+    * Convert a value
+    *
+    * @param value the original value
+    * @param replaceProperties whether to replace properties
+    * @return the converted value
+    * @throws Throwable for any error
+    */
+   Object convertValue(Object value, boolean replaceProperties) throws Throwable;
+
+   /**
     * Whether this type is an array
     * 
     * @return true when an array

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	2007-01-24 14:53:03 UTC (rev 59967)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/beans/metadata/plugins/StringValueMetaData.java	2007-01-24 14:54:37 UTC (rev 59968)
@@ -21,10 +21,10 @@
 */
 package org.jboss.beans.metadata.plugins;
 
+import org.jboss.beans.metadata.spi.MetaDataVisitor;
+import org.jboss.beans.metadata.spi.MetaDataVisitorNode;
 import org.jboss.logging.Logger;
 import org.jboss.reflect.spi.TypeInfo;
-import org.jboss.beans.metadata.spi.MetaDataVisitor;
-import org.jboss.beans.metadata.spi.MetaDataVisitorNode;
 
 /**
  * String value.
@@ -90,9 +90,9 @@
       if (typeInfo != info && info != null)
       {
          Object typeValue = typeInfo.convertValue(value);
-         return info.convertValue(typeValue);
+         return info.convertValue(typeValue, true);
       }
-      return typeInfo.convertValue(value);
+      return typeInfo.convertValue(value, true);
    }
 
    public Class getType(MetaDataVisitor visitor, MetaDataVisitorNode previous) throws Throwable

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/config/xml/JavaBeanSchemaInitializer.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/config/xml/JavaBeanSchemaInitializer.java	2007-01-24 14:53:03 UTC (rev 59967)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/config/xml/JavaBeanSchemaInitializer.java	2007-01-24 14:54:37 UTC (rev 59968)
@@ -65,6 +65,9 @@
 
    public SchemaBinding init(SchemaBinding schema)
    {
+      // ignore XB property replacement
+      schema.setReplacePropertyRefs(false);
+
       // javabean binding
       TypeBinding beanType = schema.getType(javabeanTypeQName);
       beanType.setHandler(new DefaultElementHandler()

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/config/xml/JavaBeanSchemaInitializer20.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/config/xml/JavaBeanSchemaInitializer20.java	2007-01-24 14:53:03 UTC (rev 59967)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/config/xml/JavaBeanSchemaInitializer20.java	2007-01-24 14:54:37 UTC (rev 59968)
@@ -63,6 +63,9 @@
 
    public SchemaBinding init(SchemaBinding schema)
    {
+      // ignore XB property replacement
+      schema.setReplacePropertyRefs(false);
+
       // javabean binding
       TypeBinding beanType = schema.getType(javabeanTypeQName);
       beanType.setHandler(JavaBeanHandler.HANDLER);

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanSchemaBinding.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanSchemaBinding.java	2007-01-24 14:53:03 UTC (rev 59967)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanSchemaBinding.java	2007-01-24 14:54:37 UTC (rev 59968)
@@ -25,11 +25,28 @@
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-
 import javax.xml.namespace.NamespaceContext;
 import javax.xml.namespace.QName;
 
-import org.jboss.beans.metadata.plugins.*;
+import org.jboss.beans.metadata.plugins.AbstractArrayMetaData;
+import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
+import org.jboss.beans.metadata.plugins.AbstractClassLoaderMetaData;
+import org.jboss.beans.metadata.plugins.AbstractCollectionMetaData;
+import org.jboss.beans.metadata.plugins.AbstractConstructorMetaData;
+import org.jboss.beans.metadata.plugins.AbstractDemandMetaData;
+import org.jboss.beans.metadata.plugins.AbstractDependencyMetaData;
+import org.jboss.beans.metadata.plugins.AbstractDependencyValueMetaData;
+import org.jboss.beans.metadata.plugins.AbstractInjectionValueMetaData;
+import org.jboss.beans.metadata.plugins.AbstractLifecycleMetaData;
+import org.jboss.beans.metadata.plugins.AbstractListMetaData;
+import org.jboss.beans.metadata.plugins.AbstractMapMetaData;
+import org.jboss.beans.metadata.plugins.AbstractParameterMetaData;
+import org.jboss.beans.metadata.plugins.AbstractPropertyMetaData;
+import org.jboss.beans.metadata.plugins.AbstractSetMetaData;
+import org.jboss.beans.metadata.plugins.AbstractSupplyMetaData;
+import org.jboss.beans.metadata.plugins.AbstractValueMetaData;
+import org.jboss.beans.metadata.plugins.InjectionType;
+import org.jboss.beans.metadata.plugins.StringValueMetaData;
 import org.jboss.beans.metadata.plugins.factory.GenericBeanFactoryMetaData;
 import org.jboss.beans.metadata.spi.BeanMetaDataFactory;
 import org.jboss.beans.metadata.spi.DemandMetaData;
@@ -39,7 +56,6 @@
 import org.jboss.beans.metadata.spi.PropertyMetaData;
 import org.jboss.beans.metadata.spi.SupplyMetaData;
 import org.jboss.beans.metadata.spi.ValueMetaData;
-import org.jboss.beans.metadata.plugins.InjectionType;
 import org.jboss.dependency.spi.ControllerMode;
 import org.jboss.dependency.spi.ControllerState;
 import org.jboss.kernel.plugins.deployment.AbstractKernelDeployment;
@@ -223,6 +239,9 @@
       
       BeanSchemaBinding.schemaBinding = schemaBinding;
 
+      // ignore XB property replacement
+      schemaBinding.setReplacePropertyRefs(false);
+
       // deployment binding
       TypeBinding deploymentType = schemaBinding.getType(deploymentTypeQName);
       deploymentType.setHandler(new DefaultElementHandler()

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanSchemaBinding20.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanSchemaBinding20.java	2007-01-24 14:53:03 UTC (rev 59967)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/deployment/xml/BeanSchemaBinding20.java	2007-01-24 14:54:37 UTC (rev 59968)
@@ -204,6 +204,9 @@
     */
    public static void init(SchemaBinding schemaBinding)
    {
+      // ignore XB property replacement
+      schemaBinding.setReplacePropertyRefs(false);
+      // init
       initDeployment(schemaBinding);
       initBean(schemaBinding);
       initBeanFactory(schemaBinding);

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/ConfigTestSuite.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/ConfigTestSuite.java	2007-01-24 14:53:03 UTC (rev 59967)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/ConfigTestSuite.java	2007-01-24 14:54:37 UTC (rev 59968)
@@ -65,6 +65,8 @@
       suite.addTest(ProgressionTestCase.suite());
       suite.addTest(ProgressionXMLTestCase.suite());
       suite.addTest(BeanMetaDataBuilderTestCase.suite());
+      suite.addTest(PropertyTestCase.suite());
+      suite.addTest(PropertyXMLTestCase.suite());
 
       return suite;
    }

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/PropertyTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/PropertyTestCase.java	2007-01-24 14:53:03 UTC (rev 59967)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/config/test/PropertyTestCase.java	2007-01-24 14:54:37 UTC (rev 59968)
@@ -22,14 +22,10 @@
 package org.jboss.test.kernel.config.test;
 
 import junit.framework.Test;
-import org.jboss.beans.metadata.spi.PropertyMetaData;
-import org.jboss.beans.metadata.plugins.AbstractTypeMetaData;
 import org.jboss.beans.metadata.plugins.AbstractPropertyMetaData;
-import org.jboss.test.AbstractTestDelegate;
+import org.jboss.beans.metadata.plugins.AbstractTypeMetaData;
+import org.jboss.beans.metadata.spi.PropertyMetaData;
 
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-
 /**
  * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
  */
@@ -52,34 +48,28 @@
 
    public void testPropertyWithPropertyValue() throws Throwable
    {
-      // set property to be replaced
-      final String CONST = "PropertyReplaceTestCase";
-
-      AbstractTestDelegate delegate = getDelegate();
-      delegate.enableSecurity = false;
-      AccessController.doPrivileged(new PrivilegedAction<Object>()
+      SecurityManager sm = suspendSecurity();
+      try
       {
-         public Object run()
-         {
-            System.setProperty("test.property.value", CONST);
-            return null;
-         }
-      });
-      
-      // get property
-      Object value = instantiateReplacePropertyValue();
-      assertNotNull(value);
-      assertEquals(String.class, value.getClass());
-      assertEquals(CONST, value);
+         // set property to be replaced
+         final String CONST = "PropertyReplaceTestCase";
+         System.setProperty("test.property.value", CONST);
+         // get property
+         Object value = instantiateReplacePropertyValue();
+         assertNotNull(value);
+         assertEquals(String.class, value.getClass());
+         assertEquals(CONST, value);
+      }
+      finally
+      {
+         resumeSecurity(sm);
+      }
    }
 
    protected Object instantiateReplacePropertyValue() throws Throwable
    {
       PropertyMetaData property = new AbstractPropertyMetaData("test", "${test.property.value}", String.class.getName());
-      // TODO - update with jboss-test.jar
-//      AbstractTypeMetaData atmd = assertInstanceOf(property.getValue(), AbstractTypeMetaData.class, false);
-      assertTrue(property.getValue() instanceof AbstractTypeMetaData);
-      AbstractTypeMetaData atmd = (AbstractTypeMetaData)property.getValue();
+      AbstractTypeMetaData atmd = assertInstanceOf(property.getValue(), AbstractTypeMetaData.class, false);
       atmd.setConfigurator(bootstrap().getConfigurator());
       return atmd.getValue(null, Thread.currentThread().getContextClassLoader());
    }

Modified: projects/microcontainer/trunk/spring-int/src/main/org/jboss/spring/deployment/xml/SpringSchemaBinding.java
===================================================================
--- projects/microcontainer/trunk/spring-int/src/main/org/jboss/spring/deployment/xml/SpringSchemaBinding.java	2007-01-24 14:53:03 UTC (rev 59967)
+++ projects/microcontainer/trunk/spring-int/src/main/org/jboss/spring/deployment/xml/SpringSchemaBinding.java	2007-01-24 14:54:37 UTC (rev 59968)
@@ -169,6 +169,9 @@
 
    public static void init(SchemaBinding schemaBinding)
    {
+      // ignore XB property replacement
+      schemaBinding.setReplacePropertyRefs(false);
+      // init
       initDeployment(schemaBinding);
       initBean(schemaBinding);
       initArtifacts(schemaBinding);




More information about the jboss-cvs-commits mailing list