Tim Williams wrote:
I'd like to clarify my understanding of the use of cocoon protocols in
forrest.  The cocoon documentation says:
# context://  - get a resource using the servlet context
# cocoon:/ - get a pipeline from the current sitemap
# cocoon:// - get a pipeline using the root sitemap
# resource:// - get a resource from the context classloader

1) Are cocoon:/ and cocoon:// interchangable within the conceptual
sitemap space of forrest (e.g., \main\webapp\*.xmap)?  Anecdotally,
nothing seems to break when I modify existing ones.

My understanding is...

cocoon:/ will *only* match something in the current sitemap (i.e. not
those in mounted sitemaps or sitemaps from which the current one was
mounted). I'm not sure if it will match in mounted sitemaps below this
one, I suspect it will not, but could be wrong.

cocoon:// will mount from *any* sitemap in the app

In other words, you can make it break if you change the wrong one.

2) The same doesn't appear to hold true of forrest-core.xconf as
things do break if the correct one isn't used.  Since all of them here
are to the root sitemap (e.g., cocoon://) is forrest-core.xconf
outside the forrest conceptual sitemap?

Pass

3) Are project specific sitemap.xmaps are separate root sitemaps or
extensions of the forrest application sitemap?


The are mounted from the application sitemap by the following:

<!--
  This is the user pipeline, that can answer requests instead
  of the Forrest one, or let requests pass through.
  To take over the rendering of a file it must match the file name and
path.
  To take over the generation of the intermediate format, it must give
  Forrest the same filename but ending with xml, and a DTD that Forrest
  recognizes.
-->
      <map:pipeline internal-only="false">
           <map:select type="exists">
             <map:when test="{project:sitemap}">
               <map:mount uri-prefix=""
                          src="{project:sitemap}"
                          check-reload="yes"
                          pass-through="true"/>
             </map:when>
           </map:select>
      </map:pipeline>

Ross


Reply via email to