[jira] [Updated] (LANG-965) FieldUtils methods leak accessible flags

2014-09-06 Thread Andre Diermann (JIRA)

 [ 
https://issues.apache.org/jira/browse/LANG-965?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andre Diermann updated LANG-965:

Attachment: commons-lang-965.patch

Ok, after some further analysis my understanding is as follows:

o accessibility is changed explicitly in
   - {{readField(final Field field, final Object target, final boolean 
forceAccess)}} and
   - {{writeField(final Field field, final Object target, final Object value, 
final boolean forceAccess)}}

o furthermore, accessibility may be changed implicitly in every read/write 
method which needs to resolve a field by name first, when calling
   - {{getField(final Class? cls, final String fieldName, final boolean 
forceAccess)}} or
   - {{getDeclaredField(final Class? cls, final String fieldName, final 
boolean forceAccess)}}

So my proposal is to have only one place where accessibility is changed, which 
will simplify restoring of accessibility a lot. Therefore I added two methods 
for the internal resolution of fields, which do not modify accessibility. I 
made those two methods private, so public API is not changed.


 FieldUtils methods leak accessible flags
 

 Key: LANG-965
 URL: https://issues.apache.org/jira/browse/LANG-965
 Project: Commons Lang
  Issue Type: Bug
  Components: lang.reflect.*
Affects Versions: 3.1, 3.2.1
 Environment: Apache Maven 3.1.1 
 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 11:22:22-0400)
 Maven home: C:\Java\apache-maven-3.1.1\bin\..
 Java version: 1.7.0_51, vendor: Oracle Corporation
 Java home: C:\Program Files\Java\jdk1.7.0_51\jre
 Default locale: en_US, platform encoding: Cp1252
 OS name: windows 7, version: 6.1, arch: amd64, family: windows
Reporter: Gary Gregory
Assignee: Benedikt Ritter
 Fix For: Review Patch

 Attachments: commons-lang-965.patch, commons-lang-965.patch


 When various FieldUtils methods are called the accessible is set to true but 
 never reset to false. This is side-effect should be cleaned up.
 This makes a mess of the object model which represents the class meta data.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (LANG-965) FieldUtils methods leak accessible flags

2014-08-27 Thread Andre Diermann (JIRA)

[ 
https://issues.apache.org/jira/browse/LANG-965?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14112567#comment-14112567
 ] 

Andre Diermann commented on LANG-965:
-

Hello Benedikt,

many thanks for your remarks.

bq. a new issue for this small change is a bit overkill. Just add it to your 
patch.

Done.

bq. yes, but correctness of readField() is asserted by individual unit tests 
for that method, so I think it's okay to use it in the test for writeField() if 
this makes the test code easier to understand.

Done. It's really more readable like this.

bq. So the idea is use getField with forceAccess = false to retrieve the field. 
This will return the field, even if it is not accessible. After that you can 
simply call the other writeField() and pass the forceAccess parameter into it. 
That method in turn will handle restoring of the accessibility flag for you.

I changed this as well and the code looked really nice ;-) ... but 
unfortunately it broke the tests, because this changed the required behavior of 
the method :-(

forceAccess is a little bit misleading here, because it does not mean always 
assure setAccessible(true) is called, it rather means break the scope or 
more precisely also search superclasses for this field. So when trying to 
read or write a field with the proposed implementation, the field could not be 
found anymore if it is specified in a superclass.

After that I investigated the code of {{FieldUtils}} more and discovered that 
my patch does not cover all accessibility changes :-( It seems the 
accessibility is changed literally everywhere ;-) I followed a lot of paths and 
finally came to the conclusion that my original approach of use the minimum 
amount of code changes is not sufficient to cope with this problem.

So I will work on a more elaborated patch. Just want to inform you that this 
might take a while, because the underlying issue is more complex than I 
initially expected O:-)  

Best regards,
André

 FieldUtils methods leak accessible flags
 

 Key: LANG-965
 URL: https://issues.apache.org/jira/browse/LANG-965
 Project: Commons Lang
  Issue Type: Bug
  Components: lang.reflect.*
Affects Versions: 3.1, 3.2.1
 Environment: Apache Maven 3.1.1 
 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 11:22:22-0400)
 Maven home: C:\Java\apache-maven-3.1.1\bin\..
 Java version: 1.7.0_51, vendor: Oracle Corporation
 Java home: C:\Program Files\Java\jdk1.7.0_51\jre
 Default locale: en_US, platform encoding: Cp1252
 OS name: windows 7, version: 6.1, arch: amd64, family: windows
Reporter: Gary Gregory
Assignee: Benedikt Ritter
 Fix For: Review Patch

 Attachments: commons-lang-965.patch


 When various FieldUtils methods are called the accessible is set to true but 
 never reset to false. This is side-effect should be cleaned up.
 This makes a mess of the object model which represents the class meta data.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (LANG-965) FieldUtils methods leak accessible flags

2014-08-26 Thread Andre Diermann (JIRA)

[ 
https://issues.apache.org/jira/browse/LANG-965?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14111332#comment-14111332
 ] 

Andre Diermann commented on LANG-965:
-

Hi Benedikt,

bq. Maybe we should add a comment in JavaDoc, that users have to take care of 
restoring accessibility when using getField()...

Yes, adding a comment in the corresponding JavaDoc is a good idea and will 
raise the attention for a potential accessibility leak a bit more. Should I 
change the JavaDoc accordingly as part of this issue or should this be a 
dedicated issue and patch?

bq. However I think it would be better to use FieldUtils.readField() to check 
if the field has been set correctly and to assert that the field is not 
accessible after the call to writeField(). WDYT?

I think the author of the original test code wanted to use pure Java for the 
assertion. The correct behavior of {{Field.get()}} is guaranteed by the JDK 
while {{FieldUtils.readField()}} is not (since this method is tested in the 
same test class and execution order of jUnit tests might be random). So from my 
understanding the avoidance of a method of the class under test to test another 
method within the class under test is on purpose. So my intention here was 
really to use the minimum amount of changes to the original code to keep the 
tests green and this one-liner was the shortest solution.

Maybe this is a smell that tests for the correct restoring of the accessibility 
is missing? O:) I will add further tests to assert that accessibility is 
restored correctly. This should not be tested implicitly within the 
{{testWrite…()}}. Ok?

bq. 1. missing curly brackets ;-) We use curly brackets even for one line 
blocks.

Sorry, you are write. I will change this.

bq. 2. I'm not sure whether {{!Modifier.isPublic(field.getModifiers()))}} 
really is the same as {{Field.isAccessible() == false}}. Reading through the 
JavaDoc of {{Field.setAccessible(boolean)}} sounds like it is a difference. But 
I don't know. It think it would be better to get the field via {{getField(cls, 
fieldName, false)}}, store the accessibility, do all neccessary operations and 
then restore the original state. This way you only need to restore the 
accessibility once.

The reason for the usage of {{Modifier.isPublic()}} is the used workaround for 
JDK 1.3 in {{getField()}} (see line 107). The accessibility of the field is 
only set to true, when forceAccess is true and the modifier is public. That’s 
why I need to check both before evantually restoring accessibility to false. 
But I totally agree with you, that it looks confusing. I don’t know if we can 
solve this without jeopardizing the workaround.

Sorry if the patch is that confusing, but I really spent a lot of time to 
understand the original code and then tried to use a minimum amount of changes 
to fix issue #965. Thus, I am afraid some of your remarks address the original 
code as well. :-/

See you,
André

 FieldUtils methods leak accessible flags
 

 Key: LANG-965
 URL: https://issues.apache.org/jira/browse/LANG-965
 Project: Commons Lang
  Issue Type: Bug
  Components: lang.reflect.*
Affects Versions: 3.1, 3.2.1
 Environment: Apache Maven 3.1.1 
 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 11:22:22-0400)
 Maven home: C:\Java\apache-maven-3.1.1\bin\..
 Java version: 1.7.0_51, vendor: Oracle Corporation
 Java home: C:\Program Files\Java\jdk1.7.0_51\jre
 Default locale: en_US, platform encoding: Cp1252
 OS name: windows 7, version: 6.1, arch: amd64, family: windows
Reporter: Gary Gregory
Assignee: Benedikt Ritter
 Fix For: Review Patch

 Attachments: commons-lang-965.patch


 When various FieldUtils methods are called the accessible is set to true but 
 never reset to false. This is side-effect should be cleaned up.
 This makes a mess of the object model which represents the class meta data.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (LANG-965) FieldUtils methods leak accessible flags

2014-08-23 Thread Andre Diermann (JIRA)

[ 
https://issues.apache.org/jira/browse/LANG-965?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14107998#comment-14107998
 ] 

Andre Diermann commented on LANG-965:
-

Hello Benedikt,

sorry for inconvenience. Let me clarify:

- Restoring accessibility in {{readField(Object, String, boolean)}} and 
{{writeField(Object, String, Object, boolean)}} is necessary, because 
getField() gets called in these two methods. getField() may change the 
accessibility of the field. Since getField() guarantees, according to its 
javadoc, to return an accessible {@link Field} by name it was not an option 
to restore the accessibility within this method. Therefore it needs to be 
restored in the above mentioned read/write methods separately.

- The original tests failed after the accessibility leak has been fixed. In 
the corresponding assert statement the field was filled with an expected value 
for assertion although it might not be accessible. Before, they only succeeded 
because of the leak. You can reproduce this by applying the patch for the 
FieldUtil class and use the original tests. So the changes to the tests do not 
test the restoring of the accessibility, they just guarantee, that the tests 
work like before.

Let me know, if any uncertainty remains.

BR
André

 FieldUtils methods leak accessible flags
 

 Key: LANG-965
 URL: https://issues.apache.org/jira/browse/LANG-965
 Project: Commons Lang
  Issue Type: Bug
  Components: lang.reflect.*
Affects Versions: 3.1, 3.2.1
 Environment: Apache Maven 3.1.1 
 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 11:22:22-0400)
 Maven home: C:\Java\apache-maven-3.1.1\bin\..
 Java version: 1.7.0_51, vendor: Oracle Corporation
 Java home: C:\Program Files\Java\jdk1.7.0_51\jre
 Default locale: en_US, platform encoding: Cp1252
 OS name: windows 7, version: 6.1, arch: amd64, family: windows
