You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by az...@apache.org on 2008/10/21 10:11:14 UTC

svn commit: r706548 - /synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/PropertyHelper.java

Author: azeez
Date: Tue Oct 21 01:11:13 2008
New Revision: 706548

URL: http://svn.apache.org/viewvc?rev=706548&view=rev
Log:
The setStaticProperty method can now handle non-string properties

Modified:
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/PropertyHelper.java

Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/PropertyHelper.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/PropertyHelper.java?rev=706548&r1=706547&r2=706548&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/PropertyHelper.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/PropertyHelper.java Tue Oct 21 01:11:13 2008
@@ -48,47 +48,45 @@
     public static void setInstanceProperty(String name, Object val, Object obj) {
 
         String mName = "set" + Character.toUpperCase(name.charAt(0)) + name.substring(1);
-        Method method = null;
+        Method method;
 
         try {
             Method[] methods = obj.getClass().getMethods();
             boolean invoked = false;
 
-            for (int i=0; i<methods.length; i++) {
-                if (mName.equals(methods[i].getName())) {
-                    Class[] params = methods[i].getParameterTypes();
+            for (Method method1 : methods) {
+                if (mName.equals(method1.getName())) {
+                    Class[] params = method1.getParameterTypes();
                     if (params.length != 1) {
                         handleException("Did not find a setter method named : " + mName +
-                            "() that takes a single String, int, long, float, double " +
-                            "or boolean parameter");
+                                        "() that takes a single String, int, long, float, double " +
+                                        "or boolean parameter");
                     } else if (val instanceof String) {
                         String value = (String) val;
                         if (params[0].equals(String.class)) {
-                            method = obj.getClass().getMethod(mName, new Class[]{String.class});
+                            method = obj.getClass().getMethod(mName, String.class);
                             method.invoke(obj, new String[]{value});
                         } else if (params[0].equals(int.class)) {
-                            method = obj.getClass().getMethod(mName, new Class[]{int.class});
-                            method.invoke(obj, new Integer[]{new Integer(value)});
                         } else if (params[0].equals(long.class)) {
-                            method = obj.getClass().getMethod(mName, new Class[]{long.class});
+                            method = obj.getClass().getMethod(mName, long.class);
                             method.invoke(obj, new Long[]{new Long(value)});
                         } else if (params[0].equals(float.class)) {
-                            method = obj.getClass().getMethod(mName, new Class[]{float.class});
+                            method = obj.getClass().getMethod(mName, float.class);
                             method.invoke(obj, new Float[]{new Float(value)});
                         } else if (params[0].equals(double.class)) {
-                            method = obj.getClass().getMethod(mName, new Class[]{double.class});
+                            method = obj.getClass().getMethod(mName, double.class);
                             method.invoke(obj, new Double[]{new Double(value)});
                         } else if (params[0].equals(boolean.class)) {
-                            method = obj.getClass().getMethod(mName, new Class[]{boolean.class});
-                            method.invoke(obj, new Boolean[]{new Boolean(value)});
+                            method = obj.getClass().getMethod(mName, boolean.class);
+                            method.invoke(obj, new Boolean[]{Boolean.valueOf(value)});
                         } else {
                             handleException("Did not find a setter method named : " + mName +
-                                "() that takes a single String, int, long, float, double " +
-                                "or boolean parameter");
+                                            "() that takes a single String, int, long, float, double " +
+                                            "or boolean parameter");
                         }
                     } else {
                         if (params[0].equals(OMElement.class)) {
-                            method = obj.getClass().getMethod(mName, new Class[]{OMElement.class});
+                            method = obj.getClass().getMethod(mName, OMElement.class);
                             method.invoke(obj, new OMElement[]{(OMElement) val});
                         }
                     }
@@ -128,33 +126,19 @@
             // try to set String value first
             if (property.getAttributeValue(new QName("value")) != null) {
                 String value = property.getAttributeValue(new QName("value"));
-
-                try {
-                    Method method = o.getClass().getMethod(mName, new Class[]{String.class});
-                    if (log.isDebugEnabled()) {
-                        log.debug("Setting property :: invoking method "
-                                + mName + "(" + value + ")");
-                    }
-                    method.invoke(o, new Object[]{value});
-
-                } catch (Exception e) {
-                    handleException("Error setting property : " + propertyName
-                            + " as a String property into class mediator : " + o.getClass() + " : "
-                            + e.getMessage(), e);
-                }
-                
+                setInstanceProperty(propertyName, value, o);
             } else {
                 // now try XML child
                 OMElement value = property.getFirstElement();
                 if (value != null) {
 
                     try {
-                        Method method = o.getClass().getMethod(mName, new Class[]{OMElement.class});
+                        Method method = o.getClass().getMethod(mName, OMElement.class);
                         if (log.isDebugEnabled()) {
                             log.debug("Setting property :: invoking method "
                                     + mName + "(" + value + ")");
                         }
-                        method.invoke(o, new Object[]{value});
+                        method.invoke(o, value);
 
                     } catch (Exception e) {
                         handleException("Error setting property : " + propertyName