You are viewing a plain text version of this content. The canonical link for it is here.
Posted to docs@cocoon.apache.org by st...@outerthought.org on 2003/02/02 00:01:04 UTC

[WIKI-UPDATE] InterpretedSitemapInternals Sitemap Sun Feb 2 00:01:03 2003

Page: http://wiki.cocoondev.org/Wiki.jsp?page=InterpretedSitemapInternals, version: 1 on Sat Feb  1 22:55:27 2003 by NicolaKen

New page created:
+ The TreeProcessor works by creating an evaluation tree of ProcessingNodes corresponding to sitemap statements. It asks a TreeBuilder to create this tree and then handles requests with it.
+  
+ The TreeBuilder reads the sitemap file (in an Avalon Configuration object) and builds this tree by invoking a ProcessingNodeBuilder for each element encountered in the sitemap. The ProcessingNodeBuilder in turn creates an appropriate ProcessingNode that will be used at runtime to "execute" the sitemap.
+ 
+ The ProcessingNode isn't created directly from the sitemap element, since some sitemap elements don't always lead to identical processing depending either on their attributes (e.g. <map:call resource=""> and <map:call function="">) or the used components (e.g. <map:match> which is different for regular Matcher and PreparedMatcher).
+ 
+ The DefaultTreeBuilder has a createComponentManager() method that creates - guess what? - the CM that is to be used within the processing tree to lookup components. In that default implementation, this is just the "current" one (i.e. the one passed to "compose()").
+ 
+ But if you look at SitemapLanguage, which is a subclass of DefaultTreeBuilder, you will notice that its createComponentManager() method creates a new CocoonComponentManager and configures it with <map:components>. So <map:components> defines components of the sitemap just a cocoon.xconf defines them for the Cocoon object.
+ 
+ Adding a custom classloader to the sitemap to handle blocks should thus be just a matter of giving that custom classloader to the created CM.
+ 


Page: http://wiki.cocoondev.org/Wiki.jsp?page=Sitemap, version: 12 on Sat Feb  1 22:54:07 2003 by NicolaKen

- The sitemap is turned into executable code ({{sitemap_xmap.java}}) using the sitemap [Logicsheet]. The sitemap can be re-generated each time {{sitemap.xmap}} is modified, this 
?             ^

+ The old compiled sitemap was turned into executable code ({{sitemap_xmap.java}}) using the sitemap [Logicsheet]. The sitemap can be re-generated each time {{sitemap.xmap}} is modified, this 
?    +++++++++++++         ^^

- ''Note: this is changing, as I believe the sitemap is going to be interpreted rather than compiled -- [Leigh Dodds]''
+ The new sitemap is now interpreted rather than compiled, so it's much faster to load and process. Here is a guide about [Interpreted Sitemap Internals].