Reporter: Gary Gregory
Assignee: Benedikt Ritter
 Fix For: Review Patch

 Attachments: commons-lang-965.patch


 When various FieldUtils methods are called the accessible is set to true but 
 never reset to false. This is side-effect should be cleaned up.
 This makes a mess of the object model which represents the class meta data.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (LANG-965) FieldUtils methods leak accessible flags

2014-08-19 Thread Andre Diermann (JIRA)

 [ 
https://issues.apache.org/jira/browse/LANG-965?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andre Diermann updated LANG-965:


Attachment: commons-lang-965.patch

The attached patch tries so solve the mentioned accessibility leak by restoring 
the original accessibility of a particular field in case it has been modified 
by readField/writeField.

 FieldUtils methods leak accessible flags
 

 Key: LANG-965
 URL: https://issues.apache.org/jira/browse/LANG-965
 Project: Commons Lang
  Issue Type: Bug
  Components: lang.reflect.*
Affects Versions: 3.1, 3.2.1
 Environment: Apache Maven 3.1.1 
 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 11:22:22-0400)
 Maven home: C:\Java\apache-maven-3.1.1\bin\..
 Java version: 1.7.0_51, vendor: Oracle Corporation
 Java home: C:\Program Files\Java\jdk1.7.0_51\jre
 Default locale: en_US, platform encoding: Cp1252
 OS name: windows 7, version: 6.1, arch: amd64, family: windows
Reporter: Gary Gregory
Assignee: Gary Gregory
 Fix For: Patch Needed

 Attachments: commons-lang-965.patch


 When various FieldUtils methods are called the accessible is set to true but 
 never reset to false. This is side-effect should be cleaned up.
 This makes a mess of the object model which represents the class meta data.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (SANDBOX-462) Refactoring of AccessibleObjectsRegistry

2014-05-02 Thread Andre Diermann (JIRA)

[ 
https://issues.apache.org/jira/browse/SANDBOX-462?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13987571#comment-13987571
 ] 

Andre Diermann commented on SANDBOX-462:


Sure, waiting for your response on my questions two comments before :-)

 Refactoring of AccessibleObjectsRegistry
 

 Key: SANDBOX-462
 URL: https://issues.apache.org/jira/browse/SANDBOX-462
 Project: Commons Sandbox
  Issue Type: Improvement
  Components: BeanUtils2
Reporter: Andre Diermann
Priority: Minor
 Attachments: Commons-BeanUtils2-462#1.patch


 Summary:
 The AccessibleObjectsRegistry class provides two get methods, while one is a 
 convenient method for the other.
 Both methods take one conditional parameter, boolean exact, and the actual 
 get method is very long, which makes it somehow complex to understand.
 Suggestion:
 What could be improved IMHO:
 - Instead of using conditional methods, like get(boolean 
 doSomethingSpecialIfTrue, ...), it is more convenient to provide dedicated 
 methods like getSomething() and getAnotherThing().
 - In this regard the difference between an exact or, let's call it, matching 
 descriptor should be expressed through inheritance rather than object 
 allocation (= expressing it by a field boolean exact).
 - The very long get method should be refined
 - Another very minor issue is the naming of the paramTypes field within the 
 inner AccessibleObjectDescriptor class, which I would suggest to rename to 
 parameterTypes to fit the naming of the other occurrences. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (SANDBOX-464) Add support for interpreting property expressions

2014-03-29 Thread Andre Diermann (JIRA)

[ 
https://issues.apache.org/jira/browse/SANDBOX-464?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13951831#comment-13951831
 ] 

Andre Diermann commented on SANDBOX-464:


Hi Benedikt,

if you put it like this we should maybe discuss if it make sense in general to 
use expressions along with a fluent API which is in turn designed to express an 
expression.

Of course allowing expressions in BU1 makes the use of the API a way more 
convenient. But the design of BU2's API already covers that.

So by allowing both it is a mitigation of the fluent API itself and may lead to 
very poor code [3]. On the other hand a fluent API call may become very long 
[1]. In relation to this providing a dedicated convenient method for 
expressions would IMHO add some comfort for an API user [2]. For instance:

[1] 
on(addressBook).getMapped(provider).with(Google).getIndexed(contact).at(5).getMapped(address).with(home).get(street)
[2] 
on(addressBook).getExpressed(provider(google).contact[5].address(home).street)
[3] 
on(addressBook).get(provider(google).contact[5]).getMapped(address).with(home).get(street.yetAnotherNestedProperty)

So, what you can see is that in [1] there is a clean elegant type safe call, 
which unfortunately could become quite long. [2] somehow mitigates the fluent 
API but shortens the call. May be good for API users who know their beans very 
good and put convenience over type safety. Allowing [3], which is what you are 
thinking of in your comment above, would IMHO permit and encourage the user to 
mix everything up.

In conclusion, providing a dedicated method for expressions as convenience 
would make it explicit for the user what he is doing. I think that is legal. 
But mixing the fluent API with expressions (which means to somehow overload 
each method and making it do several things at once depending on what the user 
passes as parameter) is poor IMHO. This could be the source of many runtime 
errors because it is less strict and the user may not know what he is doing 
(because a lot of things happens under the hood which he is not aware of).

Again, I think we should have in mind why expressions where nice to use in BU1 
but the API of BU2 is already designed to represent expressions itself. 

Cheers,
André

 Add support for interpreting property expressions
 -

 Key: SANDBOX-464
 URL: https://issues.apache.org/jira/browse/SANDBOX-464
 Project: Commons Sandbox
  Issue Type: Task
  Components: BeanUtils2
Affects Versions: Nightly Builds
Reporter: Benedikt Ritter
 Attachments: Commons-Sandbox-464-Get.patch


 BeanUtils 1 has the functionality to interpret property paths. For example 
 the call:
 {code:java}
 BeanUtils.getProperty(adress.street, person);
 {code}
 would first get the address of the given person and then get the street from 
 the address and return it. The same is possible for list and mapped 
 properties.
 In order to be supplement for BeanUtils1, we need to implement this in 
 BeanUtils2.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (SANDBOX-464) Add support for interpreting property expressions

2014-03-23 Thread Andre Diermann (JIRA)

[ 
https://issues.apache.org/jira/browse/SANDBOX-464?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13944414#comment-13944414
 ] 

Andre Diermann commented on SANDBOX-464:


Hello Benedikt,

I see you agree that there should be two distinct methods for the two purposes. 
:-) On the other hand I understand your concern and like your idea to find 
another name for the method that interprets property expressions. Therefore I 
extended the API with a method called getExpressed() (in regards to 
getIndexed() and getMapped()). The default get() method remained untouched.

Due to the current abilities of the PropertyInterpreter I makes no sense to 
scale the patch by following the above's subtask structure. Hence I rather 
split the work in two parts, part 1 contains all the getter stuff, while part 2 
will contain everything related to setting properties using expressions.

Please find part 1 in attached patch file Commons-Sandbox-464-Get.patch.

What do you think?

Regards,
André

 Add support for interpreting property expressions
 -

 Key: SANDBOX-464
 URL: https://issues.apache.org/jira/browse/SANDBOX-464
 Project: Commons Sandbox
  Issue Type: Task
  Components: BeanUtils2
Affects Versions: Nightly Builds
Reporter: Benedikt Ritter

 BeanUtils 1 has the functionality to interpret property paths. For example 
 the call:
 {code:java}
 BeanUtils.getProperty(adress.street, person);
 {code}
 would first get the address of the given person and then get the street from 
 the address and return it. The same is possible for list and mapped 
 properties.
 In order to be supplement for BeanUtils1, we need to implement this in 
 BeanUtils2.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (SANDBOX-464) Add support for interpreting property expressions

