On Thu, 2 Sep 2004 22:20:33 -0700, Martin Cooper <[EMAIL PROTECTED]> wrote:
> On Thu, 2 Sep 2004 21:49:17 -0700, Craig McClanahan <[EMAIL PROTECTED]> wrote:
> > On Thu, 2 Sep 2004 13:50:30 -0700, Martin Cooper <[EMAIL PROTECTED]> wrote:
> > > On Thu, 2 Sep 2004 08:13:21 -0400, Ted Husted <[EMAIL PROTECTED]> wrote:
> > > > On Wed, 01 Sep 2004 22:28:42 -0700 (PDT), Martin Cooper wrote:
> > > > > * CVS freeze/tag date: Friday, September 3rd @ 6pm (Pacific time).
> > > >
> > > > Following discussion on the list, did we want to make that the CVS 
> > > > freeze/tag/branch date? Of course, we could always branch on the tag later too.
> > >
> > > I'd been thinking that we'd create the branch, based on the tag, when
> > > we decide we need / want it.
> > >
> > > > Once this release ships, I'd like to update the roadmap and other documents to 
> > > > reflect Servlet 2.3 as the minimum platform for Struts 1.3.x.
> > >
> > > Do we want to call that 1.3.x or 2.0.x? I'm thinking that some degree
> > > of revolution will happen in this next (2.3-based) version, as well as
> > > some logical evolution. I haven't yet seen any proposed advantages *to
> > > Struts future* listed for Servlets 2.4, and my own focus is on getting
> > > away from JSP dependencies in the core, so I'm not sure how much the
> > > 2.4/2.0 fans want to change that couldn't happen in Struts 1.3/2.0.
> > > But that's really another thread...
> > >
> >
> > I gathered that the conclusion for the "evolution" branch (which,
> > IMHO, should be called 1.3 if it's going to focus on things like the
> > chain version of RequestProcessor but remain fundamentally backwards
> > compatible).
> 
> The conclusion was... I think you didn't quite finish the sentence. ;-)
> 
> One example of a concrete set of changes that I want to make in a
> Servlets 2.3 compliant "next" version of Struts will involve the use
> of a filter for file uploads, as well as significant changes to the
> interfaces involved. These are interfaces that are exposed as hooks
> today, so this would certainly break backwards compatibility. That
> makes it questionable, in my mind, as to whether we should make such
> changes in a dot release.
> 
> And then there's the question of changing the core Servlets dependency
> in a dot release. Some time ago, we decided that we couldn't do that
> in a dot release, and needed to wait for a major version hike. We're
> allowed to change our minds, of course, but I just wanted to remind
> folks of what we had agreed on a while ago. ;-)
> 
> If calling a "next" release 1.3 means we get to upgrade the dependency
> to 2.3, but have to remain backwards compatible in all other respects,
> then I think that would be unnecessarily limiting, and would suggest
> that we call it 2.0 instead.
> 
> Of course, it's conceivable that we have a 2.0 based on Servlets 2.3
> and a 3.0 based on Servlets 2.4 in development at the same time (a la
> Tomcat from a couple of years ago), but I think this would be
> unfortunate, especially if both groups were changing interfaces in
> different ways.
> 
> > FWIW, here are some specific technical benefits (for the
> > framework architecture, for applications based on it, or both) if we
> > were to choose Servlet 2.4 over Servlet 2.3:
> >
> > * HttpServletRequest.setCharacterEncoding() allows applications to
> >  resolve nearly all the ambiguities of parsing request parameters in
> >  the right encoding (which is a smaller number of problems than it used
> >  to be in 2.4 generally, because the rules have been tightened, and
> >  because of the next feature).
> >
> > * You can define (in web.xml) your own mapping table from locale
> >  to character encoding, rather than relying on the container's
> >  undocumented (and likely non-portable) defaults.
> >
> > * Filters can be declared to run on RequestDispatcher.forward() calls
> >  as well as on the original request.  Without this, it's basically impossible
> >  to write use-case-specific Filters in an MVC framework that uses
> >  RD.forward() the way Struts does today.
> >
> > * ServletRequestListener fleshes out the lifecycle model, so you can do things
> >  like adding some resource to the request attributes, and knowing that it will
> >  get cleaned up (after the response has been rendered by the JSP page or
> >  whatever) by your listener.
> >
> > * ServletRequestAttributeListener can listen to changes on your request
> >  attributes, similar to how HttpSessionAttributeListener and
> >  ServletContextAttributeListener work in 2.3.
> >
> > * On an HttpSessionBindingListener, the listener is invoked when you actually
> >  expect it to be at session end (*before* the session is invalidated,
> > rather than after).
> >
> > * "Welcome Files" can now be servlets, so you can use "index.do" instead
> >  of having an "index.jsp" that forwards to an action that does your setup.
> >
> > * Deployment descriptors (web.xml) that conform to the 2.4 schema can
> >  have their elements listed in any order, instead of the pretty arbitrary
> >  sequence required by 2.3.
> 
> These are all nice things to have, and would no doubt help clean some
> things up somewhat and fix some issues in people's Struts apps. But
> what I was really trying to ask was: What new Struts features do
> people have in mind that would *require* the use of Servlets 2.4 to
> accomplish?
> 
> > The benefits of JSP 2.0 over 1.2 are even more compelling, but have
> > been discussed before.  My favorite three favorite features are EL
> > everywhere, tag files (a way to create "simple UI components" with
> > just JSP code), and the simple tag API.
> >
> > Counterbalancing all of this, of course, is the question of installed
> > base.  And, of course, that is a question that has a different answer
> > at different times.  If we want to work towards a GA quality 1.3
> > release in 3-6 months (possible if the set of changes is limited),
> > than staying with 2.3/1.2 makes a lot of sense.  But if it takes us
> > the more typical 12-18 months, where do *you* think the world is going
> > to be by then?
> 
> To be honest, I expect that some app server vendors will not be much
> further along than they are today. It is only recently, for example,
> that WebSphere has even supported JDK 1.4, and not *that* long since
> IBM and BEA introduced support for Servlets 2.3 / JSP1.2. However, I
> would be very happy to be wrong about that. ;-)

One other related point: I cannot make architectural decisions for my
products based on the hope that the container support will be there
before I'm done - something I would have no control of. That means
that, realistically, I would be unable to *start* development using a
Servlet 2.4-based version of Struts until the app servers were
available, at least as Beta versions. With a Servlets 2.3-based
version of Struts, I can start development as soon as I believe that
the necessary core interfaces are stable - and, of course, I have the
ability to help make that happen in the timeframe that I need.

--
Martin Cooper


> 
> --
> Martin Cooper
> 
> 
> 
> 
> > NOTE:  None of this is to suggest that maintenance activities on 1.2.x
> > should not continue.  However, it should, IMHO, be focused on bug
> > fixes rather than feature enhancements, and should (of course) remain
> > based on Servlet 2.2 / JSP 1.1.
> >
> > > --
> > > Martin Cooper
> >
> > Craig
> >
>

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

Reply via email to