You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by "Niall Pemberton (JIRA)" <ji...@apache.org> on 2007/06/30 01:52:04 UTC

[jira] Created: (BEANUTILS-285) Consider options for BeanUtils compatibility in light of Conversion improvements

Consider options for BeanUtils compatibility in light of Conversion improvements
--------------------------------------------------------------------------------

                 Key: BEANUTILS-285
                 URL: https://issues.apache.org/jira/browse/BEANUTILS-285
             Project: Commons BeanUtils
          Issue Type: New Feature
          Components: ConvertUtils & Converters
    Affects Versions: 1.8.0
            Reporter: Niall Pemberton
            Assignee: Niall Pemberton


The Conversion improvements associated with BEANUTILS-258 potentially create compatibility issues - this was highlighted by Betwixt's tests failing recently in the gump run - see http://tinyurl.com/2mxbv8 for more details.

Quite a bit of effort has been put into making the new conversion facilities as painless as possible for existing users. However it is not fully backwards compatible in terms of behaviour (stiil binary compatible). Need to give this some consideration before a BeanUtils release - at the moment there are two options on the table (more welcome!):

1) The compatibility as it stands is good enough (covers most cases) - so do nothing
2) Provide a "compatibility option" - so that users can choose either the new behaviour or behaviour compatible with BeanUtils 1.7.0. This probably involves quite a bit of work - adding back the old behaviour alongside the new

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


[jira] Resolved: (BEANUTILS-285) Consider options for BeanUtils compatibility in light of Conversion improvements

Posted by "Niall Pemberton (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/BEANUTILS-285?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Niall Pemberton resolved BEANUTILS-285.
---------------------------------------

       Resolution: Fixed
    Fix Version/s: 1.8.0

I have added new BeanUtilsBean (BeanUtilsBean2) and ConvertUtilsBean (ConvertUtilsBean2) implementations which take full davantage of the improved Converter implementations. The default behaviour is compatible with BeanUtils 1.7.0, but these new implementations can be configured by calling BeanUtilsBean.setInstance(new BeanUtilsBean2()).

http://svn.apache.org/viewvc?view=rev&revision=552381

Closing this as resolved

> Consider options for BeanUtils compatibility in light of Conversion improvements
> --------------------------------------------------------------------------------
>
>                 Key: BEANUTILS-285
>                 URL: https://issues.apache.org/jira/browse/BEANUTILS-285
>             Project: Commons BeanUtils
>          Issue Type: New Feature
>          Components: ConvertUtils & Converters
>    Affects Versions: 1.8.0
>            Reporter: Niall Pemberton
>            Assignee: Niall Pemberton
>             Fix For: 1.8.0
>
>         Attachments: betwixt-beanutils-gump-fix.patch
>
>
> The Conversion improvements associated with BEANUTILS-258 potentially create compatibility issues - this was highlighted by Betwixt's tests failing recently in the gump run - see http://tinyurl.com/2mxbv8 for more details.
> Quite a bit of effort has been put into making the new conversion facilities as painless as possible for existing users. However it is not fully backwards compatible in terms of behaviour (stiil binary compatible). Need to give this some consideration before a BeanUtils release - at the moment there are two options on the table (more welcome!):
> 1) The compatibility as it stands is good enough (covers most cases) - so do nothing
> 2) Provide a "compatibility option" - so that users can choose either the new behaviour or behaviour compatible with BeanUtils 1.7.0. This probably involves quite a bit of work - adding back the old behaviour alongside the new

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


[jira] Commented: (BEANUTILS-285) Consider options for BeanUtils compatibility in light of Conversion improvements

Posted by "Niall Pemberton (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BEANUTILS-285?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12509364 ] 

Niall Pemberton commented on BEANUTILS-285:
-------------------------------------------