2014-03-23 Thread Andre Diermann (JIRA)

 [ 
https://issues.apache.org/jira/browse/SANDBOX-464?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andre Diermann updated SANDBOX-464:
---

Attachment: Commons-Sandbox-464-Get.patch

 Add support for interpreting property expressions
 -

 Key: SANDBOX-464
 URL: https://issues.apache.org/jira/browse/SANDBOX-464
 Project: Commons Sandbox
  Issue Type: Task
  Components: BeanUtils2
Affects Versions: Nightly Builds
Reporter: Benedikt Ritter
 Attachments: Commons-Sandbox-464-Get.patch


 BeanUtils 1 has the functionality to interpret property paths. For example 
 the call:
 {code:java}
 BeanUtils.getProperty(adress.street, person);
 {code}
 would first get the address of the given person and then get the street from 
 the address and return it. The same is possible for list and mapped 
 properties.
 In order to be supplement for BeanUtils1, we need to implement this in 
 BeanUtils2.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (SANDBOX-471) Typos and codestyle violations

2014-03-22 Thread Andre Diermann (JIRA)

 [ 
https://issues.apache.org/jira/browse/SANDBOX-471?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andre Diermann updated SANDBOX-471:
---

Attachment: Commons-Sandbox-471#2.patch

 Typos and codestyle violations
 --

 Key: SANDBOX-471
 URL: https://issues.apache.org/jira/browse/SANDBOX-471
 Project: Commons Sandbox
  Issue Type: Improvement
  Components: BeanUtils2
Reporter: Andre Diermann
Priority: Minor
 Attachments: Commons-Sandbox-471#2.patch, Commons-Sandbox-471.patch


 The GetPropertyTestCase contained two typos in method names and some 
 codestyle violations in regards to Maven codestyle.
 This patch corrected the typos and reformatted the code.
 (Since it's a small and minor priority patch I hope it's ok to do both in one 
 patch?!)



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (SANDBOX-471) Typos and codestyle violations

2014-03-16 Thread Andre Diermann (JIRA)

[ 
https://issues.apache.org/jira/browse/SANDBOX-471?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13937295#comment-13937295
 ] 

Andre Diermann commented on SANDBOX-471:


Very strange! I am using the codestyle from maven [1], where 
SPACE_WITHIN_ANNOTATION_PARENTHESES is set to true. When I enable/disable this 
option in the preferences of IntelliJ the preview shows the correct behavior. 
But when I add the spaces in code and do code formatting the spaces are 
removed?!?!

So you are totally right! Regarding the white spaces rule from [2] there should 
be spaces between the braces. I really don't know why IntelliJ removes the 
spaces.

Big sorry for inconvenience! I will update the patch ASAP.

[1] https://maven.apache.org/developers/maven-idea-codestyle.xml
[2] https://maven.apache.org/developers/conventions/code.html

 Typos and codestyle violations
 --

 Key: SANDBOX-471
 URL: https://issues.apache.org/jira/browse/SANDBOX-471
 Project: Commons Sandbox
  Issue Type: Improvement
  Components: BeanUtils2
Reporter: Andre Diermann
Priority: Minor
 Attachments: Commons-Sandbox-471.patch


 The GetPropertyTestCase contained two typos in method names and some 
 codestyle violations in regards to Maven codestyle.
 This patch corrected the typos and reformatted the code.
 (Since it's a small and minor priority patch I hope it's ok to do both in one 
 patch?!)



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (SANDBOX-464) Add support for interpreting property expressions

2014-03-15 Thread Andre Diermann (JIRA)

[ 
https://issues.apache.org/jira/browse/SANDBOX-464?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13936138#comment-13936138
 ] 

Andre Diermann commented on SANDBOX-464:


Hello,

I have one question regarding the public API of BU2. Would it be ok, to add 
another method named getSimple(), which returns a BeanAccessor for a simple 
property where get() could be used to return a BeanAccessor for property 
expressions?

Background:
Currently a BeanAccessor provides:
* get()
* getIndexed()
* getMapped()

...where get() is an equivalent to BU1's getSimple(), see [1].

When get() should, like requested in above's issue description, also deal with 
property expressions it would give the API user a better control whether he/she 
wants to get only a simple property or he/she want's to resolve a complete 
property path. From an implementation point of view this would also help to 
keep changes small, because the current get() method would become getSimple() 
and the implementation of get would be:

 public BeanAccessor? get( String propertyName )
{
return PropertyInterpreter.interpret( this, propertyName );
}

For me these are two advantages, a more explicit API usage for the user and a 
simple implementation. But since it would effect the public API I want to check 
with you guys first.

What do you think?

BR
André

[1] 
http://commons.apache.org/proper/commons-beanutils/javadocs/v1.9.1/apidocs/index.html



 Add support for interpreting property expressions
 -

 Key: SANDBOX-464
 URL: https://issues.apache.org/jira/browse/SANDBOX-464
 Project: Commons Sandbox
  Issue Type: Task
  Components: BeanUtils2
Affects Versions: Nightly Builds
Reporter: Benedikt Ritter

 BeanUtils 1 has the functionality to interpret property paths. For example 
 the call:
 {code:java}
 BeanUtils.getProperty(adress.street, person);
 {code}
 would first get the address of the given person and then get the street from 
 the address and return it. The same is possible for list and mapped 
 properties.
 In order to be supplement for BeanUtils1, we need to implement this in 
 BeanUtils2.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Comment Edited] (SANDBOX-464) Add support for interpreting property expressions

2014-03-15 Thread Andre Diermann (JIRA)

[ 
https://issues.apache.org/jira/browse/SANDBOX-464?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13936138#comment-13936138
 ] 

Andre Diermann edited comment on SANDBOX-464 at 3/15/14 11:03 AM:
--

Hello,

I have one question regarding the public API of BU2. Would it be ok, to add 
another method named getSimple(), which returns a BeanAccessor for a simple 
property where get() could be used to return a BeanAccessor for property 
expressions?

Background:
Currently a BeanAccessor provides:
* get()
* getIndexed()
* getMapped()

...where get() is an equivalent to BU1's getSimple(), see [1].

When get() should, like requested in above's issue description, also deal with 
property expressions it would give the API user a better control whether he/she 
wants to get only a simple property or he/she want's to resolve a complete 
property path. From an implementation point of view this would also help to 
keep changes small, because the current get() method would become getSimple() 
and the implementation of get would be:

 public BeanAccessor? get( String propertyName )
{
return PropertyInterpreter.interpret( this, propertyName );
}

For me these are two advantages, a more explicit API usage for the user and a 
simple implementation. But since it would affect the public API I want to check 
with you guys first.

What do you think?

BR
André

[1] 
http://commons.apache.org/proper/commons-beanutils/javadocs/v1.9.1/apidocs/index.html




was (Author: andd):
Hello,

I have one question regarding the public API of BU2. Would it be ok, to add 
another method named getSimple(), which returns a BeanAccessor for a simple 
property where get() could be used to return a BeanAccessor for property 
expressions?

Background:
Currently a BeanAccessor provides:
* get()
* getIndexed()
* getMapped()

...where get() is an equivalent to BU1's getSimple(), see [1].

When get() should, like requested in above's issue description, also deal with 
property expressions it would give the API user a better control whether he/she 
wants to get only a simple property or he/she want's to resolve a complete 
property path. From an implementation point of view this would also help to 
keep changes small, because the current get() method would become getSimple() 
and the implementation of get would be:

 public BeanAccessor? get( String propertyName )
{
return PropertyInterpreter.interpret( this, propertyName );
}

For me these are two advantages, a more explicit API usage for the user and a 
simple implementation. But since it would effect the public API I want to check 
with you guys first.

What do you think?

BR
André

[1] 
http://commons.apache.org/proper/commons-beanutils/javadocs/v1.9.1/apidocs/index.html



 Add support for interpreting property expressions
 -

 Key: SANDBOX-464
 URL: https://issues.apache.org/jira/browse/SANDBOX-464
 Project: Commons Sandbox
  Issue Type: Task
  Components: BeanUtils2
Affects Versions: Nightly Builds
Reporter: Benedikt Ritter

 BeanUtils 1 has the functionality to interpret property paths. For example 
 the call:
 {code:java}
 BeanUtils.getProperty(adress.street, person);
 {code}
 would first get the address of the given person and then get the street from 
 the address and return it. The same is possible for list and mapped 
 properties.
 In order to be supplement for BeanUtils1, we need to implement this in 
 BeanUtils2.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (SANDBOX-471) Typos and codestyle violations

2014-03-15 Thread Andre Diermann (JIRA)
Andre Diermann created SANDBOX-471:
--

 Summary: Typos and codestyle violations
 Key: SANDBOX-471
 URL: https://issues.apache.org/jira/browse/SANDBOX-471
 Project: Commons Sandbox
  Issue Type: Bug
  Components: BeanUtils2
Reporter: Andre Diermann
Priority: Minor


The GetPropertyTestCase contained two typos in method names and some codestyle 
violations in regards to Maven codestyle.

This patch corrected the typos and reformatted the code.

(Since it's a small and minor priority patch I hope it's ok to do both in one 
patch?!)



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (SANDBOX-471) Typos and codestyle violations

2014-03-15 Thread Andre Diermann (JIRA)

 [ 
https://issues.apache.org/jira/browse/SANDBOX-471?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andre Diermann updated SANDBOX-471:
---

Attachment: Commons-Sandbox-471.patch

 Typos and codestyle violations
 --

 Key: SANDBOX-471
 URL: https://issues.apache.org/jira/browse/SANDBOX-471
 Project: Commons Sandbox
  Issue Type: Bug
  Components: BeanUtils2
Reporter: Andre Diermann
Priority: Minor
 Attachments: Commons-Sandbox-471.patch


 The GetPropertyTestCase contained two typos in method names and some 
 codestyle violations in regards to Maven codestyle.
 This patch corrected the typos and reformatted the code.
 (Since it's a small and minor priority patch I hope it's ok to do both in one 
 patch?!)



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (SANDBOX-471) Typos and codestyle violations

2014-03-15 Thread Andre Diermann (JIRA)

 [ 
https://issues.apache.org/jira/browse/SANDBOX-471?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andre Diermann updated SANDBOX-471:
---

Issue Type: Improvement  (was: Bug)

 Typos and codestyle violations
 --

 Key: SANDBOX-471
 URL: https://issues.apache.org/jira/browse/SANDBOX-471
 Project: Commons Sandbox
  Issue Type: Improvement
  Components: BeanUtils2
Reporter: Andre Diermann
Priority: Minor
 Attachments: Commons-Sandbox-471.patch


 The GetPropertyTestCase contained two typos in method names and some 
 codestyle violations in regards to Maven codestyle.
 This patch corrected the typos and reformatted the code.
 (Since it's a small and minor priority patch I hope it's ok to do both in one 
 patch?!)



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (SANDBOX-463) Implementation of property paths

2014-03-12 Thread Andre Diermann (JIRA)

[ 
https://issues.apache.org/jira/browse/SANDBOX-463?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13932086#comment-13932086
 ] 

Andre Diermann commented on SANDBOX-463:


Many thanks for reviewing the patch and your feedback!

1. You are right, I will extend the test cases to contain negative tests as 
well!

2. The method name is a result of using the GOF Interpreter Pattern, where a 
(bean) property is an expression, a BeanAccessor is a context which is required 
for interpretation and the PropertyInterpreter is the client which brings all 
together. See [1] for instance.
So the intention of this method is not to interpret the BeanAccesor, but to 
interpret the Expression with the use of the BeanAccesor. If you search for 
some applications of the Interpreter Pattern you will find that it's common use 
to pass in simple objects as context without wrapping it into a dedicated 
context class (which would be necessary if you need more than one object for 
interpretation).
When using patterns like this, I like to keep their terminology to express the 
usage of a pattern explicitly. I think it's more convenient. So when another 
developer, which is aware of design patterns, will see an Expression-interface 
with one solely interpret-method it's more obvious what's going on.
That's why I think it would be nice to keep the pattern's terminology. But I 
can change the method name, if you think it fits better to the domain of BU2.

3. H... Please help me what you intent here, I can't see what you mean. :-(

[1] http://www.oodesign.com/interpreter-pattern.html

 Implementation of property paths 
 -

 Key: SANDBOX-463
 URL: https://issues.apache.org/jira/browse/SANDBOX-463
 Project: Commons Sandbox
  Issue Type: Improvement
  Components: BeanUtils2
Reporter: Andre Diermann
 Attachments: Commons-Sandbox-463#2.patch, Commons-Sandbox-463.patch


 In [1] Benedikt Ritter mentioned the lag of BU1's property path for BU2.
 The attached patch contains an implementation of a PropertyInterpreter - 
 following the GOF Interpreter Pattern - which is able to interpret 
 simple/index/mapped/nested properties and any combination of it. The result 
 is a BeanAccessor. The idea is to use the PropertyInterpreter inside of a 
 BeanAccessor implementation.
 The patch also contains a corresponding test case.
 Example:
 on( anyBean ).set( contact[15].address(home).street ).with( Example Street 
 1000 );
 [1] http://markmail.org/message/pv2qpr7em4ftnulj



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (SANDBOX-463) Implementation of property paths

2014-03-12 Thread Andre Diermann (JIRA)

[ 
https://issues.apache.org/jira/browse/SANDBOX-463?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13932199#comment-13932199
 ] 

Andre Diermann commented on SANDBOX-463:


#3 now contains more tests (especially testing invalid expressions) as well as 
pre-compiled regex-patterns as static final members.

In addition to that I set the field propertyName to final (since it issn't 
foreseen to be changed) and resolved some last CheckStyle violations.

 Implementation of property paths 
 -

 Key: SANDBOX-463
 URL: https://issues.apache.org/jira/browse/SANDBOX-463
 Project: Commons Sandbox
  Issue Type: Improvement
  Components: BeanUtils2
Reporter: Andre Diermann
 Attachments: Commons-Sandbox-463#2.patch, Commons-Sandbox-463.patch


 In [1] Benedikt Ritter mentioned the lag of BU1's property path for BU2.
 The attached patch contains an implementation of a PropertyInterpreter - 
 following the GOF Interpreter Pattern - which is able to interpret 
 simple/index/mapped/nested properties and any combination of it. The result 
 is a BeanAccessor. The idea is to use the PropertyInterpreter inside of a 
 BeanAccessor implementation.
 The patch also contains a corresponding test case.
 Example:
 on( anyBean ).set( contact[15].address(home).street ).with( Example Street 
 1000 );
 [1] http://markmail.org/message/pv2qpr7em4ftnulj



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (SANDBOX-463) Implementation of property paths

2014-03-12 Thread Andre Diermann (JIRA)

 [ 
https://issues.apache.org/jira/browse/SANDBOX-463?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andre Diermann updated SANDBOX-463:
---

Attachment: Commons-Sandbox-463#3.patch

 Implementation of property paths 
 -

 Key: SANDBOX-463
 URL: https://issues.apache.org/jira/browse/SANDBOX-463
 Project: Commons Sandbox
  Issue Type: Improvement
  Components: BeanUtils2
Reporter: Andre Diermann
 Attachments: Commons-Sandbox-463#2.patch, 
 Commons-Sandbox-463#3.patch, Commons-Sandbox-463.patch


 In [1] Benedikt Ritter mentioned the lag of BU1's property path for BU2.
 The attached patch contains an implementation of a PropertyInterpreter - 
 following the GOF Interpreter Pattern - which is able to interpret 
 simple/index/mapped/nested properties and any combination of it. The result 
 is a BeanAccessor. The idea is to use the PropertyInterpreter inside of a 
 BeanAccessor implementation.
 The patch also contains a corresponding test case.
 Example:
 on( anyBean ).set( contact[15].address(home).street ).with( Example Street 
 1000 );
 [1] http://markmail.org/message/pv2qpr7em4ftnulj



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (SANDBOX-463) Implementation of property paths

2014-03-11 Thread Andre Diermann (JIRA)

[ 
https://issues.apache.org/jira/browse/SANDBOX-463?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13930564#comment-13930564
 ] 

Andre Diermann commented on SANDBOX-463:


Thank you Bernd. I think I should rework the syntax for valid map keys and make 
it less strict!

I am currently evaluating OGNL - unfortunately I was not aware of this before 
:

Do you have a good picture of OGNL? What do you think? Maybe it already does 
what we are looking for?

 Implementation of property paths 
 -

 Key: SANDBOX-463
 URL: https://issues.apache.org/jira/browse/SANDBOX-463
 Project: Commons Sandbox
  Issue Type: Improvement
  Components: BeanUtils2
Reporter: Andre Diermann
 Attachments: Commons-Sandbox-463#2.patch, Commons-Sandbox-463.patch


 In [1] Benedikt Ritter mentioned the lag of BU1's property path for BU2.
 The attached patch contains an implementation of a PropertyInterpreter - 
 following the GOF Interpreter Pattern - which is able to interpret 
 simple/index/mapped/nested properties and any combination of it. The result 
 is a BeanAccessor. The idea is to use the PropertyInterpreter inside of a 
 BeanAccessor implementation.
 The patch also contains a corresponding test case.
 Example:
 on( anyBean ).set( contact[15].address(home).street ).with( Example Street 
 1000 );
 [1] http://markmail.org/message/pv2qpr7em4ftnulj



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (SANDBOX-463) Implementation of property paths

2014-03-08 Thread Andre Diermann (JIRA)
Andre Diermann created SANDBOX-463:
--

 Summary: Implementation of property paths 
 Key: SANDBOX-463
 URL: https://issues.apache.org/jira/browse/SANDBOX-463
 Project: Commons Sandbox
  Issue Type: Improvement
  Components: BeanUtils2
Reporter: Andre Diermann


In [1] Benedikt Ritter mentioned the lag of BU1's property path for BU2.

The attached patch contains an implementation of a PropertyInterpreter - 
following the GOF Interpreter Pattern - which is able to interpret 
simple/index/mapped/nested properties and any combination of it. The result is 
a BeanAccessor. The idea is to use the PropertyInterpreter inside of a 
BeanAccessor implementation.

The patch also contains a corresponding test case.

Example:
on( anyBean ).set( contact[15].address(home).street ).with( Example Street 
1000 );

[1] http://markmail.org/message/pv2qpr7em4ftnulj



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (SANDBOX-463) Implementation of property paths

2014-03-08 Thread Andre Diermann (JIRA)

 [ 
https://issues.apache.org/jira/browse/SANDBOX-463?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andre Diermann updated SANDBOX-463:
---

Attachment: Commons-Sandbox-463.patch

 Implementation of property paths 
 -

 Key: SANDBOX-463
 URL: https://issues.apache.org/jira/browse/SANDBOX-463
 Project: Commons Sandbox
  Issue Type: Improvement
  Components: BeanUtils2
Reporter: Andre Diermann
 Attachments: Commons-Sandbox-463.patch


 In [1] Benedikt Ritter mentioned the lag of BU1's property path for BU2.
 The attached patch contains an implementation of a PropertyInterpreter - 
 following the GOF Interpreter Pattern - which is able to interpret 
 simple/index/mapped/nested properties and any combination of it. The result 
 is a BeanAccessor. The idea is to use the PropertyInterpreter inside of a 
 BeanAccessor implementation.
 The patch also contains a corresponding test case.
 Example:
 on( anyBean ).set( contact[15].address(home).street ).with( Example Street 
 1000 );
 [1] http://markmail.org/message/pv2qpr7em4ftnulj



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (SANDBOX-463) Implementation of property paths

2014-03-08 Thread Andre Diermann (JIRA)

 [ 
https://issues.apache.org/jira/browse/SANDBOX-463?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andre Diermann updated SANDBOX-463:
---

Attachment: (was: Commons-Sandbox-463.patch)

 Implementation of property paths 
 -

 Key: SANDBOX-463
 URL: https://issues.apache.org/jira/browse/SANDBOX-463
 Project: Commons Sandbox
  Issue Type: Improvement
  Components: BeanUtils2
Reporter: Andre Diermann
 Attachments: Commons-Sandbox-463.patch


 In [1] Benedikt Ritter mentioned the lag of BU1's property path for BU2.
 The attached patch contains an implementation of a PropertyInterpreter - 
 following the GOF Interpreter Pattern - which is able to interpret 
 simple/index/mapped/nested properties and any combination of it. The result 
 is a BeanAccessor. The idea is to use the PropertyInterpreter inside of a 
 BeanAccessor implementation.
 The patch also contains a corresponding test case.
 Example:
 on( anyBean ).set( contact[15].address(home).street ).with( Example Street 
 1000 );
 [1] http://markmail.org/message/pv2qpr7em4ftnulj



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (SANDBOX-463) Implementation of property paths

2014-03-08 Thread Andre Diermann (JIRA)

 [ 
https://issues.apache.org/jira/browse/SANDBOX-463?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andre Diermann updated SANDBOX-463:
---

Attachment: Commons-Sandbox-463.patch

 Implementation of property paths 
 -

 Key: SANDBOX-463
 URL: https://issues.apache.org/jira/browse/SANDBOX-463
 Project: Commons Sandbox
  Issue Type: Improvement
  Components: BeanUtils2
Reporter: Andre Diermann
 Attachments: Commons-Sandbox-463.patch


 In [1] Benedikt Ritter mentioned the lag of BU1's property path for BU2.
 The attached patch contains an implementation of a PropertyInterpreter - 
 following the GOF Interpreter Pattern - which is able to interpret 
 simple/index/mapped/nested properties and any combination of it. The result 
 is a BeanAccessor. The idea is to use the PropertyInterpreter inside of a 
 BeanAccessor implementation.
 The patch also contains a corresponding test case.
 Example:
 on( anyBean ).set( contact[15].address(home).street ).with( Example Street 
 1000 );
 [1] http://markmail.org/message/pv2qpr7em4ftnulj



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (SANDBOX-462) Refactoring of AccessibleObjectsRegistry

2014-03-08 Thread Andre Diermann (JIRA)

[ 
https://issues.apache.org/jira/browse/SANDBOX-462?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13924869#comment-13924869
 ] 

Andre Diermann commented on SANDBOX-462:


Very nice! I already used it for issue #463 :) Many thanks!

 Refactoring of AccessibleObjectsRegistry
 

 Key: SANDBOX-462
 URL: https://issues.apache.org/jira/browse/SANDBOX-462
 Project: Commons Sandbox
  Issue Type: Improvement
  Components: BeanUtils2
Reporter: Andre Diermann
Priority: Minor
 Attachments: Commons-BeanUtils2-462#1.patch


 Summary:
 The AccessibleObjectsRegistry class provides two get methods, while one is a 
 convenient method for the other.
 Both methods take one conditional parameter, boolean exact, and the actual 
 get method is very long, which makes it somehow complex to understand.
 Suggestion:
 What could be improved IMHO:
 - Instead of using conditional methods, like get(boolean 
 doSomethingSpecialIfTrue, ...), it is more convenient to provide dedicated 
 methods like getSomething() and getAnotherThing().
 - In this regard the difference between an exact or, let's call it, matching 
 descriptor should be expressed through inheritance rather than object 
 allocation (= expressing it by a field boolean exact).
 - The very long get method should be refined
 - Another very minor issue is the naming of the paramTypes field within the 
 inner AccessibleObjectDescriptor class, which I would suggest to rename to 
 parameterTypes to fit the naming of the other occurrences. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (SANDBOX-463) Implementation of property paths

2014-03-08 Thread Andre Diermann (JIRA)

 [ 
https://issues.apache.org/jira/browse/SANDBOX-463?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andre Diermann updated SANDBOX-463:
---

Attachment: Commons-Sandbox-463#2.patch

 Implementation of property paths 
 -

 Key: SANDBOX-463
 URL: https://issues.apache.org/jira/browse/SANDBOX-463
 Project: Commons Sandbox
  Issue Type: Improvement
  Components: BeanUtils2
Reporter: Andre Diermann
 Attachments: Commons-Sandbox-463#2.patch, Commons-Sandbox-463.patch


 In [1] Benedikt Ritter mentioned the lag of BU1's property path for BU2.
 The attached patch contains an implementation of a PropertyInterpreter - 
 following the GOF Interpreter Pattern - which is able to interpret 
 simple/index/mapped/nested properties and any combination of it. The result 
 is a BeanAccessor. The idea is to use the PropertyInterpreter inside of a 
 BeanAccessor implementation.
 The patch also contains a corresponding test case.
 Example:
 on( anyBean ).set( contact[15].address(home).street ).with( Example Street 
 1000 );
 [1] http://markmail.org/message/pv2qpr7em4ftnulj



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (SANDBOX-463) Implementation of property paths

2014-03-08 Thread Andre Diermann (JIRA)

[ 
https://issues.apache.org/jira/browse/SANDBOX-463?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13924870#comment-13924870
 ] 

Andre Diermann commented on SANDBOX-463:


Hello Benedikt,

many thanks for reviewing the patch and for your feedback! :)

In Commons-Sandbox-463#2.patch you will find your proposed improvements. I 
furthermore resolved 13 checkstyle violations (thanks to your fix of mvn site 
:)) and changed the order of two method declarations.

One remark: I am not totally sure about the correct syntax of keys for mapped 
properties. From the BU1 code it seems that every character is valid. But I 
specified it as ([a-z]+[A-Za-z]*)\\(([A-Za-z0-9\\s]+)\\), which means only 
[A-Za-z0-9\\s]+ is valid as key names, which is more restrictive. I feel that 
this might be an issue in the future. What do you think?

BR
André

[2] see next() in 
http://svn.apache.org/viewvc/commons/proper/beanutils/trunk/src/main/java/org/apache/commons/beanutils/expression/DefaultResolver.java?revision=1454597view=markup

 Implementation of property paths 
 -

 Key: SANDBOX-463
 URL: https://issues.apache.org/jira/browse/SANDBOX-463
 Project: Commons Sandbox
  Issue Type: Improvement
  Components: BeanUtils2
Reporter: Andre Diermann
 Attachments: Commons-Sandbox-463#2.patch, Commons-Sandbox-463.patch


 In [1] Benedikt Ritter mentioned the lag of BU1's property path for BU2.
 The attached patch contains an implementation of a PropertyInterpreter - 
 following the GOF Interpreter Pattern - which is able to interpret 
 simple/index/mapped/nested properties and any combination of it. The result 
 is a BeanAccessor. The idea is to use the PropertyInterpreter inside of a 
 BeanAccessor implementation.
 The patch also contains a corresponding test case.
 Example:
 on( anyBean ).set( contact[15].address(home).street ).with( Example Street 
 1000 );
 [1] http://markmail.org/message/pv2qpr7em4ftnulj



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Comment Edited] (SANDBOX-463) Implementation of property paths

2014-03-08 Thread Andre Diermann (JIRA)

[ 
https://issues.apache.org/jira/browse/SANDBOX-463?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13924870#comment-13924870
 ] 

Andre Diermann edited comment on SANDBOX-463 at 3/8/14 2:33 PM:


Hello Benedikt,

many thanks for reviewing the patch and for your feedback! :)

In Commons-Sandbox-463#2.patch you will find your proposed improvements. I 
furthermore resolved 13 checkstyle violations (thanks to your fix of mvn site 
:)) and changed the order of two method declarations.

One remark: I am not totally sure about the correct syntax of keys for mapped 
properties. From the BU1 code it seems that every character is valid [1]. But I 
specified it as ([a-z]+[A-Za-z]*)\\(([A-Za-z0-9\\s]+)\\), which means only 
[A-Za-z0-9\\s]+ is valid as key names, which is more restrictive. I feel that 
this might be an issue in the future. What do you think?

BR
André

[1] see next() in 
http://svn.apache.org/viewvc/commons/proper/beanutils/trunk/src/main/java/org/apache/commons/beanutils/expression/DefaultResolver.java?revision=1454597view=markup


was (Author: andd):
Hello Benedikt,

many thanks for reviewing the patch and for your feedback! :)

In Commons-Sandbox-463#2.patch you will find your proposed improvements. I 
furthermore resolved 13 checkstyle violations (thanks to your fix of mvn site 
:)) and changed the order of two method declarations.

One remark: I am not totally sure about the correct syntax of keys for mapped 
properties. From the BU1 code it seems that every character is valid. But I 
specified it as ([a-z]+[A-Za-z]*)\\(([A-Za-z0-9\\s]+)\\), which means only 
[A-Za-z0-9\\s]+ is valid as key names, which is more restrictive. I feel that 
this might be an issue in the future. What do you think?

BR
André

[2] see next() in 
http://svn.apache.org/viewvc/commons/proper/beanutils/trunk/src/main/java/org/apache/commons/beanutils/expression/DefaultResolver.java?revision=1454597view=markup

 Implementation of property paths 
 -

 Key: SANDBOX-463
 URL: https://issues.apache.org/jira/browse/SANDBOX-463
 Project: Commons Sandbox
  Issue Type: Improvement
  Components: BeanUtils2
Reporter: Andre Diermann
 Attachments: Commons-Sandbox-463#2.patch, Commons-Sandbox-463.patch


 In [1] Benedikt Ritter mentioned the lag of BU1's property path for BU2.
 The attached patch contains an implementation of a PropertyInterpreter - 
 following the GOF Interpreter Pattern - which is able to interpret 
 simple/index/mapped/nested properties and any combination of it. The result 
 is a BeanAccessor. The idea is to use the PropertyInterpreter inside of a 
 BeanAccessor implementation.
 The patch also contains a corresponding test case.
 Example:
 on( anyBean ).set( contact[15].address(home).street ).with( Example Street 
 1000 );
 [1] http://markmail.org/message/pv2qpr7em4ftnulj



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (SANDBOX-462) Refactoring of AccessibleObjectsRegistry

2014-03-04 Thread Andre Diermann (JIRA)

[ 
https://issues.apache.org/jira/browse/SANDBOX-462?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13919666#comment-13919666
 ] 

Andre Diermann commented on SANDBOX-462:


I have two questions regarding the current routine of get():

- when one AccessibleObject is resolved directly, why isn't it put to the 
cache? [1]
- when no best match could be obtained (I assume this is possible because of 
bestMatch!= null), null would be put in cache. This will do not big damage 
directly, but wouldn't this in theory slow down the whole routine significantly 
because of a very large key set which has to be searched on every run (see line 
90 in [3]). [2]

[1] see line 90 - 104 in [3]
[2] see line 152 - 156 in [3]
[3] 
http://svn.apache.org/viewvc/commons/sandbox/beanutils2/trunk/src/main/java/org/apache/commons/beanutils2/AccessibleObjectsRegistry.java?view=markup

 Refactoring of AccessibleObjectsRegistry
 

 Key: SANDBOX-462
 URL: https://issues.apache.org/jira/browse/SANDBOX-462
 Project: Commons Sandbox
  Issue Type: Improvement
  Components: BeanUtils2
Reporter: Andre Diermann
Priority: Minor
 Attachments: Commons-BeanUtils2-462#1.patch


 Summary:
 The AccessibleObjectsRegistry class provides two get methods, while one is a 
 convenient method for the other.
 Both methods take one conditional parameter, boolean exact, and the actual 
 get method is very long, which makes it somehow complex to understand.
 Suggestion:
 What could be improved IMHO:
 - Instead of using conditional methods, like get(boolean 
 doSomethingSpecialIfTrue, ...), it is more convenient to provide dedicated 
 methods like getSomething() and getAnotherThing().
 - In this regard the difference between an exact or, let's call it, matching 
 descriptor should be expressed through inheritance rather than object 
 allocation (= expressing it by a field boolean exact).
 - The very long get method should be refined
 - Another very minor issue is the naming of the paramTypes field within the 
 inner AccessibleObjectDescriptor class, which I would suggest to rename to 
 parameterTypes to fit the naming of the other occurrences. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Resolved] (COMMONSSITE-78) Alignment Issues on Commons Welcome Page

