[
https://issues.apache.org/jira/browse/TRINIDAD-2055?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13004875#comment-13004875
]
Prakash Udupa commented on TRINIDAD-2055:
-----------------------------------------
Andy,
I'm trying to understand the benefit of this new wrapper API.
If we introduce any new method to ChangeManager, we will need to provide a
default implementation in the ChangeManager class so that we do not break the
existing implementations. Does this not suffice to address the fragility issue
here, how does the wrapper help any more ?.
> Introduce ChangeManager wrapper class
> -------------------------------------
>
> Key: TRINIDAD-2055
> URL: https://issues.apache.org/jira/browse/TRINIDAD-2055
> Project: MyFaces Trinidad
> Issue Type: Improvement
> Affects Versions: 2.0.0-beta-2
> Reporter: Andy Schwartz
> Assignee: Andy Schwartz
> Priority: Minor
> Attachments: ChangeManagerWrapper.java
>
>
> One way that users might customize change management behavior is to create a
> proxy ChangeManager that delegates through to an underlying ChangeManager
> (eg. to SessionChangeManager) for most operations after performing filtering
> of the incoming changes. It is possible to implement such proxy
> ChangeManager classes today. However, without a wrapper base class, these
> implementations are fragile - ie. they will break if we ever introduce a new
> method to the ChangeManager API.
> A more robust solution would be to introduce a base wrapper class for proxy
> ChangeManager implementations to extend. That way, in the event that we do
> introduce new ChangeManager methods, the base wrapper class can be updated in
> parallel, protecting subclasses from the change.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira