Re: Planning for 1.1 beta 2

2002-06-27 Thread Ted Husted

Craig R. McClanahan wrote:
 I think the basic Struts download needs at least an initial walkthrough on
 all of the technologies it provides.  Much a I'd love to be lazy and rely
 on the incredible amount of effort others have put into this :-), we can't
 just have nothing.


I could do an encylopedia-style paragraph about each of the technologies
enumerated at the top of 

http://jakarta.apache.org/struts/userGuide/introduction.html

and then move the rest of the page into another section. That would at
least clearly define our terms.


Much more than that, and we'd start to cover the same ground as the Web
Services Tutorial

http://java.sun.com/webservices/docs/1.0/tutorial/index.html



-- Ted Husted, Husted dot Com, Fairport NY US
-- Java Web Development with Struts
-- Tel: +1 585 737-3463
-- Web: http://husted.com/about/services

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




Re: Planning for 1.1 beta 2

2002-06-27 Thread Ted Husted

I started a Core Technologies page that we could insert before the
Introduction as Chapter zero. 

These gives a brief description of each of our enabling technologies and
links elsewhere for more detail. 

If we wanted to add more detail later, it would be easy to expand on
this page. 

http://jakarta.apache.org/struts/userGuide/technologies.html

I only did the first three this morning, but should be able to do the
rest tonight.

-T.


Ted Husted wrote:
 I could do an encylopedia-style paragraph about each of the technologies
 enumerated at the top of
 
 http://jakarta.apache.org/struts/userGuide/introduction.html
 
 and then move the rest of the page into another section. That would at
 least clearly define our terms.
 
 Much more than that, and we'd start to cover the same ground as the Web
 Services Tutorial
 
 http://java.sun.com/webservices/docs/1.0/tutorial/index.html

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




Re: Planning for 1.1 beta 2

2002-06-27 Thread Cedric Dumoulin


  +1 for me

Craig R. McClanahan wrote:

 I'd like to continue swatting the remaining bugs in 1.1, and improve the
 existing documentation, with a goal to release a beta 2 of Strust 1.1 in
 the near future (ideally by July 8 or so).  Part of my motivation for the
 timing is that Sun is shutting down next week, so I will have some quality
 time hours available when I'm actually awake :-).

 Are the other committers interested in working towards such a goal?

 One thing I'd like to add to the TODO list is a review of all our custom
 tag implementations versus the JSP spec requirements -- particularly in
 the area of tag pooling and when the bodyContent can be accessed.  The
 recent work on Jasper2 (in Tomcat 4.1.x), which will support tag pooling,
 has indicated we probably have some tags that don't completely conform to
 the contracts -- and we need to fix that before any final release.

 Craig

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


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




Re: Planning for 1.1 beta 2

2002-06-26 Thread James Holmes

+1 and more than happy to help with bugs and docs.

-james
[EMAIL PROTECTED]
http://www.jamesholmes.com/struts/

--- Craig R. McClanahan [EMAIL PROTECTED] wrote:
 I'd like to continue swatting the remaining bugs in
 1.1, and improve the
 existing documentation, with a goal to release a
 beta 2 of Strust 1.1 in
 the near future (ideally by July 8 or so).  Part of
 my motivation for the
 timing is that Sun is shutting down next week, so I
 will have some quality
 time hours available when I'm actually awake :-).
 
 Are the other committers interested in working
 towards such a goal?
 
 One thing I'd like to add to the TODO list is a
 review of all our custom
 tag implementations versus the JSP spec requirements
 -- particularly in
 the area of tag pooling and when the bodyContent can
 be accessed.  The
 recent work on Jasper2 (in Tomcat 4.1.x), which will
 support tag pooling,
 has indicated we probably have some tags that don't
 completely conform to
 the contracts -- and we need to fix that before any
 final release.
 
 Craig
 
 
 
 --
 To unsubscribe, e-mail:  
 mailto:[EMAIL PROTECTED]
 For additional commands, e-mail:
 mailto:[EMAIL PROTECTED]
 


__
Do You Yahoo!?
Yahoo! - Official partner of 2002 FIFA World Cup
http://fifaworldcup.yahoo.com

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




RE: Planning for 1.1 beta 2

2002-06-26 Thread Martin Cooper

