I'm +1 on JDK 1.4 (+0 on JDK 1.5).  

I also agree with Craig's sentiments on keeping things as simple as
possible and not reinventing what JSF (and other frameworks) can do
for you.

The more I look at JSF, the more impressed I am with it.  In many ways
it seems to be a signifcant improvement upon Struts but without the
restrictions on being backwards compatible.  Not suprising since Craig
was key in both of these efforts ...

I definitely feel that JSF should fit seemlessly into the new Shale
effort.  Right now its a bit awkward integrating Struts and JSF. 
That's to be expected because Struts was not designed with JSF in
mind.  Going forward, however, I think we diminish the value of both
Struts and JSF if we don't take JSF strongly into account.

>From reading Craig's proposal and comment here, it sounds like that is
his goal.  I just wanted to second that notion.

sean


On Tue, 26 Oct 2004 09:34:07 -0700, Craig McClanahan <[EMAIL PROTECTED]> wrote:
> Just time for a couple of notes this morning.
> 
> I'm +0 on JDK 5.0 (nee 1.5) depending on how long we really think this
> is going to take.  The "struts core" part of this isn't really huge or
> complicated, but asking a Struts developer for a timeline is probably
> a silly thing to do :-).
> 
> Other comments inline.
> 
> 
> On Tue, 26 Oct 2004 09:42:27 -0400, Ted Husted <[EMAIL PROTECTED]> wrote:
> > > On Mon, 25 Oct 2004 04:56:45 +0000, [EMAIL PROTECTED] wrote:
> > >> URL: http://wiki.apache.org/struts/StrutsShale
> >
> > A few more more notes.
> >
> > > 2.4 View Controller
> > > 3.3 View (Presentation) Tier APIs
> > > Proposal:: JavaServer Faces 1.1
> >
> > Does the View Controller need to be tied to JSF?
> >
> > Could the interface be agnostic and a FacesViewController be provided that is 
> > specific to JSF?
> >
> > Or, could there be a [org.apache.shale.faces] package, allowing room for, say, a 
> > [org.apache.shale.xlst] package or a [org.apache.shale.jstl] package or a 
> > [org.apache.shale.velocity] ?
> >
> > I'm not saying that we would have to provide all of these packages for Shale to be 
> > complete. I'd just like to position Struts 2.x so it could be everyone's 
> > controller :) -- if there are volunteers ready, willing, and able to make it so.
> 
> The interface as currently defined is not dependent on JSF, nor need
> it be for its own purposes.  Applications that implement a
> ViewController can stay *mostly* agnostic of the view tier technology,
> but you still have to decide at some point:
> 
> * How do I bind my model data to my user interface "components"?
>  (With JSF, you use value bindings on the components to
>  properties in your view controller, and/or "binding" attributes
>  to bind the actual component instances.)
> 
> * How do I send error messages back to the user interface?
>  (With JSF, you call FacesContext.addMessage().)
> 
> * How do I initiate page navigation? (With JSF, the string outcome
>  returned by an "action" method is fed through the page navigation
>  rules you've configured to choose the next page, or "null"
>  return means stay on the same page).
> 
> All of those sorts of decisions have predefined answers in JSF, and
> abstracting them would require building infrastructure (into Struts
> Core) to bridge that gap into any other view tier technology you want,
> and/or reinventing a lot of what JSF (the managed beans, page
> navigation, and so on) already has.  That's not an effort I'm
> interested in actually doing, and IMHO it would needlessly complicate
> the overall architecture -- but it's technically feasible.
> 
> >
> > > 2.5 Functionality Not Included In Struts 2.0 Core
> >
> > Would any view packages be bundled with the 2.x core, or would the core be the 
> > Application controller and interfaces for the Dialog and View controllers (and any 
> > implementation-independent utilities).
> >
> 
> My current view is that no view *components* would be included in the
> core -- although, if we accept the proposal to base the core on JSF
> for its infrastructure capabilities, we'd need to have a JSF
> implementation available (even if an alternative view technology was
> used for the actual presentation).  The core would also include
> preregistration of JSF plugins like a custom ViewHandler that would
> actually implement the ViewHandler calling-in contracts (but that's
> invisible to people using it; JSF recognizes META-INF/faces-config.xml
> files inside a JAR at startup time to add stuff like this).
> 
> It's clearly reasonable to distribute separate view tier packages,
> including things like useful components (the way MyFaces does) and/or
> extra goodies for things like validation.
> 
> > > 2.5 Functionality Not Included In Struts 2.0 Core
> >
> > Since "client-side" validation is mentioned, are we leaving the door open for 
> > "server-side" validation?
> >
> 
> My current view is that UI validation (as opposed to business rules
> that might require database lookups, like authenticating a user in a
> login screen) should be defined in the view tier.  Whether it's
> implemented client side or server side (or both) is an implementation
> detail.  Here's some options (again presuming a choice of JSF):
> 
> * Standard JSF per-component validators (server side only for
>  the standard components, but smarter components could do
>  client side as well)
> 
> * Special form tag component that hooks into an externally defined
>  set of rules that enforce the rules both client and server side
>  (this is what struts-faces does to hook into Commons Validator)
> 
> * Special JSF ActionListener plugin (the part of JSF that receives
>  submit buttons and decides what view controller to load, and what
>  action method to call) that would hook in to the validator framework
>  (this would work with the standard form component too)
> 
> In none of the cases would the view controller's action method be
> called if there were validation errors (exactly analogous to how we
> don't call an Action if errors existed).
> 
> > Perhaps as an abstract link in the request processing chain?
> 
> The third option above is probably the most elegant, and would
> certainly lend itself to inserting an arbitrary request processing
> chain of your own, which could include validation or anything else you
> wanted to do solely on form submits (versus user interface events like
> expanding a node in a tree control, where the component changes state
> and just rerenders the page).
> 
> >
> > Would there be an interface for the Application Controller?
> >
> 
> Not sure.  It could be as simple as a set of servlet filters that you
> configure together, or it could be some single filter (to make web.xml
> manipulation easier) that has a configuration file for the services
> that are defined at this level (perhaps driven by chains).
> 
> > > [New topic] 2.6 Unit Tests
> >
> > Would it be all right if I contributed some unit tests to the codebase 
> > accompanying the proposal?
> >
> 
> Absolutely.  There's an empty spot in SVN ("src/test") just waiting
> for this kind of thing to be added.
> 
> In fact, I'd like to go one further in the big picture -- I'd like us
> to include unit tests in any example application that we ship, so that
> we can demonstrate best practices for unit testing a Struts-based
> appication.
> 
> This will also show off one particular architectural change that
> Struts 1.x gets knocked for -- it's much easier to unit test a view
> controller ... all your test framework has to do is call into the bean
> in the right order -- no mocks unless you need to deal with error
> messages (and we might want to set up an abstraction to make that
> easier too).
> 
> > I realize that everything is subject to change, and the tests would have be 
> > resynched with any changes, but I'm up for that :)
> >
> > Obviously, the tests would not be much at this point, but I want to be sure we 
> > start out on the right foot.
> >
> 
> +1 on being aggressive about unit testing the framework itself (and
> apps, as described above).
> 
> > > 3.8 Logging APIs
> >
> > Proposal: Commons Logging
> >
> > +1
> >
> 
> Craig
> 
> >
> >
> >
> > On Tue, 26 Oct 2004 01:14:40 -0400, Ted Husted wrote:
> > >> 3.1 Java2 Standard Edition APIs
> > >>
> > > I'd be +1 for J2SE 5.0
> > >
> > > * http://java.sun.com/j2se/1.5.0/index.jsp
> > >
> > > Since Struts 1.x is in evolutionary mode, we might as well start
> > > the  revolution based on the latest and greatest. We'd then be able
> > > to "take advantage of annotations, generics, and all that". From
> > > the traffic on the list, I have the feeling many of us have JDK 5.0
> > > itches. I'm getting one myself :)
> > >
> > > As Apache Beehive reasoned, by the time we are done, it will be
> > > widely deployed. If we both base our work on JDK 5.0, we might help
> > > that become a self-fulfilling prophesy :)
> > >
> > >
> > >> 3.5 Service Provisioning APIs
> > >> From my research so far, I like Spring's capabilities in this
> > >> area the best, but am open to other suggestions.
> > >>
> > > +1
> > >
> > >
> > > On Mon, 25 Oct 2004 04:56:45 +0000, [EMAIL PROTECTED] wrote:
> > >
> > >> Date: 2004-10-24T21:56:45
> > >> Editor: CraigMcClanahan <[EMAIL PROTECTED]>
> > >> Wiki: Apache Struts Wiki
> > >> Page: StrutsShale
> > >> URL: http://wiki.apache.org/struts/StrutsShale
> > >>
> > >> Pointers to information about the "Shale" proposal
> > >>
> > >> New Page:
> > >>
> > >> This is a proposal for an overall architecture for Struts 2.0,
> > >> based on dividing the controller tier into
> > >> modular layers, and dramatically increasing the usability of the
> > >> controller functionality.
> > >>
> > >> * [http://svn.apache.org/viewcvs.cgi/*checkout*
> > >> /struts/trunk/contrib/struts-shale/README.html Proposal Details]
> > >> (latest SVN version)
> > >> * [http://www.apache.org/~craigmcc/struts-shale/ API Javadocs]
> > >> (periodically updated)
> > >>
> > >>
> > >> ------------------------------------------------------------------
> > >> --  - To unsubscribe, e-mail: [EMAIL PROTECTED]
> > >> For  additional commands, e-mail: [EMAIL PROTECTED]
> > >
> > >
> > > --------------------------------------------------------------------
> > > - To unsubscribe, e-mail: [EMAIL PROTECTED] For
> > > additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> > ---------------------------------------------------------------------
> >
> >
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> 
> ---------------------------------------------------------------------
> 
> 
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
>

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

Reply via email to