[
https://issues.apache.org/jira/browse/BEANUTILS-304?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mark Lewis updated BEANUTILS-304:
---------------------------------
Remaining Estimate: 240h (was: 1008h)
Original Estimate: 240h (was: 1008h)
Didn't realize that a "week" was a 168-hour "actual" week and not a 40-hour
"work" week.
> 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.0
> Reporter: Mark Lewis
> Fix For: LATER THAN 1.8.0
>
> 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.