You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2016/06/01 06:07:14 UTC
svn commit: r1746394 - in /commons/proper/beanutils/trunk/src:
main/java/org/apache/commons/beanutils/FluentPropertyBeanIntrospector.java
test/java/org/apache/commons/beanutils/FluentPropertyBeanIntrospectorTestCase.java
Author: ggregory
Date: Wed Jun 1 06:07:14 2016
New Revision: 1746394
URL: http://svn.apache.org/viewvc?rev=1746394&view=rev
Log:
[BEANUTILS-474] FluentPropertyBeanIntrospector does not use the same naming algorithm as DefaultBeanIntrospector.
Modified:
commons/proper/beanutils/trunk/src/main/java/org/apache/commons/beanutils/FluentPropertyBeanIntrospector.java
commons/proper/beanutils/trunk/src/test/java/org/apache/commons/beanutils/FluentPropertyBeanIntrospectorTestCase.java
Modified: commons/proper/beanutils/trunk/src/main/java/org/apache/commons/beanutils/FluentPropertyBeanIntrospector.java
URL: http://svn.apache.org/viewvc/commons/proper/beanutils/trunk/src/main/java/org/apache/commons/beanutils/FluentPropertyBeanIntrospector.java?rev=1746394&r1=1746393&r2=1746394&view=diff
==============================================================================
--- commons/proper/beanutils/trunk/src/main/java/org/apache/commons/beanutils/FluentPropertyBeanIntrospector.java (original)
+++ commons/proper/beanutils/trunk/src/main/java/org/apache/commons/beanutils/FluentPropertyBeanIntrospector.java Wed Jun 1 06:07:14 2016
@@ -17,6 +17,7 @@
package org.apache.commons.beanutils;
import java.beans.IntrospectionException;
+import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;
import java.util.Locale;
@@ -159,8 +160,7 @@ public class FluentPropertyBeanIntrospec
private String propertyName(final Method m) {
final String methodName = m.getName().substring(
getWriteMethodPrefix().length());
- return (methodName.length() > 1) ? Character.toLowerCase(methodName
- .charAt(0)) + methodName.substring(1) : methodName
+ return (methodName.length() > 1) ? Introspector.decapitalize(methodName) : methodName
.toLowerCase(Locale.ENGLISH);
}
Modified: commons/proper/beanutils/trunk/src/test/java/org/apache/commons/beanutils/FluentPropertyBeanIntrospectorTestCase.java
URL: http://svn.apache.org/viewvc/commons/proper/beanutils/trunk/src/test/java/org/apache/commons/beanutils/FluentPropertyBeanIntrospectorTestCase.java?rev=1746394&r1=1746393&r2=1746394&view=diff
==============================================================================
--- commons/proper/beanutils/trunk/src/test/java/org/apache/commons/beanutils/FluentPropertyBeanIntrospectorTestCase.java (original)
+++ commons/proper/beanutils/trunk/src/test/java/org/apache/commons/beanutils/FluentPropertyBeanIntrospectorTestCase.java Wed Jun 1 06:07:14 2016
@@ -18,6 +18,7 @@ package org.apache.commons.beanutils;
import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
+import java.net.URI;
import java.util.HashMap;
import java.util.Map;
@@ -93,4 +94,36 @@ public class FluentPropertyBeanIntrospec
assertNotNull("No write method for fluentGetProperty",
pd.getWriteMethod());
}
+
+ public void testIntrospectionCaps() throws Exception {
+ final PropertyUtilsBean pu = new PropertyUtilsBean();
+
+ final FluentPropertyBeanIntrospector introspector = new FluentPropertyBeanIntrospector();
+
+ pu.addBeanIntrospector(introspector);
+
+ final Map<String, PropertyDescriptor> props = createDescriptorMap(
+ pu.getPropertyDescriptors(CapsBean.class));
+
+ PropertyDescriptor aDescriptor = fetchDescriptor(props, "URI");
+
+ assertNotNull("missing property", aDescriptor);
+
+ assertNotNull("No read method for uri", aDescriptor.getReadMethod());
+ assertNotNull("No write method for uri", aDescriptor.getWriteMethod());
+
+ assertNull("Should not find mis-capitalized property", props.get("uRI"));
+ }
+
+ public static final class CapsBean {
+ private URI mURI;
+
+ public URI getURI() {
+ return mURI;
+ }
+
+ public void setURI(final URI theURI) {
+ mURI = theURI;
+ }
+ }
}