Hi,

I am trying to modify a request parameter 'query', based on the value of another request parameter 'region', before passing 'query' to the SearchGenerator.

I am trying to use the DefaultsMetaModule in 2.1-dev, and am getting unexpected exceptions.

javax.xml.transform.TransformerException: org.apache.xalan.xsltc.TransletException: org.apache.xalan.xsltc.TransletException: org.apache.cocoon.ProcessingException: Failed to load sitemap from file:/Users/jermq/Library/TomCat/webapps/cocoon/iniva/search.xmap: org.apache.avalon.framework.configuration.ConfigurationException: Invalid pattern '+(doc@search:archive) +({default:query})' at file:/Users/jermq/Library/TomCat/webapps/cocoon/iniva/search.xmap:35:88

This concatenation works in another version of this sitemap, where I do not use Input Modules.

Here is the sitemap matcher (its the only one in this sitemap):

<map:match pattern="">
<map:select type="parameter"> <!-- test 'query' param -->
<map:parameter name="parameter-selector-test" value="{default:query}"/>
<map:when test=""> <!-- there is no query -->
<map:generate type="search"/>
</map:when>
<map:otherwise> <!-- there is a query -->
<map:select type="parameter"> <!-- test 'region' param -->
<map:parameter name="parameter-selector-test" value="{default:region}"/>
<map:when test="archive"> <!-- 'region' param = "archive" -->
<map:generate type="search"> <!-- modify the query to only search the archive -->
<map:parameter name="query"
value="+(doc@search:archive) +({default:query})"/>
<!-- error @ 35:88 is here ^ -->
</map:generate>
</map:when>
<map:when test="library">
<map:generate type="search">
<map:parameter name="query" value="+(doc@search:library) +({default:query})"/>
</map:generate>
</map:when>
<!-- etc. -->
<map:otherwise>
<map:generate type="search">
<map:parameter name="query" value="{default:query}"/>
</map:generate>
</map:otherwise>
</map:select>
</map:otherwise>
</map:select>
<map:transform src="parts/xsl/search2menu.xsl">
<map:parameter name="prefix" value="{default:iniva-url}"/>
</map:transform>
<map:serialize/>
</map:match>

and here is the relevant snippet from cocoon.xconf:

<component-instance
class="org.apache.cocoon.components.modules.input.DefaultsMetaModule"
logger="core.modules.input" name="defaults">
<input-module name="request-param"/>
<values>
<query></query>
<region>all</region>
<iniva-url>http://iborg.local:8080/cocoon/iniva/</iniva-url>
</values>
</component-instance>

Can anyone see what I am doing wrong?

thanks for any help

regards Jeremy


---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html>

To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail: <[EMAIL PROTECTED]>

Reply via email to