[ 
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


Reply via email to