In an attempt to dive into the Dispatcher, I have started to write some 
contracts for the Baetle plugin. While working, Once an issue raised, I try to 
get over it by studying the source code but if things get complicated, then I'd 
rather ask the list.

Here's an issue: Does Dispatcher really support XPath?

Let's say that I'd like my contract to decide where in the final document to 
add the content it generates. For instance,

<forrest:template ...>
  <xsl:stylesheet ...>
    <xsl:template match="/">
      <forrest:content>
        <forrest:part xpath="/html/body//[EMAIL PROTECTED]'footer']">
          ...

would append the generated content to the node selected by @xpath.

None of the current contracts that I know of, goes further than simple XPath 
expressions (e.g. '/html/body').

Do you think it's a bug that contracts with more complex XPath expressions 
fail, or is it meant not to work like that at all?

The only thing I didn't examine is the XPath processor used in the 
org.apache.forrest.dispatcher.transformation.DispatcherTransformer class. 
'contractProcessingEnd()' is the method responsible for generating the final 
content.

Sina K. Heshmati