On 4/10/06, Don Brown <[EMAIL PROTECTED]> wrote: > > Jacob Hookom wrote: > > The NavigationHandler has that default behavior. But much like WebWork > > allows the pluggable ActionMapper, all parts of JSF are pluggable in > > that manner. Seam and SWF are two examples of plugging in alternate > > logic for navigation handling. So the emphasis is put on the API, not > > the implementation. > > I guess what I'm saying is the navigation is already the way we want > it. What would reimplementing it as a > NavigationHandler bring to the table? > > > I've been trying to get everyone behind the EL-API. The 'traditional' > > EL implementation provided in the spec is, again, only one > > implementation. The JEXL implementation of the EL-API would be a piece > > of cake, OGNL wouldn't be that hard either if they would use JavaCC with > > the visitor=true when compiling the grammar. > > Ok, I was under the impression that the Unified EL was tightly coupled to > the implementation. If the API is abstract > enough to handle different implementations such as OGNL, then this is good > news. This might be the abstraction we were > looking for to ensure Action 2 isn't tied to one EL. Of course, deciding > to implement the EL API by OGNL is one thing, > finding someone with the time and expertise to do it is another :) > > Do you know of an alternate implementation of the EL API and/or more > documentation about it? In my research, everywhere > I saw it mentioned it didn't make the distinction, and comments, > particularly on TSS, seemed to indicate the features I > previously mentioned were explicitly rejected (method invocation, for > example). >
In JSF 1.1, the APIs for the EL were indeed tightly bound. But that's no longer the case with JSF 1.2. The javadocs for the EL are formally still part of the JSP 2.1 spec, but are implementable separately. You can grab the spec documents (JSP and EL, bundled in one download) and the javadocs (again, bundled), at: http://jcp.org/aboutJava/communityprocess/pfd/jsr245/index2.html These are in the "Proposed Final Draft 2" state, in JCP terms, so I wouldn't expect to see much, if any, change before they go final. Ok, so we can walk away with saying we might be able to collaborate on the > EL API, provided someone steps up and ports > OGNL or an EL with a similar set of capabilities to it. I'm still not > convinced implementing WebWork as a Lifecycle > implementation would bring any value for 95% of the applications, however, > at some point, I am planing on porting Struts > Faces to Action 2 for the edge case of a WebWork app that wants to take > advantage of JSF components, the real draw of > JSF IMO, for certain pages. At which time, I'll look more into different > integration approaches like this one. That (porting Struts-Faces) is a reasonable thing to do. Not only does it help the developer who just needs a few pages with JSF components (but wants to keep their existing overall architecture), it also helps those who are trying to migrate. I guess the bottom line I think our best bet is to focus on discrete > problems like EL, validation, annotations, etc. for > integration. From a framework developer perspective, sharing APIs is > interesting, but not so for the end user, who > could probably care less. I guess I'm trying to see what advantages this > would bring to the end user. The one > capability of JSF that I'd like to use in an Action 2 application, as an > end user, is its stateful components, > particularly complex, out-of-the-box components. I'd be interested to > hear of more capabilities an Action 2 developer > would get out of such a hybrid. A strategy on my TODO list for Shale is to actually go in the other direction, by using JSF extension points to add in the processing of XWork interceptor chains. The two places this makes sense are: * Overriding the default ActionListener, which actually calls the action method. This corresponds to when an action framework invokes the "execute" or whatever method on the selected action. This takes care of per-action pipeline customizations. * Supporting the use of an XWork interceptor stack in the application controler filter part of Shale (as an alternative to the current mechanism, which lets you customize a Commons Chain command chain). This takes care of global pipeline customization. The first scenario seems pretty straightforward. I don't know XWork well enough to know whether the second strategy can actually be implemented the way I think it should (it would be necessary to split the "before" and "after" parts of the interceptor chain), but that'll become obvious when it gets attempted :-). The gain for the end user is to be able to reuse (or migrate) existing interceptors without having to rewrite everything. This is a good discussion, and I hope it can continue and be a benefit to > both communities. > > Don Craig