This was the original design, but we were unable to adequately control
whether the results were executed or not (sometimes you don't want them
to be).

I'll take a look again and see if this would be possible (since it
really would simplify things a bit)...

Jason

> -----Original Message-----
> From: Tim Dwelle [mailto:[EMAIL PROTECTED] 
> Sent: Friday, November 14, 2003 10:40 AM
> To: [EMAIL PROTECTED]
> Subject: Re: [OS-webwork] Problems with code after 
> actionInvocation.invoke()
> 
> 
> I know its a bit more radical... but it seems to me that a 
> better solution would be to move the code for dispatching to 
> the appropriate result into its own interceptor.
> 
> Then you don't need these lifecycle methods.  And more 
> importantly, it eliminates this uncomfortable mix of "some 
> workflow is handled by interceptors, while others are not".
> 
> Just a suggestion...
> 
> -Tim.
> 
> 
> 
> 
> ----- Original Message ----- 
> From: "Jason Carreira" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Friday, November 14, 2003 10:07 AM
> Subject: RE: [OS-webwork] Problems with code after 
> actionInvocation.invoke()
> 
> 
> > Gavin King has convinced me to take another look at this... Tonight 
> > I'll look at creating another base class which has:
> >
> > before()
> > beforeResult()
> > after()
> > handleException()
> >
> > And will have a try/catch to allow you to be informed of 
> Exceptions in 
> > handleException().
> >
> > AroundInterceptor will remain the simple class that it is...
> >
> >
> > > -----Original Message-----
> > > From: Jason Carreira
> > > Sent: Friday, November 14, 2003 9:33 AM
> > > To: [EMAIL PROTECTED]
> > > Subject: RE: [OS-webwork] Problems with code after
> > > actionInvocation.invoke()
> > >
> > >
> > > I don't want to add it to the base class, since none of 
> our current 
> > > bundled Interceptors need this. It should be easy enough 
> for people 
> > > who need it to have their own base Interceptor class to do this 
> > > (heck, I wrote it for you in a previous message)...
> > >
> > >
> > >
> > > > -----Original Message-----
> > > > From: Cameron Braid [mailto:[EMAIL PROTECTED]
> > > > Sent: Friday, November 14, 2003 7:27 AM
> > > > To: [EMAIL PROTECTED]
> > > > Subject: Re: [OS-webwork] Problems with code after
> > > > actionInvocation.invoke()
> > > >
> > > >
> > > > I think that this is a better idea.
> > > >
> > > > AroundInterceptor could have an empty implementation for this 
> > > > method... simple :)
> > > >
> > > > Cameron
> > > >
> > > > Francisco Hernandez wrote:
> > > >
> > > > > what if instead of having another Interceptor class we can
> > > > just add a
> > > > > new method to the Interceptor interface like beforeResult() ?
> > > > >
> > > > > Jason Carreira wrote:
> > > > >
> > > > >> I've just checked in the code for PreResultListener to
> > > > XW/WW2... No
> > > > >> changes to Interceptor base classes, etc... You guys try
> > > > this out and
> > > > >> see how you like it and how you're using it.
> > > > PreResultListener is an
> > > > >> Interface, with one method:
> > > > >>
> > > > >> void beforeResult(ActionInvocation invocation, String
> > > resultCode);
> > > > >>
> > > > >> So don't limit yourself to just registering 
> Interceptors which 
> > > > >> implement this Interface.... That was just off the top
> > > of my head.
> > > > >> For now, I don't want to change the AroundInterceptor,
> > > > since if they
> > > > >> don't need it it's just extra overhead to register the
> > > > listeners and
> > > > >> call back to them for nothing... After some people start
> > > > using them
> > > > >> and we see how they're useful we can standardize 
> usage in base 
> > > > >> classes.
> > > > >>
> > > > >> Jason
> > > > >>
> > > > >>
> > > > >>> -----Original Message-----
> > > > >>> From: Drew McAuliffe [mailto:[EMAIL PROTECTED] Sent:
> > > Thursday,
> > > > >>> November 13, 2003 11:48 PM
> > > > >>> To: [EMAIL PROTECTED]
> > > > >>> Subject: RE: [OS-webwork] Problems with code after
> > > > >>> actionInvocation.invoke()
> > > > >>>
> > > > >>>
> > > > >>> Scratch my last comment; your example is exactly what I
> > > > had in mind
> > > > >>> as a new superclass to use for this kind of
> > > > functionality. I think
> > > > >>> such a superclass would be a great addition to the
> > > > framework, though
> > > > >>> it would have to be documented very well so that the 
> > > > >>> difference between before, beforeResult, and after is 
> > > > >>> explicitly
> > > > clear This is
> > > > >>> especially important considering the fact that the 
> > > > >>> JSP/velocity pages are already loaded before after() gets 
> > > > >>> called;
> > > that wasn't
> > > > >>> immediately apparent to me, and I'd imagine I'm not alone.
> > > > >>>
> > > > >>> -----Original Message-----
> > > > >>> From: [EMAIL PROTECTED]
> > > > >>> [mailto:[EMAIL PROTECTED]
> > > > On Behalf
> > > > >>> Of Jason Carreira
> > > > >>> Sent: Thursday, November 13, 2003 5:55 PM
> > > > >>> To: [EMAIL PROTECTED]
> > > > >>> Subject: RE: [OS-webwork] Problems with code after
> > > > >>> actionInvocation.invoke()
> > > > >>>
> > > > >>> No, it would be like this:
> > > > >>>
> > > > >>>
> > > > >>> Public class MyInterceptor implements Interceptor,
> > > > PreResultListener
> > > > >>> {
> > > > >>>
> > > > >>> Public String intercept(ActionInvocation invocation) {
> > > > >>>   invocation.addPreResultListener(this);
> > > > >>>   String result;
> > > > >>>   before();
> > > > >>>   result = invocation.invoke();
> > > > >>>   after();
> > > > >>>
> > > > >>>   return result;
> > > > >>> }
> > > > >>>
> > > > >>> Public void beforeResult(ActionInvocation 
> invocation) {  // do 
> > > > >>> something before the result executes }
> > > > >>>
> > > > >>> }
> > > > >>>
> > > > >>>
> > > > >>> So it would be like this:
> > > > >>>
> > > > >>> Interceptor1.before()
> > > > >>> Interceptor2.before()
> > > > >>> Action.execute()
> > > > >>> Interceptor1.beforeResult()
> > > > >>> Interceptor2.beforeResult()
> > > > >>> Result.execute()
> > > > >>> Interceptor2.after()
> > > > >>> Interceptor2.after()
> > > > >>>
> > > > >>> Assuming both of these interceptors implemented
> > > PreResultListener
> > > > >>> and registered themselves with the ActionInvocation.
> > > > >>>
> > > > >>> Jason
> > > > >>>
> > > > >>>
> > > > >>>
> > > > >>>> -----Original Message-----
> > > > >>>> From: Francisco Hernandez [mailto:[EMAIL PROTECTED]
> > > > >>>> Sent: Thursday, November 13, 2003 6:40 PM
> > > > >>>> To: [EMAIL PROTECTED]
> > > > >>>> Subject: Re: [OS-webwork] Problems with code after
> > > > >>>> actionInvocation.invoke()
> > > > >>>>
> > > > >>>>
> > > > >>>> so let me get this straight with PreResultListener would
> > > > be able to
> > > > >>>> have interceptors work before/after execute before the
> > > > Result gets
> > > > >>>> called?
> > > > >>>>
> > > > >>>> that way we can have a flow like this using regular
> > > interceptors
> > > > >>>> and also PreResultInterceptors:
> > > > >>>>
> > > > >>>> before0
> > > > >>>> PreResultbefore1
> > > > >>>> PreResultbefore2
> > > > >>>> execute
> > > > >>>> PreResultafter2
> > > > >>>> PreResultafter1
> > > > >>>> executeResult
> > > > >>>> after0
> > > > >>>>
> > > > >>>> am i understanding this correctly?
> > > > >>>>
> > > > >>>> Jason Carreira wrote:
> > > > >>>>
> > > > >>>>
> > > > >>>>> Yes, this is the intended behavior.
> > > > >>>>>
> > > > >>>>> The issue is that Interceptors are stateless, so 
> you can't 
> > > > >>>>> do:
> > > > >>>>>
> > > > >>>>> Intercept() -> before -> execute -> after
> > > > >>>>> Dispose()
> > > > >>>>>
> > > > >>>>> Because your Interceptor can't keep request specific
> > > > state to be
> > > > >>>>> disposed in another call...
> > > > >>>>>
> > > > >>>>> I'm wondering if it would be a good idea to have an
> > > > >>>>
> > > > >>>>
> > > > >>>> Observer pattern
> > > > >>>>
> > > > >>>>> in here... PreResultListener.beforeResult(ActionInvocation
> > > > >>>>> invocation)... Then Interceptors that want to be notified
> > > > >>>>
> > > > >>>>
> > > > >>>> before the
> > > > >>>>
> > > > >>>>> Result could register with the ActionInvocation to have a
> > > > >>>>
> > > > >>>>
> > > > >>>> callback...
> > > > >>>>
> > > > >>>>> This shouldn't affect any of the current code, and would
> > > > >>>>
> > > > >>>
> > > > >>> just allow
> > > > >>>
> > > > >>>>> for one more lifecycle point.. Thoughts?
> > > > >>>>>
> > > > >>>>>
> > > > >>>>>
> > > > >>>>>> -----Original Message-----
> > > > >>>>>> From: Daniel Pfeifer 
> > > > >>>>>> [mailto:[EMAIL PROTECTED]
> > > > >>>>>> Sent: Thursday, November 13, 2003 11:06 AM
> > > > >>>>>> To: '[EMAIL PROTECTED]'
> > > > >>>>>> Subject: [OS-webwork] Problems with code after
> > > > >>>>>> actionInvocation.invoke()
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>> I am currently having trouble with a custom interceptor. 
> > > > >>>>>> The Interceptor is supposed to determine which values to
> > > > set on the
> > > > >>>>>> ValueStack by the resultstring it receives from 
> > > > >>>>>> actionInvocation.invoke(). The problem is: Once
> > > > >>>>>> actionInvocation.invoke() is executed the whole flow
> > > > is executed,
> > > > >>>>>> even the ServletDispatcherResult is executed and thus the
> > > > >>>>>
> > > > >>>
> > > > >>> JSP page
> > > > >>>
> > > > >>>>>> is already loaded before my interceptor had a chance to
> > > > >>>>>
> > > > >>>
> > > > >>> modify some
> > > > >>>
> > > > >>>>>> invocation result based values.
> > > > >>>>>>
> > > > >>>>>> Is this the standard behaviour of Webwork 2.0 (latest CVS
> > > > >>>>>> checkout) or should I file a bugreport in JIRA? If
> > > this is the
> > > > >>>>>> standard behaviour the reason for an after() in
> > > > >>>>>
> > > > >>>
> > > > >>> AroundInterceptor is
> > > > >>>
> > > > >>>>>> beyond my comprehension (other than possibly doing some
> > > > >>>>>
> > > > >>>
> > > > >>> clean-up and
> > > > >>>
> > > > >>>>>> in that case it should be called something like 
> dispose()).
> > > > >>>>>>
> > > > >>>>>> Thanks in advance,
> > > > >>>>>> /Daniel
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>> -------------------------------------------------------
> > > > >>>>>> This SF.Net email sponsored by: ApacheCon 2003, 16-19 
> > > > >>>>>> November in Las Vegas. Learn firsthand the latest
> > > > >>>>>
> > > > >>>
> > > > >>> developments
> > > > >>>
> > > > >>>>>> in Apache, PHP, Perl, XML, Java, MySQL, WebDAV, 
> and more! 
> > > > >>>>>> http://www.apachecon.com/ 
> > > > >>>>>> _______________________________________________
> > > > >>>>>> Opensymphony-webwork mailing list 
> > > > >>>>>> [EMAIL PROTECTED]
> > > > >>>>>>
> > > > 
> https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork
> > > > >>>>>>
> > > > >>>>>
> > > > >>>>>
> > > > >>>>>
> > > > >>>>> -------------------------------------------------------
> > > > >>>>> This SF.Net email sponsored by: ApacheCon 2003, 16-19 
> > > > >>>>> November in Las Vegas. Learn firsthand the latest
> > > > >>>>
> > > > >>>>
> > > > >>>> developments
> > > > >>>>
> > > > >>>>> in Apache, PHP, Perl, XML, Java, MySQL, WebDAV, and more! 
> > > > >>>>> http://www.apachecon.com/ 
> > > > >>>>> _______________________________________________
> > > > >>>>> Opensymphony-webwork mailing list 
> > > > >>>>> [EMAIL PROTECTED]
> > > > >>>>>
> > > > 
> https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork
> > > > >>>>>
> > > > >>>>>
> > > > >>>>>
> > > > >>>>
> > > > >>>>
> > > > >>>>
> > > > >>>>
> > > > >>>>
> > > > >>>> -------------------------------------------------------
> > > > >>>> This SF.Net email sponsored by: ApacheCon 2003, 16-19 
> > > > >>>> November in Las Vegas. Learn firsthand the latest 
> > > > >>>> developments in Apache, PHP, Perl, XML, Java, MySQL,
> > > WebDAV, and
> > > > >>>> more! http://www.apachecon.com/ 
> > > > >>>> _______________________________________________
> > > > >>>> Opensymphony-webwork mailing list 
> > > > >>>> [EMAIL PROTECTED]
> > > > >>>>
> > > https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork
> > > > >>>>
> > > > >>>
> > > > >>>
> > > > >>>
> > > > >>>
> > > > >>> -------------------------------------------------------
> > > > >>> This SF.Net email sponsored by: ApacheCon 2003,
> > > > >>> 16-19 November in Las Vegas. Learn firsthand the latest
> > > > developments
> > > > >>> in Apache, PHP, Perl, XML, Java, MySQL, WebDAV, and more! 
> > > > >>> http://www.apachecon.com/ 
> > > > >>> _______________________________________________
> > > > >>> Opensymphony-webwork mailing list 
> > > > >>> [EMAIL PROTECTED]
> > > > >>>
> > > https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork
> > > > >>>
> > > > >>
> > > > >>
> > > > >>
> > > > >> -------------------------------------------------------
> > > > >> This SF.Net email sponsored by: ApacheCon 2003,
> > > > >> 16-19 November in Las Vegas. Learn firsthand the latest
> > > > developments
> > > > >> in Apache, PHP, Perl, XML, Java, MySQL, WebDAV, and more! 
> > > > >> http://www.apachecon.com/ 
> > > > >> _______________________________________________
> > > > >> Opensymphony-webwork mailing list 
> > > > >> [EMAIL PROTECTED]
> > > > >> 
> https://lists.sourceforge.net/lists/listinfo/opensymphony-webwo
> > > > >> rk
> > > > >>
> > > > >>
> > > > >>
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > -------------------------------------------------------
> > > > > This SF.Net email sponsored by: ApacheCon 2003,
> > > > > 16-19 November in Las Vegas. Learn firsthand the latest
> > > > developments
> > > > > in Apache, PHP, Perl, XML, Java, MySQL, WebDAV, and more! 
> > > > > http://www.apachecon.com/ 
> > > > > _______________________________________________
> > > > > Opensymphony-webwork mailing list 
> > > > > [EMAIL PROTECTED]
> > > > > 
> https://lists.sourceforge.net/lists/listinfo/opensymphony-webwor
> > > > > k
> > > > >
> > > >
> > > >
> > > > --
> > > > Any damn fool can write code that a computer can 
> understand... The 
> > > > trick is to write code that humans can understand. 
> [Martin Fowler
> > > > http://www.martinfowler.com/distributedComputi> 
> ng/refactoring.pdf]
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > -------------------------------------------------------
> > > > This SF.Net email sponsored by: ApacheCon 2003,
> > > > 16-19 November in Las Vegas. Learn firsthand the latest 
> > > > developments in Apache, PHP, Perl, XML, Java, MySQL, 
> WebDAV, and 
> > > > more! http://www.apachecon.com/ 
> > > > _______________________________________________
> > > > Opensymphony-webwork mailing list 
> > > > [EMAIL PROTECTED]
> > > > 
> https://lists.sourceforge.net/lists/listinfo/opensymphony-webw
ork
> > >
> >
> >
> > -------------------------------------------------------
> > This SF.Net email sponsored by: ApacheCon 2003,
> > 16-19 November in Las Vegas. Learn firsthand the latest developments

> > in Apache, PHP, Perl, XML, Java, MySQL, WebDAV, and more! 
> > http://www.apachecon.com/ 
> > _______________________________________________
> > Opensymphony-webwork mailing list 
> > [EMAIL PROTECTED]
> > https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork
> >
>
>
> -------------------------------------------------------
> This SF.Net email sponsored by: ApacheCon 2003,
> 16-19 November in Las Vegas. Learn firsthand the latest developments 
> in Apache, PHP, Perl, XML, Java, MySQL, WebDAV, and more! 
> http://www.apachecon.com/ 
> _______________________________________________
> Opensymphony-webwork mailing list 
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork



-------------------------------------------------------
This SF.Net email sponsored by: ApacheCon 2003,
16-19 November in Las Vegas. Learn firsthand the latest developments in
Apache, PHP, Perl, XML, Java, MySQL, WebDAV, and more!
http://www.apachecon.com/
_______________________________________________
Opensymphony-webwork mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork


-------------------------------------------------------
This SF.Net email sponsored by: ApacheCon 2003,
16-19 November in Las Vegas. Learn firsthand the latest
developments in Apache, PHP, Perl, XML, Java, MySQL,
WebDAV, and more! http://www.apachecon.com/
_______________________________________________
Opensymphony-webwork mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork

Reply via email to