Plugable Expression Resolver
----------------------------

                 Key: BEANUTILS-259
                 URL: http://issues.apache.org/jira/browse/BEANUTILS-259
             Project: Commons BeanUtils
          Issue Type: Improvement
          Components: Bean / Property Utils
    Affects Versions: 1.7.0
            Reporter: Niall Pemberton
         Assigned To: Niall Pemberton
            Priority: Minor


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.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to