OK I have reverted the behaviour in BeanUtils (and Martin's change to betwixt, as the method used by betwixt is now nack to how it was in BeanUtils 1.7.0). If I find the time and desire to provide the new behaviour I'll do it as new additional implementations (BeanUtilsBean2 / ConvertUtilsBean2) that people can chose to configure if they want.

BeanUtils: http://svn.apache.org/viewvc?view=rev&revision=552279
Betwixt: http://svn.apache.org/viewvc?view=rev&revision=552283

> Consider options for BeanUtils compatibility in light of Conversion improvements
> --------------------------------------------------------------------------------
>
>                 Key: BEANUTILS-285
>                 URL: https://issues.apache.org/jira/browse/BEANUTILS-285
>             Project: Commons BeanUtils
>          Issue Type: New Feature
>          Components: ConvertUtils & Converters
>    Affects Versions: 1.8.0
>            Reporter: Niall Pemberton
>            Assignee: Niall Pemberton
>         Attachments: betwixt-beanutils-gump-fix.patch
>
>
> The Conversion improvements associated with BEANUTILS-258 potentially create compatibility issues - this was highlighted by Betwixt's tests failing recently in the gump run - see http://tinyurl.com/2mxbv8 for more details.
> Quite a bit of effort has been put into making the new conversion facilities as painless as possible for existing users. However it is not fully backwards compatible in terms of behaviour (stiil binary compatible). Need to give this some consideration before a BeanUtils release - at the moment there are two options on the table (more welcome!):
> 1) The compatibility as it stands is good enough (covers most cases) - so do nothing
> 2) Provide a "compatibility option" - so that users can choose either the new behaviour or behaviour compatible with BeanUtils 1.7.0. This probably involves quite a bit of work - adding back the old behaviour alongside the new

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


[jira] Updated: (BEANUTILS-285) Consider options for BeanUtils compatibility in light of Conversion improvements

Posted by "Niall Pemberton (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/BEANUTILS-285?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Niall Pemberton updated BEANUTILS-285:
--------------------------------------

    Attachment: betwixt-beanutils-gump-fix.patch

Attaching a patch for Betwixt for mvdb to review that fixes the gump failures

> Consider options for BeanUtils compatibility in light of Conversion improvements
> --------------------------------------------------------------------------------
>
>                 Key: BEANUTILS-285
>                 URL: https://issues.apache.org/jira/browse/BEANUTILS-285
>             Project: Commons BeanUtils
>          Issue Type: New Feature
>          Components: ConvertUtils & Converters
>    Affects Versions: 1.8.0
>            Reporter: Niall Pemberton
>            Assignee: Niall Pemberton
>         Attachments: betwixt-beanutils-gump-fix.patch
>
>
> The Conversion improvements associated with BEANUTILS-258 potentially create compatibility issues - this was highlighted by Betwixt's tests failing recently in the gump run - see http://tinyurl.com/2mxbv8 for more details.
> Quite a bit of effort has been put into making the new conversion facilities as painless as possible for existing users. However it is not fully backwards compatible in terms of behaviour (stiil binary compatible). Need to give this some consideration before a BeanUtils release - at the moment there are two options on the table (more welcome!):
> 1) The compatibility as it stands is good enough (covers most cases) - so do nothing
> 2) Provide a "compatibility option" - so that users can choose either the new behaviour or behaviour compatible with BeanUtils 1.7.0. This probably involves quite a bit of work - adding back the old behaviour alongside the new

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


[jira] Commented: (BEANUTILS-285) Consider options for BeanUtils compatibility in light of Conversion improvements

Posted by "Martin van den Bemt (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BEANUTILS-285?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12509265 ] 

Martin van den Bemt commented on BEANUTILS-285:
-----------------------------------------------

The problem you are describing is actually the current behaviour of betwixt and beanutils. People depend on that and if it was not working for them, there is documentation on how to solve that problem. So if people want to do what you describe they already need to work around that.
Based on above I am not creating more issues than I am resolving, I am just making sure everything works as it always did.
That  the solution in the trunk of beanutils solves a lot of other possible problems (or prevents usage of hacks) and is an improvement over current behaviour, is a different rationale altogether.

 I am not saying your changes aren't an improvement which can also benefit betwixt users, but I rather have the developer make that choice instead of possibly breaking default behaviour. Don't forget that betwixt is kind of a black box and any behaviour that can change the object<->xml mapping by dropping in a  new beanutils can an application.
To get to your example : if all of a sudden a comma instead of a period will turn up in a value that can break the one who is expecting a period.

In any case, this whole reasoning doesn't mean that much when betwixt is released after beanutils is :)