2014-02-21 Thread Andre Diermann (JIRA)

 [ 
https://issues.apache.org/jira/browse/COMMONSSITE-78?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andre Diermann resolved COMMONSSITE-78.
---

Resolution: Fixed

 Alignment Issues on Commons Welcome Page
 

 Key: COMMONSSITE-78
 URL: https://issues.apache.org/jira/browse/COMMONSSITE-78
 Project: Commons All
  Issue Type: Bug
  Components: Commons Skin
 Environment: Chrome Version 32.0.1700.107
 Windows 7
Reporter: Andre Diermann
 Attachments: Issue#1.PNG, Issue#2.PNG, Issue#3.PNG


 When browsing http://commons.apache.org/ with the new skin, I am encountering 
 several issues regarding the alignment of some page items:
 #1: The publish and version information in the navigation bar seems to align 
 to top instead of beeing centered vertically like the other items within the 
 navigation bar.
 #2: The left-hand side menu is centered vertically which makes it somehow 
 invisible. The user has to scroll down on larger pages such as the above 
 mentioned start page.
 #3: The footer seems to be not formatted correctly when compared to the 
 footer of http://commons.apache.org/proper/commons-weaver/
 See attached screenshots.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (COMMONSSITE-78) Alignment Issues on Commons Welcome Page

2014-02-21 Thread Andre Diermann (JIRA)

[ 
https://issues.apache.org/jira/browse/COMMONSSITE-78?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13908094#comment-13908094
 ] 

Andre Diermann commented on COMMONSSITE-78:
---

Yeah, I changed the issue to resolved. Unfortunately I am not aware of the 
version which fixes the issue. If this information is important please tell me 
so that I can update it. (Or maybe update by yourself if this is possible 
somehow :))

 Alignment Issues on Commons Welcome Page
 

 Key: COMMONSSITE-78
 URL: https://issues.apache.org/jira/browse/COMMONSSITE-78
 Project: Commons All
  Issue Type: Bug
  Components: Commons Skin
 Environment: Chrome Version 32.0.1700.107
 Windows 7