+1 on Beta 2 soon (although my company isn't shutting down next week :).

+1 also on reviewing the tags. I fixed one or two of these a while ago -
they showed up after I started using Resin 2.x - but there are likely more
that I didn't stumble across. A systematic review would be good.

Related to the tag issue, I had the thought that perhaps we should remove
(almost) all of the release() implementations in the Struts tags. I think
many people are confused about when release() is (supposed to be) called,
and the implementations we have foster the belief that it will be called to
reset property values between uses of a tag instance. Or would this be too
drastic a change for now?

--
Martin Cooper


 -Original Message-
 From: Craig R. McClanahan [mailto:[EMAIL PROTECTED]]
 Sent: Wednesday, June 26, 2002 11:05 AM
 To: [EMAIL PROTECTED]
 Subject: Planning for 1.1 beta 2
 
 
 I'd like to continue swatting the remaining bugs in 1.1, and 
 improve the
 existing documentation, with a goal to release a beta 2 of 
 Strust 1.1 in
 the near future (ideally by July 8 or so).  Part of my 
 motivation for the
 timing is that Sun is shutting down next week, so I will have 
 some quality
 time hours available when I'm actually awake :-).
 
 Are the other committers interested in working towards such a goal?
 
 One thing I'd like to add to the TODO list is a review of all 
 our custom
 tag implementations versus the JSP spec requirements -- 
 particularly in
 the area of tag pooling and when the bodyContent can be accessed.  The
 recent work on Jasper2 (in Tomcat 4.1.x), which will support 
 tag pooling,
 has indicated we probably have some tags that don't 
 completely conform to
 the contracts -- and we need to fix that before any final release.
 
 Craig
 
 
 
 --
 To unsubscribe, e-mail:   
mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]



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




RE: Planning for 1.1 beta 2

2002-06-26 Thread Craig R. McClanahan



On Wed, 26 Jun 2002, Martin Cooper wrote:

 Date: Wed, 26 Jun 2002 11:49:49 -0700
 From: Martin Cooper [EMAIL PROTECTED]
 Reply-To: Struts Developers List [EMAIL PROTECTED]
 To: 'Struts Developers List' [EMAIL PROTECTED]
 Subject: RE: Planning for 1.1 beta 2

 +1 on Beta 2 soon (although my company isn't shutting down next week :).

 +1 also on reviewing the tags. I fixed one or two of these a while ago -
 they showed up after I started using Resin 2.x - but there are likely more
 that I didn't stumble across. A systematic review would be good.

 Related to the tag issue, I had the thought that perhaps we should remove
 (almost) all of the release() implementations in the Struts tags. I think
 many people are confused about when release() is (supposed to be) called,
 and the implementations we have foster the belief that it will be called to
 reset property values between uses of a tag instance. Or would this be too
 drastic a change for now?

Aside from the educational benefit (which I'm not sure that I really buy
into), releasing object references when the page implementation calls
release() would seem to be a good thing to do anyway.

I'd rather point people to the spec (which, in JSP 1.2, has very clear
lifecycle diagrams showing how it works, in section 10.1) and ensure that
our tags take advantage of everything the spec lets us do to improve
performance.


 --
 Martin Cooper


Craig



  -Original Message-
  From: Craig R. McClanahan [mailto:[EMAIL PROTECTED]]
  Sent: Wednesday, June 26, 2002 11:05 AM
  To: [EMAIL PROTECTED]
  Subject: Planning for 1.1 beta 2
 
 
  I'd like to continue swatting the remaining bugs in 1.1, and
  improve the
  existing documentation, with a goal to release a beta 2 of
  Strust 1.1 in
  the near future (ideally by July 8 or so).  Part of my
  motivation for the
  timing is that Sun is shutting down next week, so I will have
  some quality
  time hours available when I'm actually awake :-).
 
  Are the other committers interested in working towards such a goal?
 
  One thing I'd like to add to the TODO list is a review of all
  our custom
  tag implementations versus the JSP spec requirements --
  particularly in
  the area of tag pooling and when the bodyContent can be accessed.  The
  recent work on Jasper2 (in Tomcat 4.1.x), which will support
  tag pooling,
  has indicated we probably have some tags that don't
  completely conform to
  the contracts -- and we need to fix that before any final release.
 
  Craig
 
 
 
  --
  To unsubscribe, e-mail:
 mailto:[EMAIL PROTECTED]
 For additional commands, e-mail: mailto:[EMAIL PROTECTED]



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




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




Re: Planning for 1.1 beta 2

2002-06-26 Thread Rob Leland

Craig R. McClanahan wrote:


Are the other committers interested in working towards such a goal?

+1, I'll try to finish up the UML for classes.
  and put in place holders for the added package descriptions.
  Plus pitch in else where.

-Rob


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




RE: Planning for 1.1 beta 2