> Consider options for BeanUtils compatibility in light of Conversion improvements
> --------------------------------------------------------------------------------
>
>                 Key: BEANUTILS-285
>                 URL: https://issues.apache.org/jira/browse/BEANUTILS-285
>             Project: Commons BeanUtils
>          Issue Type: New Feature
>          Components: ConvertUtils & Converters
>    Affects Versions: 1.8.0
>            Reporter: Niall Pemberton
>            Assignee: Niall Pemberton
>         Attachments: betwixt-beanutils-gump-fix.patch
>
>
> The Conversion improvements associated with BEANUTILS-258 potentially create compatibility issues - this was highlighted by Betwixt's tests failing recently in the gump run - see http://tinyurl.com/2mxbv8 for more details.
> Quite a bit of effort has been put into making the new conversion facilities as painless as possible for existing users. However it is not fully backwards compatible in terms of behaviour (stiil binary compatible). Need to give this some consideration before a BeanUtils release - at the moment there are two options on the table (more welcome!):
> 1) The compatibility as it stands is good enough (covers most cases) - so do nothing
> 2) Provide a "compatibility option" - so that users can choose either the new behaviour or behaviour compatible with BeanUtils 1.7.0. This probably involves quite a bit of work - adding back the old behaviour alongside the new

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


[jira] Commented: (BEANUTILS-285) Consider options for BeanUtils compatibility in light of Conversion improvements

Posted by "Martin van den Bemt (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BEANUTILS-285?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12509223 ] 

Martin van den Bemt commented on BEANUTILS-285:
-----------------------------------------------

This is what I did at first, but the problem with that approach is that I am fixing the testcase, which in turn doesn't really fix the problem. If conversion changes when using a new beanutils version, people are not able to deserialize their xml anymore (or with weird results), which is the reason of the copy&paste of the beanutils 1.7 method.  Don't forget that the test is for internal betwixt use. Even if people use beanutils directly the betwixt behaviour will not change if they going to use the new version. If they chose to depend on the new behaviour in beanutils they will hit problems when developing instead of getting into trouble at runtime when someone decides to use the latest and greatest dependencies..

So in short : I prefer a developer to get into trouble when he chooses to (= working on code that depends on betwixt) and not when someone else chooses to (the person that needs this version of beanutils to do something else)



> Consider options for BeanUtils compatibility in light of Conversion improvements
> --------------------------------------------------------------------------------
>
>                 Key: BEANUTILS-285
>                 URL: https://issues.apache.org/jira/browse/BEANUTILS-285
>             Project: Commons BeanUtils
>          Issue Type: New Feature
>          Components: ConvertUtils & Converters
>    Affects Versions: 1.8.0
>            Reporter: Niall Pemberton
>            Assignee: Niall Pemberton
>         Attachments: betwixt-beanutils-gump-fix.patch
>
>
> The Conversion improvements associated with BEANUTILS-258 potentially create compatibility issues - this was highlighted by Betwixt's tests failing recently in the gump run - see http://tinyurl.com/2mxbv8 for more details.
> Quite a bit of effort has been put into making the new conversion facilities as painless as possible for existing users. However it is not fully backwards compatible in terms of behaviour (stiil binary compatible). Need to give this some consideration before a BeanUtils release - at the moment there are two options on the table (more welcome!):
> 1) The compatibility as it stands is good enough (covers most cases) - so do nothing
> 2) Provide a "compatibility option" - so that users can choose either the new behaviour or behaviour compatible with BeanUtils 1.7.0. This probably involves quite a bit of work - adding back the old behaviour alongside the new

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


[jira] Commented: (BEANUTILS-285) Consider options for BeanUtils compatibility in light of Conversion improvements

Posted by "Niall Pemberton (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BEANUTILS-285?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12509228 ] 

Niall Pemberton commented on BEANUTILS-285:
-------------------------------------------

I understand you're trying to avoid issues - but the more I think about it the more issues I see. I believe you're probably creating as many issues(if not more) as you're resolving. For example the BeanUtils DoubleConverter can now be configured for a French Locale - using a comma as the decimal separtor. It would convert to and from a String value using a comma. Problem now is for betwixt - conversion from String to BigDecimal by DoubleConverter would expect a comma - which if DoubleConverter had handled the conversion to a String it would have - in Betwixt though it will delegate the conversion to String to the converter registered for Strng - which the default registerd implementation would just use the Double's toString() method (and therefore have a period for the decimal separator).

