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-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
> > >
> > 
> > 
> > --
> > 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-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