2002-06-26 Thread Martin Cooper



 -Original Message-
 From: Craig R. McClanahan [mailto:[EMAIL PROTECTED]]
 Sent: Wednesday, June 26, 2002 12:45 PM
 To: Struts Developers List
 Subject: RE: Planning for 1.1 beta 2
 
 
 
 
 On Wed, 26 Jun 2002, Martin Cooper wrote:
 
  Date: Wed, 26 Jun 2002 11:49:49 -0700
  From: Martin Cooper [EMAIL PROTECTED]
  Reply-To: Struts Developers List [EMAIL PROTECTED]
  To: 'Struts Developers List' [EMAIL PROTECTED]
  Subject: RE: Planning for 1.1 beta 2
 
  +1 on Beta 2 soon (although my company isn't shutting down 
 next week :).
 
  +1 also on reviewing the tags. I fixed one or two of these 
 a while ago -
  they showed up after I started using Resin 2.x - but there 
 are likely more
  that I didn't stumble across. A systematic review would be good.
 
  Related to the tag issue, I had the thought that perhaps we 
 should remove
  (almost) all of the release() implementations in the Struts 
 tags. I think
  many people are confused about when release() is (supposed 
 to be) called,
  and the implementations we have foster the belief that it 
 will be called to
  reset property values between uses of a tag instance. Or 
 would this be too
  drastic a change for now?
 
 Aside from the educational benefit (which I'm not sure that I 
 really buy
 into), releasing object references when the page implementation calls
 release() would seem to be a good thing to do anyway.

I was thinking that release() is only going to get called when the tag
instance itself is going away, so those object references will be released
also. But you're right, it doesn't hurt to do this.

However, I think it would be good to make sure we set everything to null,
rather than to literals or defined constants, so that it's clear we're not
trying to reset to a known state.

 I'd rather point people to the spec (which, in JSP 1.2, has very clear
 lifecycle diagrams showing how it works, in section 10.1) and 
 ensure that
 our tags take advantage of everything the spec lets us do to improve
 performance.

Yes, I've pointed numerous people to the JSP 1.2 spec on exactly this issue.

--
Martin Cooper

 
 
  --
  Martin Cooper
 
 
 Craig
 
 
 
   -Original Message-
   From: Craig R. McClanahan [mailto:[EMAIL PROTECTED]]
   Sent: Wednesday, June 26, 2002 11:05 AM
   To: [EMAIL PROTECTED]
   Subject: Planning for 1.1 beta 2
  
  
   I'd like to continue swatting the remaining bugs in 1.1, and
   improve the
   existing documentation, with a goal to release a beta 2 of
   Strust 1.1 in
   the near future (ideally by July 8 or so).  Part of my
   motivation for the
   timing is that Sun is shutting down next week, so I will have
   some quality
   time hours available when I'm actually awake :-).
  
   Are the other committers interested in working towards 
 such a goal?
  
   One thing I'd like to add to the TODO list is a review of all
   our custom
   tag implementations versus the JSP spec requirements --
   particularly in
   the area of tag pooling and when the bodyContent can be 
 accessed.  The
   recent work on Jasper2 (in Tomcat 4.1.x), which will support
   tag pooling,
   has indicated we probably have some tags that don't
   completely conform to
   the contracts -- and we need to fix that before any final release.
  
   Craig
  
  
  
   --
   To unsubscribe, e-mail:
  mailto:[EMAIL PROTECTED]
  For additional commands, e-mail: 
 mailto:[EMAIL PROTECTED]
 
 
 
  --
  To unsubscribe, e-mail:   
 mailto:[EMAIL PROTECTED]
  For additional commands, e-mail: 
 mailto:[EMAIL PROTECTED]
 
 
 
 
 --
 To unsubscribe, e-mail:   
 mailto:[EMAIL PROTECTED]
 For additional commands, e-mail: 
 mailto:[EMAIL PROTECTED]
 
 


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




RE: Planning for 1.1 beta 2

2002-06-26 Thread Craig R. McClanahan



