cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Carsten Ziegeler" <cziege...@sundn.de>
Subject RE: New PreparedMatcher, deprecation of CodeFactory
Date Mon, 22 Oct 2001 10:50:57 GMT

Sylvain Wallez wrote:
>
> Carsten Ziegeler a écrit :
> >
> > Hi Sylvain,
> >
> Hi Carsten,
>
> > thanks for this work, but we should make the PreparedMatcher work
> > in subsitemaps.
>
> I just commited some additional work : subsitemaps work ! No need to
> redeclare inherited selectors and matchers.
>
Absolutely great work, Sylvain!!

> Other changes :
> - renamed PreparedMatcher to PreparableMatcher which now extends
> Matcher. The "-able" suffix denotes an optional feature :
+1

> PreparableMatchers can be used also as regular matchers.
> - rewrote all factory-based selectors as regular selectors.
>
> I think we can now abandon the use of CodeFactory.
Yes, great! I'm +1 on removing all this CodeFactory stuff completly.

>
> The performance cost of these changes is mainly at sitemap
> initialization time, where all patterns must be prepared, causing a
> select/release for each pattern. At request time, which is the most
> important, the cost is low : a select/release, a test and a cast.
The performance lost at initialization time is no real problem,
we could later on improve performance by either sorting the patterns
by used matcher to lookup/release each matcher only once, or
we could lookup all matchers beforehand, create the patterns
and release them afterwards.
The performance loss at request time seems unavoidable.

>
> <snip/>
>
> > The second problem, when the pattern contains {...}, is it possible
> > to test the pattern when the sitemap is generated and then only
> > use the PreparedMatcher interface, if no {...} is found?
>
> Yes, it can be done. However, since the '{' and '}' are also part of the
> Regexp syntax, we'll have to add an escaping syntax for these
> characters, such as '\{' when sitemap substitution isn't wanted.
>
> I'm now working on this...
>
Hey, unbelievable! Keep on!

Carsten

> Sylvain.
>
> > Carsten
> >
> > > -----Original Message-----
> > > From: Sylvain Wallez [mailto:sylvain.wallez@anyware-tech.com]
> > > Sent: Friday, October 19, 2001 5:57 PM
> > > To: cocoon-dev
> > > Subject: New PreparedMatcher, deprecation of CodeFactory
> > >
> > >
> > > Hi team,
> > >
> > > You'll find in the HEAD the new PreparedMatcher interface we talked
> > > about and a new implementation of all factory-based matchers with this
> > > interface (way simpler).
> > >
> > > CodeFactory is now deprecated and shouldn't be used for new
> matchers and
> > > selectors. I will also port Selector so that we can totally stop using
> > > it. This is the key for the tree-traversal implementation of the
> > > sitemap.
> > >
> > > CodeFactory matchers and selectors needed to be redeclared in
> > > subsitemaps, and unfortunately this is still the case with
> > > PreparedMatchers : it isn't possible to know when generating
> code for a
> > > subsitemap the actual class for an inherited matcher, and
> thus we cannot
> > > know if it's a simple Matcher or a PreparedMatcher. This won't be the
> > > case with the interpreted sitemap.
> > >
> > > Another behavior which also existed with code factories :
> since patterns
> > > are prepared once at sitemap startup, patterns for PreparedMatchers
> > > cannot use "{...}" substitution while simple Matchers can. This will
> > > still be the case with an interpreted implementation.
> > >
> > > Samples seem to behave correctly with these changes.
> > >
> > > Sylvain.
> --
> Sylvain Wallez
> Anyware Technologies - http://www.anyware-tech.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
> For additional commands, email: cocoon-dev-help@xml.apache.org
>


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


Mime
View raw message