Reporter: Andre Diermann
 Attachments: Issue#1.PNG, Issue#2.PNG, Issue#3.PNG


 When browsing http://commons.apache.org/ with the new skin, I am encountering 
 several issues regarding the alignment of some page items:
 #1: The publish and version information in the navigation bar seems to align 
 to top instead of beeing centered vertically like the other items within the 
 navigation bar.
 #2: The left-hand side menu is centered vertically which makes it somehow 
 invisible. The user has to scroll down on larger pages such as the above 
 mentioned start page.
 #3: The footer seems to be not formatted correctly when compared to the 
 footer of http://commons.apache.org/proper/commons-weaver/
 See attached screenshots.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (SANDBOX-462) Refactoring of AccessibleObjectsRegistry

2014-02-21 Thread Andre Diermann (JIRA)

[ 
https://issues.apache.org/jira/browse/SANDBOX-462?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13908570#comment-13908570
 ] 

Andre Diermann commented on SANDBOX-462:


Hi Benedikt,

any hints how to check the rules and format the code already on my site? Do you 
have a code style config for your IDE? Do you run checkstyle locally? Currently 
I don't even know what I messed up exactly :-/

So sorry for the additional effort any many thanks for applying the patch. :-) 
I will now continue with the bigger changes.

See you,
André

 Refactoring of AccessibleObjectsRegistry
 

 Key: SANDBOX-462
 URL: https://issues.apache.org/jira/browse/SANDBOX-462
 Project: Commons Sandbox
  Issue Type: Improvement
  Components: BeanUtils2
