commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matt Benson (JIRA)" <>
Subject [jira] [Commented] (CHAIN-53) Global Update of Chain - Generics, JDK 1.5, Update Dependency Versions
Date Mon, 15 Aug 2011 17:31:27 GMT


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:
>             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:
> And here is a 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:


View raw message