diff --git a/org.springframework.beans/src/main/java/org/springframework/beans/GenericTypeAwarePropertyDescriptor.java b/org.springframework.beans/src/main/java/org/springframework/beans/GenericTypeAwarePropertyDescriptor.java index f0c42bcf7b7..b1d21cfa63b 100644 --- a/org.springframework.beans/src/main/java/org/springframework/beans/GenericTypeAwarePropertyDescriptor.java +++ b/org.springframework.beans/src/main/java/org/springframework/beans/GenericTypeAwarePropertyDescriptor.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2008 the original author or authors. + * Copyright 2002-2009 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -62,7 +62,7 @@ class GenericTypeAwarePropertyDescriptor extends PropertyDescriptor { // method due to lack of bridge method resolution, in case of the getter using a // covariant return type whereas the setter is defined for the concrete property type. writeMethodToUse = ClassUtils.getMethodIfAvailable(this.beanClass, - "set" + StringUtils.capitalize(getName()), new Class[] {readMethodToUse.getReturnType()}); + "set" + StringUtils.capitalize(getName()), readMethodToUse.getReturnType()); } this.readMethod = readMethodToUse; this.writeMethod = writeMethodToUse; diff --git a/org.springframework.context/src/main/java/org/springframework/jmx/export/MBeanExporter.java b/org.springframework.context/src/main/java/org/springframework/jmx/export/MBeanExporter.java index 7f8cd2e814d..06406b61919 100644 --- a/org.springframework.context/src/main/java/org/springframework/jmx/export/MBeanExporter.java +++ b/org.springframework.context/src/main/java/org/springframework/jmx/export/MBeanExporter.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2008 the original author or authors. + * Copyright 2002-2009 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -305,9 +305,10 @@ public class MBeanExporter extends MBeanRegistrationSupport /** * Indicates whether Spring should ensure that {@link ObjectName ObjectNames} * generated by the configured {@link ObjectNamingStrategy} for - * runtime-registered MBeans should be modified to ensure uniqueness - * for every instance of a managed Class. + * runtime-registered MBeans ({@link #registerManagedResource}) should get + * modified: to ensure uniqueness for every instance of a managed Class. *

The default value is true. + * @see #registerManagedResource * @see JmxUtils#appendIdentityToObjectName(javax.management.ObjectName, Object) */ public void setEnsureUniqueRuntimeObjectNames(boolean ensureUniqueRuntimeObjectNames) { diff --git a/org.springframework.context/src/main/resources/org/springframework/ejb/config/spring-jee-2.5.xsd b/org.springframework.context/src/main/resources/org/springframework/ejb/config/spring-jee-2.5.xsd index 09acaf39afe..6b491cc753f 100644 --- a/org.springframework.context/src/main/resources/org/springframework/ejb/config/spring-jee-2.5.xsd +++ b/org.springframework.context/src/main/resources/org/springframework/ejb/config/spring-jee-2.5.xsd @@ -13,8 +13,8 @@ @@ -178,7 +178,7 @@ @@ -186,7 +186,7 @@ @@ -195,7 +195,13 @@ diff --git a/org.springframework.expression/src/main/java/org/springframework/expression/spel/support/ReflectivePropertyResolver.java b/org.springframework.expression/src/main/java/org/springframework/expression/spel/support/ReflectivePropertyResolver.java index b5f9d5c5081..7305e57c060 100644 --- a/org.springframework.expression/src/main/java/org/springframework/expression/spel/support/ReflectivePropertyResolver.java +++ b/org.springframework.expression/src/main/java/org/springframework/expression/spel/support/ReflectivePropertyResolver.java @@ -28,6 +28,7 @@ import org.springframework.expression.AccessException; import org.springframework.expression.EvaluationContext; import org.springframework.expression.PropertyAccessor; import org.springframework.util.ReflectionUtils; +import org.springframework.util.StringUtils; /** * Simple PropertyResolver that uses reflection to access properties for reading and writing. A property can be accessed @@ -225,21 +226,17 @@ public class ReflectivePropertyResolver implements PropertyAccessor { protected Method findGetterForProperty(String propertyName, Class clazz, boolean mustBeStatic) { Method[] ms = clazz.getMethods(); // Try "get*" method... - StringBuilder sb = new StringBuilder(propertyName.length() + 3); - sb.append("get").append(propertyName.substring(0, 1).toUpperCase()).append(propertyName.substring(1)); - String expectedGetterName = sb.toString(); + String getterName = "get" + StringUtils.capitalize(propertyName); for (Method method : ms) { - if (method.getName().equals(expectedGetterName) && method.getParameterTypes().length == 0 && + if (method.getName().equals(getterName) && method.getParameterTypes().length == 0 && (!mustBeStatic || Modifier.isStatic(method.getModifiers()))) { return method; } } // Try "is*" method... - sb = new StringBuilder(propertyName.length() + 2); - sb.append("is").append(propertyName.substring(0, 1).toUpperCase()).append(propertyName.substring(1)); - expectedGetterName = sb.toString(); + getterName = "is" + StringUtils.capitalize(propertyName); for (Method method : ms) { - if (method.getName().equals(expectedGetterName) && method.getParameterTypes().length == 0 && + if (method.getName().equals(getterName) && method.getParameterTypes().length == 0 && boolean.class.equals(method.getReturnType()) && (!mustBeStatic || Modifier.isStatic(method.getModifiers()))) { return method; @@ -252,14 +249,11 @@ public class ReflectivePropertyResolver implements PropertyAccessor { * Find a setter method for the specified property. */ protected Method findSetterForProperty(String propertyName, Class clazz, boolean mustBeStatic) { - Method[] ms = clazz.getMethods(); - StringBuilder sb = new StringBuilder(propertyName.length() + 3); - sb.append("set").append(propertyName.substring(0, 1).toUpperCase()).append(propertyName.substring(1)); - String setterName = sb.toString(); - for (Method method : ms) { - if (method.getParameterTypes().length == 1 && - (!mustBeStatic || Modifier.isStatic(method.getModifiers())) && - method.getName().equals(setterName)) { + Method[] methods = clazz.getMethods(); + String setterName = "set" + StringUtils.capitalize(propertyName); + for (Method method : methods) { + if (method.getName().equals(setterName) && method.getParameterTypes().length == 1 && + (!mustBeStatic || Modifier.isStatic(method.getModifiers()))) { return method; } } @@ -270,7 +264,7 @@ public class ReflectivePropertyResolver implements PropertyAccessor { * Find a field of a certain name on a specified class */ protected Field findField(String name, Class clazz, boolean mustBeStatic) { - Field[] fields = clazz.getFields(); // TODO use getDeclaredFields() and search up hierarchy? + Field[] fields = clazz.getFields(); for (Field field : fields) { if (field.getName().equals(name) && (!mustBeStatic || Modifier.isStatic(field.getModifiers()))) { return field; diff --git a/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/view/InternalResourceViewResolver.java b/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/view/InternalResourceViewResolver.java index 656624e8c32..d5585076511 100644 --- a/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/view/InternalResourceViewResolver.java +++ b/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/view/InternalResourceViewResolver.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2008 the original author or authors. + * Copyright 2002-2009 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -99,7 +99,7 @@ public class InternalResourceViewResolver extends UrlBasedViewResolver { * @see InternalResourceView#setExposeContextBeansAsAttributes */ public void setExposeContextBeansAsAttributes(boolean exposeContextBeansAsAttributes) { - this.exposeContextBeansAsAttributes = Boolean.valueOf(exposeContextBeansAsAttributes); + this.exposeContextBeansAsAttributes = exposeContextBeansAsAttributes; } /** @@ -117,10 +117,10 @@ public class InternalResourceViewResolver extends UrlBasedViewResolver { protected AbstractUrlBasedView buildView(String viewName) throws Exception { InternalResourceView view = (InternalResourceView) super.buildView(viewName); if (this.alwaysInclude != null) { - view.setAlwaysInclude(this.alwaysInclude.booleanValue()); + view.setAlwaysInclude(this.alwaysInclude); } if (this.exposeContextBeansAsAttributes != null) { - view.setExposeContextBeansAsAttributes(this.exposeContextBeansAsAttributes.booleanValue()); + view.setExposeContextBeansAsAttributes(this.exposeContextBeansAsAttributes); } if (this.exposedContextBeanNames != null) { view.setExposedContextBeanNames(this.exposedContextBeanNames);