[
https://issues.apache.org/jira/browse/CHAIN-53?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13093163#comment-13093163
]
Matt Benson commented on CHAIN-53:
----------------------------------
Hmm, I just noticed another rather large change incorporated in the patch, at
least in its most recent version, though I assume that I simply overlooked it
before. {{org.apache.commons.chain.impl.ContextBase}}, and through it, its
various provided subclasses, have been changed to extend {{ConcurrentHashMap}}
instead of {{HashMap}}. I can appreciate that concurrency might be an issue in
this arena, and I don't have a great concern over the internal APIs of a given
{{ContextBase}} user subclass in the sense that some method an implementation
formerly depended on from {{HashMap}} is no longer available due to the
modified inheritance hierarchy. However, I do note a glaring difference of
{{CHM}} vs. {{HM}}: the latter accepts {{null}} keys and values, while the
former does not. While it is very possibly the case that neither {{null}} keys
nor values make sense for chain context implementations, thereby placing this
break in backward compatibility into the "harmless" category, this break is
worth noting and possibly discussing.
> Global Update of Chain - Generics, JDK 1.5, Update Dependency Versions
> ----------------------------------------------------------------------
>
> Key: CHAIN-53
> URL: https://issues.apache.org/jira/browse/CHAIN-53
> Project: Commons Chain
> Issue Type: Improvement
> Reporter: Elijah Zupancic
> Assignee: Simone Tripodi
> Labels: newbie, patch
> Attachments: CHAIN-53_2011-08-25.patch
>
>
> As posted in the mailing list, I've done this work outside of an offical
> branch.
> In this patch:
> * Global upgrade to the JDK 1.5
> * Added @Override annotations
> * Upgraded to the Servlet 2.5 API
> * Upgraded to the Faces 2.1 API
> * Upgraded to the Portlet 2.0 API
> * Upgraded the Maven Parent POM version
> * Added generics support to Command so that Command's API looks like:
> public interface Command<T extends Context> {
> ...
> boolean execute(T context) throws Exception;
> }
> The only incompatibility with the existing API is in:
> org.apache.commons.chain.web.servlet.ServletHeaderValuesMap on line 97.
> Previously the API was returning Set<Entry<String, Enumeration<String>> when
> by all indications it actually should have been returning Set<Entry<String,
> String[]>>. I believe that I fixed a previously undiscovered bug here.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira