The problem is that there is no common ground.  Pretence is great, but not
really effective.  It will bit you in the butt later.

On 6/21/06, Don Brown <[EMAIL PROTECTED]> wrote:

You make a lot of good points, and a strong argument for rallying around
the JSF
flag.  To this end, Shale is a great idea and provides a nice realization
of
this approach.  Undoubtedly, there are many developers who think similarly
and
may not ever be interested in the Action 2 controller, and Shale should
always
be there to make their lives easier.

Others, however, may find uses for an Action 2 controller in a pure JSF
application:
  * AJAX services that return JSON/XML - The Action 2 controller separates
the
rendering of the result from the method, so the method can return objects,
and
the configurable Result can handle the JSON or XML serialization.
  * Public high-load browsing pages - The Action 2 controller provides
minimal
overhead and the possibly of completely stateless, sessionless
operation.  Web
designers can use Velocity, JSP, Freemarker, etc to create the pages.
  * Generated images - An application may have need to create charts,
graphs, or
other generated images.  Action 2 provides a framework to separate the
logic
from the rendering, and even has built-in support for JFreeChart.
  * PDF reports - Likewise, there may be a need for generated PDF reports.
Action 2 also has support for Jasper Reports, although any reporting
engine can
be easily plugged in.
  * Alternate view technologies - A section of the team may already be
familiar
with Velocity, Freemarker, or even XSLT and want to use that for the view.

Finally, the Action 2 dispatcher is actually a ServletFilter, so it is
very easy
to have both controllers work side-by-side, even in the same request.

Not every JSF application will have a need for Action 2, but putting them
together in the same Struts 2.0 release provides a single place for the
developer to learn about their options and see what fits best where.

> * Philosophically, a framework built around JSF should encourage the
> developer
>  to use facilities that are already there, so he or she will not need to
> learn
>  new concepts.

I agree common standards are important, and that is why we are looking to
see
how we can leverage standards like EL and JSF where we can.  However,
there are
cases where the standard may be lacking and it is necessary to use a
replacement
(Freemarker/Velocity, OGNL, Spring, etc).

> For navigation, "you'd use Action 2 navigation rather than navigation
> handler" means that you're giving up on the tools around for JSF
> navigation,
> and forcing a beginner that is reading a JSF book to ignore that chapter
> and learn something different.  We'll want to look at how the existing
SAF2
> navigation handler can delegate for scenarios where the developer wants
to
> use JSF navigation for some namespaces.

True, but so does Clay, Facelets, and Shale dialogs change a "pure" JSF
app, but
as long as it is optional, it shouldn't be a big deal.  That said, I
really like
your idea for delegation and am very open to putting that into Action 2.

> It's definitely possible to merge Action 2 and JSF in an application --
> you've already done that.  That's a tremendous benefit for the migration
> use
> cases, or those that just want to sprinkle some components without
> migrating.  For a new application, though, I don't care for the result,
> because it adds complexity (over pure JSF based solutions), and requires
> deveopers to deal with additional concepts and configuration files,
without
> enough  corresonding benefits to make it worth it (IMHO, of course).

But you really can't have it both ways - either you replace existing
functionality or you have duplication.  I think this is a problem even for
Shale
- duplicating resource loading, navigation, view templating, etc.

> Doesn't it really come down to which front controller you choose as the
> primary foundation of your architecture?

Yes, but in making that decision, all things equal, you should choose the
more
generic/flexible one in front.  Still, I hold to the argument that the the
decision is invalid as there is a middle ground in using both.

> Personally, I want to get out of the front controller business :-), and
> leave that problem to the MyFaces and RI teams to compete on quality and
> features.  I'd rather add value by leveraging concepts that a
JSF-oriented
> developer already has to know about, rather than adding abstraction
layers
> so I can be agnostic about the front controller that is under the
covers.

And this is why Shale needs to continue, and I'd argue, continue to exist
as
part of the larger Struts community, and a step further, under a larger
"Struts
2.0" product.  I think despite providing multiple alternatives and
solutions,
there is a common narrative we can weave to create a unified Struts
project.

Don

>
> Don
>
>
> Craig
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--
"You can lead a horse to water but you cannot make it float on its back."
~Dakota Jack~

Reply via email to