[ 
https://issues.apache.org/jira/browse/CHAIN-53?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13085184#comment-13085184
 ] 

Matt Benson commented on CHAIN-53:
----------------------------------

Hello again Elijah,
  I have looked over the diff; here are some comments:

* diffs should be attached/uploaded in JIRA, with the grant/feather radio 
button checked indicating your intent that the patch be licensed to the ASF (I 
know you sent the ICLA, but a. it wouldn't have been processed yet, and b. just 
humor us ;)  )
* I don't see anything in the Faces-related changes to warrant upgrading to JSF 
2.x.  MyFaces in particular makes every attempt to continue to support JSF 1.x 
versions, so in the spirit of good inter-ASF cooperation, we should probably 
just leave the API levels of the JSF dependency wherever they stood previously.
* At Commons we often repackage components when their APIs change incompatibly. 
 The changes you have submitted are overwhelmingly backward-compatible once 
type erasure has been taken into account.  What I particularly notice as being 
backward-incompatible are the {{Map}} implementations.  Since most of these 
have gone from raw {{Map}} to {{Map<String, ?>}} their {{put()}} methods now 
have different signatures.  In all cases except for 
{{oac.chain.web.servlet.ServletApplicationScopeMap}} these keys are required to 
be {{String}} instances at runtime anyway, so there is quite a minimal chance 
that code currently using these wouldn't recompile against these binaries.  In 
the last case, {{null}} keys are rejected and other objects are converted to 
{{String}} if necessary.  Once again, it seems rather unlikely that existing 
code would be utilizing this conversion code path.

The {{Map}} concerns are the only potential point of contention I see with 
regard to backward compatibility.  It would seem to me that [chain] is likely 
to sit rather high in the architecture of a given application, with little 
chance of multiple consumers competing at runtime.  For this reason my personal 
opinion is that the incompatibilities introduced in the process of generifying 
the provided {{Map}} implementations are small enough to consider the component 
backward-compatible _enough_ and accept this patch directly onto [chain]'s 
trunk.  I point the situation out here, however, in case other members of the 
community, particularly those with actual _experience_ with [chain], have 
conflicting opinions.

Thanks for your interest!

> 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
>              Labels: newbie, patch
>
> As posted in the mailing list, I've done this work outside of an offical 
> branch.
> Here is the source:
> http://elijah.zupancic.name/projects/commons-chain-v2-proof-of-concept.tar.gz
> And here is a diff:
> http://elijah.zupancic.name/projects/uber-diff
> 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;
> }
> I'm very much new to the ASF and I was advised to file a bug in order to get 
> the process started for these changes to be integrated.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to