Reporter: Andre Diermann
Priority: Minor
 Attachments: Commons-BeanUtils2-462#1.patch


 Summary:
 The AccessibleObjectsRegistry class provides two get methods, while one is a 
 convenient method for the other.
 Both methods take one conditional parameter, boolean exact, and the actual 
 get method is very long, which makes it somehow complex to understand.
 Suggestion:
 What could be improved IMHO:
 - Instead of using conditional methods, like get(boolean 
 doSomethingSpecialIfTrue, ...), it is more convenient to provide dedicated 
 methods like getSomething() and getAnotherThing().
 - In this regard the difference between an exact or, let's call it, matching 
 descriptor should be expressed through inheritance rather than object 
 allocation (= expressing it by a field boolean exact).
 - The very long get method should be refined
 - Another very minor issue is the naming of the paramTypes field within the 
 inner AccessibleObjectDescriptor class, which I would suggest to rename to 
 parameterTypes to fit the naming of the other occurrences. 



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (COMMONSSITE-78) Alignment Issues on Commons Welcome Page

2014-02-19 Thread Andre Diermann (JIRA)

 [ 
https://issues.apache.org/jira/browse/COMMONSSITE-78?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andre Diermann updated COMMONSSITE-78:
--

Attachment: Issue#1.PNG
Issue#2.PNG
Issue#3.PNG

 Alignment Issues on Commons Welcome Page
 

 Key: COMMONSSITE-78
 URL: https://issues.apache.org/jira/browse/COMMONSSITE-78
 Project: Commons All
  Issue Type: Bug
  Components: Commons Skin
 Environment: Chrome Version 32.0.1700.107
 Windows 7
Reporter: Andre Diermann
 Attachments: Issue#1.PNG, Issue#2.PNG, Issue#3.PNG


 When browsing http://commons.apache.org/ with the new skin, I am encountering 
 several issues regarding the alignment of some page items:
 #1: The publish and version information in the navigation bar seems to 
 aligned to top instead of beeing centered vertically like the other items 
 within the navigation bar.
 #2: The left-hand side menu is centered vertically which makes it somehow 
 invisible. The user has to scroll down on larger pages such as the above 
 mentioned start page.
 #3: The footer seems to be not formatted correctly when compared to the 
 footer of http://commons.apache.org/proper/commons-weaver/
 See attached screenshots.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Created] (COMMONSSITE-78) Alignment Issues on Commons Welcome Page

2014-02-19 Thread Andre Diermann (JIRA)
Andre Diermann created COMMONSSITE-78:
-

 Summary: Alignment Issues on Commons Welcome Page
 Key: COMMONSSITE-78
 URL: https://issues.apache.org/jira/browse/COMMONSSITE-78
 Project: Commons All
  Issue Type: Bug
  Components: Commons Skin
 Environment: Chrome Version 32.0.1700.107
Windows 7
Reporter: Andre Diermann
 Attachments: Issue#1.PNG, Issue#2.PNG, Issue#3.PNG

When browsing http://commons.apache.org/ with the new skin, I am encountering 
several issues regarding the alignment of some page items:

#1: The publish and version information in the navigation bar seems to aligned 
to top instead of beeing centered vertically like the other items within the 
navigation bar.
#2: The left-hand side menu is centered vertically which makes it somehow 
invisible. The user has to scroll down on larger pages such as the above 
mentioned start page.
#3: The footer seems to be not formatted correctly when compared to the footer 
of http://commons.apache.org/proper/commons-weaver/

See attached screenshots.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (COMMONSSITE-78) Alignment Issues on Commons Welcome Page

2014-02-19 Thread Andre Diermann (JIRA)

 [ 
https://issues.apache.org/jira/browse/COMMONSSITE-78?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andre Diermann updated COMMONSSITE-78:
--

Description: 
When browsing http://commons.apache.org/ with the new skin, I am encountering 
several issues regarding the alignment of some page items:

#1: The publish and version information in the navigation bar seems to aligne 
to top instead of beeing centered vertically like the other items within the 
navigation bar.
#2: The left-hand side menu is centered vertically which makes it somehow 
invisible. The user has to scroll down on larger pages such as the above 
mentioned start page.
#3: The footer seems to be not formatted correctly when compared to the footer 
of http://commons.apache.org/proper/commons-weaver/

See attached screenshots.

  was:
When browsing http://commons.apache.org/ with the new skin, I am encountering 
several issues regarding the alignment of some page items:

#1: The publish and version information in the navigation bar seems to aligned 
to top instead of beeing centered vertically like the other items within the 
navigation bar.
#2: The left-hand side menu is centered vertically which makes it somehow 
invisible. The user has to scroll down on larger pages such as the above 
mentioned start page.
#3: The footer seems to be not formatted correctly when compared to the footer 
of http://commons.apache.org/proper/commons-weaver/

See attached screenshots.


 Alignment Issues on Commons Welcome Page
 

 Key: COMMONSSITE-78
 URL: https://issues.apache.org/jira/browse/COMMONSSITE-78
 Project: Commons All
  Issue Type: Bug
  Components: Commons Skin
 Environment: Chrome Version 32.0.1700.107
 Windows 7
Reporter: Andre Diermann
 Attachments: Issue#1.PNG, Issue#2.PNG, Issue#3.PNG


 When browsing http://commons.apache.org/ with the new skin, I am encountering 
 several issues regarding the alignment of some page items:
 #1: The publish and version information in the navigation bar seems to aligne 
 to top instead of beeing centered vertically like the other items within the 
 navigation bar.
 #2: The left-hand side menu is centered vertically which makes it somehow 
 invisible. The user has to scroll down on larger pages such as the above 
 mentioned start page.
 #3: The footer seems to be not formatted correctly when compared to the 
 footer of http://commons.apache.org/proper/commons-weaver/
 See attached screenshots.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (COMMONSSITE-78) Alignment Issues on Commons Welcome Page

2014-02-19 Thread Andre Diermann (JIRA)

 [ 
https://issues.apache.org/jira/browse/COMMONSSITE-78?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andre Diermann updated COMMONSSITE-78:
--

Description: 
When browsing http://commons.apache.org/ with the new skin, I am encountering 
several issues regarding the alignment of some page items:

#1: The publish and version information in the navigation bar seems to align to 
top instead of beeing centered vertically like the other items within the 
navigation bar.
#2: The left-hand side menu is centered vertically which makes it somehow 
invisible. The user has to scroll down on larger pages such as the above 
mentioned start page.
#3: The footer seems to be not formatted correctly when compared to the footer 
of http://commons.apache.org/proper/commons-weaver/

See attached screenshots.

  was:
When browsing http://commons.apache.org/ with the new skin, I am encountering 
several issues regarding the alignment of some page items:

#1: The publish and version information in the navigation bar seems to aligne 
to top instead of beeing centered vertically like the other items within the 
navigation bar.
#2: The left-hand side menu is centered vertically which makes it somehow 
invisible. The user has to scroll down on larger pages such as the above 
mentioned start page.
#3: The footer seems to be not formatted correctly when compared to the footer 
of http://commons.apache.org/proper/commons-weaver/

See attached screenshots.


 Alignment Issues on Commons Welcome Page
 

 Key: COMMONSSITE-78
 URL: https://issues.apache.org/jira/browse/COMMONSSITE-78
 Project: Commons All
  Issue Type: Bug
  Components: Commons Skin
 Environment: Chrome Version 32.0.1700.107
 Windows 7
Reporter: Andre Diermann
 Attachments: Issue#1.PNG, Issue#2.PNG, Issue#3.PNG


 When browsing http://commons.apache.org/ with the new skin, I am encountering 
 several issues regarding the alignment of some page items:
 #1: The publish and version information in the navigation bar seems to align 
 to top instead of beeing centered vertically like the other items within the 
 navigation bar.
 #2: The left-hand side menu is centered vertically which makes it somehow 
 invisible. The user has to scroll down on larger pages such as the above 
 mentioned start page.
 #3: The footer seems to be not formatted correctly when compared to the 
 footer of http://commons.apache.org/proper/commons-weaver/
 See attached screenshots.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (COMMONSSITE-78) Alignment Issues on Commons Welcome Page

2014-02-19 Thread Andre Diermann (JIRA)

[ 
https://issues.apache.org/jira/browse/COMMONSSITE-78?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13905741#comment-13905741
 ] 

Andre Diermann commented on COMMONSSITE-78:
---

The issue is reproduceable on Chrome and MacOSX 10.9 as well. ... wait, have 
you fixed it in this second? Wail typing this comment it seems to be fixed now 
:)

 Alignment Issues on Commons Welcome Page
 

 Key: COMMONSSITE-78
 URL: https://issues.apache.org/jira/browse/COMMONSSITE-78
 Project: Commons All
  Issue Type: Bug
  Components: Commons Skin
 Environment: Chrome Version 32.0.1700.107
 Windows 7
Reporter: Andre Diermann
 Attachments: Issue#1.PNG, Issue#2.PNG, Issue#3.PNG


 When browsing http://commons.apache.org/ with the new skin, I am encountering 
 several issues regarding the alignment of some page items:
 #1: The publish and version information in the navigation bar seems to align 
 to top instead of beeing centered vertically like the other items within the 
 navigation bar.
 #2: The left-hand side menu is centered vertically which makes it somehow 
 invisible. The user has to scroll down on larger pages such as the above 
 mentioned start page.
 #3: The footer seems to be not formatted correctly when compared to the 
 footer of http://commons.apache.org/proper/commons-weaver/
 See attached screenshots.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Comment Edited] (COMMONSSITE-78) Alignment Issues on Commons Welcome Page

