Details
-
New Feature
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
1.7.0
-
None
Description
There are a number of outstanding bugs against the BeanUtils expression syntax with people wanting BeanUtils to support different variations. There is also a duplication of the "expression evaluation" code in various methods which can't be tested in isolation and is difficult to maintain as changes have to be applied uniformly to various places.
The main places where the code is duplicated:
PropertyUtilsBean
- getNestedProperty
- setNestedProperty
- getPropertyDescriptor
BeanUtilsBean - copyProperty
- setProperty
LocaleBeanUtils has also implemented an alternative mechanism - using a Descriptor object to resolve references. BeanUtils and PropertyUtils also work in slightly different ways. There are also other methods (e.g. PropertyUtilsBean's getIndexedProperty() method) which also have related code.
I propose to add a new "expression resolver" interface, which would be a singleton and everywhere would delegate to to resolve property expressions. This will allow easy testing as it can be tested in isolation and provide a uniform mechanism accross BeanUtils. It will also allow alternative syntax to be implemented if the resolver implementation can be configured.
Attachments
Attachments
Issue Links
- is depended upon by
-
BEANUTILS-33 Can't use "dot" in mapped properties for setProperty or getPropertyDescriptor
- Closed
-
BEANUTILS-82 [beanutils] BeanUtilsBean.setProperty incorrectly parses the property name
- Closed
-
BEANUTILS-104 [beanutils]special characters in mapped property keys are parsed incorrectly
- Closed
-
BEANUTILS-109 [beanutils] BeanUtils.setProperty fails with mapped properties containing several MAPPED_DELIM2 characters
- Closed