On Wed, 26 Jun 2002, Martin Cooper wrote:

 Date: Wed, 26 Jun 2002 15:55:19 -0700
 From: Martin Cooper [EMAIL PROTECTED]
 Reply-To: Struts Developers List [EMAIL PROTECTED]
 To: 'Struts Developers List' [EMAIL PROTECTED]
 Subject: RE: Planning for 1.1 beta 2



  -Original Message-
  From: Craig R. McClanahan [mailto:[EMAIL PROTECTED]]
  Sent: Wednesday, June 26, 2002 12:45 PM
  To: Struts Developers List
  Subject: RE: Planning for 1.1 beta 2
 
 
 
 
  On Wed, 26 Jun 2002, Martin Cooper wrote:
 
   Date: Wed, 26 Jun 2002 11:49:49 -0700
   From: Martin Cooper [EMAIL PROTECTED]
   Reply-To: Struts Developers List [EMAIL PROTECTED]
   To: 'Struts Developers List' [EMAIL PROTECTED]
   Subject: RE: Planning for 1.1 beta 2
  
   +1 on Beta 2 soon (although my company isn't shutting down
  next week :).
  
   +1 also on reviewing the tags. I fixed one or two of these
  a while ago -
   they showed up after I started using Resin 2.x - but there
  are likely more
   that I didn't stumble across. A systematic review would be good.
  
   Related to the tag issue, I had the thought that perhaps we
  should remove
   (almost) all of the release() implementations in the Struts
  tags. I think
   many people are confused about when release() is (supposed
  to be) called,
   and the implementations we have foster the belief that it
  will be called to
   reset property values between uses of a tag instance. Or
  would this be too
   drastic a change for now?
 
  Aside from the educational benefit (which I'm not sure that I
  really buy
  into), releasing object references when the page implementation calls
  release() would seem to be a good thing to do anyway.

 I was thinking that release() is only going to get called when the tag
 instance itself is going away, so those object references will be released
 also. But you're right, it doesn't hurt to do this.

 However, I think it would be good to make sure we set everything to null,
 rather than to literals or defined constants, so that it's clear we're not
 trying to reset to a known state.


Except that we are ... even though the JSP page compiler doesn't know
anything about it.  And that's actually part of the problem.  Our docs
promise that some attributes will behave as if they have default values,
which we've implemented by pre-initializing the corresponding property
values.

Everything works fine if tags aren't reused, or the tag implementation
never modifies the values of the attributes set by the generated code of
the page.  However, if either of these conditions is violated, we're going
to have problems with the wrong value the second time through the use of a
tag instance, if the value was not set from the tag but was modified the
first time through.

That's a long winded way of saying I think I agree with Martin that we
need to clear everything in release().  That also implies we need to
establish a convention to establish the initial state of things -- perhaps
by overriding setPageContext() which is guaranteed to be called each time.

  I'd rather point people to the spec (which, in JSP 1.2, has very clear
  lifecycle diagrams showing how it works, in section 10.1) and
  ensure that
  our tags take advantage of everything the spec lets us do to improve
  performance.

 Yes, I've pointed numerous people to the JSP 1.2 spec on exactly this issue.

 --
 Martin Cooper


Craig


 
  
   --
   Martin Cooper
  
 
  Craig
 
 
  