2014-02-19 Thread Andre Diermann (JIRA)

[ 
https://issues.apache.org/jira/browse/COMMONSSITE-78?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13905741#comment-13905741
 ] 

Andre Diermann edited comment on COMMONSSITE-78 at 2/19/14 5:43 PM:


The issue is reproduceable on Chrome and MacOSX 10.9 as well. ... wait, have 
you fixed it in this second? While typing this comment it seems to be fixed now 
:)


was (Author: andd):
The issue is reproduceable on Chrome and MacOSX 10.9 as well. ... wait, have 
you fixed it in this second? Wail typing this comment it seems to be fixed now 
:)

 Alignment Issues on Commons Welcome Page
 

 Key: COMMONSSITE-78
 URL: https://issues.apache.org/jira/browse/COMMONSSITE-78
 Project: Commons All
  Issue Type: Bug
  Components: Commons Skin
 Environment: Chrome Version 32.0.1700.107
 Windows 7
Reporter: Andre Diermann
 Attachments: Issue#1.PNG, Issue#2.PNG, Issue#3.PNG


 When browsing http://commons.apache.org/ with the new skin, I am encountering 
 several issues regarding the alignment of some page items:
 #1: The publish and version information in the navigation bar seems to align 
 to top instead of beeing centered vertically like the other items within the 
 navigation bar.
 #2: The left-hand side menu is centered vertically which makes it somehow 
 invisible. The user has to scroll down on larger pages such as the above 
 mentioned start page.
 #3: The footer seems to be not formatted correctly when compared to the 
 footer of http://commons.apache.org/proper/commons-weaver/
 See attached screenshots.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (SANDBOX-462) Refactoring of AccessibleObjectsRegistry

2014-02-19 Thread Andre Diermann (JIRA)

[ 
https://issues.apache.org/jira/browse/SANDBOX-462?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13905796#comment-13905796
 ] 

Andre Diermann commented on SANDBOX-462:


Hello Benedict,

you suggested to split my changes into multiple patch files, which is a good 
advice and makes totally sense. :-)

Somehow I haven't found an option how to do this. The patch is always created 
depending on the server version. For instance:

- I changed one minor thing - created and commented a patch for that (no 
problems so far)
- I changed another part within the same file, here: AccessibleObjectsRegistry 
- try to create a patch - the patch also contains the changes of the first 
patch
- ...
- So in the end the last patch file will be the same as already provided (of 
course except the unrelated changes due to the formatting ;-)), but still with 
too many changes.

So did I understand you right? 

Regards,
André

 Refactoring of AccessibleObjectsRegistry
 

 Key: SANDBOX-462
 URL: https://issues.apache.org/jira/browse/SANDBOX-462
 Project: Commons Sandbox
  Issue Type: Improvement
  Components: BeanUtils2
Reporter: Andre Diermann
Priority: Minor
 Attachments: Commons-BeanUtils2-462.patch


 Summary:
 The AccessibleObjectsRegistry class provides two get methods, while one is a 
 convenient method for the other.
 Both methods take one conditional parameter, boolean exact, and the actual 
 get method is very long, which makes it somehow complex to understand.
 Suggestion:
 What could be improved IMHO:
 - Instead of using conditional methods, like get(boolean 
 doSomethingSpecialIfTrue, ...), it is more convenient to provide dedicated 
 methods like getSomething() and getAnotherThing().
 - In this regard the difference between an exact or, let's call it, matching 
 descriptor should be expressed through inheritance rather than object 
 allocation (= expressing it by a field boolean exact).
 - The very long get method should be refined
 - Another very minor issue is the naming of the paramTypes field within the 
 inner AccessibleObjectDescriptor class, which I would suggest to rename to 
 parameterTypes to fit the naming of the other occurrences. 



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (SANDBOX-462) Refactoring of AccessibleObjectsRegistry

2014-02-19 Thread Andre Diermann (JIRA)

 [ 
https://issues.apache.org/jira/browse/SANDBOX-462?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andre Diermann updated SANDBOX-462:
---

Attachment: Commons-BeanUtils2-462#1.patch

 Refactoring of AccessibleObjectsRegistry
 

 Key: SANDBOX-462
 URL: https://issues.apache.org/jira/browse/SANDBOX-462
 Project: Commons Sandbox
  Issue Type: Improvement
  Components: BeanUtils2
Reporter: Andre Diermann
Priority: Minor
 Attachments: Commons-BeanUtils2-462#1.patch, 
 Commons-BeanUtils2-462.patch


 Summary:
 The AccessibleObjectsRegistry class provides two get methods, while one is a 
 convenient method for the other.
 Both methods take one conditional parameter, boolean exact, and the actual 
 get method is very long, which makes it somehow complex to understand.
 Suggestion:
 What could be improved IMHO:
 - Instead of using conditional methods, like get(boolean 
 doSomethingSpecialIfTrue, ...), it is more convenient to provide dedicated 
 methods like getSomething() and getAnotherThing().
 - In this regard the difference between an exact or, let's call it, matching 
 descriptor should be expressed through inheritance rather than object 
 allocation (= expressing it by a field boolean exact).
 - The very long get method should be refined
 - Another very minor issue is the naming of the paramTypes field within the 
 inner AccessibleObjectDescriptor class, which I would suggest to rename to 
 parameterTypes to fit the naming of the other occurrences. 



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Commented] (SANDBOX-462) Refactoring of AccessibleObjectsRegistry

2014-02-19 Thread Andre Diermann (JIRA)

[ 
https://issues.apache.org/jira/browse/SANDBOX-462?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13906030#comment-13906030
 ] 

Andre Diermann commented on SANDBOX-462:


Hi Benedikt,

thank you for the explanation. I have chosen option b) :-)

