blob: bc89f06b6630505279523ac75993dc227758776c [file] [log] [blame]
<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--+
| Input Modules sample sitemap.
| Author: Konstantin Piroumian "kpiroumian@apache.org"
|
| SVN $Id$
+-->
<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
<!-- =========================== Components ============================== -->
<map:components>
<map:actions>
<!-- Action to store locale name as cookie. -->
<map:action name="cookie-locale" src="org.apache.cocoon.acting.LocaleAction">
<store-in-cookie>true</store-in-cookie>
</map:action>
</map:actions>
</map:components>
<!-- =========================== Resources =============================== -->
<map:resources>
<!-- This resource is used to create a composite page from menu and content -->
<map:resource name="composite">
<map:aggregate element="site">
<map:part src="cocoon:/menu/{../1}.html"/>
<map:part src="cocoon:/content/{../1}.xml" label="content"/>
</map:aggregate>
<map:transform src="site2html.xsl">
<map:parameter name="page" value="{../0}"/>
</map:transform>
<map:serialize/>
</map:resource>
</map:resources>
<!-- =========================== Pipelines ================================= -->
<map:pipelines>
<map:component-configurations>
<global-variables>
<!--+
| (Re)Define global parameters, used in the input modules GlobalInputModule demo.
+-->
<global-sub-sitemap>This value is defined in the samples/modules/sitemap.xmap</global-sub-sitemap>
<global-sitemap-override>This value was defined in the samples/sitemap.xmap, but was overridden by samples/modules/sitemap.xmap</global-sitemap-override>
</global-variables>
</map:component-configurations>
<map:pipeline>
<!-- Default URL matcher. Matches '/' URLs-->
<map:match pattern="">
<map:redirect-to uri="index.html"/>
</map:match>
<map:match pattern="*.html">
<map:call resource="composite"/>
</map:match>
<!-- Index page content -->
<map:match pattern="content/index.xml">
<map:generate src="menu.xml"/>
<map:transform src="menu2content.xsl"/>
<map:serialize/>
</map:match>
<!-- Menu -->
<map:match pattern="menu/*">
<map:generate src="menu.xml"/>
<map:transform src="menu2navigation.xsl">
<map:parameter name="page" value="{1}"/>
</map:transform>
<map:serialize/>
</map:match>
<map:match pattern="content/request.xml">
<map:generate type="jx" src="properties.xml">
<map:parameter name="attributeNames" value="{request:attributeNames}"/>
<map:parameter name="authType" value="{request:authType}"/>
<map:parameter name="characterEncoding" value="{request:characterEncoding}"/>
<map:parameter name="cookieMap" value="{request:cookieMap}"/>
<map:parameter name="cookies" value="{request:cookies}"/>
<map:parameter name="contentLength" value="{request:contentLength}"/>
<map:parameter name="contentType" value="{request:contentType}"/>
<map:parameter name="contextPath" value="{request:contextPath}"/>
<map:parameter name="headers" value="{request:headers}"/>
<map:parameter name="headerNames" value="{request:headerNames}"/>
<map:parameter name="locale" value="{request:locale}"/>
<map:parameter name="locales" value="{request:locales}"/>
<map:parameter name="method" value="{request:method}"/>
<!--map:parameter name="parameter-map" value="{request:parameterMap}"/-->
<map:parameter name="parameterNames" value="{request:parameterNames}"/>
<map:parameter name="pathInfo" value="{request:pathInfo}"/>
<map:parameter name="pathTranslated" value="{request:pathTranslated}"/>
<map:parameter name="protocol" value="{request:protocol}"/>
<map:parameter name="queryString" value="{request:queryString}"/>
<map:parameter name="remoteAddr" value="{request:remoteAddr}"/>
<map:parameter name="remoteHost" value="{request:remoteHost}"/>
<map:parameter name="remoteUser" value="{request:remoteUser}"/>
<map:parameter name="requestURI" value="{request:requestURI}"/>
<map:parameter name="requestedSessionId" value="{request:requestedSessionId}"/>
<map:parameter name="requestedSessionIdFromCookie" value="{request:requestedSessionIdFromCookie}"/>
<map:parameter name="requestedSessionIdFromURL" value="{request:requestedSessionIdFromURL}"/>
<map:parameter name="requestedSessionIdValid" value="{request:requestedSessionIdValid}"/>
<map:parameter name="scheme" value="{request:scheme}"/>
<map:parameter name="secure" value="{request:secure}"/>
<map:parameter name="serverName" value="{request:serverName}"/>
<map:parameter name="serverPort" value="{request:serverPort}"/>
<map:parameter name="servletPath" value="{request:servletPath}"/>
<map:parameter name="session [truncated]" value="{request:concat('org. ... .', substring(session, 36))}"/>
<map:parameter name="sitemapURI" value="{request:sitemapURI}"/>
<map:parameter name="userPrincipal" value="{request:userPrincipal}"/>
</map:generate>
<map:transform src="properties2html.xsl">
<map:parameter name="title" value="Request Input Module (RequestModule)"/>
</map:transform>
<map:serialize/>
</map:match>
<map:match pattern="content/baselink.xml">
<map:generate type="jx" src="properties.xml">
<map:parameter name="sitemapAsBase" value="{baselink:SitemapBaseLink}"/>
<map:parameter name="requestAsBase" value="{baselink:RequestBaseLink}"/>
</map:generate>
<map:transform src="properties2html.xsl">
<map:parameter name="title" value="BaseLink Input Module (BaseLinkModule)"/>
<map:parameter name="description" value="Returns a relative path (../,
../../, etc) linking to either the base of the current request URI or the base
of the sitemap.
In this demonstration, the request URI is {0} (an internal request not
equivalent to what the user sees)"/>
</map:transform>
<map:serialize/>
</map:match>
<map:match pattern="requestparam">
<map:redirect-to uri="content/requestparam.xml?foo=foo+param&amp;bar=bar+param"/>
</map:match>
<map:match pattern="content/requestparam.xml">
<map:generate type="jx" src="properties.xml">
<map:parameter name="foo" value="{request-param:foo}"/>
<map:parameter name="bar" value="{request-param:bar}"/>
</map:generate>
<map:transform src="properties2html.xsl">
<map:parameter name="title" value="Request Parameter Input Module (RequestParameterModule)"/>
<map:parameter name="description" value="Provides access to request
parameters. Edit the URL of this page to see the request parameter
values change (parts after the '?' are request parameters) ."/>
</map:transform>
<map:serialize/>
</map:match>
<map:match pattern="content/session.xml">
<map:generate type="jx" src="properties.xml">
<map:parameter name="attributeNames" value="{session:attributeNames}"/>
<map:parameter name="creationTime" value="{session:creationTime}"/>
<map:parameter name="lastAccessedTime" value="{session:lastAccessedTime}"/>
<map:parameter name="maxInactiveInterval" value="{session:maxInactiveInterval}"/>
<map:parameter name="id" value="{session:id}"/>
<map:parameter name="new" value="{session:new}"/>
</map:generate>
<map:transform src="properties2html.xsl">
<map:parameter name="title" value="Session Input Module (SessionModule)"/>
<map:parameter name="description" value="SessionModule provides access
to Session object properties."/>
</map:transform>
<map:serialize/>
</map:match>
<map:match pattern="content/system-property.xml">
<map:generate type="jx" src="properties.xml">
<map:parameter name="java.version" value="{system-property:java.version}"/>
<map:parameter name="java.vendor" value="{system-property:java.vendor}"/>
<map:parameter name="java.vendor.url" value="{system-property:java.vendor.url}"/>
<map:parameter name="java.home" value="{system-property:java.home}"/>
<map:parameter name="java.vm.specification.version" value="{system-property:java.vm.specification.version}"/>
<map:parameter name="java.vm.specification.vendor" value="{system-property:java.vm.specification.vendor}"/>
<map:parameter name="java.vm.specification.name" value="{system-property:java.vm.specification.name}"/>
<map:parameter name="java.vm.version" value="{system-property:java.vm.version}"/>
<map:parameter name="java.vm.vendor" value="{system-property:java.vm.vendor}"/>
<map:parameter name="java.vm.name" value="{system-property:java.vm.name}"/>
<map:parameter name="java.specification.version" value="{system-property:java.specification.version}"/>
<map:parameter name="java.specification.vendor" value="{system-property:java.specification.vendor}"/>
<map:parameter name="java.specification.name" value="{system-property:java.specification.name}"/>
<map:parameter name="java.specification.name" value="{system-property:java.specification.name}"/>
<map:parameter name="java.class.path" value="{system-property:java.class.path}"/>
<map:parameter name="java.ext.dirs" value="{system-property:java.ext.dirs}"/>
<map:parameter name="os.name" value="{system-property:os.name}"/>
<map:parameter name="os.arch" value="{system-property:os.arch}"/>
<map:parameter name="os.version" value="{system-property:os.version}"/>
<map:parameter name="file.separator" value="{system-property:file.separator}"/>
<map:parameter name="path.separator" value="{system-property:path.separator}"/>
<map:parameter name="line.separator" value="{system-property:line.separator}"/>
<map:parameter name="user.name" value="{system-property:user.name}"/>
<map:parameter name="user.home" value="{system-property:user.home}"/>
<map:parameter name="user.dir" value="{system-property:user.dir}"/>
<!-- Function call -->
<map:parameter name="users-home-base" value="{system-property:substring-before(user.home, user.name)}"/>
</map:generate>
<map:transform src="properties2html.xsl">
<map:parameter name="title" value="System Properties Input Module (SystemPropertiesModule)"/>
</map:transform>
<map:serialize/>
</map:match>
<map:match pattern="content/xxml.xml">
<map:generate type="jx" src="properties.xml">
<map:parameter name="/forrestconf/@version" value="{xmyxml:/forrestconf/@version}"/>
<map:parameter name="/forrestconf/skin" value="{xmyxml:/forrestconf/skin}"/>
<map:parameter name="/*/base-url" value="{xmyxml:/*/base-url}"/>
<map:parameter name="a/forestconf/@version" value="{varxml:/forrestconf/@version}"/>
<map:parameter name="a/forrestconf/skin" value="{varxml:/forrestconf/skin}"/>
<map:parameter name="a/*/base-url" value="{varxml:/*/base-url}"/>
<!--
<map:parameter name="slashdot-headline" value="{slashdot:/*:RDF/item[1]/title}"/>
-->
</map:generate>
<map:transform src="properties2html.xsl">
<map:parameter name="title" value="Xpath XML File Input Module (XPathXMLFileModule)"/>
<map:parameter name="description" value="XMLFileModule uses an XML
file as a data source, with XPath expressions as the key values. In
this example, the keys identify nodes in
context://samples/modules/forrestconf.xml"/>
</map:transform>
<map:serialize/>
</map:match>
<map:match pattern="content/xml.xml">
<map:generate type="jx" src="properties.xml">
<map:parameter name="/forrestconf/@version" value="{myxml:/forrestconf/@version}"/>
<map:parameter name="/forrestconf/skin" value="{myxml:/forrestconf/skin}"/>
<map:parameter name="/*/base-url" value="{myxml:/*/base-url}"/>
<!--
<map:parameter name="slashdot-headline" value="{slashdot:/*:RDF/item[1]/title}"/>
-->
</map:generate>
<map:transform src="properties2html.xsl">
<map:parameter name="title" value="XML File Input Module (XMLFileModule)"/>
<map:parameter name="description" value="XMLFileModule uses an XML
file as a data source, with XPath expressions as the key values. In
this example, the keys identify nodes in
context://samples/modules/forrestconf.xml"/>
</map:transform>
<map:serialize/>
</map:match>
<map:match pattern="content/defaults.xml">
<map:generate type="jx" src="properties.xml">
<map:parameter name="skin" value="{defaults:skin}"/>
<map:parameter name="base-url" value="{defaults:base-url}"/>
</map:generate>
<map:transform src="properties2html.xsl">
<map:parameter name="title" value="Defaults Input Module (DefaultsModule)"/>
<map:parameter name="description" value="DefaultsModule
contains 'default' values, hardcoded into cocoon.xconf.
It is simply a lookup table containing static values."/>
</map:transform>
<map:serialize/>
</map:match>
<map:match pattern="content/chain.xml">
<map:generate type="jx" src="properties.xml">
<map:parameter name="skin" value="{chain:skin}"/>
</map:generate>
<map:transform src="properties2html.xsl">
<map:parameter name="title" value="Chaining Input module (ChainMetaModule)"/>
<map:parameter name="description" value="ChainMetaModule
iterates through a set of modules until one returns a
non-null value for the specified key. In this example, we
chain together request-param, request-attr, session-attr
and defaults modules. The 'skin' value is taken from the
first that returns a non-null value, usually 'defaults'.
Try adding '?skin=myskin' to the URL, and it should
change."/>
</map:transform>
<map:serialize/>
</map:match>
<map:match pattern="content/cookie.xml">
<map:act type="cookie-locale"/>
<map:generate type="jx" src="properties.xml">
<map:parameter name="locale" value="{cookie:locale}"/>
</map:generate>
<map:transform src="properties2html.xsl">
<map:parameter name="title" value="Cookie module (CookieModule)"/>
<map:parameter name="description" value="Returns the value
of the named HTTP cookie.
The example used LocaleAction to store the current locale name as cookie.
If the value is empty, use the browser's reload button.
(Cookies just created cannot be read out. Only when the browser presents it
on the next request, it will be available.)"/>
</map:transform>
<map:serialize/>
</map:match>
<map:match pattern="content/date.xml">
<map:generate type="jx" src="properties.xml">
<map:parameter name="format-in-config" value="{date:date}"/>
<map:parameter name="format-inline" value="{date:MMM d, yyyy}"/>
</map:generate>
<map:transform src="properties2html.xsl">
<map:parameter name="title" value="Date Input module (DateMetaModule)"/>
<map:parameter name="description" value="Returns the current
date and time. The format is specified in cocoon.xconf or as the
data specified in the input module reference"/>
</map:transform>
<map:serialize/>
</map:match>
<map:match pattern="content/session-attr.xml">
<map:generate type="jx" src="properties.xml">
<map:parameter name="fruit" value="{session-attr:fruit}"/>
</map:generate>
<map:transform src="properties2html.xsl">
<map:parameter name="title" value="Session Attribute Input Module
(SessionAttributeModule)"/>
<map:parameter name="description" value="SessionAttributeModule provides access
to Session attributes."/>
</map:transform>
<map:serialize/>
</map:match>
<map:match pattern="content/randomnumber.xml">
<map:generate type="jx" src="properties.xml">
<map:parameter name="default" value="{random:x}"/>
<map:parameter name="from 100 to 500" value="{random-100-to-500:y}"/>
<map:parameter name="from 5000 to 10000" value="{random-5000-to-10000:z}"/>
</map:generate>
<map:transform src="properties2html.xsl">
<map:parameter name="title" value="Random number module (RandomNumberModule)"/>
<map:parameter name="description" value="Returns a random number in a
user-configurable range (by default 0 to (2^63)-1 (cca. 9.22337204 × 10^18)"/>
</map:transform>
<map:serialize/>
</map:match>
<map:match pattern="content/realpath.xml">
<map:generate type="jx" src="properties.xml">
<map:parameter name="/" value="{realpath:/}"/>
<map:parameter name="/images" value="{realpath:/images}"/>
<map:parameter name="/WEB-INF" value="{realpath:/WEB-INF}"/>
</map:generate>
<map:transform src="properties2html.xsl">
<map:parameter name="title" value="RealPath Module (RealPathModule)"/>
<map:parameter name="description" value="Returns the real path of a
context-relative virtual path (if not deployed from a .war)."/>
</map:transform>
<map:serialize/>
</map:match>
<map:match pattern="content/properties.xml">
<map:generate type="jx" src="properties.xml">
<map:parameter name="name" value="{cocoon-properties:name}"/>
<map:parameter name="Name" value="{cocoon-properties:Name}"/>
<map:parameter name="fullname" value="{cocoon-properties:fullname}"/>
<map:parameter name="version" value="{cocoon-properties:version}"/>
<map:parameter name="released.version" value="{cocoon-properties:released.version}"/>
<map:parameter name="year" value="{cocoon-properties:year}"/>
</map:generate>
<map:transform src="properties2html.xsl">
<map:parameter name="title" value="Properties File Module
(PropertiesFileModule)"/>
<map:parameter name="description" value="PropertiesFileModule provides access
to properties from a properties file. In this example the keys identify properties in
resource://org/apache/cocoon/cocoon.properties"/>
</map:transform>
<map:serialize/>
</map:match>
<map:match pattern="content/url-encode.xml">
<map:generate type="jx" src="properties.xml">
<map:parameter name="foo bar" value="{url-encode:foo bar}"/>
<map:parameter name="foo/bar" value="{url-encode:foo/bar}"/>
</map:generate>
<map:transform src="properties2html.xsl">
<map:parameter name="title" value="URL Encoding Module (URLEncodeModule)"/>
<map:parameter name="description" value="URLEncodeModule performs
URL encoding of the passed parameter"/>
</map:transform>
<map:serialize/>
</map:match>
<map:match pattern="content/url-decode.xml">
<map:generate type="jx" src="properties.xml">
<map:parameter name="foo%20bar" value="{url-decode:foo%20bar}"/>
<map:parameter name="foo%2Fbar" value="{url-decode:foo%2Fbar}"/>
</map:generate>
<map:transform src="properties2html.xsl">
<map:parameter name="title" value="URL Decoding Module (URLDecodeModule)"/>
<map:parameter name="description" value="URLDecodeModule performs
URL decoding of the passed parameter"/>
</map:transform>
<map:serialize/>
</map:match>
<map:match pattern="content/naming.xml">
<map:generate type="jx" src="properties.xml">
<map:parameter name="java:comp/env/greeting" value="{naming:java:comp/env/greeting}"/>
</map:generate>
<map:transform src="properties2html.xsl">
<map:parameter name="title" value="Naming Module (NamingInputModule)"/>
<map:parameter name="description" value="NamingInputModule provides access
to JNDI resources. This sample does not work with built-in Jetty as it does not provide JNDI."/>
</map:transform>
<map:serialize/>
</map:match>
<map:match pattern="content/global.xml">
<map:generate type="jx" src="properties.xml">
<map:parameter name="global-sitemap" value="{global:global-sitemap}"/>
<map:parameter name="global-sub-sitemap" value="{global:global-sub-sitemap}"/>
<map:parameter name="global-sitemap-override" value="{global:global-sitemap-override}"/>
</map:generate>
<map:transform src="properties2html.xsl">
<map:parameter name="title" value="Global Input Module (GlobalInputModule)"/>
<map:parameter name="description" value="GlobalInputModule
contains 'global' values defined in the sitemap. Children sitemaps
can override values defined in the parent sitemap."/>
</map:transform>
<map:serialize/>
</map:match>
<!-- Display this sitemap source-->
<map:match pattern="sitemap.xmap">
<map:generate src="sitemap.xmap"/>
<map:transform src="context://stylesheets/system/xml2html.xslt"/>
<map:serialize/>
</map:match>
<map:match pattern="*.css">
<map:read src="{1}.css" mime-type="text/css"/>
</map:match>
<map:match pattern="images/*.gif">
<map:read src="images/{1}.gif" mime-type="image/gif"/>
</map:match>
</map:pipeline>
</map:pipelines>
</map:sitemap>