struts-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "PILGRIM, Peter, FM" <Peter.PILG...@rbos.com>
Subject RE: composable RequestProcessor
Date Mon, 02 Jun 2003 14:33:12 GMT
> -----Original Message-----
> From: David Graham [mailto:dgraham1980@hotmail.com]
> Sent: 02 June 2003 15:12
> To: struts-dev@jakarta.apache.org
> Subject: RE: composable RequestProcessor
> 
> 
> >An interface should be easy to construct aggregated request 
> processors.
> >If you are saying
> >
> >import org.apache.struts.mythical.RequestProcessorInterface;
> >
> >class FooRequestProcessor implements RequestProcessorInterface
> >{
> >     RequestProcessInterface   tiles = new TilesRequestProcessor();
> >     RequestProcessInterface   jndi = new JndiRequestProcessor();
> >
> >     public Action doForward( ... ) {
> >	return tiles.doForward( ... );
> >     }
> >
> >     public void processRole( ... ) {
> >       jndi.processRole(...);
> >     }
> >
> >     public void processRole( ... ) {
> >       jndi.processRole(...);
> >     }
> >
> >     public void processBoth( ... ) {  // Invented method!!
> >       jndi.processBoth(...);
> >       tiles.processBoth(...);
> >     }
> >}
> 
> That's exactly what I had in mind.
> 
> >
> >Yes. You can get away with interface. Obviously it is not
> >the generic ideal solution, but you can aggregate the functionality
> >of the request processor however you like. Sure coding is a pain.
> 
> Can you explain why it's not generic, ideal, and a pain to 
> code?  To me, it 
> looks straightforward.  Remember that this functionality is 
> to support the 
> *few* people that will need it.  Most Struts apps will use 
> the standard 
> RequestProcessor or TilesRequestProcessor.  Simple is better 
> in edge cases 
> :-).

Why of course. It's the oldest adage in the book. 
You dont get nothing for free! You must code.
 
> If we want to configure each method of the processor in 
> struts-config.xml we 
> may as well design it as Servlet Filters.
> 
> >
> >Yes. It is also backwards compatible with 1.1RC1/CVS
> >
> >Deja vu multiple inheritance C++/. Surely not?!
> 
> This is standard OO composition, not a mimic of multiple 
> inheritance (yuck).

For my purposes then a interface approach would work.
This is the simplest. I want to the same flexible
as I have in the `ExpressoRequestProcessor'. Ok I am
no longer subclassing `TilesRequestProcessor' but I
am now aggregating. I do not care really. What is important
is that the next guy can take my expresso 
controller and also aggregate in his 
`BigInvestmentBankRequestProcessor' /. Also if I decide
to aggregate in `ExpressoRequestProcessor' new 
`FandangleRequestProcessor' my big investment bank
customer also gets that as a bonus.

But there is nothing to prevent the most ardent coder 
building the XML configuration composable 
controller if he or she wants to. 
Compatibility, compability, compability.
Comprehende, cappiche, understand.

--////--

--
Peter Pilgrim,
Struts/J2EE Consultant, RBoS FM, Risk IT
Tel: +44 (0)207-375-4923



********************************************************************
      Visit our Internet site at http://www.rbsmarkets.com

This e-mail is intended only for the addressee named above.
As this e-mail may contain confidential or privileged information,
if you are not the named addressee, you are not authorised to
retain, read, copy or disseminate this message or any part of it.
The Royal Bank of Scotland plc is registered in Scotland No 90312
Registered Office: 36 St Andrew Square, Edinburgh EH2 2YB
             Regulated by the Financial Services Authority
********************************************************************

---------------------------------------------------------------------
To unsubscribe, e-mail: struts-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: struts-dev-help@jakarta.apache.org


Mime
View raw message