I added one new attachment (Commons-BeanUtils2-462#1.patch) containing one 
really minor change. I will provide a patch with the bigger changes in the 
next couple of days.

BR,
André

 Refactoring of AccessibleObjectsRegistry
 

 Key: SANDBOX-462
 URL: https://issues.apache.org/jira/browse/SANDBOX-462
 Project: Commons Sandbox
  Issue Type: Improvement
  Components: BeanUtils2
Reporter: Andre Diermann
Priority: Minor
 Attachments: Commons-BeanUtils2-462#1.patch, 
 Commons-BeanUtils2-462.patch


 Summary:
 The AccessibleObjectsRegistry class provides two get methods, while one is a 
 convenient method for the other.
 Both methods take one conditional parameter, boolean exact, and the actual 
 get method is very long, which makes it somehow complex to understand.
 Suggestion:
 What could be improved IMHO:
 - Instead of using conditional methods, like get(boolean 
 doSomethingSpecialIfTrue, ...), it is more convenient to provide dedicated 
 methods like getSomething() and getAnotherThing().
 - In this regard the difference between an exact or, let's call it, matching 
 descriptor should be expressed through inheritance rather than object 
 allocation (= expressing it by a field boolean exact).
 - The very long get method should be refined
 - Another very minor issue is the naming of the paramTypes field within the 
 inner AccessibleObjectDescriptor class, which I would suggest to rename to 
 parameterTypes to fit the naming of the other occurrences. 



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (SANDBOX-462) Refactoring of AccessibleObjectsRegistry

2014-02-19 Thread Andre Diermann (JIRA)

 [ 
https://issues.apache.org/jira/browse/SANDBOX-462?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andre Diermann updated SANDBOX-462:
---

Attachment: (was: Commons-BeanUtils2-462.patch)

 Refactoring of AccessibleObjectsRegistry
 

 Key: SANDBOX-462
 URL: https://issues.apache.org/jira/browse/SANDBOX-462
 Project: Commons Sandbox
  Issue Type: Improvement
  Components: BeanUtils2
Reporter: Andre Diermann
Priority: Minor
 Attachments: Commons-BeanUtils2-462#1.patch


 Summary:
 The AccessibleObjectsRegistry class provides two get methods, while one is a 
 convenient method for the other.
 Both methods take one conditional parameter, boolean exact, and the actual 
 get method is very long, which makes it somehow complex to understand.
 Suggestion:
 What could be improved IMHO:
 - Instead of using conditional methods, like get(boolean 
 doSomethingSpecialIfTrue, ...), it is more convenient to provide dedicated 
 methods like getSomething() and getAnotherThing().
 - In this regard the difference between an exact or, let's call it, matching 
 descriptor should be expressed through inheritance rather than object 
 allocation (= expressing it by a field boolean exact).
 - The very long get method should be refined
 - Another very minor issue is the naming of the paramTypes field within the 
 inner AccessibleObjectDescriptor class, which I would suggest to rename to 
 parameterTypes to fit the naming of the other occurrences. 



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Created] (SANDBOX-462) Refactoring of AccessibleObjectsRegistry

2014-02-16 Thread Andre Diermann (JIRA)
Andre Diermann created SANDBOX-462:
--

 Summary: Refactoring of AccessibleObjectsRegistry
 Key: SANDBOX-462
 URL: https://issues.apache.org/jira/browse/SANDBOX-462
 Project: Commons Sandbox
  Issue Type: Improvement
  Components: BeanUtils2
Reporter: Andre Diermann
Priority: Minor


The AccessibleObjectsRegistry class provides two get methods, while one is a 
convenient method for the other.

Both methods take one conditional parameter, boolean exact, and the actual get 
method is very long, which makes it somehow complex to understand.

What could be improved IMHO:
- Instead of using conditional methods, like get(boolean 
doSomethingSpecialIfTrue, ...), it is more convenient to provide dedicated 
methods like getSomething() and getAnotherThing().
- In this regard the difference between an exact or, let's call it, matching 
descriptor should be expressed through inheritance rather than object 
allocation (= expressing it by a field boolean exact).
- Another very minor issue is the naming of the paramTypes field within the 
inner AccessibleObjectDescriptor class, which I would suggest to rename to 
parameterTypes to fit the naming of the other occurrences. 



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (SANDBOX-462) Refactoring of AccessibleObjectsRegistry

2014-02-16 Thread Andre Diermann (JIRA)

 [ 
https://issues.apache.org/jira/browse/SANDBOX-462?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andre Diermann updated SANDBOX-462:
---

Attachment: Commons-BeanUtils2-462.patch

 Refactoring of AccessibleObjectsRegistry
 

 Key: SANDBOX-462
 URL: https://issues.apache.org/jira/browse/SANDBOX-462
 Project: Commons Sandbox
  Issue Type: Improvement
  Components: BeanUtils2
Reporter: Andre Diermann
Priority: Minor
 Attachments: Commons-BeanUtils2-462.patch


 The AccessibleObjectsRegistry class provides two get methods, while one is a 
 convenient method for the other.
 Both methods take one conditional parameter, boolean exact, and the actual 
 get method is very long, which makes it somehow complex to understand.
 What could be improved IMHO:
 - Instead of using conditional methods, like get(boolean 
 doSomethingSpecialIfTrue, ...), it is more convenient to provide dedicated 
 methods like getSomething() and getAnotherThing().
 - In this regard the difference between an exact or, let's call it, matching 
 descriptor should be expressed through inheritance rather than object 
 allocation (= expressing it by a field boolean exact).
 - Another very minor issue is the naming of the paramTypes field within the 
 inner AccessibleObjectDescriptor class, which I would suggest to rename to 
 parameterTypes to fit the naming of the other occurrences. 



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (SANDBOX-462) Refactoring of AccessibleObjectsRegistry

2014-02-16 Thread Andre Diermann (JIRA)

 [ 
https://issues.apache.org/jira/browse/SANDBOX-462?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andre Diermann updated SANDBOX-462:
---

Description: 
Summary:
The AccessibleObjectsRegistry class provides two get methods, while one is a 
convenient method for the other.

Both methods take one conditional parameter, boolean exact, and the actual get 
method is very long, which makes it somehow complex to understand.

Suggestion:
What could be improved IMHO:
- Instead of using conditional methods, like get(boolean 
doSomethingSpecialIfTrue, ...), it is more convenient to provide dedicated 
methods like getSomething() and getAnotherThing().
- In this regard the difference between an exact or, let's call it, matching 
descriptor should be expressed through inheritance rather than object 
allocation (= expressing it by a field boolean exact).
- Another very minor issue is the naming of the paramTypes field within the 
inner AccessibleObjectDescriptor class, which I would suggest to rename to 
parameterTypes to fit the naming of the other occurrences. 

  was:
The AccessibleObjectsRegistry class provides two get methods, while one is a 
convenient method for the other.

Both methods take one conditional parameter, boolean exact, and the actual get 
method is very long, which makes it somehow complex to understand.

What could be improved IMHO:
- Instead of using conditional methods, like get(boolean 
doSomethingSpecialIfTrue, ...), it is more convenient to provide dedicated 
methods like getSomething() and getAnotherThing().
- In this regard the difference between an exact or, let's call it, matching 
descriptor should be expressed through inheritance rather than object 
allocation (= expressing it by a field boolean exact).
- Another very minor issue is the naming of the paramTypes field within the 
inner AccessibleObjectDescriptor class, which I would suggest to rename to 
parameterTypes to fit the naming of the other occurrences. 


 Refactoring of AccessibleObjectsRegistry
 

 Key: SANDBOX-462
 URL: https://issues.apache.org/jira/browse/SANDBOX-462
 Project: Commons Sandbox
  Issue Type: Improvement
  Components: BeanUtils2
Reporter: Andre Diermann
Priority: Minor
 Attachments: Commons-BeanUtils2-462.patch


 Summary:
 The AccessibleObjectsRegistry class provides two get methods, while one is a 
 convenient method for the other.
 Both methods take one conditional parameter, boolean exact, and the actual 
 get method is very long, which makes it somehow complex to understand.
 Suggestion:
 What could be improved IMHO:
 - Instead of using conditional methods, like get(boolean 
 doSomethingSpecialIfTrue, ...), it is more convenient to provide dedicated 
 methods like getSomething() and getAnotherThing().
 - In this regard the difference between an exact or, let's call it, matching 
 descriptor should be expressed through inheritance rather than object 
 allocation (= expressing it by a field boolean exact).
 - Another very minor issue is the naming of the paramTypes field within the 
 inner AccessibleObjectDescriptor class, which I would suggest to rename to 
 parameterTypes to fit the naming of the other occurrences. 



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)


[jira] [Updated] (SANDBOX-462) Refactoring of AccessibleObjectsRegistry

2014-02-16 Thread Andre Diermann (JIRA)

 [ 
https://issues.apache.org/jira/browse/SANDBOX-462?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andre Diermann updated SANDBOX-462:
---

Description: 
Summary:
The AccessibleObjectsRegistry class provides two get methods, while one is a 
convenient method for the other.

Both methods take one conditional parameter, boolean exact, and the actual get 
method is very long, which makes it somehow complex to understand.

Suggestion:
What could be improved IMHO:
- Instead of using conditional methods, like get(boolean 
doSomethingSpecialIfTrue, ...), it is more convenient to provide dedicated 
methods like getSomething() and getAnotherThing().
- In this regard the difference between an exact or, let's call it, matching 
descriptor should be expressed through inheritance rather than object 
allocation (= expressing it by a field boolean exact).
- The very long get method should be refined
- Another very minor issue is the naming of the paramTypes field within the 
inner AccessibleObjectDescriptor class, which I would suggest to rename to 
parameterTypes to fit the naming of the other occurrences. 

  was:
Summary:
The AccessibleObjectsRegistry class provides two get methods, while one is a 
convenient method for the other.

Both methods take one conditional parameter, boolean exact, and the actual get 
method is very long, which makes it somehow complex to understand.

Suggestion:
What could be improved IMHO:
- Instead of using conditional methods, like get(boolean 
doSomethingSpecialIfTrue, ...), it is more convenient to provide dedicated 
methods like getSomething() and getAnotherThing().
- In this regard the difference between an exact or, let's call it, matching 
descriptor should be expressed through inheritance rather than object 
allocation (= expressing it by a field boolean exact).
- Another very minor issue is the naming of the paramTypes field within the 
inner AccessibleObjectDescriptor class, which I would suggest to rename to 
parameterTypes to fit the naming of the other occurrences. 


 Refactoring of AccessibleObjectsRegistry
 

 Key: SANDBOX-462
 URL: https://issues.apache.org/jira/browse/SANDBOX-462
 Project: Commons Sandbox
  Issue Type: Improvement
  Components: BeanUtils2
Reporter: Andre Diermann
Priority: Minor
 Attachments: Commons-BeanUtils2-462.patch


 Summary:
 The AccessibleObjectsRegistry class provides two get methods, while one is a 
 convenient method for the other.
 Both methods take one conditional parameter, boolean exact, and the actual 
 get method is very long, which makes it somehow complex to understand.
 Suggestion:
 What could be improved IMHO:
 - Instead of using conditional methods, like get(boolean 
 doSomethingSpecialIfTrue, ...), it is more convenient to provide dedicated 
 methods like getSomething() and getAnotherThing().
 - In this regard the difference between an exact or, let's call it, matching 
 descriptor should be expressed through inheritance rather than object 
 allocation (= expressing it by a field boolean exact).
 - The very long get method should be refined
 - Another very minor issue is the naming of the paramTypes field within the 
 inner AccessibleObjectDescriptor class, which I would suggest to rename to 
 parameterTypes to fit the naming of the other occurrences. 



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)