cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Melhem <micha...@fztig938.bank.dresdner.net>
Subject Re: [PROPOSAL] Ref: Bug 7713 - Optional Implicit precondtion checking in matchers
Date Wed, 03 Apr 2002 15:02:25 GMT
On Wed, Apr 03, 2002 at 08:05:40AM -0500, Vadim Gritsenko wrote:
> > From: Michael Melhem [mailto:michaelm@fztig938.bank.dresdner.net]
> > 
> > On Wed, Apr 03, 2002 at 01:03:22PM +0100, Stuart Roebuck wrote:
> > >
> > > On Wednesday, April 3, 2002, at 12:00 PM, Michael Melhem wrote:
> > >
> > > >Hi everyone,
> > > >
> > > >I trust you all had a good easter break :-)
> > > >
> > > >This is a propasal for the introduction of implicit precondition
> > > >checking
> > > >in matchers. Please refer to Bug 7713 for more information!!
> > > >You can find the patch for this proposal as a part of Bug 7713.
> > > >
> > > >Here  I outline some of the reasoning for this proposal...
> > > >
> > > >While writing a large c2 based application we have come to the
> > > >conclusion that matchers with built-in *implicit* checks would be
> > > >desirable.
> > > >
> > > >For Example, instead of using a "valid session checker action"
> > > >in *every* single pipeline in the sitemap to secure against clients
> > > >who do not have sessions, we simply configure a  matcher with a
> > > >"session-exists precondition". That way, we simplify sitemap
> pipelines,
> > > >which we find are already too large and complex.
> > > >
> > > >There are several advantages with implicit matcher checking
> including,
> > > >simplified sitemaps, scalablity, easier development with developers
> > > >not having to remember to always include certian actions, hiding of
> > > >unnecessary and repetitive information, etc
> > > >
> > > >Of course precondition matchers are not useful in every situation,
> > > >but are of best advantage when ones finds themselves using the
> > > >same general actions in a lot of the sitemap pipelines.
> > > >
> > > >Any comments?
> > >
> > > From your description it sounds like existing facility for embedding
> > > match statements might do the trick:
> > >
> > > 	<map:match pattern="*">
> > > 		<map:act type="let-the-person-in">
> > >
> > > 			<map:match pattern="match1">
> > > 				...
> > > 			</map:match>
> > >
> > > 			<map:match pattern="match2">
> > > 				...
> > > 			</map:match>
> > >
> > > 			...
> > > 		</map:act>
> > > 	</map:match>
> > >
> > > Stuart.
> > 
> > Hi stuart,
> > 
> > Thanks for your input.
> > 
> > Yes, you are correct, one could *explicitly* use actions and
> > embedded matchers to do the same thing.
> > 
> > However when the "map:act type=let-the-person-in" is generic, say
> > "let-the-person-in-if-they-have-a-session", then it would seem to me,
> to
> > make more sense for that check to be done implicitly as part of the
> > match.
> > 
> > Otherwise you could clutter your sitemap with
> > <map:act type=let-the-person-in> in almost every pipeline.
> 
> Michael,
> 
> Have you considered using just one pipeline? Or two (and no more than
> two)?
> 
> 
> > This is not a good thing, especially if you have lots of complex
> pipelines.
> 
> Here I fail to see how this is much simpler than using action. Why not
> just:
> 
> ...
>  
> <map:act type="let-person-in-if-they-have-session">
>  
> > 	<map:match pattern="URI1*">
> > 		...
> > 	</map:match>
> > 
> > 	<map:match pattern="URI1*">
> > 		...
> > 	</map:match>
> > 
> > 	...
> 
> </map:act>

Hi Vadim,

Thanks for your comments. I have not considered wrapping multiple 
match blocks within a single act block like that.

Still, wouldnt the above nest everything one (or more) layer(s) deeper,
making things less simple? 

Consider the situation where the act block is large and spans more
than one page?  Wouldn't handling the exception be more difficult in that case 
where if im not mistaken, you would need to ensure any
matching URI that does not require a session is not within the act
block.

IMHO I think a more scalable solution would be....

	<!-- session check here would not be a good idea -->
	<map:match pattern="login">
		<map:parameter name="conditional" value="unConditional"/>
		...
	</map:match>

	<map:match pattern="URI1*">
		...
	</map:match>

	
	<!-- requires no session check -->
	<map:match pattern="simpleLinks-page">
		<map:parameter name="conditional" value="unConditional"/>
		...
	</map:match>

	<map:match pattern="URI2*">
		...
	</map:match>

All that this proposal (Bug 7713) does is allow matchers to be more configurable, and
does not take away any existing functionality.

thoughts?

> 
> 
> Vadim
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
> For additional commands, email: cocoon-dev-help@xml.apache.org
> 

Best Regards,
Michael Melhem

---------------------------------------------------------------------
To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
For additional commands, email: cocoon-dev-help@xml.apache.org


Mime
View raw message