-Original Message-
From: Craig R. McClanahan [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, June 26, 2002 11:05 AM
To: [EMAIL PROTECTED]
Subject: Planning for 1.1 beta 2
   
   
I'd like to continue swatting the remaining bugs in 1.1, and
improve the
existing documentation, with a goal to release a beta 2 of
Strust 1.1 in
the near future (ideally by July 8 or so).  Part of my
motivation for the
timing is that Sun is shutting down next week, so I will have
some quality
time hours available when I'm actually awake :-).
   
Are the other committers interested in working towards
  such a goal?
   
One thing I'd like to add to the TODO list is a review of all
our custom
tag implementations versus the JSP spec requirements --
particularly in
the area of tag pooling and when the bodyContent can be
  accessed.  The
recent work on Jasper2 (in Tomcat 4.1.x), which will support
tag pooling,
has indicated we probably have some tags that don't
completely conform to
the contracts -- and we need to fix that before any final release.
   
Craig
   
   
   
--
To unsubscribe, e-mail:
   mailto:[EMAIL PROTECTED]
   For additional commands, e-mail:
  mailto:[EMAIL PROTECTED]
  
  
  
   --
   To unsubscribe, e-mail:
  mailto:[EMAIL PROTECTED]
   For additional commands, e-mail:
  mailto:[EMAIL PROTECTED]
  
  
 
 
  --
  To unsubscribe, e-mail:
  mailto:[EMAIL PROTECTED]
  For additional commands, e-mail:
  mailto:[EMAIL PROTECTED

Re: Planning for 1.1 beta 2

2002-06-26 Thread Ted Husted

For the docs, do you think it might be useful to add a new 1.1 section
and march through the new features there, rather than patch the 1.0
docs?

A 1.1 section might be easier to create, since we won't have to worry
about segues, and will do double-duty as an upgraders guide. Of course,
we could still go back and put in references to the 1.1 features in the
appropriate places int the 1.0 chapters. Just thinking it might be
easier if we don't have to fuss with splicing the narrative. 

Generally, I'd like to try and start reusing more of the JavaDocs in the
User Guide. It seems to me that the User Guide should organize the
presentation of the classes and add usage examples, but that our
(meaning mostly Craig's =:0) JavaDocs are so good, maybe we should
cutting and pasting more of those over, rather than writing the same
thing in different words. Long term, this would also help keep things
synched, since it would be easier to conform the guide to the JavaDocs
(and vice versa). More like what we did with the Developers Guides, I
guess, except that there would one(s) for the Action, Config, and Util
classes. 

I don't want to get into that for the 1.0 User Guide now, but we could
start on that path for the 1.1 chapter, and see how it goes.

Meanwhile, I've set up a diff section in the release notes with
pointers to every thing with 1.1 features or deprecations, that could
then be used to help create the 1.1 doc section. 

http://jakarta.apache.org/struts/userGuide/release-notes.html#diff

AFAIK, the JavaDocs are all updated with @since 1.1's now, and refer to
execute rather than perform, and so forth. The ActionServlet docs may
need to expand on the new flow, but otherwise we seem to be good on the
JavaDoc front. The next thing I was going to do was finish-up on the
release notes, so that everything linked in the diff section is
mentioned above, and maybe trundle through the CVS mail log.

-T.

James Holmes wrote:
 
 +1 and more than happy to help with bugs and docs.
 
 -james
 [EMAIL PROTECTED]
 http://www.jamesholmes.com/struts/

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




RE: Planning for 1.1 beta 2

2002-06-26 Thread Martin Cooper



 -Original Message-
 From: Craig R. McClanahan [mailto:[EMAIL PROTECTED]]
 Sent: Wednesday, June 26, 2002 4:44 PM
 To: Struts Developers List
 Subject: RE: Planning for 1.1 beta 2
 
 
 
 
 On Wed, 26 Jun 2002, Martin Cooper wrote:
 
  Date: Wed, 26 Jun 2002 15:55:19 -0700
  From: Martin Cooper [EMAIL PROTECTED]
  Reply-To: Struts Developers List [EMAIL PROTECTED]
  To: 'Struts Developers List' [EMAIL PROTECTED]
  Subject: RE: Planning for 1.1 beta 2
 
 
 
   -Original Message-
   From: Craig R. McClanahan [mailto:[EMAIL PROTECTED]]
   Sent: Wednesday, June 26, 2002 12:45 PM
   To: Struts Developers List
   Subject: RE: Planning for 1.1 beta 2
  
  
  
  
   On Wed, 26 Jun 2002, Martin Cooper wrote:
  
Date: Wed, 26 Jun 2002 11:49:49 -0700
From: Martin Cooper [EMAIL PROTECTED]
Reply-To: Struts Developers List [EMAIL PROTECTED]
To: 'Struts Developers List' [EMAIL PROTECTED]
Subject: RE: Planning for 1.1 beta 2
   
+1 on Beta 2 soon (although my company isn't shutting down
   next week :).
   
+1 also on reviewing the tags. I fixed one or two of these
   a while ago -
they showed up after I started using Resin 2.x - but there
   are likely more
that I didn't stumble across. A systematic review would be good.
   
Related to the tag issue, I had the thought that perhaps we
   should remove
(almost) all of the release() implementations in the Struts
   tags. I think
many people are confused about when release() is (supposed
   to be) called,
and the implementations we have foster the belief that it
   will be called to
reset property values between uses of a tag instance. Or
   would this be too
drastic a change for now?
  
   Aside from the educational benefit (which I'm not sure that I
   really buy
   into), releasing object references when the page 
 implementation calls
   release() would seem to be a good thing to do anyway.
 
  I was thinking that release() is only going to get called 
 when the tag
  instance itself is going away, so those object references 
 will be released
  also. But you're right, it doesn't hurt to do this.
 
  However, I think it would be good to make sure we set 
 everything to null,
  rather than to literals or defined constants, so that it's 
 clear we're not
  trying to reset to a known state.
 
 
 Except that we are ... even though the JSP page compiler doesn't know
 anything about it.  And that's actually part of the problem.  Our docs
 promise that some attributes will behave as if they have 
 default values,
 which we've implemented by pre-initializing the corresponding property
 values.
 
 Everything works fine if tags aren't reused, or the tag implementation
 never modifies the values of the attributes set by the 
 generated code of
 the page.  However, if either of these conditions is 
 violated, we're going
 to have problems with the wrong value the second time through 
 the use of a
 tag instance, if the value was not set from the tag but was 
 modified the
 first time through.

If the tag implementation (not including release()) modifies the values of
properties, then yes, we're in big trouble. This is the case I've come
across before.

If I'm understanding you correctly, you're saying that release() also causes
a problem by modifying the values. The only way I can see this would happen
is if the container called release() and then reused the tag. At first, I
thought this wasn't legal, but looking at the spec again, I see that it is
in fact permitted. It wouldn't make much sense, performance wise, for a
container to do that, but it could, so I guess we have to deal with it.

 That's a long winded way of saying I think I agree with Martin that we
 need to clear everything in release().  That also implies we need to
 establish a convention to establish the initial state of 
 things -- perhaps
 by overriding setPageContext() which is guaranteed to be 
 called each time.

I don't think we can use setPageContext(), though, or setParent(), without
some pain. As far as I can tell, the spec does not require that these be
called before the attribute properties are set. If they are, then we could
set the defaults there. However, if they're not, we'd have to keep track of
which properties were set, so that we would know which ones not to meddle
with.

--
Martin Cooper

   I'd rather point people to the spec (which, in JSP 1.2, 
 has very clear
   lifecycle diagrams showing how it works, in section 10.1) and
   ensure that
   our tags take advantage of everything the spec lets us do 
 to improve
   performance.
 
  Yes, I've pointed numerous people to the JSP 1.2 spec on 
 exactly this issue.
 
  --
  Martin Cooper
 
 
 Craig
 
 
  
   
--
Martin Cooper
   
  
   Craig
  
  
   
 -Original Message-
 From: Craig R. McClanahan [mailto:[EMAIL PROTECTED]]
 Sent: Wednesday, June 26, 2002 11:05 AM
 To: [EMAIL PROTECTED]
 Subject: Planning for 1.1 beta 2


 I'd

Re: Planning for 1.1 beta 2

2002-06-26 Thread Craig R. McClanahan



On Wed, 26 Jun 2002, Ted Husted wrote:

 Date: Wed, 26 Jun 2002 19:44:48 -0400
 From: Ted Husted [EMAIL PROTECTED]
 Reply-To: Struts Developers List [EMAIL PROTECTED],
  [EMAIL PROTECTED]
 To: Struts Developers List [EMAIL PROTECTED]
 Subject: Re: Planning for 1.1 beta 2

 For the docs, do you think it might be useful to add a new 1.1 section
 and march through the new features there, rather than patch the 1.0
 docs?


I think a whats new tour in the release notes is certainly useful, but
I'm not sure it makes sense to segregate the new stuff elsewhere.  For
example, in the building_controller.xml page, it makes sense to talk about
the new exception handling options.

 A 1.1 section might be easier to create, since we won't have to worry
 about segues, and will do double-duty as an upgraders guide. Of course,
 we could still go back and put in references to the 1.1 features in the
 appropriate places int the 1.0 chapters. Just thinking it might be
 easier if we don't have to fuss with splicing the narrative.

 Generally, I'd like to try and start reusing more of the JavaDocs in the
 User Guide. It seems to me that the User Guide should organize the
 presentation of the classes and add usage examples, but that our
 (meaning mostly Craig's =:0) JavaDocs are so good, maybe we should
 cutting and pasting more of those over,

or linking to them, since we know where the JavaDocs are compared to the
user's guide.

 rather than writing the same
 thing in different words. Long term, this would also help keep things
 synched, since it would be easier to conform the guide to the JavaDocs
 (and vice versa). More like what we did with the Developers Guides, I
 guess, except that there would one(s) for the Action, Config, and Util
 classes.


I'm pretty happy with how it worked out to double-duty the tag library
developer's guides.  The package.html for the non-tag-library packages
could serve the same role for the Java programmer -- with the added
benefit that even people who don't read documentation often look at the
JavaDocs, so they have a better chance of seeing this stuff.

 I don't want to get into that for the 1.0 User Guide now, but we could
 start on that path for the 1.1 chapter, and see how it goes.


Agreed -- I don't think we need to do anything other than critical
bugfixes in 1.0.

 Meanwhile, I've set up a diff section in the release notes with
 pointers to every thing with 1.1 features or deprecations, that could
 then be used to help create the 1.1 doc section.

 http://jakarta.apache.org/struts/userGuide/release-notes.html#diff

 AFAIK, the JavaDocs are all updated with @since 1.1's now, and refer to
 execute rather than perform, and so forth. The ActionServlet docs may
 need to expand on the new flow, but otherwise we seem to be good on the
 JavaDoc front. The next thing I was going to do was finish-up on the
 release notes, so that everything linked in the diff section is
 mentioned above, and maybe trundle through the CVS mail log.


Someplace, we definitely need discussions of dynamic form beans (probably
in the building-the-view page) and sub-applications (either an expansion
on configuring the controller or perhaps a page on advanced topics or
some such.

 -T.


Craig


 James Holmes wrote:
 
  +1 and more than happy to help with bugs and docs.
 
  -james
  [EMAIL PROTECTED]
  http://www.jamesholmes.com/struts/

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




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




RE: Planning for 1.1 beta 2

2002-06-26 Thread Craig R. McClanahan

See intermixed.

On Wed, 26 Jun 2002, Martin Cooper wrote:

 Date: Wed, 26 Jun 2002 18:39:04 -0700
 From: Martin Cooper [EMAIL PROTECTED]
 Reply-To: Struts Developers List [EMAIL PROTECTED]
 To: 'Struts Developers List' [EMAIL PROTECTED]
 Subject: RE: Planning for 1.1 beta 2



  -Original Message-
  From: Craig R. McClanahan [mailto:[EMAIL PROTECTED]]
  Sent: Wednesday, June 26, 2002 4:44 PM
  To: Struts Developers List
  Subject: RE: Planning for 1.1 beta 2
 
 
 
 
  On Wed, 26 Jun 2002, Martin Cooper wrote:
 
   Date: Wed, 26 Jun 2002 15:55:19 -0700
   From: Martin Cooper [EMAIL PROTECTED]
   Reply-To: Struts Developers List [EMAIL PROTECTED]
   To: 'Struts Developers List' [EMAIL PROTECTED]
   Subject: RE: Planning for 1.1 beta 2
  
  
  
-Original Message-
From: Craig R. McClanahan [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, June 26, 2002 12:45 PM
To: Struts Developers List
Subject: RE: Planning for 1.1 beta 2
   
   
   
   
On Wed, 26 Jun 2002, Martin Cooper wrote:
   
 Date: Wed, 26 Jun 2002 11:49:49 -0700
 From: Martin Cooper [EMAIL PROTECTED]
 Reply-To: Struts Developers List [EMAIL PROTECTED]
 To: 'Struts Developers List' [EMAIL PROTECTED]
 Subject: RE: Planning for 1.1 beta 2

 +1 on Beta 2 soon (although my company isn't shutting down
next week :).

 +1 also on reviewing the tags. I fixed one or two of these
a while ago -
 they showed up after I started using Resin 2.x - but there
are likely more
 that I didn't stumble across. A systematic review would be good.

 Related to the tag issue, I had the thought that perhaps we
should remove
 (almost) all of the release() implementations in the Struts
tags. I think
 many people are confused about when release() is (supposed
to be) called,
 and the implementations we have foster the belief that it
will be called to
 reset property values between uses of a tag instance. Or
would this be too
 drastic a change for now?
   
Aside from the educational benefit (which I'm not sure that I
really buy
into), releasing object references when the page
  implementation calls
release() would seem to be a good thing to do anyway.
  
   I was thinking that release() is only going to get called
  when the tag
   instance itself is going away, so those object references
  will be released
   also. But you're right, it doesn't hurt to do this.
  
   However, I think it would be good to make sure we set
  everything to null,
   rather than to literals or defined constants, so that it's
  clear we're not
   trying to reset to a known state.
  
 
  Except that we are ... even though the JSP page compiler doesn't know
  anything about it.  And that's actually part of the problem.  Our docs
  promise that some attributes will behave as if they have
  default values,
  which we've implemented by pre-initializing the corresponding property
  values.
 
  Everything works fine if tags aren't reused, or the tag implementation
  never modifies the values of the attributes set by the
  generated code of
  the page.  However, if either of these conditions is
  violated, we're going
  to have problems with the wrong value the second time through
  the use of a
  tag instance, if the value was not set from the tag but was
  modified the
  first time through.

 If the tag implementation (not including release()) modifies the values of
 properties, then yes, we're in big trouble. This is the case I've come
 across before.


I thought we had caught all of those, but want to make very sure.

For example, if the second use of a tag sets the same value for the same
attribute on an instance being reused, the container has the right to
assume that the previous setFoo() call is still in effect.

 If I'm understanding you correctly, you're saying that release() also causes
 a problem by modifying the values. The only way I can see this would happen
 is if the container called release() and then reused the tag. At first, I
 thought this wasn't legal, but looking at the spec again, I see that it is
 in fact permitted. It wouldn't make much sense, performance wise, for a
 container to do that, but it could, so I guess we have to deal with it.


True ... and it would be our code that is making the incorrect
assumptions, not the container.

  That's a long winded way of saying I think I agree with Martin that we
  need to clear everything in release().  That also implies we need to
  establish a convention to establish the initial state of
  things -- perhaps
  by overriding setPageContext() which is guaranteed to be
  called each time.

 I don't think we can use setPageContext(), though, or setParent(), without
 some pain. As far as I can tell, the spec does not require that these be
 called before the attribute properties are set. If they are, then we could
 set the defaults there. However, if they're not, we'd have to keep track

RE: Planning for 1.1 beta 2

2002-06-26 Thread Arron Bates

  If the tag implementation (not including release()) modifies the values of
  properties, then yes, we're in big trouble. This is the case I've come
  across before.
 
 
 I thought we had caught all of those, but want to make very sure.
 
 For example, if the second use of a tag sets the same value for the same
 attribute on an instance being reused, the container has the right to
 assume that the previous setFoo() call is still in effect.


As far as I've seen the tags are quite clean. The nested tags went AWOL
on Resin in a very interesting way because internal logic changes
properties for the extended tag. Fixed by caching the values when the
tag executes, and setting them back when the tag completes. The fact
that these all work on Resin whould have to say something for the
extended tag.

The pessimistic cache/reset that the nested tags have to do can be taken
to the super tags. When the tag completes, set them back and then it
wouldn't matter what logic was in the tag, primed from a variation of a
constant, internal logic or whatever. From where I sit it's absolute
container compliance for the expense of a little object overhead. When
the container gets around to the release all together, we can just set
to nulls or initial constants. The container has to manage the sate of
the tags it's made, this would assure the contract. No?



Arron.


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




Re: Planning for 1.1 beta 2

2002-06-26 Thread Arron Bates

  Meanwhile, I've set up a diff section in the release notes with
  pointers to every thing with 1.1 features or deprecations, that could
  then be used to help create the 1.1 doc section.
 
  http://jakarta.apache.org/struts/userGuide/release-notes.html#diff
 
  AFAIK, the JavaDocs are all updated with @since 1.1's now, and refer to
  execute rather than perform, and so forth. The ActionServlet docs may
  need to expand on the new flow, but otherwise we seem to be good on the
  JavaDoc front. The next thing I was going to do was finish-up on the
  release notes, so that everything linked in the diff section is
  mentioned above, and maybe trundle through the CVS mail log.
 
 
 Someplace, we definitely need discussions of dynamic form beans (probably
 in the building-the-view page) and sub-applications (either an expansion
 on configuring the controller or perhaps a page on advanced topics or
 some such.

What's your definition of a dynamic form bean?...

I have some docco coming on how to make a complex bean with nested lists
etc and how to make it properly with that new commons collection so that
the bean isn't fully managed in the constructor and thus allowed to
reside properly in request scope. People are constantly pushing their
beans to the session because it's harder to build them with lists et al.

Is this something what you're talking about?...

Making concise docco type stuff for the site, and a tutorial hand-holder
for my site. Unless Struts site wants more of this kind of stuff too?...


Arron.


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




Re: Planning for 1.1 beta 2

2002-06-26 Thread Craig R. McClanahan



On 27 Jun 2002, Arron Bates wrote:

 Date: 27 Jun 2002 14:33:11 +1000
 From: Arron Bates [EMAIL PROTECTED]
 Reply-To: Struts Developers List [EMAIL PROTECTED]
 To: Struts Developers List [EMAIL PROTECTED]
 Subject: Re: Planning for 1.1 beta 2

   Meanwhile, I've set up a diff section in the release notes with
   pointers to every thing with 1.1 features or deprecations, that could
   then be used to help create the 1.1 doc section.
  
   http://jakarta.apache.org/struts/userGuide/release-notes.html#diff
  
   AFAIK, the JavaDocs are all updated with @since 1.1's now, and refer to
   execute rather than perform, and so forth. The ActionServlet docs may
   need to expand on the new flow, but otherwise we seem to be good on the
   JavaDoc front. The next thing I was going to do was finish-up on the
   release notes, so that everything linked in the diff section is
   mentioned above, and maybe trundle through the CVS mail log.
  
 
  Someplace, we definitely need discussions of dynamic form beans (probably
  in the building-the-view page) and sub-applications (either an expansion
  on configuring the controller or perhaps a page on advanced topics or
  some such.

 What's your definition of a dynamic form bean?...


Specifically, DynaActionForm.  There's not a lot that needs to be said,
but AFAIK we don't say anything at all in the docs at this point.

 I have some docco coming on how to make a complex bean with nested lists
 etc and how to make it properly with that new commons collection so that
 the bean isn't fully managed in the constructor and thus allowed to
 reside properly in request scope. People are constantly pushing their
 beans to the session because it's harder to build them with lists et al.

 Is this something what you're talking about?...

 Making concise docco type stuff for the site, and a tutorial hand-holder
 for my site. Unless Struts site wants more of this kind of stuff too?...


I think the basic Struts download needs at least an initial walkthrough on
all of the technologies it provides.  Much a I'd love to be lazy and rely
on the incredible amount of effort others have put into this :-), we can't
just have nothing.


 Arron.


Craig


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