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