commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Java Developer (JIRA)" <j...@apache.org>
Subject [jira] Commented: (BEANUTILS-304) BeanDiff - encapsulate, apply, and merge bean differences
Date Tue, 08 Sep 2009 05:08:57 GMT

    [ https://issues.apache.org/jira/browse/BEANUTILS-304?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12752335#action_12752335
] 

Java Developer commented on BEANUTILS-304:
------------------------------------------

You are right, I've corrected it. Another suggestion: Xml diff algorithms(e.g. http://tdm.berlios.de/3dm/doc/index.html)
might help to implement BeanDiff.

> BeanDiff - encapsulate, apply, and merge bean differences
> ---------------------------------------------------------
>
>                 Key: BEANUTILS-304
>                 URL: https://issues.apache.org/jira/browse/BEANUTILS-304
>             Project: Commons BeanUtils
>          Issue Type: New Feature
>          Components: Bean / Property Utils, Bean-Collections, ConvertUtils & Converters,
DynaBean
>    Affects Versions: LATER THAN 1.8.1
>            Reporter: Mark Lewis
>             Fix For: LATER THAN 1.8.1
>
>   Original Estimate: 240h
>  Remaining Estimate: 240h
>
> It would be great to have a way to compare two beans and capture the diff somehow.  This
is just my initial brainstorm on the idea:
> - The BeanDiff class encapsulates differences between two beans -of the same type-, the
source bean and the target bean.
> - A BeanDiff instance represents what property assignments would be necessary to turn
the target bean into the source bean.
> - A BeanDiff can be applied to a target bean, performing the necessary property assignments
to make its property values exactly match the source bean.
> - Two BeanDiff instances can be merged into a single BeanDiff instance, allowing multiple
source beans to be merged into one target bean.
> - If a conflict would occur during a merge (from a property being assigned two different
values), a BeanDiffConflictException is thrown.
> - The BeanDiffConflictException contains an array of BeanDiffConflict objects.
> - Each BeanDiffConflict instance represents a single property and the two conflicting
values that were to be assigned.
> - All these actions would work on DynaBeans as well.
> - +Converters would be able to account for type differences in source and target bean
properties.+
> An example of how this could be used is when dealing with ORM and optimistic locking.
 Knowing exactly which properties have been modified would allow concurrent modification of
a bean (record) without fear of reasserting the original values and destroying someone else's
changes.

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


Mime
View raw message