> Consider options for BeanUtils compatibility in light of Conversion improvements
> --------------------------------------------------------------------------------
>
>                 Key: BEANUTILS-285
>                 URL: https://issues.apache.org/jira/browse/BEANUTILS-285
>             Project: Commons BeanUtils
>          Issue Type: New Feature
>          Components: ConvertUtils & Converters
>    Affects Versions: 1.8.0
>            Reporter: Niall Pemberton
>            Assignee: Niall Pemberton
>         Attachments: betwixt-beanutils-gump-fix.patch
>
>
> The Conversion improvements associated with BEANUTILS-258 potentially create compatibility issues - this was highlighted by Betwixt's tests failing recently in the gump run - see http://tinyurl.com/2mxbv8 for more details.
> Quite a bit of effort has been put into making the new conversion facilities as painless as possible for existing users. However it is not fully backwards compatible in terms of behaviour (stiil binary compatible). Need to give this some consideration before a BeanUtils release - at the moment there are two options on the table (more welcome!):
> 1) The compatibility as it stands is good enough (covers most cases) - so do nothing
> 2) Provide a "compatibility option" - so that users can choose either the new behaviour or behaviour compatible with BeanUtils 1.7.0. This probably involves quite a bit of work - adding back the old behaviour alongside the new

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


[jira] Commented: (BEANUTILS-285) Consider options for BeanUtils compatibility in light of Conversion improvements

Posted by "Stephen Colebourne (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BEANUTILS-285?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12509269 ] 

Stephen Colebourne commented on BEANUTILS-285:
----------------------------------------------

Although I haven't followed the detail of this case, ensuring it is fully semantically, binary and source compatible is essential IMO. These are exceptionally widely distributed libraries, and having anything change in them that breaks others will create all sorts of dependency hell.

Maybe the better solution here is to get commons-convert working and released, as a simple object-string conversion tool (the original plan), and then allow [beanutils] to optionally use [convert] as the conversion provider instead of the old (rolled back) converters in [beanutils] ?

> Consider options for BeanUtils compatibility in light of Conversion improvements
> --------------------------------------------------------------------------------
>
>                 Key: BEANUTILS-285
>                 URL: https://issues.apache.org/jira/browse/BEANUTILS-285
>             Project: Commons BeanUtils
>          Issue Type: New Feature
>          Components: ConvertUtils & Converters
>    Affects Versions: 1.8.0
>            Reporter: Niall Pemberton
>            Assignee: Niall Pemberton
>         Attachments: betwixt-beanutils-gump-fix.patch
>
>
> The Conversion improvements associated with BEANUTILS-258 potentially create compatibility issues - this was highlighted by Betwixt's tests failing recently in the gump run - see http://tinyurl.com/2mxbv8 for more details.
> Quite a bit of effort has been put into making the new conversion facilities as painless as possible for existing users. However it is not fully backwards compatible in terms of behaviour (stiil binary compatible). Need to give this some consideration before a BeanUtils release - at the moment there are two options on the table (more welcome!):
> 1) The compatibility as it stands is good enough (covers most cases) - so do nothing
> 2) Provide a "compatibility option" - so that users can choose either the new behaviour or behaviour compatible with BeanUtils 1.7.0. This probably involves quite a bit of work - adding back the old behaviour alongside the new

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


[jira] Commented: (BEANUTILS-285) Consider options for BeanUtils compatibility in light of Conversion improvements

Posted by "Matt Benson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/BEANUTILS-285?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12509293 ] 

Matt Benson commented on BEANUTILS-285:
---------------------------------------

Or the incubated Morph as the more mature bifurcation from commons-convert, returned to the fold.  ;)

> Consider options for BeanUtils compatibility in light of Conversion improvements
> --------------------------------------------------------------------------------
>
>                 Key: BEANUTILS-285
>                 URL: https://issues.apache.org/jira/browse/BEANUTILS-285
>             Project: Commons BeanUtils
>          Issue Type: New Feature
>          Components: ConvertUtils & Converters
>    Affects Versions: 1.8.0
>            Reporter: Niall Pemberton
>            Assignee: Niall Pemberton
>         Attachments: betwixt-beanutils-gump-fix.patch
>
>
> The Conversion improvements associated with BEANUTILS-258 potentially create compatibility issues - this was highlighted by Betwixt's tests failing recently in the gump run - see http://tinyurl.com/2mxbv8 for more details.
> Quite a bit of effort has been put into making the new conversion facilities as painless as possible for existing users. However it is not fully backwards compatible in terms of behaviour (stiil binary compatible). Need to give this some consideration before a BeanUtils release - at the moment there are two options on the table (more welcome!):
> 1) The compatibility as it stands is good enough (covers most cases) - so do nothing
> 2) Provide a "compatibility option" - so that users can choose either the new behaviour or behaviour compatible with BeanUtils 1.7.0. This probably involves quite a bit of work - adding back the old behaviour alongside the new

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org