| <?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&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> |