You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by vg...@apache.org on 2003/05/06 16:13:04 UTC
cvs commit: cocoon-2.1/src/webapp/samples/webserviceproxy/cocoonhive/stylesheets page.css
vgritsenko 2003/05/06 07:13:03
Modified: src/blocks/databases/samples/mod-db stupid.xsl
src/blocks/deli/WEB-INF/deli/config localProfiles.xml
src/blocks/html/conf tidy.xconf tidy.xroles
src/blocks/linkrewriter/samples sitemap.xmap
src/blocks/lucene/java/org/apache/cocoon/components/search
SimpleLuceneXMLIndexerImpl.java
src/blocks/portal-fw/conf portal-act.xmap portal-gen.xmap
portal.xconf portal.xroles
src/blocks/portal-fw/samples sitemap.xmap
src/blocks/portal-fw/samples/styles TO-html.xsl
changeuser.xsl load.xsl login-html.xsl portal.xsl
portalHTML-Netscape.xsl portalHTML.xsl
portalconfHTML.xsl sunLet_MoreoverDotCom.xsl
sunLet_sundnNews.xsl sunletconf.xsl
sunrise-user.xsl sunriseconfHTML.xsl
sunriseeditHTML.xsl
src/blocks/precept/samples samples.xml
src/blocks/precept/samples/example1 README error.xml
error.xsl thanks.xml thanks.xsl view1.xml view1.xsl
view2.xml view2.xsl view3.xml view3.xsl view4.xml
view4.xsl
src/blocks/precept/samples/example2 error.xml i2html.xsl
thanks.xml view1.xml view2.xml view3.xml view4.xml
src/blocks/precept/samples/model easyrelax.xml
src/blocks/session-fw/conf session-act.xmap session-sel.xmap
session-tran.xmap
src/blocks/slide/java/org/apache/cocoon/components/repository/impl
SlideConfigurationAdapter.java
src/blocks/slide/samples sitemap.xmap
src/blocks/taglib/conf jxpath.xconf tag.xconf
src/blocks/web3/conf web3.xconf web3.xsamples
src/blocks/web3/java/org/apache/cocoon/components/web3
Web3.java Web3Client.java Web3DataSource.java
Web3Streamer.java
src/blocks/web3/java/org/apache/cocoon/components/web3/impl
DefaultWeb3StreamerImpl.java Web3ClientImpl.java
Web3DataSourceImpl.java
Web3DataSourceSelectorImpl.java Web3Properties.java
src/blocks/web3/java/org/apache/cocoon/transformation
Web3RfcTransformer.java
src/blocks/web3/mocks/com/sap/mw/jco IFunctionTemplate.java
IRepository.java JCO.java
src/blocks/web3/samples/dtd rfc-in.dtd rfc-out.dtd
src/blocks/web3/samples/stylesheets pics2view.xsl pretty.xsl
proper.xsl rfc2html.xsl
src/deprecated/conf deprecated.xconf deprecated.xroles
src/documentation/xdocs/drafts cocoon2-docbook.xml
src/scratchpad/src/org/apache/cocoon/components/source/impl
blob.xconf
src/scratchpad/webapp/samples/jxforms/stylesheets
jxforms2html.xsl
src/scratchpad/webapp/samples/paginator/content text.xml
src/scratchpad/webapp/samples/paginator/pagesheets
text.pagesheet
src/scratchpad/webapp/samples/petstore sitemap.xmap
src/scratchpad/webapp/samples/petstore/stylesheets
form2html.xsl site2html.xsl
src/scratchpad/webapp/samples/petstore/view/jxforms
EditAccountInformation.xml
EditProfileInformation.xml EditUserInformation.xml
src/webapp/samples/errorhandling sitemap.xmap
src/webapp/samples/errorhandling/exception sitemap.xmap
src/webapp/samples/webserviceproxy/cocoonhive/stylesheets
page.css
Log:
fix line endings
Revision Changes Path
1.2 +4 -4 cocoon-2.1/src/blocks/databases/samples/mod-db/stupid.xsl
Index: stupid.xsl
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/databases/samples/mod-db/stupid.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- stupid.xsl 9 Mar 2003 00:03:21 -0000 1.1
+++ stupid.xsl 6 May 2003 14:12:54 -0000 1.2
@@ -15,13 +15,13 @@
<xsl:attribute name="bgcolor"><xsl:value-of select="$tablecolor"/></xsl:attribute>
<xsl:element name="tr">
<xsl:apply-templates select="child::*[1]" mode="head"/>
- </xsl:element>
+ </xsl:element>
<xsl:for-each select="child::*">
<xsl:element name="tr">
<xsl:apply-templates select="."/>
- </xsl:element>
+ </xsl:element>
</xsl:for-each>
- </xsl:element>
+ </xsl:element>
</xsl:template>
<xsl:template match="sqltblrow" mode="head">
@@ -130,7 +130,7 @@
<xsl:element name="big">
<xsl:apply-templates/>
</xsl:element>
- </xsl:element>
+ </xsl:element>
</xsl:element>
</xsl:element>
</xsl:template>
1.2 +5 -17 cocoon-2.1/src/blocks/deli/WEB-INF/deli/config/localProfiles.xml
Index: localProfiles.xml
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/deli/WEB-INF/deli/config/localProfiles.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- localProfiles.xml 9 Mar 2003 00:03:32 -0000 1.1
+++ localProfiles.xml 6 May 2003 14:12:54 -0000 1.2
@@ -5,7 +5,6 @@
<!-- Legacy devices contributed by Johannes Koch - Thanks Johannes -->
<!-- Alcatel -->
-
<device>
<ua value="Alcatel-BF4/2.0"
profile="Alcatel_OT512.rdf"/>
@@ -32,7 +31,6 @@
</device>
<!-- Ericsson -->
-
<device>
<ua value="EricssonA2628/R2A"
profile="Ericsson_A2628.rdf"/>
@@ -54,18 +52,16 @@
</device>
<!-- Sony -->
-
<device>
<ua value="Sony CMD-Z5"
profile="Sony_CMD-Z5.rdf"/>
- </device>
+ </device>
<!-- Siemens -->
-
<device>
<ua value="SIE-S45/05"
profile="Siemens_S45.rdf"/>
- </device>
+ </device>
<device>
<ua value="SIE-S35"
@@ -78,14 +74,12 @@
</device>
<!-- NEC -->
-
<device>
<ua value="n21i-10"
profile="NEC_21i.rdf"/>
</device>
<!-- Motorola -->
-
<device>
<ua value="MOT-SAP4"
profile="Motorola_V66.rdf"/>
@@ -136,9 +130,7 @@
profile="Motorola_A008.rdf"/>
</device>
-
<!-- Nokia -->
-
<device>
<ua value="Nokia9210"
profile="Nokia_9210_WML.rdf"/>
@@ -263,31 +255,27 @@
-->
<!-- UAProf phones - remove when UAProf enabled WAP gateways are more widespread -->
-
<device>
<ua value="Mitsu/1.2.A (Eclipse)"
profile="Trium_Eclipse.rdf"/>
- </device>
+ </device>
<device>
<ua value="EricssonT68"
profile="Ericsson_T68R1.rdf"/>
- </device>
-
+ </device>
<device>
<ua value="SonyEricssonT68/R201A"
profile="SonyEricsson_T68R201A.rdf"/>
</device>
-
<device>
<ua value="EricssonT39"
profile="Ericsson_T39.rdf"/>
- </device>
+ </device>
<!-- Demonstration legacy devices - the information in these profiles SHOULD NOT be used for content adaptation -->
-
<device>
<ua value="amaya"
profile="amaya.rdf"/>
1.2 +7 -7 cocoon-2.1/src/blocks/html/conf/tidy.xconf
Index: tidy.xconf
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/html/conf/tidy.xconf,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- tidy.xconf 2 May 2003 06:31:59 -0000 1.1
+++ tidy.xconf 6 May 2003 14:12:54 -0000 1.2
@@ -1,7 +1,7 @@
-<?xml version="1.0"?>
-
-<xconf xpath="/cocoon/xmlizer" unless="parser[@role='org.apache.excalibur.xml.sax.SAXParser/HTML']">
-
- <parser role="org.apache.excalibur.xml.sax.SAXParser/HTML" mime-type="text/html"/>
-
-</xconf>
+<?xml version="1.0"?>
+
+<xconf xpath="/cocoon/xmlizer" unless="parser[@role='org.apache.excalibur.xml.sax.SAXParser/HTML']">
+
+ <parser role="org.apache.excalibur.xml.sax.SAXParser/HTML" mime-type="text/html"/>
+
+</xconf>
1.2 +10 -10 cocoon-2.1/src/blocks/html/conf/tidy.xroles
Index: tidy.xroles
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/html/conf/tidy.xroles,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- tidy.xroles 4 May 2003 17:33:41 -0000 1.1
+++ tidy.xroles 6 May 2003 14:12:54 -0000 1.2
@@ -1,10 +1,10 @@
-<?xml version="1.0"?>
-
-<xroles xpath="/role-list" unless="role[@name='org.apache.excalibur.xml.sax.SAXParser/HTML']">
-
- <!-- This is the HTML parser -->
- <role name="org.apache.excalibur.xml.sax.SAXParser/HTML"
- shorthand="html-parser"
- default-class="org.apache.excalibur.xml.sax.JTidyHTMLParser"/>
-
-</xroles>
+<?xml version="1.0"?>
+
+<xroles xpath="/role-list" unless="role[@name='org.apache.excalibur.xml.sax.SAXParser/HTML']">
+
+ <!-- This is the HTML parser -->
+ <role name="org.apache.excalibur.xml.sax.SAXParser/HTML"
+ shorthand="html-parser"
+ default-class="org.apache.excalibur.xml.sax.JTidyHTMLParser"/>
+
+</xroles>
1.2 +39 -46 cocoon-2.1/src/blocks/linkrewriter/samples/sitemap.xmap
Index: sitemap.xmap
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/linkrewriter/samples/sitemap.xmap,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- sitemap.xmap 9 Mar 2003 00:04:20 -0000 1.1
+++ sitemap.xmap 6 May 2003 14:12:54 -0000 1.2
@@ -1,46 +1,39 @@
-<?xml version="1.0"?>
-
-<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
- <!-- =========================== Components ================================ -->
-
- <map:components>
-
- <map:generators default="file"/>
- <map:transformers default="xslt"/>
- <map:readers default="resource"/>
- <map:serializers default="html"/>
- <map:matchers default="wildcard"/>
- <map:selectors default="browser"/>
- </map:components>
-
-
- <!-- =========================== Pipelines ================================= -->
-
- <map:pipelines>
-
- <map:pipeline>
- <map:match pattern="">
- <map:redirect-to uri="welcome"/>
- </map:match>
- <map:match pattern="welcome">
- <map:generate src="samples.xml"/>
- <map:transform src="context://samples/common/style/xsl/html/simple-samples2html.xsl">
- <map:parameter name="contextPath" value="{request:contextPath}"/>
- </map:transform>
- <map:serialize/>
-
- </map:match>
- </map:pipeline>
-
- <!-- pipeline mounting linkrewriter samples sitemaps -->
- <map:pipeline>
- <!-- mount everything else -->
- <map:match pattern="*/**">
- <map:mount check-reload="yes" src="{1}/" uri-prefix="{1}"/>
- </map:match>
- </map:pipeline>
-
- </map:pipelines>
-
-</map:sitemap>
-
+<?xml version="1.0"?>
+
+<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
+ <!-- =========================== Components ================================ -->
+
+ <map:components>
+ <map:generators default="file"/>
+ <map:transformers default="xslt"/>
+ <map:readers default="resource"/>
+ <map:serializers default="html"/>
+ <map:matchers default="wildcard"/>
+ <map:selectors default="browser"/>
+ </map:components>
+
+ <!-- =========================== Pipelines ================================= -->
+
+ <map:pipelines>
+ <map:pipeline>
+ <map:match pattern="">
+ <map:redirect-to uri="welcome"/>
+ </map:match>
+ <map:match pattern="welcome">
+ <map:generate src="samples.xml"/>
+ <map:transform src="context://samples/common/style/xsl/html/simple-samples2html.xsl">
+ <map:parameter name="contextPath" value="{request:contextPath}"/>
+ </map:transform>
+ <map:serialize/>
+ </map:match>
+ </map:pipeline>
+
+ <!-- pipeline mounting linkrewriter samples sitemaps -->
+ <map:pipeline>
+ <!-- mount everything else -->
+ <map:match pattern="*/**">
+ <map:mount check-reload="yes" src="{1}/" uri-prefix="{1}"/>
+ </map:match>
+ </map:pipeline>
+ </map:pipelines>
+</map:sitemap>
1.3 +17 -18 cocoon-2.1/src/blocks/lucene/java/org/apache/cocoon/components/search/SimpleLuceneXMLIndexerImpl.java
Index: SimpleLuceneXMLIndexerImpl.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/lucene/java/org/apache/cocoon/components/search/SimpleLuceneXMLIndexerImpl.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- SimpleLuceneXMLIndexerImpl.java 11 Mar 2003 17:44:21 -0000 1.2
+++ SimpleLuceneXMLIndexerImpl.java 6 May 2003 14:12:54 -0000 1.3
@@ -81,23 +81,22 @@
/**
* A simple class building lucene documents from xml content.
*
- * <p>
- * It has two parameters that effect the way it works:
- * </p><p>
- * <tt><store-fields/></tt>
- * Sets which tags in your content are stored in Lucene as fields,
- * during the indexing process. Allows them to be output with search hits.
- * </p><p>
- * <tt><content-view-query/></tt>
- * Sets the view the indexer will request for indexing content.
- * </p><p>
- * Example configuration (goes in cocoon.xconf)
- * <pre><tt>
- * <lucene-xml-indexer logger="core.search.lucene">
- * <store-fields>title, summary<store-fields>
- * <content-view-query>cocoon-view=search</content-view-query>
- * </lucene-xml-indexer>
- * </tt></pre></p>
+ * <p>It has two parameters that effect the way it works:</p>
+ * <p>
+ * <tt><store-fields/></tt>
+ * Sets which tags in your content are stored in Lucene as fields,
+ * during the indexing process. Allows them to be output with search hits.
+ * </p><p>
+ * <tt><content-view-query/></tt>
+ * Sets the view the indexer will request for indexing content.
+ * </p><p>
+ * Example configuration (goes in cocoon.xconf)
+ * <pre><tt>
+ * <lucene-xml-indexer logger="core.search.lucene">
+ * <store-fields>title, summary<store-fields>
+ * <content-view-query>cocoon-view=search</content-view-query>
+ * </lucene-xml-indexer>
+ * </tt></pre></p>
*
* @author <a href="mailto:berni_huber@a1.net">Bernhard Huber</a>
* @author <a href="mailto:jeremy@apache.org">Jeremy Quinn</a>
1.2 +8 -8 cocoon-2.1/src/blocks/portal-fw/conf/portal-act.xmap
Index: portal-act.xmap
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/conf/portal-act.xmap,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- portal-act.xmap 9 Mar 2003 00:05:14 -0000 1.1
+++ portal-act.xmap 6 May 2003 14:12:54 -0000 1.2
@@ -1,8 +1,8 @@
-<?xml version="1.0"?>
-
-<xmap xpath="/sitemap/components/actions"
- unless="action[@name='portal-auth']">
-
- <map:action name="portal-auth"
- src="org.apache.cocoon.webapps.portal.acting.AuthAction"/>
-</xmap>
+<?xml version="1.0"?>
+
+<xmap xpath="/sitemap/components/actions"
+ unless="action[@name='portal-auth']">
+
+ <map:action name="portal-auth"
+ src="org.apache.cocoon.webapps.portal.acting.AuthAction"/>
+</xmap>
1.2 +12 -12 cocoon-2.1/src/blocks/portal-fw/conf/portal-gen.xmap
Index: portal-gen.xmap
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/conf/portal-gen.xmap,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- portal-gen.xmap 9 Mar 2003 00:05:14 -0000 1.1
+++ portal-gen.xmap 6 May 2003 14:12:54 -0000 1.2
@@ -1,12 +1,12 @@
-<?xml version="1.0"?>
-
-<xmap xpath="/sitemap/components/generators"
- unless="generator[@name='portal']">
-
- <map:generator name="portal"
- src="org.apache.cocoon.webapps.portal.generation.PortalGenerator"
- label="content,data"/>
- <map:generator name="portal-conf"
- src="org.apache.cocoon.webapps.portal.generation.ConfigurationGenerator"
- label="content,data"/>
-</xmap>
+<?xml version="1.0"?>
+
+<xmap xpath="/sitemap/components/generators"
+ unless="generator[@name='portal']">
+
+ <map:generator name="portal"
+ src="org.apache.cocoon.webapps.portal.generation.PortalGenerator"
+ label="content,data"/>
+ <map:generator name="portal-conf"
+ src="org.apache.cocoon.webapps.portal.generation.ConfigurationGenerator"
+ label="content,data"/>
+</xmap>
1.2 +8 -8 cocoon-2.1/src/blocks/portal-fw/conf/portal.xconf
Index: portal.xconf
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/conf/portal.xconf,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- portal.xconf 9 Mar 2003 00:05:14 -0000 1.1
+++ portal.xconf 6 May 2003 14:12:54 -0000 1.2
@@ -1,8 +1,8 @@
-<?xml version="1.0"?>
-
-<xconf xpath="/cocoon" unless="portal-manager">
-
- <portal-manager logger="core.portal-manager"
- pool-max="32" pool-min="8" pool-grow="4"/>
-
-</xconf>
+<?xml version="1.0"?>
+
+<xconf xpath="/cocoon" unless="portal-manager">
+
+ <portal-manager logger="core.portal-manager"
+ pool-max="32" pool-min="8" pool-grow="4"/>
+
+</xconf>
1.2 +9 -9 cocoon-2.1/src/blocks/portal-fw/conf/portal.xroles
Index: portal.xroles
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/conf/portal.xroles,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- portal.xroles 9 Mar 2003 00:05:14 -0000 1.1
+++ portal.xroles 6 May 2003 14:12:54 -0000 1.2
@@ -1,9 +1,9 @@
-<?xml version="1.0"?>
-
-<xroles xpath="/role-list" unless="role[@name='org.apache.cocoon.webapps.portal.components.PortalManager']">
-
- <role name="org.apache.cocoon.webapps.portal.components.PortalManager"
- shorthand="portal-manager"
- default-class="org.apache.cocoon.webapps.portal.components.PortalManager"/>
-
-</xroles>
+<?xml version="1.0"?>
+
+<xroles xpath="/role-list" unless="role[@name='org.apache.cocoon.webapps.portal.components.PortalManager']">
+
+ <role name="org.apache.cocoon.webapps.portal.components.PortalManager"
+ shorthand="portal-manager"
+ default-class="org.apache.cocoon.webapps.portal.components.PortalManager"/>
+
+</xroles>
1.2 +289 -296 cocoon-2.1/src/blocks/portal-fw/samples/sitemap.xmap
Index: sitemap.xmap
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/samples/sitemap.xmap,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- sitemap.xmap 9 Mar 2003 00:05:21 -0000 1.1
+++ sitemap.xmap 6 May 2003 14:12:55 -0000 1.2
@@ -1,296 +1,289 @@
-<?xml version="1.0"?>
-
-<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
-<!-- =========================== Components ================================ -->
-
- <map:components>
-
- <map:generators default="file"/>
- <map:transformers default="xslt"/>
- <map:readers default="resource"/>
- <map:serializers default="html"/>
- <map:matchers default="wildcard"/>
- <map:selectors default="browser"/>
- </map:components>
-
-
-<!-- =========================== Pipelines ================================= -->
-
- <map:pipelines>
- <map:component-configurations>
- <authentication-manager>
- <handlers>
- <handler name="portalhandler">
- <redirect-to uri="cocoon:/sunspotdemoportal"/>
- <authentication uri="cocoon:raw:/sunrise-authuser"/>
- <applications>
- <application loadondemand="true" name="sunspotdemo">
- <configuration name="portal">
- <auth-redirect>sunspotdemo-portal</auth-redirect>
- <portal-uri>sunspotdemo-portal</portal-uri>
- <profile-cache>true</profile-cache>
- <process-coplets-parallel>false</process-coplets-parallel>
- <default-coplet-timeout>10000</default-coplet-timeout> <!-- milliseconds -->
- <profile>
- <layout-base uri="profiles/layoutprofile.xml"/>
- <coplet-base uri="profiles/copletprofile.xml"/>
- <coplet-base-save uri="profiles/copletprofile.xml"/>
- <type-base uri="profiles/types.xml"/>
- <admin-type-base uri="profiles/admintypes.xml"/>
- <global-delta-load uri="profiles/globalprofile.xml"/>
- <global-delta-save uri="cocoon:raw:/sunspotdemoresource-saveglobalprofile"/>
- <role-delta-load uri="cocoon:raw:/sunspotdemoresource-roleprofile"/>
- <role-delta-save uri="cocoon:raw:/sunspotdemoresource-saveroleprofile"/>
- <user-delta-load uri="cocoon:raw:/sunspotdemoresource-userprofile"/>
- <user-delta-save uri="cocoon:raw:/sunspotdemoresource-saveuserprofile"/>
- <user-status-load uri="cocoon:raw:/sunspotdemoresource-userstatus"/>
- <user-status-save uri="cocoon:raw:/sunspotdemoresource-saveuserstatus"/>
- </profile>
- </configuration>
- <configuration name="single-role-user-management">
- <load-users uri="cocoon:raw:/sunrise-loaduser"/>
- <load-roles uri="cocoon:raw:/sunrise-roles"/>
- <new-user uri="cocoon:raw:/sunrise-newuser"/>
- <new-role uri="cocoon:raw:/sunrise-newrole"/>
- <change-user uri="cocoon:raw:/sunrise-changeuser"/>
- <delete-role uri="cocoon:raw:/sunrise-delrole"/>
- <delete-user uri="cocoon:raw:/sunrise-deluser"/>
- </configuration>
- </application>
- </applications>
- </handler>
- </handlers>
- </authentication-manager>
- </map:component-configurations>
-
- <map:pipeline>
-
-
- <map:match pattern="">
- <map:redirect-to uri="sunspotdemoportal"/>
- </map:match>
-
- <!-- This is the Cocoon Demo Portal Pipeline -->
- <map:match pattern="sunspotdemoportal">
- <map:act type="auth-loggedIn">
- <map:parameter name="handler" value="portalhandler"/>
- <map:redirect-to uri="sunspotdemo-portal"/>
- </map:act>
- <map:generate src="resources/free/portal.xml"/>
- <map:transform src="styles/TO-html.xsl"/>
- <map:transform type="encodeURL"/>
- <map:serialize/>
- </map:match>
-
- <!-- images -->
- <map:match pattern="sunspotdemoimg-*.gif">
- <map:read mime-type="image/gif" src="images/{1}.gif"/>
- </map:match>
- <map:match pattern="sunspotdemoimg-*.jpg">
- <map:read mime-type="image/jpg" src="images/{1}.jpg"/>
- </map:match>
-
- <!-- free sites -->
- <map:match pattern="sunspotdemofree-login">
- <map:act type="auth-loggedIn">
- <map:parameter name="handler" value="portalhandler"/>
- <map:redirect-to uri="sunspotdemo-portal"/>
- </map:act>
- <map:generate src="resources/free/login.xml"/>
- <map:transform src="styles/login-html.xsl"/>
- <map:transform src="styles/TO-html.xsl"/>
- <map:transform type="encodeURL"/>
- <map:serialize/>
- </map:match>
- <map:match pattern="sunspotdemofree-auth">
- <map:act type="auth-loggedIn">
- <map:parameter name="handler" value="portalhandler"/>
- <map:redirect-to uri="sunspotdemo-loggedin"/>
- </map:act>
- <map:act type="auth-login">
- <map:parameter name="handler" value="portalhandler"/>
- <map:parameter name="parameter_name" value="{request-param:name}"/>
- <map:parameter name="parameter_password" value="{request-param:password}"/>
- <map:redirect-to uri="sunspotdemo-portal"/>
- </map:act>
- <map:generate src="resources/free/auth.xml"/>
- <map:transform src="styles/TO-html.xsl"/>
- <map:transform type="encodeURL"/>
- <map:serialize/>
- </map:match>
- <map:match pattern="sunspotdemofree-*">
- <map:act type="auth-loggedIn">
- <map:parameter name="handler" value="portalhandler"/>
- <map:redirect-to uri="sunspotdemo-portal"/>
- </map:act>
- <map:generate src="resources/free/{1}.xml"/>
- <map:transform src="styles/TO-html.xsl"/>
- <map:transform type="encodeURL"/>
- <map:serialize/>
- </map:match>
-
- <map:match pattern="sunspotdemo**">
- <map:act type="auth-protect">
- <map:parameter name="handler" value="portalhandler"/>
- <map:parameter name="application" value="sunspotdemo"/>
-
- <map:match pattern="sunspotdemoresource-save*">
- <map:generate src="resources/save{1}.xml"/>
- <map:transform type="session"/>
- <map:transform type="cinclude"/>
- <map:transform type="write-source"/>
- <map:serialize type="xml"/>
- </map:match>
- <map:match pattern="sunspotdemoresource-*">
- <map:generate src="resources/{1}.xml"/>
- <map:transform type="session"/>
- <map:transform type="cinclude"/>
- <map:transform type="write-source"/>
- <map:transform src="styles/portal.xsl"/>
- <map:serialize type="xml"/>
- </map:match>
-
- <!-- sunlets -->
- <map:match pattern="sunspotdemosunlet-onlinesundn.xml">
- <map:generate src="http://www.s-und-n.de/aktuelles/news.xml"/>
- <map:transform src="styles/sunLet_sundnNews.xsl"/>
- <map:serialize type="xml"/>
- </map:match>
-
- <map:match pattern="sunspotdemosunlet-online-*.xml">
- <map:generate src="http://p.moreover.com/cgi-local/page?index_{1}+xml"/>
- <map:transform src="styles/sunLet_MoreoverDotCom.xsl"/>
- <map:serialize type="xml"/>
- </map:match>
- <map:match pattern="sunspotdemosunlet-customnews">
- <map:generate src="resources/auth/sunlet-customnews.xml"/>
- <map:transform type="session"/>
- <map:transform type="cinclude"/>
- <map:transform src="styles/sunLet_MoreoverDotCom.xsl"/>
- <map:serialize type="xml"/>
- </map:match>
- <map:match pattern="sunspotdemosunletconf-*">
- <map:generate src="resources/auth/sunletconfig-{1}.xml"/>
- <map:transform type="session"/>
- <map:transform type="cinclude"/>
- <map:transform src="styles/sunletconf.xsl"/>
- <map:serialize type="xml"/>
- </map:match>
-
- <map:match pattern="sunspotdemosunlet-*.xml">
- <map:generate src="resources/auth/sunlet-{1}.xml"/>
- <map:serialize type="xml"/>
- </map:match>
-
-
- <!-- auth sites -->
-
- <map:match pattern="sunspotdemo-conf">
- <map:generate type="portal-conf"/>
- <map:transform src="styles/portalconfHTML.xsl"/>
- <map:transform type="encodeURL"/>
- <map:serialize/>
- </map:match>
- <map:match pattern="sunspotdemo-adminconf">
- <!-- This pipeline can only be accessed if the current user is
- allowed to configure the 'administration' coplet -->
- <map:act type="portal-auth">
- <map:parameter name="coplet" value="administration"/>
- </map:act>
- <map:generate src="admin" type="portal-conf"/>
- <map:transform src="styles/portalconfHTML.xsl"/>
- <map:transform type="encodeURL"/>
- <map:serialize/>
- </map:match>
- <map:match pattern="sunspotdemo-sunriseconf">
- <!-- This pipeline can only be accessed if the current user is
- allowed to configure the 'administration' coplet -->
- <map:act type="portal-auth">
- <map:parameter name="coplet" value="administration"/>
- </map:act>
- <map:generate type="auth-conf"/>
- <map:transform src="styles/sunriseconfHTML.xsl"/>
- <map:transform type="encodeURL"/>
- <map:serialize/>
- </map:match>
- <map:match pattern="sunspotdemo-sunriseedit">
- <map:generate src="user" type="auth-conf"/>
- <map:transform src="styles/sunriseeditHTML.xsl"/>
- <map:transform type="encodeURL"/>
- <map:serialize/>
- </map:match>
- <map:match pattern="sunspotdemo-portlets">
- <map:generate type="portal"/>
- <map:select type="browser">
- <map:when test="explorer">
- <map:transform src="styles/portalHTML.xsl"/>
- </map:when>
- <map:when test="netscape">
- <map:transform src="styles/portalHTML-Netscape.xsl"/>
- </map:when>
- <map:otherwise>
- <map:transform src="styles/portalHTML.xsl"/>
- </map:otherwise>
- </map:select>
- <map:transform type="encodeURL"/>
- <map:serialize/>
- </map:match>
- <map:match pattern="sunspotdemo-logout">
- <map:act type="auth-logout"/>
- <map:generate src="resources/auth/logout.xml"/>
- <map:transform src="styles/TO-html.xsl"/>
- <map:transform type="encodeURL"/>
- <map:serialize/>
- </map:match>
- <map:match pattern="sunspotdemo-*">
- <map:generate src="resources/auth/{1}.xml"/>
- <map:transform type="session"/>
- <map:transform type="cinclude"/>
- <map:transform type="write-source"/>
- <map:transform src="styles/TO-html.xsl"/>
- <map:transform type="encodeURL"/>
- <map:serialize/>
- </map:match>
- </map:act>
- </map:match>
-
- </map:pipeline>
-
- <map:pipeline internal-only="true">
- <!-- This is the Cocoon Demo Portal Pipeline -->
- <map:match pattern="sunrise-*">
- <!-- authentication -->
- <map:match pattern="sunrise-authuser">
- <map:generate src="resources/sunrise-user.xml"/>
- <map:transform src="styles/sunrise-user.xsl">
- <map:parameter name="use-request-parameters" value="true"/>
- </map:transform>
- <map:serialize type="xml"/>
- </map:match>
-
- <map:match pattern="sunrise-changeuser">
- <map:generate src="resources/sunrise-changeuser.xml"/>
- <map:transform type="session"/>
- <map:transform type="cinclude"/>
- <map:transform src="styles/changeuser.xsl"/>
- <map:transform type="write-source"/>
- <map:transform src="styles/portal.xsl"/>
- <map:serialize type="xml"/>
- </map:match>
-
- <map:match pattern="sunrise*">
- <map:generate src="resources/sunrise{1}.xml"/>
- <map:transform type="session"/>
- <map:transform type="cinclude"/>
- <map:transform type="write-source"/>
- <map:transform src="styles/portal.xsl"/>
- <map:serialize type="xml"/>
- </map:match>
- </map:match>
- </map:pipeline>
-
- </map:pipelines>
-
-</map:sitemap>
-
-<!-- end of file -->
+<?xml version="1.0"?>
+
+<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
+<!-- =========================== Components ================================ -->
+
+ <map:components>
+ <map:generators default="file"/>
+ <map:transformers default="xslt"/>
+ <map:readers default="resource"/>
+ <map:serializers default="html"/>
+ <map:matchers default="wildcard"/>
+ <map:selectors default="browser"/>
+ </map:components>
+
+<!-- =========================== Pipelines ================================= -->
+
+ <map:pipelines>
+ <map:component-configurations>
+ <authentication-manager>
+ <handlers>
+ <handler name="portalhandler">
+ <redirect-to uri="cocoon:/sunspotdemoportal"/>
+ <authentication uri="cocoon:raw:/sunrise-authuser"/>
+ <applications>
+ <application loadondemand="true" name="sunspotdemo">
+ <configuration name="portal">
+ <auth-redirect>sunspotdemo-portal</auth-redirect>
+ <portal-uri>sunspotdemo-portal</portal-uri>
+ <profile-cache>true</profile-cache>
+ <process-coplets-parallel>false</process-coplets-parallel>
+ <default-coplet-timeout>10000</default-coplet-timeout> <!-- milliseconds -->
+ <profile>
+ <layout-base uri="profiles/layoutprofile.xml"/>
+ <coplet-base uri="profiles/copletprofile.xml"/>
+ <coplet-base-save uri="profiles/copletprofile.xml"/>
+ <type-base uri="profiles/types.xml"/>
+ <admin-type-base uri="profiles/admintypes.xml"/>
+ <global-delta-load uri="profiles/globalprofile.xml"/>
+ <global-delta-save uri="cocoon:raw:/sunspotdemoresource-saveglobalprofile"/>
+ <role-delta-load uri="cocoon:raw:/sunspotdemoresource-roleprofile"/>
+ <role-delta-save uri="cocoon:raw:/sunspotdemoresource-saveroleprofile"/>
+ <user-delta-load uri="cocoon:raw:/sunspotdemoresource-userprofile"/>
+ <user-delta-save uri="cocoon:raw:/sunspotdemoresource-saveuserprofile"/>
+ <user-status-load uri="cocoon:raw:/sunspotdemoresource-userstatus"/>
+ <user-status-save uri="cocoon:raw:/sunspotdemoresource-saveuserstatus"/>
+ </profile>
+ </configuration>
+ <configuration name="single-role-user-management">
+ <load-users uri="cocoon:raw:/sunrise-loaduser"/>
+ <load-roles uri="cocoon:raw:/sunrise-roles"/>
+ <new-user uri="cocoon:raw:/sunrise-newuser"/>
+ <new-role uri="cocoon:raw:/sunrise-newrole"/>
+ <change-user uri="cocoon:raw:/sunrise-changeuser"/>
+ <delete-role uri="cocoon:raw:/sunrise-delrole"/>
+ <delete-user uri="cocoon:raw:/sunrise-deluser"/>
+ </configuration>
+ </application>
+ </applications>
+ </handler>
+ </handlers>
+ </authentication-manager>
+ </map:component-configurations>
+
+ <map:pipeline>
+ <map:match pattern="">
+ <map:redirect-to uri="sunspotdemoportal"/>
+ </map:match>
+
+ <!-- This is the Cocoon Demo Portal Pipeline -->
+ <map:match pattern="sunspotdemoportal">
+ <map:act type="auth-loggedIn">
+ <map:parameter name="handler" value="portalhandler"/>
+ <map:redirect-to uri="sunspotdemo-portal"/>
+ </map:act>
+ <map:generate src="resources/free/portal.xml"/>
+ <map:transform src="styles/TO-html.xsl"/>
+ <map:transform type="encodeURL"/>
+ <map:serialize/>
+ </map:match>
+
+ <!-- images -->
+ <map:match pattern="sunspotdemoimg-*.gif">
+ <map:read mime-type="image/gif" src="images/{1}.gif"/>
+ </map:match>
+ <map:match pattern="sunspotdemoimg-*.jpg">
+ <map:read mime-type="image/jpg" src="images/{1}.jpg"/>
+ </map:match>
+
+ <!-- free sites -->
+ <map:match pattern="sunspotdemofree-login">
+ <map:act type="auth-loggedIn">
+ <map:parameter name="handler" value="portalhandler"/>
+ <map:redirect-to uri="sunspotdemo-portal"/>
+ </map:act>
+ <map:generate src="resources/free/login.xml"/>
+ <map:transform src="styles/login-html.xsl"/>
+ <map:transform src="styles/TO-html.xsl"/>
+ <map:transform type="encodeURL"/>
+ <map:serialize/>
+ </map:match>
+ <map:match pattern="sunspotdemofree-auth">
+ <map:act type="auth-loggedIn">
+ <map:parameter name="handler" value="portalhandler"/>
+ <map:redirect-to uri="sunspotdemo-loggedin"/>
+ </map:act>
+ <map:act type="auth-login">
+ <map:parameter name="handler" value="portalhandler"/>
+ <map:parameter name="parameter_name" value="{request-param:name}"/>
+ <map:parameter name="parameter_password" value="{request-param:password}"/>
+ <map:redirect-to uri="sunspotdemo-portal"/>
+ </map:act>
+ <map:generate src="resources/free/auth.xml"/>
+ <map:transform src="styles/TO-html.xsl"/>
+ <map:transform type="encodeURL"/>
+ <map:serialize/>
+ </map:match>
+ <map:match pattern="sunspotdemofree-*">
+ <map:act type="auth-loggedIn">
+ <map:parameter name="handler" value="portalhandler"/>
+ <map:redirect-to uri="sunspotdemo-portal"/>
+ </map:act>
+ <map:generate src="resources/free/{1}.xml"/>
+ <map:transform src="styles/TO-html.xsl"/>
+ <map:transform type="encodeURL"/>
+ <map:serialize/>
+ </map:match>
+
+ <map:match pattern="sunspotdemo**">
+ <map:act type="auth-protect">
+ <map:parameter name="handler" value="portalhandler"/>
+ <map:parameter name="application" value="sunspotdemo"/>
+
+ <map:match pattern="sunspotdemoresource-save*">
+ <map:generate src="resources/save{1}.xml"/>
+ <map:transform type="session"/>
+ <map:transform type="cinclude"/>
+ <map:transform type="write-source"/>
+ <map:serialize type="xml"/>
+ </map:match>
+ <map:match pattern="sunspotdemoresource-*">
+ <map:generate src="resources/{1}.xml"/>
+ <map:transform type="session"/>
+ <map:transform type="cinclude"/>
+ <map:transform type="write-source"/>
+ <map:transform src="styles/portal.xsl"/>
+ <map:serialize type="xml"/>
+ </map:match>
+
+ <!-- sunlets -->
+ <map:match pattern="sunspotdemosunlet-onlinesundn.xml">
+ <map:generate src="http://www.s-und-n.de/aktuelles/news.xml"/>
+ <map:transform src="styles/sunLet_sundnNews.xsl"/>
+ <map:serialize type="xml"/>
+ </map:match>
+
+ <map:match pattern="sunspotdemosunlet-online-*.xml">
+ <map:generate src="http://p.moreover.com/cgi-local/page?index_{1}+xml"/>
+ <map:transform src="styles/sunLet_MoreoverDotCom.xsl"/>
+ <map:serialize type="xml"/>
+ </map:match>
+ <map:match pattern="sunspotdemosunlet-customnews">
+ <map:generate src="resources/auth/sunlet-customnews.xml"/>
+ <map:transform type="session"/>
+ <map:transform type="cinclude"/>
+ <map:transform src="styles/sunLet_MoreoverDotCom.xsl"/>
+ <map:serialize type="xml"/>
+ </map:match>
+ <map:match pattern="sunspotdemosunletconf-*">
+ <map:generate src="resources/auth/sunletconfig-{1}.xml"/>
+ <map:transform type="session"/>
+ <map:transform type="cinclude"/>
+ <map:transform src="styles/sunletconf.xsl"/>
+ <map:serialize type="xml"/>
+ </map:match>
+
+ <map:match pattern="sunspotdemosunlet-*.xml">
+ <map:generate src="resources/auth/sunlet-{1}.xml"/>
+ <map:serialize type="xml"/>
+ </map:match>
+
+
+ <!-- auth sites -->
+
+ <map:match pattern="sunspotdemo-conf">
+ <map:generate type="portal-conf"/>
+ <map:transform src="styles/portalconfHTML.xsl"/>
+ <map:transform type="encodeURL"/>
+ <map:serialize/>
+ </map:match>
+ <map:match pattern="sunspotdemo-adminconf">
+ <!-- This pipeline can only be accessed if the current user is
+ allowed to configure the 'administration' coplet -->
+ <map:act type="portal-auth">
+ <map:parameter name="coplet" value="administration"/>
+ </map:act>
+ <map:generate src="admin" type="portal-conf"/>
+ <map:transform src="styles/portalconfHTML.xsl"/>
+ <map:transform type="encodeURL"/>
+ <map:serialize/>
+ </map:match>
+ <map:match pattern="sunspotdemo-sunriseconf">
+ <!-- This pipeline can only be accessed if the current user is
+ allowed to configure the 'administration' coplet -->
+ <map:act type="portal-auth">
+ <map:parameter name="coplet" value="administration"/>
+ </map:act>
+ <map:generate type="auth-conf"/>
+ <map:transform src="styles/sunriseconfHTML.xsl"/>
+ <map:transform type="encodeURL"/>
+ <map:serialize/>
+ </map:match>
+ <map:match pattern="sunspotdemo-sunriseedit">
+ <map:generate src="user" type="auth-conf"/>
+ <map:transform src="styles/sunriseeditHTML.xsl"/>
+ <map:transform type="encodeURL"/>
+ <map:serialize/>
+ </map:match>
+ <map:match pattern="sunspotdemo-portlets">
+ <map:generate type="portal"/>
+ <map:select type="browser">
+ <map:when test="explorer">
+ <map:transform src="styles/portalHTML.xsl"/>
+ </map:when>
+ <map:when test="netscape">
+ <map:transform src="styles/portalHTML-Netscape.xsl"/>
+ </map:when>
+ <map:otherwise>
+ <map:transform src="styles/portalHTML.xsl"/>
+ </map:otherwise>
+ </map:select>
+ <map:transform type="encodeURL"/>
+ <map:serialize/>
+ </map:match>
+ <map:match pattern="sunspotdemo-logout">
+ <map:act type="auth-logout"/>
+ <map:generate src="resources/auth/logout.xml"/>
+ <map:transform src="styles/TO-html.xsl"/>
+ <map:transform type="encodeURL"/>
+ <map:serialize/>
+ </map:match>
+ <map:match pattern="sunspotdemo-*">
+ <map:generate src="resources/auth/{1}.xml"/>
+ <map:transform type="session"/>
+ <map:transform type="cinclude"/>
+ <map:transform type="write-source"/>
+ <map:transform src="styles/TO-html.xsl"/>
+ <map:transform type="encodeURL"/>
+ <map:serialize/>
+ </map:match>
+ </map:act>
+ </map:match>
+ </map:pipeline>
+
+ <map:pipeline internal-only="true">
+ <!-- This is the Cocoon Demo Portal Pipeline -->
+ <map:match pattern="sunrise-*">
+ <!-- authentication -->
+ <map:match pattern="sunrise-authuser">
+ <map:generate src="resources/sunrise-user.xml"/>
+ <map:transform src="styles/sunrise-user.xsl">
+ <map:parameter name="use-request-parameters" value="true"/>
+ </map:transform>
+ <map:serialize type="xml"/>
+ </map:match>
+
+ <map:match pattern="sunrise-changeuser">
+ <map:generate src="resources/sunrise-changeuser.xml"/>
+ <map:transform type="session"/>
+ <map:transform type="cinclude"/>
+ <map:transform src="styles/changeuser.xsl"/>
+ <map:transform type="write-source"/>
+ <map:transform src="styles/portal.xsl"/>
+ <map:serialize type="xml"/>
+ </map:match>
+
+ <map:match pattern="sunrise*">
+ <map:generate src="resources/sunrise{1}.xml"/>
+ <map:transform type="session"/>
+ <map:transform type="cinclude"/>
+ <map:transform type="write-source"/>
+ <map:transform src="styles/portal.xsl"/>
+ <map:serialize type="xml"/>
+ </map:match>
+ </map:match>
+ </map:pipeline>
+ </map:pipelines>
+</map:sitemap>
+
+<!-- end of file -->
1.2 +218 -220 cocoon-2.1/src/blocks/portal-fw/samples/styles/TO-html.xsl
Index: TO-html.xsl
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/samples/styles/TO-html.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TO-html.xsl 9 Mar 2003 00:05:31 -0000 1.1
+++ TO-html.xsl 6 May 2003 14:12:55 -0000 1.2
@@ -1,220 +1,218 @@
-<?xml version="1.0"?>
-
-<xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<!-- $Id$
-
-
--->
-
-<xsl:template match="page">
- <html>
- <head>
- <title>
- <xsl:if test="@title"><xsl:value-of select="@title"/></xsl:if>
- <xsl:if test="not(@title)">Cocoon Portal</xsl:if>
- </title>
- <xsl:if test="@logout">
- <script language="JavaScript">
- function timeout() {
- window.setTimeout("test()", 1500);
- }
- function test() {
- top.location.href = "sunspotdemofree-portal";
- }
- </script>
- </xsl:if>
- </head>
- <xsl:apply-templates/>
- </html>
- </xsl:template>
-
-<xsl:template match="content">
- <body text="#0B2A51" link="#0B2A51" vlink="#666666">
- <xsl:apply-templates select="@*"/>
- <xsl:if test="/page/@logout">
- <xsl:attribute name="onLoad">timeout()</xsl:attribute>
- </xsl:if>
- <xsl:if test="/page/@bgcolor">
- <xsl:attribute name="bgcolor"><xsl:value-of select="/page/@bgcolor"/></xsl:attribute>
- </xsl:if>
- <xsl:if test="/page/@textcolor">
- <xsl:attribute name="text"><xsl:value-of select="/page/@textcolor"/></xsl:attribute>
- </xsl:if>
- <xsl:if test="/page/@background">
- <xsl:attribute name="background"><xsl:value-of select="/page/@background"/></xsl:attribute>
- </xsl:if>
- <xsl:apply-templates/>
- </body>
-</xsl:template>
-
-<xsl:template match="logoutcontent">
- <body text="#0B2A51" link="#0B2A51" vlink="#666666">
- <xsl:apply-templates select="@*"/>
- <xsl:if test="/page/@logout">
- <xsl:attribute name="onLoad">timeout()</xsl:attribute>
- </xsl:if>
- <xsl:if test="/page/@bgcolor">
- <xsl:attribute name="bgcolor"><xsl:value-of select="/page/@bgcolor"/></xsl:attribute>
- </xsl:if>
- <xsl:if test="/page/@textcolor">
- <xsl:attribute name="text"><xsl:value-of select="/page/@textcolor"/></xsl:attribute>
- </xsl:if>
- <xsl:if test="/page/@background">
- <xsl:attribute name="background"><xsl:value-of select="/page/@background"/></xsl:attribute>
- </xsl:if>
- <table border="0" cellPadding="0" cellSpacing="0" height="100%" width="100%">
- <tr>
- <td height="100%" noWrap="" width="193" valign="top" bgcolor="#46627a">
- <img height="2" src="sunspotdemoimg-space.gif" width="1"/>
- </td>
- <td>
- <table border="0" width="100%" cellspacing="0" cellpadding="0">
- <xsl:attribute name="bgcolor">
- <xsl:value-of select="portalconf/layout-profile/portal/layouts/layout/background/color"/>
- </xsl:attribute>
-
- <tr>
- <td width="1%"><img src="sunspotdemoimg-space.gif" width="20" height="1"/></td>
- <td align="center">
- <img src="sunspotdemoimg-space.gif" height="20" width="1"/>
- <table border="0" width="100%">
- <tr>
- <td>
- <xsl:apply-templates/>
- </td>
- </tr>
- </table>
- </td>
- <td><img src="sunspotdemoimg-space.gif" width="20"/></td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- </body>
-</xsl:template>
-
-<xsl:template match="paragraph">
- <xsl:if test="@title">
- <font face="Arial, Helvetica, sans-serif" size="3">
- <b>
- <xsl:value-of select="@title"/>
- </b>
- </font>
- </xsl:if>
- <p>
- <font face="Arial, Helvetica, sans-serif" size="2">
- <xsl:apply-templates/>
- </font>
- </p>
- </xsl:template>
-
-<xsl:template match="logoutparagraph">
- <p>
- <font face="Arial, Helvetica, sans-serif" size="2">
- <xsl:apply-templates/>
- </font>
- </p>
- </xsl:template>
-
-<xsl:template match="pageset">
- <frameset border="0" frameborder="0" framespacing="0" noresize="">
- <xsl:if test="@rows">
- <xsl:attribute name="rows"><xsl:value-of select="@rows"/></xsl:attribute>
- </xsl:if>
- <xsl:if test="@columns">
- <xsl:attribute name="cols"><xsl:value-of select="@columns"/></xsl:attribute>
- </xsl:if>
- <xsl:apply-templates/>
- </frameset>
- </xsl:template>
-
-<xsl:template match="pagepart">
- <xsl:apply-templates/>
-</xsl:template>
-
-<xsl:template match="part">
- <frame frameborder="0" border="0" noresize="" marginHeight="0" marginwidth="0">
- <xsl:attribute name="src"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
- <xsl:attribute name="name"><xsl:value-of select="@title"/></xsl:attribute>
- <xsl:if test="@scrolling">
- <xsl:attribute name="scrolling"><xsl:value-of select="@scrolling"/></xsl:attribute>
- </xsl:if>
- <xsl:if test="@noresize">
- <xsl:attribute name="noresize"><xsl:value-of select="@noresize"/></xsl:attribute>
- </xsl:if>
- </frame>
- </xsl:template>
-
-<xsl:template match="picture">
- <xsl:if test="action">
- <a href="{action/@url}">
- <img border="0">
- <xsl:attribute name="src"><xsl:value-of select="@url"/></xsl:attribute>
- </img>
- </a>
- </xsl:if>
- <xsl:if test="not(action)">
- <img>
- <xsl:attribute name="src"><xsl:value-of select="@url"/></xsl:attribute>
- </img>
- </xsl:if>
- </xsl:template>
-
-<xsl:template match="picturedyn">
- <xsl:if test="action">
- <a href="{action/@url}">
- <img border="0">
- <xsl:attribute name="src"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
- </img>
- </a>
- </xsl:if>
- <xsl:if test="not(action)">
- <img border="0">
- <xsl:attribute name="src"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
- </img>
- </xsl:if>
- </xsl:template>
-
-<xsl:template match="link">
- <a>
- <xsl:choose>
- <xsl:when test="starts-with(normalize-space(url), 'http')">
- <xsl:attribute name="target">_new</xsl:attribute>
- </xsl:when>
- <xsl:when test="target">
- <xsl:attribute name="target"><xsl:value-of select="normalize-space(target)"/></xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="target">Main</xsl:attribute>
- </xsl:otherwise>
- </xsl:choose>
-
- <xsl:attribute name="href"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
- <xsl:value-of select="normalize-space(text)"/>
- </a>
- </xsl:template>
-
-<xsl:template match="field">
- <td>
- <xsl:value-of select="@name"/>
- </td>
- <td>
- <input type="text" size="30">
- <xsl:attribute name="name"><xsl:value-of select="@field"/></xsl:attribute>
- <xsl:attribute name="value"><xsl:value-of select="@value"/></xsl:attribute>
- </input>
- </td>
- </xsl:template>
-
-<!-- Copy all and apply templates -->
-
-<xsl:template match="@*|node()">
- <xsl:copy>
- <xsl:apply-templates select="@*|node()" />
- </xsl:copy>
- </xsl:template>
-
-</xsl:stylesheet>
+<?xml version="1.0"?>
+
+<!-- $Id$
+
+-->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="page">
+ <html>
+ <head>
+ <title>
+ <xsl:if test="@title"><xsl:value-of select="@title"/></xsl:if>
+ <xsl:if test="not(@title)">Cocoon Portal</xsl:if>
+ </title>
+ <xsl:if test="@logout">
+ <script language="JavaScript">
+ function timeout() {
+ window.setTimeout("test()", 1500);
+ }
+ function test() {
+ top.location.href = "sunspotdemofree-portal";
+ }
+ </script>
+ </xsl:if>
+ </head>
+ <xsl:apply-templates/>
+ </html>
+ </xsl:template>
+
+<xsl:template match="content">
+ <body text="#0B2A51" link="#0B2A51" vlink="#666666">
+ <xsl:apply-templates select="@*"/>
+ <xsl:if test="/page/@logout">
+ <xsl:attribute name="onLoad">timeout()</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="/page/@bgcolor">
+ <xsl:attribute name="bgcolor"><xsl:value-of select="/page/@bgcolor"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="/page/@textcolor">
+ <xsl:attribute name="text"><xsl:value-of select="/page/@textcolor"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="/page/@background">
+ <xsl:attribute name="background"><xsl:value-of select="/page/@background"/></xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </body>
+</xsl:template>
+
+<xsl:template match="logoutcontent">
+ <body text="#0B2A51" link="#0B2A51" vlink="#666666">
+ <xsl:apply-templates select="@*"/>
+ <xsl:if test="/page/@logout">
+ <xsl:attribute name="onLoad">timeout()</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="/page/@bgcolor">
+ <xsl:attribute name="bgcolor"><xsl:value-of select="/page/@bgcolor"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="/page/@textcolor">
+ <xsl:attribute name="text"><xsl:value-of select="/page/@textcolor"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="/page/@background">
+ <xsl:attribute name="background"><xsl:value-of select="/page/@background"/></xsl:attribute>
+ </xsl:if>
+ <table border="0" cellPadding="0" cellSpacing="0" height="100%" width="100%">
+ <tr>
+ <td height="100%" noWrap="" width="193" valign="top" bgcolor="#46627a">
+ <img height="2" src="sunspotdemoimg-space.gif" width="1"/>
+ </td>
+ <td>
+ <table border="0" width="100%" cellspacing="0" cellpadding="0">
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="portalconf/layout-profile/portal/layouts/layout/background/color"/>
+ </xsl:attribute>
+
+ <tr>
+ <td width="1%"><img src="sunspotdemoimg-space.gif" width="20" height="1"/></td>
+ <td align="center">
+ <img src="sunspotdemoimg-space.gif" height="20" width="1"/>
+ <table border="0" width="100%">
+ <tr>
+ <td>
+ <xsl:apply-templates/>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td><img src="sunspotdemoimg-space.gif" width="20"/></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </body>
+</xsl:template>
+
+ <xsl:template match="paragraph">
+ <xsl:if test="@title">
+ <font face="Arial, Helvetica, sans-serif" size="3">
+ <b>
+ <xsl:value-of select="@title"/>
+ </b>
+ </font>
+ </xsl:if>
+ <p>
+ <font face="Arial, Helvetica, sans-serif" size="2">
+ <xsl:apply-templates/>
+ </font>
+ </p>
+ </xsl:template>
+
+ <xsl:template match="logoutparagraph">
+ <p>
+ <font face="Arial, Helvetica, sans-serif" size="2">
+ <xsl:apply-templates/>
+ </font>
+ </p>
+ </xsl:template>
+
+ <xsl:template match="pageset">
+ <frameset border="0" frameborder="0" framespacing="0" noresize="">
+ <xsl:if test="@rows">
+ <xsl:attribute name="rows"><xsl:value-of select="@rows"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@columns">
+ <xsl:attribute name="cols"><xsl:value-of select="@columns"/></xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </frameset>
+ </xsl:template>
+
+ <xsl:template match="pagepart">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="part">
+ <frame frameborder="0" border="0" noresize="" marginHeight="0" marginwidth="0">
+ <xsl:attribute name="src"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
+ <xsl:attribute name="name"><xsl:value-of select="@title"/></xsl:attribute>
+ <xsl:if test="@scrolling">
+ <xsl:attribute name="scrolling"><xsl:value-of select="@scrolling"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@noresize">
+ <xsl:attribute name="noresize"><xsl:value-of select="@noresize"/></xsl:attribute>
+ </xsl:if>
+ </frame>
+ </xsl:template>
+
+ <xsl:template match="picture">
+ <xsl:if test="action">
+ <a href="{action/@url}">
+ <img border="0">
+ <xsl:attribute name="src"><xsl:value-of select="@url"/></xsl:attribute>
+ </img>
+ </a>
+ </xsl:if>
+ <xsl:if test="not(action)">
+ <img>
+ <xsl:attribute name="src"><xsl:value-of select="@url"/></xsl:attribute>
+ </img>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="picturedyn">
+ <xsl:if test="action">
+ <a href="{action/@url}">
+ <img border="0">
+ <xsl:attribute name="src"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
+ </img>
+ </a>
+ </xsl:if>
+ <xsl:if test="not(action)">
+ <img border="0">
+ <xsl:attribute name="src"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
+ </img>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="link">
+ <a>
+ <xsl:choose>
+ <xsl:when test="starts-with(normalize-space(url), 'http')">
+ <xsl:attribute name="target">_new</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="target">
+ <xsl:attribute name="target"><xsl:value-of select="normalize-space(target)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="target">Main</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:attribute name="href"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
+ <xsl:value-of select="normalize-space(text)"/>
+ </a>
+ </xsl:template>
+
+ <xsl:template match="field">
+ <td>
+ <xsl:value-of select="@name"/>
+ </td>
+ <td>
+ <input type="text" size="30">
+ <xsl:attribute name="name"><xsl:value-of select="@field"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="@value"/></xsl:attribute>
+ </input>
+ </td>
+ </xsl:template>
+
+ <!-- Copy all and apply templates -->
+ <xsl:template match="@*|node()">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|node()" />
+ </xsl:copy>
+ </xsl:template>
+
+</xsl:stylesheet>
1.2 +26 -28 cocoon-2.1/src/blocks/portal-fw/samples/styles/changeuser.xsl
Index: changeuser.xsl
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/samples/styles/changeuser.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- changeuser.xsl 9 Mar 2003 00:05:32 -0000 1.1
+++ changeuser.xsl 6 May 2003 14:12:55 -0000 1.2
@@ -1,28 +1,26 @@
-<?xml version="1.0"?>
-<!-- $Id$
-
--->
-
-<xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<xsl:template match="password">
- <xsl:choose>
- <xsl:when test="normalize-space(new) = normalize-space(old)">
- <password><xsl:value-of select="normalize-space(old)"/></password>
- </xsl:when>
- <xsl:otherwise>
- <password><xsl:value-of select="normalize-space(hashed)"/></password>
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-<!-- Copy all and apply templates -->
-<xsl:template match="@*|node()">
- <xsl:copy>
- <xsl:apply-templates select="@*|node()" />
- </xsl:copy>
-</xsl:template>
-
-
-</xsl:stylesheet>
+<?xml version="1.0"?>
+
+<!-- $Id$ -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="password">
+ <xsl:choose>
+ <xsl:when test="normalize-space(new) = normalize-space(old)">
+ <password><xsl:value-of select="normalize-space(old)"/></password>
+ </xsl:when>
+ <xsl:otherwise>
+ <password><xsl:value-of select="normalize-space(hashed)"/></password>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- Copy all and apply templates -->
+<xsl:template match="@*|node()">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|node()" />
+ </xsl:copy>
+</xsl:template>
+
+</xsl:stylesheet>
1.2 +23 -25 cocoon-2.1/src/blocks/portal-fw/samples/styles/load.xsl
Index: load.xsl
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/samples/styles/load.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- load.xsl 9 Mar 2003 00:05:32 -0000 1.1
+++ load.xsl 6 May 2003 14:12:55 -0000 1.2
@@ -1,25 +1,23 @@
-<?xml version="1.0"?>
-<!-- $Id$
-
--->
-
-<xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
- <xsl:template match="ROWSET">
- <xsl:apply-templates/>
- </xsl:template>
-
- <xsl:template match="ROW">
- <xsl:apply-templates/>
- </xsl:template>
-
- <!-- Copy all and apply templates -->
- <xsl:template match="@*|node()">
- <xsl:copy>
- <xsl:apply-templates select="@*|node()" />
- </xsl:copy>
- </xsl:template>
-
-
-</xsl:stylesheet>
+<?xml version="1.0"?>
+
+<!-- $Id$ -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+ <xsl:template match="ROWSET">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="ROW">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <!-- Copy all and apply templates -->
+ <xsl:template match="@*|node()">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|node()" />
+ </xsl:copy>
+ </xsl:template>
+
+</xsl:stylesheet>
1.2 +103 -104 cocoon-2.1/src/blocks/portal-fw/samples/styles/login-html.xsl
Index: login-html.xsl
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/samples/styles/login-html.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- login-html.xsl 9 Mar 2003 00:05:32 -0000 1.1
+++ login-html.xsl 6 May 2003 14:12:55 -0000 1.2
@@ -1,104 +1,103 @@
-<?xml version="1.0"?>
-
-<xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<!-- $Id$
-
- Description: Login page to HTML
-
--->
-
-<!-- Next transformation is "TO-html.xsl" -->
-
-<xsl:template match="content">
- <content background="sunspotdemoimg-bg_menue1.gif">
- <table bgColor="#ffffff" border="0" cellPadding="0" cellSpacing="0" width="305"><tbody>
- <tr>
- <td>
- <table bgColor="#ffffff" border="0" cellPadding="0" cellSpacing="2" width="100%"><tbody>
- <tr>
- <td bgColor="#46627a" vAlign="middle" width="15">
- <img height="1" src="sunspotdemoimg-space.gif" width="15"/>
- </td>
- <td bgColor="#46627a" align="center">
- <font color="#ffffff" face="Verdana, Arial, Helvetica, sans-serif" size="2">
- <b>
- <center>Cocoon Portal Login</center>
- </b>
- </font>
- </td>
- </tr>
- <tr>
- <td bgColor="#cccccc" width="15">
- <IMG height="1" src="sunspotdemoimg-space.gif" width="15"/>
- </td>
- <td bgColor="#cccccc" align="center">
- <br/>
- <font face="Arial, Helvetica, sans-serif" size="2">
- <xsl:apply-templates/>
- </font>
- <br/>
- </td>
- </tr>
- <tr>
- <td bgColor="#cccccc" width="15">
- <img height="1" src="sunspotdemoimg-space.gif" width="15"/>
- </td>
- <td bgColor="#cccccc" align="center">
- <br/>
- <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
- If you are not already registered, use this guest login:
- <br/><br/>
- User: <b>guest</b>
- Password:
- <b>guest</b>
- <br/><br/>Or use this administrator login:<br/>
- User:
- <b>cocoon</b>
- Password:
- <b>cocoon</b>
- </font>
- <br/><br/>
- </td>
- </tr>
- </tbody></table>
- </td>
- </tr>
- </tbody></table>
- </content>
-</xsl:template>
-
-<xsl:template match="form">
- <form method="post" target="_top"><xsl:attribute name="action"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
- <table>
- <xsl:apply-templates select="field"/><br/>
- </table>
- <input type="submit" value="Login"></input>
- </form>
-</xsl:template>
-
-<xsl:template match="field">
- <tr>
- <td>
- <font face="Arial, Helvetica, sans-serif" size="2"><xsl:value-of select="@description"/>:</font>
- </td>
- <td>
- <input>
- <xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
- <xsl:attribute name="type"><xsl:value-of select="@type"/></xsl:attribute>
- <xsl:attribute name="size"><xsl:value-of select="@length"/></xsl:attribute>
- </input>
- </td>
- </tr>
-</xsl:template>
-
-<!-- Copy all and apply templates -->
-
-<xsl:template match="@*|node()">
- <xsl:copy>
- <xsl:apply-templates select="@*|node()" />
- </xsl:copy>
- </xsl:template>
-
-</xsl:stylesheet>
+<?xml version="1.0"?>
+
+<!--+ $Id$
+ |
+ | Description: Login page to HTML
+ |
+ +-->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<!-- Next transformation is "TO-html.xsl" -->
+
+<xsl:template match="content">
+ <content background="sunspotdemoimg-bg_menue1.gif">
+ <table bgColor="#ffffff" border="0" cellPadding="0" cellSpacing="0" width="305"><tbody>
+ <tr>
+ <td>
+ <table bgColor="#ffffff" border="0" cellPadding="0" cellSpacing="2" width="100%"><tbody>
+ <tr>
+ <td bgColor="#46627a" vAlign="middle" width="15">
+ <img height="1" src="sunspotdemoimg-space.gif" width="15"/>
+ </td>
+ <td bgColor="#46627a" align="center">
+ <font color="#ffffff" face="Verdana, Arial, Helvetica, sans-serif" size="2">
+ <b>
+ <center>Cocoon Portal Login</center>
+ </b>
+ </font>
+ </td>
+ </tr>
+ <tr>
+ <td bgColor="#cccccc" width="15">
+ <IMG height="1" src="sunspotdemoimg-space.gif" width="15"/>
+ </td>
+ <td bgColor="#cccccc" align="center">
+ <br/>
+ <font face="Arial, Helvetica, sans-serif" size="2">
+ <xsl:apply-templates/>
+ </font>
+ <br/>
+ </td>
+ </tr>
+ <tr>
+ <td bgColor="#cccccc" width="15">
+ <img height="1" src="sunspotdemoimg-space.gif" width="15"/>
+ </td>
+ <td bgColor="#cccccc" align="center">
+ <br/>
+ <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
+ If you are not already registered, use this guest login:
+ <br/><br/>
+ User: <b>guest</b>
+ Password:
+ <b>guest</b>
+ <br/><br/>Or use this administrator login:<br/>
+ User:
+ <b>cocoon</b>
+ Password:
+ <b>cocoon</b>
+ </font>
+ <br/><br/>
+ </td>
+ </tr>
+ </tbody></table>
+ </td>
+ </tr>
+ </tbody></table>
+ </content>
+</xsl:template>
+
+<xsl:template match="form">
+ <form method="post" target="_top"><xsl:attribute name="action"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
+ <table>
+ <xsl:apply-templates select="field"/><br/>
+ </table>
+ <input type="submit" value="Login"></input>
+ </form>
+</xsl:template>
+
+<xsl:template match="field">
+ <tr>
+ <td>
+ <font face="Arial, Helvetica, sans-serif" size="2"><xsl:value-of select="@description"/>:</font>
+ </td>
+ <td>
+ <input>
+ <xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
+ <xsl:attribute name="type"><xsl:value-of select="@type"/></xsl:attribute>
+ <xsl:attribute name="size"><xsl:value-of select="@length"/></xsl:attribute>
+ </input>
+ </td>
+ </tr>
+</xsl:template>
+
+ <!-- Copy all and apply templates -->
+ <xsl:template match="@*|node()">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|node()" />
+ </xsl:copy>
+ </xsl:template>
+
+</xsl:stylesheet>
1.2 +148 -149 cocoon-2.1/src/blocks/portal-fw/samples/styles/portal.xsl
Index: portal.xsl
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/samples/styles/portal.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- portal.xsl 9 Mar 2003 00:05:32 -0000 1.1
+++ portal.xsl 6 May 2003 14:12:55 -0000 1.2
@@ -1,149 +1,148 @@
-<?xml version="1.0"?>
-<!-- $Id$
-
-
--->
-
-<xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<xsl:template match="ROWSET">
- <xsl:apply-templates/>
-</xsl:template>
-
-<xsl:template match="ROW">
- <xsl:apply-templates/>
-</xsl:template>
-
-<xsl:template match="userdelta">
- <xsl:choose>
- <xsl:when test="user-delta">
- <xsl:apply-templates select="user-delta"/>
- </xsl:when>
- <xsl:otherwise>
- <user-delta/>
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-<xsl:template match="roledelta">
- <xsl:choose>
- <xsl:when test="*">
- <xsl:apply-templates/>
- </xsl:when>
- <xsl:otherwise>
- <role-delta/>
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-<xsl:template match="statusprofile">
- <xsl:choose>
- <xsl:when test="*">
- <xsl:apply-templates/>
- </xsl:when>
- <xsl:otherwise>
- <status-profile/>
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-
-<xsl:template match="loaduser">
- <xsl:apply-templates select="authentication/users"/>
-</xsl:template>
-
-
-<xsl:template match="authentication/users">
- <users>
- <xsl:for-each select="user">
- <xsl:call-template name="includeuser"/>
- </xsl:for-each>
- </users>
-</xsl:template>
-
-
-<xsl:template name="includeuser">
- <xsl:variable name="type"><xsl:value-of select="normalize-space(ancestor::loaduser/info/type)"/></xsl:variable>
- <xsl:variable name="name"><xsl:value-of select="normalize-space(ancestor::loaduser/info/ID)"/></xsl:variable>
- <xsl:variable name="role"><xsl:value-of select="normalize-space(ancestor::loaduser/info/role)"/></xsl:variable>
-
- <xsl:choose>
- <xsl:when test="normalize-space(role) = $role and ($type='users' or normalize-space(name) = $name)">
- <user>
- <ID><xsl:value-of select="name"/></ID>
- <role><xsl:value-of select="role"/></role>
- <data>
- <password><xsl:value-of select="password"/></password>
- <name><xsl:value-of select="name"/></name>
- <role><xsl:value-of select="role"/></role>
- <ID><xsl:value-of select="name"/></ID>
- <user><xsl:value-of select="name"/></user>
- <title><xsl:value-of select="title"/></title>
- <firstname><xsl:value-of select="firstname"/></firstname>
- <lastname><xsl:value-of select="lastname"/></lastname>
- <company><xsl:value-of select="company"/></company>
- <street><xsl:value-of select="street"/></street>
- <zipcode><xsl:value-of select="zipcode"/></zipcode>
- <city><xsl:value-of select="city"/></city>
- <country><xsl:value-of select="country"/></country>
- <phone><xsl:value-of select="phone"/></phone>
- <fax><xsl:value-of select="fax"/></fax>
- <email><xsl:value-of select="email"/></email>
- <bankid><xsl:value-of select="bankid"/></bankid>
- <bankname><xsl:value-of select="bankname"/></bankname>
- <accountid><xsl:value-of select="accountid"/></accountid>
- </data>
- </user>
- </xsl:when>
- <xsl:when test="$type='users' and string-length($role) = 0">
- <user>
- <ID><xsl:value-of select="name"/></ID>
- <role><xsl:value-of select="role"/></role>
- <data>
- <password><xsl:value-of select="password"/></password>
- <name><xsl:value-of select="name"/></name>
- <role><xsl:value-of select="role"/></role>
- <ID><xsl:value-of select="name"/></ID>
- <user><xsl:value-of select="name"/></user>
- <title><xsl:value-of select="title"/></title>
- <firstname><xsl:value-of select="firstname"/></firstname>
- <lastname><xsl:value-of select="lastname"/></lastname>
- <company><xsl:value-of select="company"/></company>
- <street><xsl:value-of select="street"/></street>
- <zipcode><xsl:value-of select="zipcode"/></zipcode>
- <city><xsl:value-of select="city"/></city>
- <country><xsl:value-of select="country"/></country>
- <phone><xsl:value-of select="phone"/></phone>
- <fax><xsl:value-of select="fax"/></fax>
- <email><xsl:value-of select="email"/></email>
- <bankid><xsl:value-of select="bankid"/></bankid>
- <bankname><xsl:value-of select="bankname"/></bankname>
- <accountid><xsl:value-of select="accountid"/></accountid>
- </data>
- </user>
- </xsl:when>
- </xsl:choose>
-</xsl:template>
-
-<xsl:template match="role">
- <xsl:apply-templates select="role-delta"/>
-</xsl:template>
-
-<xsl:template match="roles">
- <roles>
- <xsl:for-each select="role">
- <role><xsl:value-of select="."/></role>
- </xsl:for-each>
- </roles>
-</xsl:template>
-
-<!-- Copy all and apply templates -->
-<xsl:template match="@*|node()">
- <xsl:copy>
- <xsl:apply-templates select="@*|node()" />
- </xsl:copy>
-</xsl:template>
-
-
-</xsl:stylesheet>
+<?xml version="1.0"?>
+
+<!-- $Id$
+
+-->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="ROWSET">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="ROW">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="userdelta">
+ <xsl:choose>
+ <xsl:when test="user-delta">
+ <xsl:apply-templates select="user-delta"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <user-delta/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="roledelta">
+ <xsl:choose>
+ <xsl:when test="*">
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:otherwise>
+ <role-delta/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="statusprofile">
+ <xsl:choose>
+ <xsl:when test="*">
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:otherwise>
+ <status-profile/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+
+<xsl:template match="loaduser">
+ <xsl:apply-templates select="authentication/users"/>
+</xsl:template>
+
+
+<xsl:template match="authentication/users">
+ <users>
+ <xsl:for-each select="user">
+ <xsl:call-template name="includeuser"/>
+ </xsl:for-each>
+ </users>
+</xsl:template>
+
+
+<xsl:template name="includeuser">
+ <xsl:variable name="type"><xsl:value-of select="normalize-space(ancestor::loaduser/info/type)"/></xsl:variable>
+ <xsl:variable name="name"><xsl:value-of select="normalize-space(ancestor::loaduser/info/ID)"/></xsl:variable>
+ <xsl:variable name="role"><xsl:value-of select="normalize-space(ancestor::loaduser/info/role)"/></xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="normalize-space(role) = $role and ($type='users' or normalize-space(name) = $name)">
+ <user>
+ <ID><xsl:value-of select="name"/></ID>
+ <role><xsl:value-of select="role"/></role>
+ <data>
+ <password><xsl:value-of select="password"/></password>
+ <name><xsl:value-of select="name"/></name>
+ <role><xsl:value-of select="role"/></role>
+ <ID><xsl:value-of select="name"/></ID>
+ <user><xsl:value-of select="name"/></user>
+ <title><xsl:value-of select="title"/></title>
+ <firstname><xsl:value-of select="firstname"/></firstname>
+ <lastname><xsl:value-of select="lastname"/></lastname>
+ <company><xsl:value-of select="company"/></company>
+ <street><xsl:value-of select="street"/></street>
+ <zipcode><xsl:value-of select="zipcode"/></zipcode>
+ <city><xsl:value-of select="city"/></city>
+ <country><xsl:value-of select="country"/></country>
+ <phone><xsl:value-of select="phone"/></phone>
+ <fax><xsl:value-of select="fax"/></fax>
+ <email><xsl:value-of select="email"/></email>
+ <bankid><xsl:value-of select="bankid"/></bankid>
+ <bankname><xsl:value-of select="bankname"/></bankname>
+ <accountid><xsl:value-of select="accountid"/></accountid>
+ </data>
+ </user>
+ </xsl:when>
+ <xsl:when test="$type='users' and string-length($role) = 0">
+ <user>
+ <ID><xsl:value-of select="name"/></ID>
+ <role><xsl:value-of select="role"/></role>
+ <data>
+ <password><xsl:value-of select="password"/></password>
+ <name><xsl:value-of select="name"/></name>
+ <role><xsl:value-of select="role"/></role>
+ <ID><xsl:value-of select="name"/></ID>
+ <user><xsl:value-of select="name"/></user>
+ <title><xsl:value-of select="title"/></title>
+ <firstname><xsl:value-of select="firstname"/></firstname>
+ <lastname><xsl:value-of select="lastname"/></lastname>
+ <company><xsl:value-of select="company"/></company>
+ <street><xsl:value-of select="street"/></street>
+ <zipcode><xsl:value-of select="zipcode"/></zipcode>
+ <city><xsl:value-of select="city"/></city>
+ <country><xsl:value-of select="country"/></country>
+ <phone><xsl:value-of select="phone"/></phone>
+ <fax><xsl:value-of select="fax"/></fax>
+ <email><xsl:value-of select="email"/></email>
+ <bankid><xsl:value-of select="bankid"/></bankid>
+ <bankname><xsl:value-of select="bankname"/></bankname>
+ <accountid><xsl:value-of select="accountid"/></accountid>
+ </data>
+ </user>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="role">
+ <xsl:apply-templates select="role-delta"/>
+</xsl:template>
+
+<xsl:template match="roles">
+ <roles>
+ <xsl:for-each select="role">
+ <role><xsl:value-of select="."/></role>
+ </xsl:for-each>
+ </roles>
+</xsl:template>
+
+<!-- Copy all and apply templates -->
+<xsl:template match="@*|node()">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|node()" />
+ </xsl:copy>
+</xsl:template>
+
+</xsl:stylesheet>
1.2 +282 -284 cocoon-2.1/src/blocks/portal-fw/samples/styles/portalHTML-Netscape.xsl
Index: portalHTML-Netscape.xsl
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/samples/styles/portalHTML-Netscape.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- portalHTML-Netscape.xsl 9 Mar 2003 00:05:32 -0000 1.1
+++ portalHTML-Netscape.xsl 6 May 2003 14:12:55 -0000 1.2
@@ -1,284 +1,282 @@
-<?xml version="1.0"?>
-
-<xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<!-- $Id$
-
-
- Description: Portal to HTML - Alternative for netscape (swapping coplet icons and title)
-
--->
-
-<!-- The main element -->
-
-<xsl:template match="portal">
-<html>
- <head>
- <title>Portal</title>
- </head>
- <body text="#0B2A51" link="#0B2A51" vlink="#666666" bgcolor="#cccccc">
- <xsl:attribute name="bgcolor"><xsl:value-of select="layout/portal/background/color"/></xsl:attribute>
- <xsl:attribute name="text"><xsl:value-of select="layout/portal/font/color"/></xsl:attribute>
- <table border="0" cellPadding="0" cellSpacing="0" width="100%" height="100%">
- <xsl:attribute name="bgcolor"><xsl:value-of select="layout/portal/background/color"/></xsl:attribute>
- <tr>
- <xsl:if test="header">
- <td noWrap="" width="193" valign="top" rowspan="2" bgcolor="cccccc">
- <xsl:apply-templates select="header"/>
- </td>
- </xsl:if>
- <td valign="top">
- <xsl:apply-templates select="columns"/>
- </td>
- </tr>
- <tr>
- <td>
- <xsl:if test="footer">
- <xsl:apply-templates select="footer"/>
- </xsl:if>
- </td>
- </tr>
- </table>
- </body>
-</html>
-</xsl:template>
-
-<!-- the header -->
-
-<xsl:template match="header">
- <img height="2" src="sunspotdemoimg-space.gif" width="1"/>
- <table border="0" cellPadding="0" cellSpacing="0" width="100%" bgcolor="#ffffff"><tbody>
- <tr>
- <td valign="top">
- <table border="0" cellPadding="0" cellSpacing="2" width="100%"><tbody>
- <tr>
- <td noWrap="" width="1%" bgcolor="#46627A" >
- <img src="sunspotdemoimg-space.gif" width="15" height="1"/>
- </td>
- <td width="99%" bgcolor="#46627A">
- <font face="Arial, Helvetica, sans-serif" size="2" color="#FFFFFF">
- <b><img height="1" src="sunspotdemoimg-space.gif" width="5"/>Cocoon Portal</b>
- </font>
- </td>
- </tr>
- <tr>
- <td noWrap="" width="1%" bgcolor="#cccccc">
- <img src="sunspotdemoimg-space.gif"/>
- </td>
- <td valign="top" bgcolor="#cccccc">
- <br/>
- <img height="1" src="sunspotdemoimg-space.gif" width="10"/>
- <font face="Arial, Helvetica, sans-serif" size="2" color="#0B2A51">
- <b>
- <xsl:value-of select="ancestor::portal/personal-profile/greeting"/>
- </b>
- <br/><br/>
- <xsl:if test="coplet">
- <xsl:apply-templates select="coplet"/>
- </xsl:if>
- </font>
- <br/>
- </td>
- </tr>
- </tbody></table>
- </td>
- </tr>
- </tbody></table>
-</xsl:template>
-
-<!-- the footer -->
-
-<xsl:template match="footer">
- <xsl:apply-templates/>
-</xsl:template>
-
-<!-- The content of the portal -->
-
-<xsl:template match="columns">
-<table width="100%" border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><img src="sunspotdemoimg-space.gif" width="10"/></td>
- </tr>
- <tr>
- <td><img src="sunspotdemoimg-space.gif" width="10"/></td>
- <xsl:for-each select="column">
- <xsl:sort select="@position"/>
- <xsl:apply-templates select="."/>
- </xsl:for-each>
- <td><img src="sunspotdemoimg-space.gif" width="10"/></td>
- </tr>
-</table>
-</xsl:template>
-
-<!-- The content of each column -->
-
-<xsl:template match="column">
-<td vAlign="top">
-<xsl:attribute name="width"><xsl:value-of select="@width"/></xsl:attribute>
-<table width="100%" border="0" cellspacing="0" cellpadding="0">
- <xsl:for-each select="coplet">
- <xsl:sort select="@position"/>
- <tr>
- <td><img src="sunspotdemoimg-space.gif" width="10"/></td>
- <td vAlign="top">
- <xsl:apply-templates select="."/>
- </td>
- </tr>
- </xsl:for-each>
-</table>
-</td>
-</xsl:template>
-
-<!-- One coplet -->
-
-<xsl:template match="coplet">
- <xsl:variable name="cmd"><xsl:value-of select="ancestor::portal/configuration/uri"/>&portalcmd=</xsl:variable>
- <xsl:variable name="copletident"><xsl:value-of select="@id"/>_<xsl:value-of select="@number"/></xsl:variable>
-<table border="0" cellSpacing="0" width="100%">
- <tr vAlign="top">
- <td align="left">
- <xsl:attribute name="bgColor"><xsl:value-of select="ancestor::portal/layout/coplets/title/background/color"/></xsl:attribute>
- <font>
- <xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/color"/></xsl:attribute>
- <xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/type"/></xsl:attribute>
- <xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/size"/></xsl:attribute>
-
- <!-- customize -->
- <xsl:if test="configuration/customizable='true' and (not(status/customize) or status/customize='false')">
- <xsl:variable name="customize"><xsl:value-of select="$cmd"/>customize_<xsl:value-of select="$copletident"/></xsl:variable>
- <a>
- <xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($customize), ' ', '')"/></xsl:attribute>
- <img src="sunspotdemoimg-customize.gif" border="0" alt="Customize"/>
- </a>
- </xsl:if>
-
- <!-- minimize/maximize -->
- <xsl:if test="configuration/sizable='true' and status/size/@formpath">
- <xsl:variable name="linkurlmax"><xsl:value-of select="$cmd"/>minimize_<xsl:value-of select="$copletident"/></xsl:variable>
- <xsl:variable name="linkurlmin"><xsl:value-of select="$cmd"/>maximize_<xsl:value-of select="$copletident"/></xsl:variable>
- <a>
- <xsl:choose>
- <xsl:when test="status/size='max'">
- <xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlmax), ' ', '')"/></xsl:attribute>
- <img src="sunspotdemoimg-minimize.gif" border="0" alt="Minimize"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlmin), ' ', '')"/></xsl:attribute>
- <img src="sunspotdemoimg-maximize.gif" border="0" alt="Maximize"/>
- </xsl:otherwise>
- </xsl:choose>
- </a>
- </xsl:if>
- <!-- show/ hide -->
- <xsl:choose>
- <xsl:when test="status/visible/@formpath and configuration/mandatory='false'">
- <xsl:variable name="linkurlshow"><xsl:value-of select="$cmd"/>show_<xsl:value-of select="$copletident"/></xsl:variable>
- <xsl:variable name="linkurlhide"><xsl:value-of select="$cmd"/>hide_<xsl:value-of select="$copletident"/></xsl:variable>
- <a>
- <xsl:choose>
- <xsl:when test="status/visible='true'">
- <xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlhide), ' ', '')"/></xsl:attribute>
- <img src="sunspotdemoimg-hide.gif" border="0" alt="Hide"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlshow), ' ', '')"/></xsl:attribute>
- <img src="sunspotdemoimg-show.gif" border="0" alt="Show"/>
- </xsl:otherwise>
- </xsl:choose>
- </a>
- </xsl:when>
- <xsl:otherwise>
- <img src="sunspotdemoimg-space.gif" border="0"/>
- </xsl:otherwise>
- </xsl:choose>
- <!-- mandatory/delete -->
- <xsl:if test="configuration/mandatory='false'">
- <xsl:variable name="linkurlmand"><xsl:value-of select="$cmd"/>delete_<xsl:value-of select="$copletident"/></xsl:variable>
- <a>
- <xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlmand), ' ', '')"/></xsl:attribute>
- <img src="sunspotdemoimg-delete.gif" border="0" alt="Delete"/>
- </a>
- </xsl:if>
- </font>
- </td>
- <td align="right">
- <xsl:attribute name="bgColor"><xsl:value-of select="ancestor::portal/layout/coplets/title/background/color"/></xsl:attribute>
- <font>
- <xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/color"/></xsl:attribute>
- <xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/type"/></xsl:attribute>
- <xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/size"/></xsl:attribute>
- <img height="1" src="sunspotdemoimg-space.gif" width="5"/>
- <b><xsl:value-of select="title"/></b>
- </font>
- </td>
- </tr>
- <xsl:if test="content">
- <tr>
- <td colSpan="2">
- <font>
- <xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/color"/></xsl:attribute>
- <xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/type"/></xsl:attribute>
- <xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/size"/></xsl:attribute>
- <xsl:apply-templates select="content"/>
- </font>
- </td>
- </tr>
- </xsl:if>
-</table>
-</xsl:template>
-
-<xsl:template match="content">
- <xsl:apply-templates/>
-</xsl:template>
-
-<xsl:template match="td">
- <td><xsl:for-each select="@*"><xsl:copy/></xsl:for-each>
- <xsl:if test="not(font) and not(FONT)">
- <font>
- <xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/color"/></xsl:attribute>
- <xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/type"/></xsl:attribute>
- <xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/size"/></xsl:attribute>
- <xsl:apply-templates/>
- </font>
- </xsl:if>
- <xsl:if test="font or FONT">
- <xsl:apply-templates/>
- </xsl:if></td>
-</xsl:template>
-
-<xsl:template match="TD">
- <td><xsl:for-each select="@*"><xsl:copy/></xsl:for-each>
- <xsl:if test="not(font) and not(FONT)">
- <font>
- <xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/color"/></xsl:attribute>
- <xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/type"/></xsl:attribute>
- <xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/size"/></xsl:attribute>
- <xsl:apply-templates/>
- </font>
- </xsl:if>
- <xsl:if test="font or FONT">
- <xsl:apply-templates/>
- </xsl:if></td>
-</xsl:template>
-
-
-<xsl:template match="link">
- <a>
- <xsl:if test="target">
- <xsl:attribute name="target"><xsl:value-of select="normalize-space(target)"/></xsl:attribute>
- </xsl:if>
- <xsl:attribute name="href"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
- <xsl:value-of select="normalize-space(text)"/>
- </a>
- </xsl:template>
-
-<!-- Copy all and apply templates -->
-
-<xsl:template match="@*|node()">
- <xsl:copy>
- <xsl:apply-templates select="@*|node()" />
- </xsl:copy>
- </xsl:template>
-
-</xsl:stylesheet>
+<?xml version="1.0"?>
+
+<!-- $Id$
+
+ Description: Portal to HTML - Alternative for netscape (swapping coplet icons and title)
+
+-->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<!-- The main element -->
+
+<xsl:template match="portal">
+<html>
+ <head>
+ <title>Portal</title>
+ </head>
+ <body text="#0B2A51" link="#0B2A51" vlink="#666666" bgcolor="#cccccc">
+ <xsl:attribute name="bgcolor"><xsl:value-of select="layout/portal/background/color"/></xsl:attribute>
+ <xsl:attribute name="text"><xsl:value-of select="layout/portal/font/color"/></xsl:attribute>
+ <table border="0" cellPadding="0" cellSpacing="0" width="100%" height="100%">
+ <xsl:attribute name="bgcolor"><xsl:value-of select="layout/portal/background/color"/></xsl:attribute>
+ <tr>
+ <xsl:if test="header">
+ <td noWrap="" width="193" valign="top" rowspan="2" bgcolor="cccccc">
+ <xsl:apply-templates select="header"/>
+ </td>
+ </xsl:if>
+ <td valign="top">
+ <xsl:apply-templates select="columns"/>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <xsl:if test="footer">
+ <xsl:apply-templates select="footer"/>
+ </xsl:if>
+ </td>
+ </tr>
+ </table>
+ </body>
+</html>
+</xsl:template>
+
+<!-- the header -->
+
+<xsl:template match="header">
+ <img height="2" src="sunspotdemoimg-space.gif" width="1"/>
+ <table border="0" cellPadding="0" cellSpacing="0" width="100%" bgcolor="#ffffff"><tbody>
+ <tr>
+ <td valign="top">
+ <table border="0" cellPadding="0" cellSpacing="2" width="100%"><tbody>
+ <tr>
+ <td noWrap="" width="1%" bgcolor="#46627A" >
+ <img src="sunspotdemoimg-space.gif" width="15" height="1"/>
+ </td>
+ <td width="99%" bgcolor="#46627A">
+ <font face="Arial, Helvetica, sans-serif" size="2" color="#FFFFFF">
+ <b><img height="1" src="sunspotdemoimg-space.gif" width="5"/>Cocoon Portal</b>
+ </font>
+ </td>
+ </tr>
+ <tr>
+ <td noWrap="" width="1%" bgcolor="#cccccc">
+ <img src="sunspotdemoimg-space.gif"/>
+ </td>
+ <td valign="top" bgcolor="#cccccc">
+ <br/>
+ <img height="1" src="sunspotdemoimg-space.gif" width="10"/>
+ <font face="Arial, Helvetica, sans-serif" size="2" color="#0B2A51">
+ <b>
+ <xsl:value-of select="ancestor::portal/personal-profile/greeting"/>
+ </b>
+ <br/><br/>
+ <xsl:if test="coplet">
+ <xsl:apply-templates select="coplet"/>
+ </xsl:if>
+ </font>
+ <br/>
+ </td>
+ </tr>
+ </tbody></table>
+ </td>
+ </tr>
+ </tbody></table>
+</xsl:template>
+
+<!-- the footer -->
+
+<xsl:template match="footer">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- The content of the portal -->
+
+<xsl:template match="columns">
+<table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><img src="sunspotdemoimg-space.gif" width="10"/></td>
+ </tr>
+ <tr>
+ <td><img src="sunspotdemoimg-space.gif" width="10"/></td>
+ <xsl:for-each select="column">
+ <xsl:sort select="@position"/>
+ <xsl:apply-templates select="."/>
+ </xsl:for-each>
+ <td><img src="sunspotdemoimg-space.gif" width="10"/></td>
+ </tr>
+</table>
+</xsl:template>
+
+<!-- The content of each column -->
+
+<xsl:template match="column">
+<td vAlign="top">
+<xsl:attribute name="width"><xsl:value-of select="@width"/></xsl:attribute>
+<table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <xsl:for-each select="coplet">
+ <xsl:sort select="@position"/>
+ <tr>
+ <td><img src="sunspotdemoimg-space.gif" width="10"/></td>
+ <td vAlign="top">
+ <xsl:apply-templates select="."/>
+ </td>
+ </tr>
+ </xsl:for-each>
+</table>
+</td>
+</xsl:template>
+
+<!-- One coplet -->
+
+<xsl:template match="coplet">
+ <xsl:variable name="cmd"><xsl:value-of select="ancestor::portal/configuration/uri"/>&portalcmd=</xsl:variable>
+ <xsl:variable name="copletident"><xsl:value-of select="@id"/>_<xsl:value-of select="@number"/></xsl:variable>
+<table border="0" cellSpacing="0" width="100%">
+ <tr vAlign="top">
+ <td align="left">
+ <xsl:attribute name="bgColor"><xsl:value-of select="ancestor::portal/layout/coplets/title/background/color"/></xsl:attribute>
+ <font>
+ <xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/color"/></xsl:attribute>
+ <xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/type"/></xsl:attribute>
+ <xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/size"/></xsl:attribute>
+
+ <!-- customize -->
+ <xsl:if test="configuration/customizable='true' and (not(status/customize) or status/customize='false')">
+ <xsl:variable name="customize"><xsl:value-of select="$cmd"/>customize_<xsl:value-of select="$copletident"/></xsl:variable>
+ <a>
+ <xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($customize), ' ', '')"/></xsl:attribute>
+ <img src="sunspotdemoimg-customize.gif" border="0" alt="Customize"/>
+ </a>
+ </xsl:if>
+
+ <!-- minimize/maximize -->
+ <xsl:if test="configuration/sizable='true' and status/size/@formpath">
+ <xsl:variable name="linkurlmax"><xsl:value-of select="$cmd"/>minimize_<xsl:value-of select="$copletident"/></xsl:variable>
+ <xsl:variable name="linkurlmin"><xsl:value-of select="$cmd"/>maximize_<xsl:value-of select="$copletident"/></xsl:variable>
+ <a>
+ <xsl:choose>
+ <xsl:when test="status/size='max'">
+ <xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlmax), ' ', '')"/></xsl:attribute>
+ <img src="sunspotdemoimg-minimize.gif" border="0" alt="Minimize"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlmin), ' ', '')"/></xsl:attribute>
+ <img src="sunspotdemoimg-maximize.gif" border="0" alt="Maximize"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+ </xsl:if>
+ <!-- show/ hide -->
+ <xsl:choose>
+ <xsl:when test="status/visible/@formpath and configuration/mandatory='false'">
+ <xsl:variable name="linkurlshow"><xsl:value-of select="$cmd"/>show_<xsl:value-of select="$copletident"/></xsl:variable>
+ <xsl:variable name="linkurlhide"><xsl:value-of select="$cmd"/>hide_<xsl:value-of select="$copletident"/></xsl:variable>
+ <a>
+ <xsl:choose>
+ <xsl:when test="status/visible='true'">
+ <xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlhide), ' ', '')"/></xsl:attribute>
+ <img src="sunspotdemoimg-hide.gif" border="0" alt="Hide"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlshow), ' ', '')"/></xsl:attribute>
+ <img src="sunspotdemoimg-show.gif" border="0" alt="Show"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img src="sunspotdemoimg-space.gif" border="0"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!-- mandatory/delete -->
+ <xsl:if test="configuration/mandatory='false'">
+ <xsl:variable name="linkurlmand"><xsl:value-of select="$cmd"/>delete_<xsl:value-of select="$copletident"/></xsl:variable>
+ <a>
+ <xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlmand), ' ', '')"/></xsl:attribute>
+ <img src="sunspotdemoimg-delete.gif" border="0" alt="Delete"/>
+ </a>
+ </xsl:if>
+ </font>
+ </td>
+ <td align="right">
+ <xsl:attribute name="bgColor"><xsl:value-of select="ancestor::portal/layout/coplets/title/background/color"/></xsl:attribute>
+ <font>
+ <xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/color"/></xsl:attribute>
+ <xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/type"/></xsl:attribute>
+ <xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/size"/></xsl:attribute>
+ <img height="1" src="sunspotdemoimg-space.gif" width="5"/>
+ <b><xsl:value-of select="title"/></b>
+ </font>
+ </td>
+ </tr>
+ <xsl:if test="content">
+ <tr>
+ <td colSpan="2">
+ <font>
+ <xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/color"/></xsl:attribute>
+ <xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/type"/></xsl:attribute>
+ <xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/size"/></xsl:attribute>
+ <xsl:apply-templates select="content"/>
+ </font>
+ </td>
+ </tr>
+ </xsl:if>
+</table>
+</xsl:template>
+
+<xsl:template match="content">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="td">
+ <td><xsl:for-each select="@*"><xsl:copy/></xsl:for-each>
+ <xsl:if test="not(font) and not(FONT)">
+ <font>
+ <xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/color"/></xsl:attribute>
+ <xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/type"/></xsl:attribute>
+ <xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/size"/></xsl:attribute>
+ <xsl:apply-templates/>
+ </font>
+ </xsl:if>
+ <xsl:if test="font or FONT">
+ <xsl:apply-templates/>
+ </xsl:if></td>
+</xsl:template>
+
+<xsl:template match="TD">
+ <td><xsl:for-each select="@*"><xsl:copy/></xsl:for-each>
+ <xsl:if test="not(font) and not(FONT)">
+ <font>
+ <xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/color"/></xsl:attribute>
+ <xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/type"/></xsl:attribute>
+ <xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/size"/></xsl:attribute>
+ <xsl:apply-templates/>
+ </font>
+ </xsl:if>
+ <xsl:if test="font or FONT">
+ <xsl:apply-templates/>
+ </xsl:if></td>
+</xsl:template>
+
+
+ <xsl:template match="link">
+ <a>
+ <xsl:if test="target">
+ <xsl:attribute name="target"><xsl:value-of select="normalize-space(target)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="href"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
+ <xsl:value-of select="normalize-space(text)"/>
+ </a>
+ </xsl:template>
+
+ <!-- Copy all and apply templates -->
+ <xsl:template match="@*|node()">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|node()" />
+ </xsl:copy>
+ </xsl:template>
+
+</xsl:stylesheet>
1.2 +284 -286 cocoon-2.1/src/blocks/portal-fw/samples/styles/portalHTML.xsl
Index: portalHTML.xsl
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/samples/styles/portalHTML.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- portalHTML.xsl 9 Mar 2003 00:05:32 -0000 1.1
+++ portalHTML.xsl 6 May 2003 14:12:55 -0000 1.2
@@ -1,286 +1,284 @@
-<?xml version="1.0"?>
-
-<xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<!-- $Id$
-
-
- Description: Portal to HTML
-
--->
-
-<!-- The main element -->
-
-<xsl:template match="portal">
-<html>
- <head>
- <title>Portal</title>
- </head>
- <body text="#0B2A51" link="#0B2A51" vlink="#666666" bgcolor="#cccccc">
- <xsl:attribute name="bgcolor"><xsl:value-of select="layout/portal/background/color"/></xsl:attribute>
- <xsl:attribute name="text"><xsl:value-of select="layout/portal/font/color"/></xsl:attribute>
- <table border="0" cellPadding="0" cellSpacing="0" width="100%" height="100%">
- <xsl:attribute name="bgcolor"><xsl:value-of select="layout/portal/background/color"/></xsl:attribute>
- <tr>
- <xsl:if test="header">
- <td noWrap="" width="193" valign="top" rowspan="2" bgcolor="cccccc">
- <xsl:apply-templates select="header"/>
- </td>
- </xsl:if>
- <td valign="top" width="100%">
- <xsl:apply-templates select="columns"/>
- </td>
- </tr>
- <tr>
- <td>
- <xsl:if test="footer">
- <xsl:apply-templates select="footer"/>
- </xsl:if>
- </td>
- </tr>
- </table>
- </body>
-</html>
-</xsl:template>
-
-<!-- the header -->
-
-<xsl:template match="header">
- <img height="2" src="sunspotdemoimg-space.gif" width="1"/>
- <table border="0" cellPadding="0" cellSpacing="0" width="100%" bgcolor="#ffffff"><tbody>
- <tr>
- <td valign="top">
- <table border="0" cellPadding="0" cellSpacing="2" width="100%"><tbody>
- <tr>
- <td noWrap="" width="1%" bgcolor="#46627A" >
- <img src="sunspotdemoimg-space.gif" width="15" height="1"/>
- </td>
- <td width="99%" bgcolor="#46627A">
- <font face="Arial, Helvetica, sans-serif" size="2" color="#FFFFFF">
- <b><img height="1" src="sunspotdemoimg-space.gif" width="5"/>Cocoon Portal</b>
- </font>
- </td>
- </tr>
- <tr>
- <td noWrap="" width="1%" bgcolor="#cccccc">
- <img src="sunspotdemoimg-space.gif"/>
- </td>
- <td valign="top" bgcolor="#cccccc">
- <br/>
- <img height="1" src="sunspotdemoimg-space.gif" width="10"/>
- <font face="Arial, Helvetica, sans-serif" size="2" color="#0B2A51">
- <b>
- <xsl:value-of select="ancestor::portal/personal-profile/greeting"/>
- </b>
- <br/><br/>
- <xsl:if test="coplet">
- <xsl:apply-templates select="coplet"/>
- </xsl:if>
- </font>
- <br/>
- </td>
- </tr>
- </tbody></table>
- </td>
- </tr>
- </tbody></table>
-</xsl:template>
-
-<!-- the footer -->
-
-<xsl:template match="footer">
- <xsl:apply-templates/>
-</xsl:template>
-
-<!-- The content of the portal -->
-
-<xsl:template match="columns">
-<table width="100%" border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><img src="sunspotdemoimg-space.gif" width="10"/></td>
- </tr>
- <tr>
- <td><img src="sunspotdemoimg-space.gif" width="10"/></td>
- <xsl:for-each select="column">
- <xsl:sort select="@position"/>
- <xsl:apply-templates select="."/>
- </xsl:for-each>
- <td><img src="sunspotdemoimg-space.gif" width="10"/></td>
- </tr>
-</table>
-</xsl:template>
-
-<!-- The content of each column -->
-
-<xsl:template match="column">
-<td vAlign="top">
-<xsl:attribute name="width"><xsl:value-of select="@width"/></xsl:attribute>
-<table width="100%" border="0" cellspacing="0" cellpadding="0">
- <xsl:for-each select="coplet">
- <xsl:sort select="@position"/>
- <tr>
- <td><img src="sunspotdemoimg-space.gif" width="10"/></td>
- <td vAlign="top">
- <xsl:apply-templates select="."/>
- </td>
- </tr>
- </xsl:for-each>
-</table>
-</td>
-</xsl:template>
-
-<!-- One coplet -->
-
-<xsl:template match="coplet">
- <xsl:variable name="cmd"><xsl:value-of select="ancestor::portal/configuration/uri"/>&portalcmd=</xsl:variable>
- <xsl:variable name="copletident"><xsl:value-of select="@id"/>_<xsl:value-of select="@number"/></xsl:variable>
-<table border="0" cellSpacing="0" width="100%">
- <tr vAlign="top">
- <td>
- <xsl:attribute name="bgColor"><xsl:value-of select="ancestor::portal/layout/coplets/title/background/color"/></xsl:attribute>
- <font>
- <xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/color"/></xsl:attribute>
- <xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/type"/></xsl:attribute>
- <xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/size"/></xsl:attribute>
- <img height="1" src="sunspotdemoimg-space.gif" width="5"/>
- <b><xsl:value-of select="title"/></b>
- </font>
- </td>
- <td align="right">
- <xsl:attribute name="bgColor"><xsl:value-of select="ancestor::portal/layout/coplets/title/background/color"/></xsl:attribute>
- <font>
- <xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/color"/></xsl:attribute>
- <xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/type"/></xsl:attribute>
- <xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/size"/></xsl:attribute>
-
- <!-- customize -->
- <xsl:if test="configuration/customizable='true' and (not(status/customize) or status/customize='false')">
- <xsl:variable name="customize"><xsl:value-of select="$cmd"/>customize_<xsl:value-of select="$copletident"/></xsl:variable>
- <a>
- <xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($customize), ' ', '')"/></xsl:attribute>
- <img src="sunspotdemoimg-customize.gif" border="0" alt="Customize"/>
- </a>
- </xsl:if>
-
- <!-- minimize/maximize -->
- <xsl:if test="configuration/sizable='true' and status/size/@formpath">
- <xsl:variable name="linkurlmax"><xsl:value-of select="$cmd"/>minimize_<xsl:value-of select="$copletident"/></xsl:variable>
- <xsl:variable name="linkurlmin"><xsl:value-of select="$cmd"/>maximize_<xsl:value-of select="$copletident"/></xsl:variable>
- <a>
- <xsl:choose>
- <xsl:when test="status/size='max'">
- <xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlmax), ' ', '')"/></xsl:attribute>
- <img src="sunspotdemoimg-minimize.gif" border="0" alt="Minimize"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlmin), ' ', '')"/></xsl:attribute>
- <img src="sunspotdemoimg-maximize.gif" border="0" alt="Maximize"/>
- </xsl:otherwise>
- </xsl:choose>
- </a>
- </xsl:if>
-
- <!-- show/ hide -->
- <xsl:choose>
- <xsl:when test="status/visible/@formpath and configuration/mandatory='false'">
- <xsl:variable name="linkurlshow"><xsl:value-of select="$cmd"/>show_<xsl:value-of select="$copletident"/></xsl:variable>
- <xsl:variable name="linkurlhide"><xsl:value-of select="$cmd"/>hide_<xsl:value-of select="$copletident"/></xsl:variable>
- <a>
- <xsl:choose>
- <xsl:when test="status/visible='true'">
- <xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlhide), ' ', '')"/></xsl:attribute>
- <img src="sunspotdemoimg-hide.gif" border="0" alt="Hide"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlshow), ' ', '')"/></xsl:attribute>
- <img src="sunspotdemoimg-show.gif" border="0" alt="Show"/>
- </xsl:otherwise>
- </xsl:choose>
- </a>
- </xsl:when>
- <xsl:otherwise>
- <img src="sunspotdemoimg-space.gif" border="0"/>
- </xsl:otherwise>
- </xsl:choose>
-
- <!-- mandatory/delete -->
- <xsl:if test="configuration/mandatory='false'">
- <xsl:variable name="linkurlmand"><xsl:value-of select="$cmd"/>delete_<xsl:value-of select="$copletident"/></xsl:variable>
- <a>
- <xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlmand), ' ', '')"/></xsl:attribute>
- <img src="sunspotdemoimg-delete.gif" border="0" alt="Delete"/>
- </a>
- </xsl:if>
- </font>
- </td>
- </tr>
- <xsl:if test="content">
- <tr>
- <td colSpan="2">
- <font>
- <xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/color"/></xsl:attribute>
- <xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/type"/></xsl:attribute>
- <xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/size"/></xsl:attribute>
- <xsl:apply-templates select="content"/>
- </font>
- </td>
- </tr>
- </xsl:if>
-</table>
-</xsl:template>
-
-<xsl:template match="content">
- <xsl:apply-templates/>
-</xsl:template>
-
-<xsl:template match="td">
- <td><xsl:for-each select="@*"><xsl:copy/></xsl:for-each>
- <xsl:if test="not(font) and not(FONT)">
- <font>
- <xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/color"/></xsl:attribute>
- <xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/type"/></xsl:attribute>
- <xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/size"/></xsl:attribute>
- <xsl:apply-templates/>
- </font>
- </xsl:if>
- <xsl:if test="font or FONT">
- <xsl:apply-templates/>
- </xsl:if></td>
-</xsl:template>
-
-<xsl:template match="TD">
- <td><xsl:for-each select="@*"><xsl:copy/></xsl:for-each>
- <xsl:if test="not(font) and not(FONT)">
- <font>
- <xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/color"/></xsl:attribute>
- <xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/type"/></xsl:attribute>
- <xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/size"/></xsl:attribute>
- <xsl:apply-templates/>
- </font>
- </xsl:if>
- <xsl:if test="font or FONT">
- <xsl:apply-templates/>
- </xsl:if></td>
-</xsl:template>
-
-
-<xsl:template match="link">
- <a>
- <xsl:if test="target">
- <xsl:attribute name="target"><xsl:value-of select="normalize-space(target)"/></xsl:attribute>
- </xsl:if>
- <xsl:attribute name="href"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
- <xsl:value-of select="normalize-space(text)"/>
- </a>
- </xsl:template>
-
-<!-- Copy all and apply templates -->
-
-<xsl:template match="@*|node()">
- <xsl:copy>
- <xsl:apply-templates select="@*|node()" />
- </xsl:copy>
- </xsl:template>
-
-</xsl:stylesheet>
+<?xml version="1.0"?>
+
+<!-- $Id$
+
+ Description: Portal to HTML
+
+-->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<!-- The main element -->
+
+<xsl:template match="portal">
+<html>
+ <head>
+ <title>Portal</title>
+ </head>
+ <body text="#0B2A51" link="#0B2A51" vlink="#666666" bgcolor="#cccccc">
+ <xsl:attribute name="bgcolor"><xsl:value-of select="layout/portal/background/color"/></xsl:attribute>
+ <xsl:attribute name="text"><xsl:value-of select="layout/portal/font/color"/></xsl:attribute>
+ <table border="0" cellPadding="0" cellSpacing="0" width="100%" height="100%">
+ <xsl:attribute name="bgcolor"><xsl:value-of select="layout/portal/background/color"/></xsl:attribute>
+ <tr>
+ <xsl:if test="header">
+ <td noWrap="" width="193" valign="top" rowspan="2" bgcolor="cccccc">
+ <xsl:apply-templates select="header"/>
+ </td>
+ </xsl:if>
+ <td valign="top" width="100%">
+ <xsl:apply-templates select="columns"/>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <xsl:if test="footer">
+ <xsl:apply-templates select="footer"/>
+ </xsl:if>
+ </td>
+ </tr>
+ </table>
+ </body>
+</html>
+</xsl:template>
+
+<!-- the header -->
+
+<xsl:template match="header">
+ <img height="2" src="sunspotdemoimg-space.gif" width="1"/>
+ <table border="0" cellPadding="0" cellSpacing="0" width="100%" bgcolor="#ffffff"><tbody>
+ <tr>
+ <td valign="top">
+ <table border="0" cellPadding="0" cellSpacing="2" width="100%"><tbody>
+ <tr>
+ <td noWrap="" width="1%" bgcolor="#46627A" >
+ <img src="sunspotdemoimg-space.gif" width="15" height="1"/>
+ </td>
+ <td width="99%" bgcolor="#46627A">
+ <font face="Arial, Helvetica, sans-serif" size="2" color="#FFFFFF">
+ <b><img height="1" src="sunspotdemoimg-space.gif" width="5"/>Cocoon Portal</b>
+ </font>
+ </td>
+ </tr>
+ <tr>
+ <td noWrap="" width="1%" bgcolor="#cccccc">
+ <img src="sunspotdemoimg-space.gif"/>
+ </td>
+ <td valign="top" bgcolor="#cccccc">
+ <br/>
+ <img height="1" src="sunspotdemoimg-space.gif" width="10"/>
+ <font face="Arial, Helvetica, sans-serif" size="2" color="#0B2A51">
+ <b>
+ <xsl:value-of select="ancestor::portal/personal-profile/greeting"/>
+ </b>
+ <br/><br/>
+ <xsl:if test="coplet">
+ <xsl:apply-templates select="coplet"/>
+ </xsl:if>
+ </font>
+ <br/>
+ </td>
+ </tr>
+ </tbody></table>
+ </td>
+ </tr>
+ </tbody></table>
+</xsl:template>
+
+<!-- the footer -->
+
+<xsl:template match="footer">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- The content of the portal -->
+
+<xsl:template match="columns">
+<table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><img src="sunspotdemoimg-space.gif" width="10"/></td>
+ </tr>
+ <tr>
+ <td><img src="sunspotdemoimg-space.gif" width="10"/></td>
+ <xsl:for-each select="column">
+ <xsl:sort select="@position"/>
+ <xsl:apply-templates select="."/>
+ </xsl:for-each>
+ <td><img src="sunspotdemoimg-space.gif" width="10"/></td>
+ </tr>
+</table>
+</xsl:template>
+
+<!-- The content of each column -->
+
+<xsl:template match="column">
+<td vAlign="top">
+<xsl:attribute name="width"><xsl:value-of select="@width"/></xsl:attribute>
+<table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <xsl:for-each select="coplet">
+ <xsl:sort select="@position"/>
+ <tr>
+ <td><img src="sunspotdemoimg-space.gif" width="10"/></td>
+ <td vAlign="top">
+ <xsl:apply-templates select="."/>
+ </td>
+ </tr>
+ </xsl:for-each>
+</table>
+</td>
+</xsl:template>
+
+<!-- One coplet -->
+
+<xsl:template match="coplet">
+ <xsl:variable name="cmd"><xsl:value-of select="ancestor::portal/configuration/uri"/>&portalcmd=</xsl:variable>
+ <xsl:variable name="copletident"><xsl:value-of select="@id"/>_<xsl:value-of select="@number"/></xsl:variable>
+<table border="0" cellSpacing="0" width="100%">
+ <tr vAlign="top">
+ <td>
+ <xsl:attribute name="bgColor"><xsl:value-of select="ancestor::portal/layout/coplets/title/background/color"/></xsl:attribute>
+ <font>
+ <xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/color"/></xsl:attribute>
+ <xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/type"/></xsl:attribute>
+ <xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/size"/></xsl:attribute>
+ <img height="1" src="sunspotdemoimg-space.gif" width="5"/>
+ <b><xsl:value-of select="title"/></b>
+ </font>
+ </td>
+ <td align="right">
+ <xsl:attribute name="bgColor"><xsl:value-of select="ancestor::portal/layout/coplets/title/background/color"/></xsl:attribute>
+ <font>
+ <xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/color"/></xsl:attribute>
+ <xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/type"/></xsl:attribute>
+ <xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/title/font/size"/></xsl:attribute>
+
+ <!-- customize -->
+ <xsl:if test="configuration/customizable='true' and (not(status/customize) or status/customize='false')">
+ <xsl:variable name="customize"><xsl:value-of select="$cmd"/>customize_<xsl:value-of select="$copletident"/></xsl:variable>
+ <a>
+ <xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($customize), ' ', '')"/></xsl:attribute>
+ <img src="sunspotdemoimg-customize.gif" border="0" alt="Customize"/>
+ </a>
+ </xsl:if>
+
+ <!-- minimize/maximize -->
+ <xsl:if test="configuration/sizable='true' and status/size/@formpath">
+ <xsl:variable name="linkurlmax"><xsl:value-of select="$cmd"/>minimize_<xsl:value-of select="$copletident"/></xsl:variable>
+ <xsl:variable name="linkurlmin"><xsl:value-of select="$cmd"/>maximize_<xsl:value-of select="$copletident"/></xsl:variable>
+ <a>
+ <xsl:choose>
+ <xsl:when test="status/size='max'">
+ <xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlmax), ' ', '')"/></xsl:attribute>
+ <img src="sunspotdemoimg-minimize.gif" border="0" alt="Minimize"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlmin), ' ', '')"/></xsl:attribute>
+ <img src="sunspotdemoimg-maximize.gif" border="0" alt="Maximize"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+ </xsl:if>
+
+ <!-- show/ hide -->
+ <xsl:choose>
+ <xsl:when test="status/visible/@formpath and configuration/mandatory='false'">
+ <xsl:variable name="linkurlshow"><xsl:value-of select="$cmd"/>show_<xsl:value-of select="$copletident"/></xsl:variable>
+ <xsl:variable name="linkurlhide"><xsl:value-of select="$cmd"/>hide_<xsl:value-of select="$copletident"/></xsl:variable>
+ <a>
+ <xsl:choose>
+ <xsl:when test="status/visible='true'">
+ <xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlhide), ' ', '')"/></xsl:attribute>
+ <img src="sunspotdemoimg-hide.gif" border="0" alt="Hide"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlshow), ' ', '')"/></xsl:attribute>
+ <img src="sunspotdemoimg-show.gif" border="0" alt="Show"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <img src="sunspotdemoimg-space.gif" border="0"/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <!-- mandatory/delete -->
+ <xsl:if test="configuration/mandatory='false'">
+ <xsl:variable name="linkurlmand"><xsl:value-of select="$cmd"/>delete_<xsl:value-of select="$copletident"/></xsl:variable>
+ <a>
+ <xsl:attribute name="href"><xsl:value-of select="translate(normalize-space($linkurlmand), ' ', '')"/></xsl:attribute>
+ <img src="sunspotdemoimg-delete.gif" border="0" alt="Delete"/>
+ </a>
+ </xsl:if>
+ </font>
+ </td>
+ </tr>
+ <xsl:if test="content">
+ <tr>
+ <td colSpan="2">
+ <font>
+ <xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/color"/></xsl:attribute>
+ <xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/type"/></xsl:attribute>
+ <xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/size"/></xsl:attribute>
+ <xsl:apply-templates select="content"/>
+ </font>
+ </td>
+ </tr>
+ </xsl:if>
+</table>
+</xsl:template>
+
+<xsl:template match="content">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="td">
+ <td><xsl:for-each select="@*"><xsl:copy/></xsl:for-each>
+ <xsl:if test="not(font) and not(FONT)">
+ <font>
+ <xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/color"/></xsl:attribute>
+ <xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/type"/></xsl:attribute>
+ <xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/size"/></xsl:attribute>
+ <xsl:apply-templates/>
+ </font>
+ </xsl:if>
+ <xsl:if test="font or FONT">
+ <xsl:apply-templates/>
+ </xsl:if></td>
+</xsl:template>
+
+<xsl:template match="TD">
+ <td><xsl:for-each select="@*"><xsl:copy/></xsl:for-each>
+ <xsl:if test="not(font) and not(FONT)">
+ <font>
+ <xsl:attribute name="color"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/color"/></xsl:attribute>
+ <xsl:attribute name="face"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/type"/></xsl:attribute>
+ <xsl:attribute name="size"><xsl:value-of select="ancestor::portal/layout/coplets/content/font/size"/></xsl:attribute>
+ <xsl:apply-templates/>
+ </font>
+ </xsl:if>
+ <xsl:if test="font or FONT">
+ <xsl:apply-templates/>
+ </xsl:if></td>
+</xsl:template>
+
+
+ <xsl:template match="link">
+ <a>
+ <xsl:if test="target">
+ <xsl:attribute name="target"><xsl:value-of select="normalize-space(target)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="href"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
+ <xsl:value-of select="normalize-space(text)"/>
+ </a>
+ </xsl:template>
+
+ <!-- Copy all and apply templates -->
+ <xsl:template match="@*|node()">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|node()" />
+ </xsl:copy>
+ </xsl:template>
+
+</xsl:stylesheet>
1.2 +6 -8 cocoon-2.1/src/blocks/portal-fw/samples/styles/portalconfHTML.xsl
Index: portalconfHTML.xsl
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/samples/styles/portalconfHTML.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- portalconfHTML.xsl 9 Mar 2003 00:05:32 -0000 1.1
+++ portalconfHTML.xsl 6 May 2003 14:12:55 -0000 1.2
@@ -1,15 +1,14 @@
<?xml version="1.0"?>
-<xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
<!-- $Id$
-
Description: Portal Configuration to HTML
-->
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
<!-- Frameset -->
<xsl:template match="pageset">
@@ -1984,9 +1983,8 @@
</xsl:if>
</xsl:template>
-<!-- Copy all and apply templates -->
-
-<xsl:template match="@*|node()">
+ <!-- Copy all and apply templates -->
+ <xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
1.2 +33 -31 cocoon-2.1/src/blocks/portal-fw/samples/styles/sunLet_MoreoverDotCom.xsl
Index: sunLet_MoreoverDotCom.xsl
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/samples/styles/sunLet_MoreoverDotCom.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- sunLet_MoreoverDotCom.xsl 9 Mar 2003 00:05:33 -0000 1.1
+++ sunLet_MoreoverDotCom.xsl 6 May 2003 14:12:55 -0000 1.2
@@ -1,31 +1,33 @@
-<?xml version="1.0"?>
-<!-- $Id$
-
--->
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<xsl:template match="*|/"><xsl:apply-templates/></xsl:template>
-
-<xsl:template match="text()|@*"><xsl:value-of select="."/></xsl:template>
-
-<xsl:template match="moreovernews">
-<!-- Stylesheet to be used inside a coplet. Generates HTML from an XML-feed from http://w.moreover.com/ -->
-<table>
- <xsl:apply-templates select ="article"/>
-</table>
-</xsl:template>
-
-<xsl:template match="article">
- <xsl:if test="position() < 6">
- <tr bgcolor="#ffffff"><td><font face="Arial, Helvetica, sans-serif">
- <a target="_blank"><xsl:attribute name="href"><xsl:value-of select="url"/></xsl:attribute>
- <font size="-1" color="#333333"><b><xsl:value-of select="headline_text"/></b></font></a><br/>
- <a target="_blank"><xsl:attribute name="href"><xsl:value-of select="document_url"/></xsl:attribute>
- <font size="-2" color="#46627A"><xsl:value-of select = "source"/></font></a>
- <font size="-2" color="#46627A">  <xsl:value-of select="harvest_time"/></font>
- </font></td></tr>
- <tr bgcolor="#ffffff"><td bgcolor="#ffffff" height="5"></td></tr>
- </xsl:if>
-</xsl:template>
-
-</xsl:stylesheet>
+<?xml version="1.0"?>
+
+<!-- $Id$
+
+-->
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="*|/"><xsl:apply-templates/></xsl:template>
+
+<xsl:template match="text()|@*"><xsl:value-of select="."/></xsl:template>
+
+<xsl:template match="moreovernews">
+<!-- Stylesheet to be used inside a coplet. Generates HTML from an XML-feed from http://w.moreover.com/ -->
+<table>
+ <xsl:apply-templates select ="article"/>
+</table>
+</xsl:template>
+
+<xsl:template match="article">
+ <xsl:if test="position() < 6">
+ <tr bgcolor="#ffffff"><td><font face="Arial, Helvetica, sans-serif">
+ <a target="_blank"><xsl:attribute name="href"><xsl:value-of select="url"/></xsl:attribute>
+ <font size="-1" color="#333333"><b><xsl:value-of select="headline_text"/></b></font></a><br/>
+ <a target="_blank"><xsl:attribute name="href"><xsl:value-of select="document_url"/></xsl:attribute>
+ <font size="-2" color="#46627A"><xsl:value-of select = "source"/></font></a>
+ <font size="-2" color="#46627A">  <xsl:value-of select="harvest_time"/></font>
+ </font></td></tr>
+ <tr bgcolor="#ffffff"><td bgcolor="#ffffff" height="5"></td></tr>
+ </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
1.2 +34 -34 cocoon-2.1/src/blocks/portal-fw/samples/styles/sunLet_sundnNews.xsl
Index: sunLet_sundnNews.xsl
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/samples/styles/sunLet_sundnNews.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- sunLet_sundnNews.xsl 9 Mar 2003 00:05:33 -0000 1.1
+++ sunLet_sundnNews.xsl 6 May 2003 14:12:55 -0000 1.2
@@ -1,34 +1,34 @@
-<?xml version="1.0"?>
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<!-- $Id$
-
--->
-
-<xsl:template match="*|/"><xsl:apply-templates/></xsl:template>
-
-<xsl:template match="text()|@*"><xsl:value-of select="."/></xsl:template>
-
-<xsl:template match="news"><!-- Stylesheet to be used inside a coplet. Generates HTML from an XML-feed from http://w.moreover.com/ -->
-
- <table>
- <xsl:apply-templates select ="article">
- </xsl:apply-templates>
- </table>
-</xsl:template>
-
-<xsl:template match="article">
- <xsl:if test="position() < 6">
- <tr bgcolor="#ffffff"><td><font face="Arial, Helvetica, sans-serif">
- <a target="_blank"><xsl:attribute name="href"><xsl:value-of select="link"/></xsl:attribute>
- <font size="-1" color="#333333"><b><xsl:value-of select="title"/></b></font></a><br/>
- <a target="_blank"><xsl:attribute name="href"><xsl:value-of select="authorlink"/></xsl:attribute>
- <font size="-2" color="#46627A"><xsl:value-of select = "author"/></font></a>
- <font size="-2" color="#46627A">  <xsl:value-of select="date"/></font>
- </font></td></tr>
- <tr bgcolor="#ffffff"><td bgcolor="#ffffff" height="5"></td></tr>
- </xsl:if>
-</xsl:template>
-
-</xsl:stylesheet>
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<!-- $Id$
+
+-->
+
+<xsl:template match="*|/"><xsl:apply-templates/></xsl:template>
+
+<xsl:template match="text()|@*"><xsl:value-of select="."/></xsl:template>
+
+<xsl:template match="news"><!-- Stylesheet to be used inside a coplet. Generates HTML from an XML-feed from http://w.moreover.com/ -->
+
+ <table>
+ <xsl:apply-templates select ="article">
+ </xsl:apply-templates>
+ </table>
+</xsl:template>
+
+<xsl:template match="article">
+ <xsl:if test="position() < 6">
+ <tr bgcolor="#ffffff"><td><font face="Arial, Helvetica, sans-serif">
+ <a target="_blank"><xsl:attribute name="href"><xsl:value-of select="link"/></xsl:attribute>
+ <font size="-1" color="#333333"><b><xsl:value-of select="title"/></b></font></a><br/>
+ <a target="_blank"><xsl:attribute name="href"><xsl:value-of select="authorlink"/></xsl:attribute>
+ <font size="-2" color="#46627A"><xsl:value-of select = "author"/></font></a>
+ <font size="-2" color="#46627A">  <xsl:value-of select="date"/></font>
+ </font></td></tr>
+ <tr bgcolor="#ffffff"><td bgcolor="#ffffff" height="5"></td></tr>
+ </xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
1.2 +82 -82 cocoon-2.1/src/blocks/portal-fw/samples/styles/sunletconf.xsl
Index: sunletconf.xsl
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/samples/styles/sunletconf.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- sunletconf.xsl 9 Mar 2003 00:05:33 -0000 1.1
+++ sunletconf.xsl 6 May 2003 14:12:55 -0000 1.2
@@ -1,82 +1,82 @@
-<?xml version="1.0"?>
-<!-- $Id$
-
- Description: The configuration page of a coplet
-
--->
-
-<xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<xsl:template match="page">
- <xsl:apply-templates/>
-</xsl:template>
-
-<xsl:template match="picture">
- <img>
- <xsl:attribute name="src"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
- </img>
-</xsl:template>
-
-
-<xsl:template match="form">
- <form>
- <xsl:attribute name="method"><xsl:value-of select="@method"/></xsl:attribute>
- <xsl:attribute name="action"><xsl:value-of select="@action"/></xsl:attribute>
- <table><tbody>
- <xsl:apply-templates select="inputxml"/>
- <tr><td colspan="2" align="middle">
- <xsl:apply-templates select="input"/>
- </td></tr>
- </tbody></table>
- </form>
-</xsl:template>
-
-<xsl:template match="inputxml">
- <tr>
- <td><xsl:value-of select="@name"/>: </td>
- <td>
- <xsl:choose>
- <xsl:when test="@name='Newsfeed'">
- <select name="Newsfeed">
- <option value="usa">
- <xsl:if test="normalize-space(.) = 'usa'">
- <xsl:attribute name="selected">true</xsl:attribute>
- </xsl:if>
- USA
- </option>
- <option value="entertainmentgeneral">
- <xsl:if test="normalize-space(.) = 'entertainmentgeneral'">
- <xsl:attribute name="selected">true</xsl:attribute>
- </xsl:if>
- Entertainment
- </option>
- <option value="foodanddrink">
- <xsl:if test="normalize-space(.) = 'foodanddrink'">
- <xsl:attribute name="selected">true</xsl:attribute>
- </xsl:if>
- Food & Drink
- </option>
- </select>
- </xsl:when>
- <xsl:otherwise>
- <input>
- <xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
- <xsl:attribute name="value"><xsl:value-of select="."/></xsl:attribute>
- <xsl:attribute name="type"><xsl:value-of select="@type"/></xsl:attribute>
- </input>
- </xsl:otherwise>
- </xsl:choose>
- </td>
- </tr>
-</xsl:template>
-
-<!-- Copy all and apply templates -->
-<xsl:template match="@*|node()">
- <xsl:copy>
- <xsl:apply-templates select="@*|node()" />
- </xsl:copy>
-</xsl:template>
-
-
-</xsl:stylesheet>
+<?xml version="1.0"?>
+
+<!-- $Id$
+
+ Description: The configuration page of a coplet
+
+-->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="page">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="picture">
+ <img>
+ <xsl:attribute name="src"><xsl:value-of select="normalize-space(url)"/></xsl:attribute>
+ </img>
+</xsl:template>
+
+
+<xsl:template match="form">
+ <form>
+ <xsl:attribute name="method"><xsl:value-of select="@method"/></xsl:attribute>
+ <xsl:attribute name="action"><xsl:value-of select="@action"/></xsl:attribute>
+ <table><tbody>
+ <xsl:apply-templates select="inputxml"/>
+ <tr><td colspan="2" align="middle">
+ <xsl:apply-templates select="input"/>
+ </td></tr>
+ </tbody></table>
+ </form>
+</xsl:template>
+
+<xsl:template match="inputxml">
+ <tr>
+ <td><xsl:value-of select="@name"/>: </td>
+ <td>
+ <xsl:choose>
+ <xsl:when test="@name='Newsfeed'">
+ <select name="Newsfeed">
+ <option value="usa">
+ <xsl:if test="normalize-space(.) = 'usa'">
+ <xsl:attribute name="selected">true</xsl:attribute>
+ </xsl:if>
+ USA
+ </option>
+ <option value="entertainmentgeneral">
+ <xsl:if test="normalize-space(.) = 'entertainmentgeneral'">
+ <xsl:attribute name="selected">true</xsl:attribute>
+ </xsl:if>
+ Entertainment
+ </option>
+ <option value="foodanddrink">
+ <xsl:if test="normalize-space(.) = 'foodanddrink'">
+ <xsl:attribute name="selected">true</xsl:attribute>
+ </xsl:if>
+ Food & Drink
+ </option>
+ </select>
+ </xsl:when>
+ <xsl:otherwise>
+ <input>
+ <xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
+ <xsl:attribute name="value"><xsl:value-of select="."/></xsl:attribute>
+ <xsl:attribute name="type"><xsl:value-of select="@type"/></xsl:attribute>
+ </input>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ </tr>
+</xsl:template>
+
+<!-- Copy all and apply templates -->
+<xsl:template match="@*|node()">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|node()" />
+ </xsl:copy>
+</xsl:template>
+
+</xsl:stylesheet>
1.2 +55 -54 cocoon-2.1/src/blocks/portal-fw/samples/styles/sunrise-user.xsl
Index: sunrise-user.xsl
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/samples/styles/sunrise-user.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- sunrise-user.xsl 9 Mar 2003 00:05:33 -0000 1.1
+++ sunrise-user.xsl 6 May 2003 14:12:55 -0000 1.2
@@ -1,54 +1,55 @@
-<?xml version="1.0"?>
-<!-- $Id$
-
--->
-
-<xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-
-<xsl:param name="password"/>
-<xsl:param name="name"/>
-
-
-<xsl:template match="authentication">
- <authentication>
-
- <xsl:apply-templates select="users"/>
-
- </authentication>
-</xsl:template>
-
-<xsl:template match="users">
-<xsl:apply-templates select="user"/>
-</xsl:template>
-
-<xsl:template match="user">
-
-<xsl:if test="normalize-space(name) = $name and normalize-space(password) = $password">
- <ID><xsl:value-of select="name"/></ID>
- <role><xsl:value-of select="role"/></role>
- <data>
- <name><xsl:value-of select="name"/></name>
- <role><xsl:value-of select="role"/></role>
- <ID><xsl:value-of select="name"/></ID>
- <user><xsl:value-of select="name"/></user>
- <title><xsl:value-of select="title"/></title>
- <firstname><xsl:value-of select="firstname"/></firstname>
- <lastname><xsl:value-of select="lastname"/></lastname>
- <company><xsl:value-of select="company"/></company>
- <street><xsl:value-of select="street"/></street>
- <zipcode><xsl:value-of select="zipcode"/></zipcode>
- <city><xsl:value-of select="city"/></city>
- <country><xsl:value-of select="country"/></country>
- <phone><xsl:value-of select="phone"/></phone>
- <fax><xsl:value-of select="fax"/></fax>
- <email><xsl:value-of select="email"/></email>
- <bankid><xsl:value-of select="bankid"/></bankid>
- <bankname><xsl:value-of select="bankname"/></bankname>
- <accountid><xsl:value-of select="accountid"/></accountid>
- </data>
-</xsl:if>
-</xsl:template>
-
-</xsl:stylesheet>
+<?xml version="1.0"?>
+
+<!-- $Id$
+
+-->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+
+<xsl:param name="password"/>
+<xsl:param name="name"/>
+
+
+<xsl:template match="authentication">
+ <authentication>
+
+ <xsl:apply-templates select="users"/>
+
+ </authentication>
+</xsl:template>
+
+<xsl:template match="users">
+<xsl:apply-templates select="user"/>
+</xsl:template>
+
+<xsl:template match="user">
+
+<xsl:if test="normalize-space(name) = $name and normalize-space(password) = $password">
+ <ID><xsl:value-of select="name"/></ID>
+ <role><xsl:value-of select="role"/></role>
+ <data>
+ <name><xsl:value-of select="name"/></name>
+ <role><xsl:value-of select="role"/></role>
+ <ID><xsl:value-of select="name"/></ID>
+ <user><xsl:value-of select="name"/></user>
+ <title><xsl:value-of select="title"/></title>
+ <firstname><xsl:value-of select="firstname"/></firstname>
+ <lastname><xsl:value-of select="lastname"/></lastname>
+ <company><xsl:value-of select="company"/></company>
+ <street><xsl:value-of select="street"/></street>
+ <zipcode><xsl:value-of select="zipcode"/></zipcode>
+ <city><xsl:value-of select="city"/></city>
+ <country><xsl:value-of select="country"/></country>
+ <phone><xsl:value-of select="phone"/></phone>
+ <fax><xsl:value-of select="fax"/></fax>
+ <email><xsl:value-of select="email"/></email>
+ <bankid><xsl:value-of select="bankid"/></bankid>
+ <bankname><xsl:value-of select="bankname"/></bankname>
+ <accountid><xsl:value-of select="accountid"/></accountid>
+ </data>
+</xsl:if>
+</xsl:template>
+
+</xsl:stylesheet>
1.2 +601 -602 cocoon-2.1/src/blocks/portal-fw/samples/styles/sunriseconfHTML.xsl
Index: sunriseconfHTML.xsl
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/samples/styles/sunriseconfHTML.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- sunriseconfHTML.xsl 9 Mar 2003 00:05:33 -0000 1.1
+++ sunriseconfHTML.xsl 6 May 2003 14:12:55 -0000 1.2
@@ -1,602 +1,601 @@
-<?xml version="1.0"?>
-
-<xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<!-- $Id$
-
- Description: Portal User configuration to HTML. This stylesheet is
- used for the administrator when he manages the users
-
--->
-
-<xsl:template match="configuration">
- <xsl:variable name="role" select="normalize-space(role)"/>
-
- <html>
- <head>
- <title>Portal User Management</title>
- </head>
- <body text="#0B2A51" link="#0B2A51" vlink="#666666" bgColor="#cccccc">
- <table bgColor="#ffffff" border="0" cellPadding="0" cellSpacing="0" width="100%"><tbody>
- <tr>
- <td>
- <table border="0" cellPadding="0" cellSpacing="2" height="100%" width="100%"><tbody>
-<!-- Start Header --> <tr>
- <td bgcolor="#AAB9BF" noWrap="" colspan="3">
- <img src="sunspotdemoimg-space.gif" height="5"/>
- </td>
- </tr>
- <tr>
- <td bgcolor="#AAB9BF" noWrap="">
- <img src="sunspotdemoimg-logo.jpg"/>
- </td>
- <td bgcolor="#AAB9BF" align="center" valign="bottom" colspan="2">
- <font face="Arial, Helvetica, sans-serif" size="6" color="#46627A">
- <b>Portal User Management</b>
- </font>
- </td>
- </tr>
- <tr>
- <td noWrap="" width="10%" bgcolor="#cccccc">
- <img src="sunspotdemoimg-space.gif" height="10"/>
- </td>
- <td width="90%" bgcolor="#cccccc" colspan="2">
- <img src="sunspotdemoimg-space.gif"/>
- </td>
- </tr>
-<!-- Ende Header -->
-<!-- Start Content -->
- <tr>
- <td bgcolor="#46627a">
- <img src="sunspotdemoimg-space.gif"/>
- </td>
- <td><img src="sunspotdemoimg-space.gif" width="10"/></td>
- <td align="center"><img src="sunspotdemoimg-space.gif" height="10"/>
-<!-- add new role --> <xsl:if test="menue/addrole">
- <form method="post">
- <xsl:attribute name="action"><xsl:value-of select="normalize-space(uri)"/></xsl:attribute>
- <input type="hidden" value="addrole" name="authstate"/>
- <table cellpadding="2" cellspacing="0" border="0" bgcolor="#46627A" width="60%">
- <tr>
- <td>
- <table cellpadding="0" cellspacing="0" border="0" bgcolor="#ffffff" width="100%">
- <tr>
- <td colspan="4"><img src="sunspotdemoimg-space.gif" height="10"/></td>
- </tr>
- <tr>
- <td width="1%"><img src="sunspotdemoimg-space.gif" width="30"/></td>
- <td width="1%"><img src="sunspotdemoimg-kast_m.gif"/></td>
- <td width="1%">
- <font face="Arial, Helvetica, sans-serif" size="2">
- <input type="text" name="authrole" size="20"/>
- </font>
- </td>
- <td width="97%">
- <img src="sunspotdemoimg-space.gif" width="10"/>
- <font face="Arial, Helvetica, sans-serif" size="2">
- <input type="submit" value="Create New Role"/>
- </font>
- </td>
- </tr>
- <tr>
- <td colspan="4"><img src="sunspotdemoimg-space.gif" height="10"/></td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- </form>
- </xsl:if>
-<!-- delete a role --> <xsl:if test="menue/delrole">
- <form method="post">
- <xsl:attribute name="action"><xsl:value-of select="normalize-space(uri)"/></xsl:attribute>
- <input type="hidden" value="delrole" name="authstate"/>
- <table cellpadding="2" cellspacing="0" border="0" bgcolor="#46627A" width="60%">
- <tr>
- <td>
- <table cellpadding="0" cellspacing="0" border="0" bgcolor="#ffffff" width="100%">
- <tr>
- <td colspan="4"><img src="sunspotdemoimg-space.gif" height="10"/></td>
- </tr>
- <tr>
- <td width="1%"><img src="sunspotdemoimg-space.gif" width="30"/></td>
- <td width="1%"><img src="sunspotdemoimg-kast_m.gif"/></td>
- <td width="1%">
- <font face="Arial, Helvetica, sans-serif" size="2">
- <select name="authrole">
- <xsl:for-each select="roles/role">
- <option>
- <xsl:attribute name="value">
- <xsl:value-of select="normalize-space(.)"/>
- </xsl:attribute>
- <xsl:value-of select="normalize-space(.)"/>
- </option>
- </xsl:for-each>
- </select>
- </font>
- <img src="sunspotdemoimg-space.gif" width="90" height="1"/>
- </td>
- <td width="97%">
- <img src="sunspotdemoimg-space.gif" width="10"/>
- <font face="Arial, Helvetica, sans-serif" size="2">
- <input type="submit" value="Delete Role"/>
- </font>
- </td>
- </tr>
- <tr>
- <td colspan="4"><img src="sunspotdemoimg-space.gif" height="10"/></td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- </form>
- </xsl:if>
-<!-- User: select role --> <table cellpadding="2" cellspacing="0" border="0" bgcolor="#46627A" width="60%">
- <tr>
- <td>
- <table cellpadding="0" cellspacing="0" border="0" bgcolor="#ffffff" width="100%">
- <tr>
- <td colspan="4"><img src="sunspotdemoimg-space.gif" height="10"/></td>
- </tr>
- <form method="post">
- <xsl:attribute name="action">
- <xsl:value-of select="normalize-space(uri)"/>
- </xsl:attribute>
- <input type="hidden" value="selrole" name="authstate"/>
- <tr>
- <td width="1%">
- <img src="sunspotdemoimg-space.gif"/>
- </td>
- <td width="1%"><img src="sunspotdemoimg-kast_o.gif"/></td>
- <td width="1%" colspan="2">
- <font face="Arial, Helvetica, sans-serif" size="2">
- <b>User</b>
- </font>
- </td>
- </tr>
- <tr>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- <td width="1%" background="sunspotdemoimg-line_bg.gif">
- <img src="sunspotdemoimg-space.gif"/>
- </td>
- <td colspan="2"><img src="sunspotdemoimg-space.gif" height="20"/></td>
- </tr>
- <tr>
- <td width="1%"><img src="sunspotdemoimg-space.gif" width="30"/></td>
- <td width="1%" background="sunspotdemoimg-line_bg.gif">
- <img src="sunspotdemoimg-kast.gif"/></td>
- <td width="1%">
- <font face="Arial, Helvetica, sans-serif" size="2">
- <select name="authrole">
- <xsl:for-each select="roles/role">
- <option>
- <xsl:attribute name="value">
- <xsl:value-of select="normalize-space(.)"/>
- </xsl:attribute>
- <xsl:if test="normalize-space(.)=$role">
- <xsl:attribute name="selected">
- true
- </xsl:attribute>
- </xsl:if>
- <xsl:value-of select="normalize-space(.)"/>
- </option>
- </xsl:for-each>
- </select>
- </font>
- <img src="sunspotdemoimg-space.gif" width="90" height="1"/>
- </td>
- <td>
- <img src="sunspotdemoimg-space.gif" width="10"/>
- <font face="Arial, Helvetica, sans-serif" size="2">
- <input type="submit" value="Choose Role"/>
- </font>
- </td>
- </tr>
- </form>
- <tr>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- <td width="1%" background="sunspotdemoimg-line_bg.gif" valign="bottom">
- <img src="sunspotdemoimg-line_end.gif"/>
- </td>
- <td colspan="2"><img src="sunspotdemoimg-space.gif" height="20"/></td>
- </tr>
-<!-- User: select user or new user -->
- <xsl:if test="role and not(user)">
- <tr>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- <td width="1%" background="sunspotdemoimg-line_bg.gif"><img src="sunspotdemoimg-kast.gif"/></td>
- <td width="1%">
- <img src="sunspotdemoimg-space.gif"/>
- </td>
- <form method="post">
- <xsl:attribute name="action">
- <xsl:value-of select="normalize-space(uri)"/>
- </xsl:attribute>
- <input type="hidden" value="adduser" name="authstate"/>
- <input type="hidden" name="authrole">
- <xsl:attribute name="value">
- <xsl:value-of select="$role"/>
- </xsl:attribute>
- </input>
- <td>
- <img src="sunspotdemoimg-space.gif" width="10"/>
- <input type="submit" value="Create New User"/>
- </td>
- </form>
- </tr>
- <tr>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- <td width="1%" background="sunspotdemoimg-line_bg.gif" valign="bottom">
- <img src="sunspotdemoimg-line_end.gif"/>
- </td>
- <td colspan="2"><img src="sunspotdemoimg-space.gif" height="20"/></td>
- </tr>
- <xsl:if test="users/user/ID">
- <tr>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- <td width="1%">
- <img src="sunspotdemoimg-kast_u.gif"/>
- </td>
- <form method="post">
- <xsl:attribute name="action">
- <xsl:value-of select="normalize-space(uri)"/>
- </xsl:attribute>
- <input type="hidden" value="seluser" name="authstate"/>
- <input type="hidden" name="authrole">
- <xsl:attribute name="value">
- <xsl:value-of select="$role"/>
- </xsl:attribute>
- </input>
- <td width="1%">
- <select name="authid">
- <xsl:for-each select="users/user/ID">
- <option>
- <xsl:attribute name="value">
- <xsl:value-of select="normalize-space(.)"/>
- </xsl:attribute>
- <xsl:if test="normalize-space(.)=$role">
- <xsl:attribute name="selected">
- true
- </xsl:attribute>
- </xsl:if>
- <xsl:value-of select="normalize-space(.)"/>
- </option>
- </xsl:for-each>
- </select>
- </td>
- <td>
- <img src="sunspotdemoimg-space.gif" width="10"/>
- <input type="submit" value="Choose User"/>
- </td>
- </form>
- </tr>
- </xsl:if>
- </xsl:if>
- <xsl:if test="user">
- <xsl:variable name="user" select="normalize-space(user)"/>
- <form method="post">
- <xsl:attribute name="action"><xsl:value-of select="normalize-space(uri)"/></xsl:attribute>
- <input type="hidden" value="chguser" name="authstate"/>
- <input type="hidden" name="authuser">
- <xsl:choose>
- <xsl:when test="$user='error'">
- <xsl:attribute name="value">new</xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="value">
- <xsl:value-of select="normalize-space(user)"/>
- </xsl:attribute>
- </xsl:otherwise>
- </xsl:choose>
- </input>
- <input type="hidden" name="autholdrole" value="{$role}"/>
- <input type="hidden" name="autholdpassword" value="{normalize-space(uservalues/data/password)}"/>
- <tr>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- <td width="1%" background="sunspotdemoimg-line_bg.gif">
- <img src="sunspotdemoimg-kast.gif"/>
- </td>
- <td width="1%" colspan="2">
- <font face="Arial, Helvetica, sans-serif" size="2">
- <b>User Information</b>
- </font>
- </td>
- </tr>
- <tr>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- <td width="1%" background="sunspotdemoimg-line_bg.gif">
- <img src="sunspotdemoimg-space.gif"/>
- </td>
- <td width="1%">
- <font face="Arial, Helvetica, sans-serif" size="2">
- Title:
- </font>
- </td>
- <td>
- <img src="sunspotdemoimg-space.gif" width="10"/>
- <select name="title">
- <option>
- <xsl:if test="normalize-space(uservalues/data/title)='Mr.'">
- <xsl:attribute name="selected">
- true
- </xsl:attribute>
- </xsl:if>
- Mr.
- </option>
- <option>
- <xsl:if test="normalize-space(uservalues/data/title)='Mrs.'">
- <xsl:attribute name="selected">
- true
- </xsl:attribute>
- </xsl:if>
- Mrs.
- </option>
- </select>
- </td>
- </tr>
- <tr>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- <td width="1%" background="sunspotdemoimg-line_bg.gif">
- <img src="sunspotdemoimg-space.gif"/>
- </td>
- <td width="1%">
- <font face="Arial, Helvetica, sans-serif" size="2">
- Firstname:
- </font>
- </td>
- <td>
- <img src="sunspotdemoimg-space.gif" width="10"/>
- <xsl:choose>
- <xsl:when test="$user='new'">
- <input type="text" name="firstname" value="??"/>
- </xsl:when>
- <xsl:when test="$user='error'">
- <input type="text" name="firstname" value="{uservalues/data/firstname}"/>
- </xsl:when>
- <xsl:otherwise>
- <input type="text" name="firstname" value="{uservalues/data/firstname}"/>
- </xsl:otherwise>
- </xsl:choose>
- </td>
- </tr>
- <tr>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- <td width="1%" background="sunspotdemoimg-line_bg.gif">
- <img src="sunspotdemoimg-space.gif"/>
- </td>
- <td width="1%">
- <font face="Arial, Helvetica, sans-serif" size="2">
- Lastname:
- </font>
- </td>
- <td>
- <img src="sunspotdemoimg-space.gif" width="10"/>
- <xsl:choose>
- <xsl:when test="$user='new'">
- <input type="text" name="lastname" value="??"/>
- </xsl:when>
- <xsl:otherwise>
- <input type="text" name="lastname">
- <xsl:attribute name="value">
- <xsl:value-of select="uservalues/data/lastname"/>
- </xsl:attribute>
- </input>
- </xsl:otherwise>
- </xsl:choose>
- </td>
- </tr>
- <tr>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- <td width="1%" background="sunspotdemoimg-line_bg.gif">
- <img src="sunspotdemoimg-space.gif"/>
- </td>
- <td width="1%">
- <font face="Arial, Helvetica, sans-serif" size="2">
- Login:
- </font>
- </td>
- <td>
- <font face="Arial, Helvetica, sans-serif" size="2">
- <img src="sunspotdemoimg-space.gif" width="10"/>
- <xsl:choose>
- <xsl:when test="$user='new'">
- <input type="text" name="authid" value="??"/>
- </xsl:when>
- <xsl:when test="$user='error'">
- <input type="text" name="authid" value="{uservalues/data/ID}"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="uservalues/data/ID"/>
- <input type="hidden" name="authid">
- <xsl:attribute name="value">
- <xsl:value-of select="normalize-space(uservalues/data/ID)"/>
- </xsl:attribute>
- </input>
- </xsl:otherwise>
- </xsl:choose>
- </font>
- </td>
- </tr>
- <xsl:if test="$user='error'">
- <tr>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- <td width="1%" background="sunspotdemoimg-line_bg.gif">
- <img src="sunspotdemoimg-space.gif"/>
- </td>
- <td width="1%">
- <font face="Arial, Helvetica, sans-serif" size="2"> </font>
- </td>
- <td>
- <font face="Arial, Helvetica, sans-serif" size="2" color="ff1111">
- <img src="sunspotdemoimg-space.gif" width="10"/>
- User already exists
- </font>
- </td>
- </tr>
- </xsl:if>
- <tr>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- <td width="1%" background="sunspotdemoimg-line_bg.gif">
- <img src="sunspotdemoimg-space.gif"/>
- </td>
- <td width="1%">
- <font face="Arial, Helvetica, sans-serif" size="2">
- Password:
- </font>
- </td>
- <td>
- <img src="sunspotdemoimg-space.gif" width="10"/>
- <xsl:choose>
- <xsl:when test="$user='new'">
- <input type="password" name="password" value=""/>
- </xsl:when>
- <xsl:otherwise>
- <input type="password" name="password" value="{uservalues/data/password}"/>
- </xsl:otherwise>
- </xsl:choose>
- </td>
- </tr>
- <tr>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- <td width="1%" background="sunspotdemoimg-line_bg.gif">
- <img src="sunspotdemoimg-space.gif"/>
- </td>
- <td width="1%">
- <font face="Arial, Helvetica, sans-serif" size="2">
- Role:
- </font>
- </td>
- <td>
- <img src="sunspotdemoimg-space.gif" width="10"/>
- <select name="authrole">
- <xsl:for-each select="roles/role">
- <option>
- <xsl:attribute name="value">
- <xsl:value-of select="normalize-space(.)"/>
- </xsl:attribute>
- <xsl:if test="normalize-space(.)=$role">
- <xsl:attribute name="selected">
- true
- </xsl:attribute>
- </xsl:if>
- <xsl:value-of select="normalize-space(.)"/>
- </option>
- </xsl:for-each>
- </select>
- </td>
- </tr>
- <tr>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- <td width="1%" background="sunspotdemoimg-line_bg.gif" valign="bottom">
- <img src="sunspotdemoimg-line_end.gif"/>
- </td>
- <td colspan="2"><img src="sunspotdemoimg-space.gif" height="20"/></td>
- </tr>
- <tr>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- <td width="1%" background="sunspotdemoimg-line_bg.gif">
- <img src="sunspotdemoimg-kast_url_u.gif"/>
- </td>
- <xsl:choose>
- <xsl:when test="not($user='new') and not($user='error')">
- <td width="1%">
- <font face="Arial, Helvetica, sans-serif" size="2">
- <input type="checkbox" value="true" name="authdeluser"/>
- </font>
- </td>
- <td width="97%">
- <img src="sunspotdemoimg-space.gif" width="10"/>
- <font face="Arial, Helvetica, sans-serif" size="2">
- Delete User
- </font>
- </td>
- </xsl:when>
- <xsl:otherwise>
- <td width="1%">
- <img src="sunspotdemoimg-space.gif" width="10"/>
- </td>
- <td width="97%">
- <img src="sunspotdemoimg-space.gif" width="10"/>
- </td>
- </xsl:otherwise>
- </xsl:choose>
- </tr>
- <tr>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- <td width="1%" background="sunspotdemoimg-line_bg.gif" valign="bottom">
- <img src="sunspotdemoimg-line_end.gif"/>
- </td>
- <td colspan="2"><img src="sunspotdemoimg-space.gif" height="20"/></td>
- </tr>
- <xsl:if test="addeduser">
- <tr>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- <td width="1%" background="sunspotdemoimg-line_bg.gif">
- <img src="sunspotdemoimg-kast.gif"/>
- </td>
- <td width="1%" colspan="2">
- <font face="Arial, Helvetica, sans-serif" size="2">
- User <xsl:value-of select="normalize-space(addeduser)"/> created.
- </font>
- </td>
- </tr>
- </xsl:if>
- <tr>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- <td width="1%">
- <img src="sunspotdemoimg-kast_url_u.gif"/>
- </td>
- <td width="1%"><img src="sunspotdemoimg-space.gif" width="10"/></td>
- <td>
- <img src="sunspotdemoimg-space.gif" width="10"/>
- <xsl:choose>
- <xsl:when test="$user='new' or $user='error'">
- <input type="submit" name="Create New" value="Create New"/>
- </xsl:when>
- <xsl:otherwise>
- <input type="submit" name="Change" value="Change"/>
- </xsl:otherwise>
- </xsl:choose>
- </td>
- </tr>
- </form>
- </xsl:if>
- <tr>
- <td colspan="4"><img src="sunspotdemoimg-space.gif" height="10"/></td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- <img src="sunspotdemoimg-space.gif" height="20"/>
- </td>
- </tr>
-<!-- Ende Content -->
-
-<!-- Start Bottom -->
- <tr>
- <td bgcolor="#AAB9BF" noWrap="" colspan="3">
- <img src="sunspotdemoimg-space.gif" height="8"/>
- </td>
- </tr>
-<!-- Ende Bottom -->
-
- </tbody></table>
- </td>
- </tr>
- </tbody></table>
- </body>
-</html>
-</xsl:template>
-
-<!-- Copy all and apply templates -->
-
-<xsl:template match="@*|node()">
- <xsl:copy>
- <xsl:apply-templates select="@*|node()" />
- </xsl:copy>
- </xsl:template>
-
-</xsl:stylesheet>
+<?xml version="1.0"?>
+
+<!-- $Id$
+
+ Description: Portal User configuration to HTML. This stylesheet is
+ used for the administrator when he manages the users
+
+-->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="configuration">
+ <xsl:variable name="role" select="normalize-space(role)"/>
+
+ <html>
+ <head>
+ <title>Portal User Management</title>
+ </head>
+ <body text="#0B2A51" link="#0B2A51" vlink="#666666" bgColor="#cccccc">
+ <table bgColor="#ffffff" border="0" cellPadding="0" cellSpacing="0" width="100%"><tbody>
+ <tr>
+ <td>
+ <table border="0" cellPadding="0" cellSpacing="2" height="100%" width="100%"><tbody>
+<!-- Start Header --> <tr>
+ <td bgcolor="#AAB9BF" noWrap="" colspan="3">
+ <img src="sunspotdemoimg-space.gif" height="5"/>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="#AAB9BF" noWrap="">
+ <img src="sunspotdemoimg-logo.jpg"/>
+ </td>
+ <td bgcolor="#AAB9BF" align="center" valign="bottom" colspan="2">
+ <font face="Arial, Helvetica, sans-serif" size="6" color="#46627A">
+ <b>Portal User Management</b>
+ </font>
+ </td>
+ </tr>
+ <tr>
+ <td noWrap="" width="10%" bgcolor="#cccccc">
+ <img src="sunspotdemoimg-space.gif" height="10"/>
+ </td>
+ <td width="90%" bgcolor="#cccccc" colspan="2">
+ <img src="sunspotdemoimg-space.gif"/>
+ </td>
+ </tr>
+<!-- Ende Header -->
+<!-- Start Content -->
+ <tr>
+ <td bgcolor="#46627a">
+ <img src="sunspotdemoimg-space.gif"/>
+ </td>
+ <td><img src="sunspotdemoimg-space.gif" width="10"/></td>
+ <td align="center"><img src="sunspotdemoimg-space.gif" height="10"/>
+<!-- add new role --> <xsl:if test="menue/addrole">
+ <form method="post">
+ <xsl:attribute name="action"><xsl:value-of select="normalize-space(uri)"/></xsl:attribute>
+ <input type="hidden" value="addrole" name="authstate"/>
+ <table cellpadding="2" cellspacing="0" border="0" bgcolor="#46627A" width="60%">
+ <tr>
+ <td>
+ <table cellpadding="0" cellspacing="0" border="0" bgcolor="#ffffff" width="100%">
+ <tr>
+ <td colspan="4"><img src="sunspotdemoimg-space.gif" height="10"/></td>
+ </tr>
+ <tr>
+ <td width="1%"><img src="sunspotdemoimg-space.gif" width="30"/></td>
+ <td width="1%"><img src="sunspotdemoimg-kast_m.gif"/></td>
+ <td width="1%">
+ <font face="Arial, Helvetica, sans-serif" size="2">
+ <input type="text" name="authrole" size="20"/>
+ </font>
+ </td>
+ <td width="97%">
+ <img src="sunspotdemoimg-space.gif" width="10"/>
+ <font face="Arial, Helvetica, sans-serif" size="2">
+ <input type="submit" value="Create New Role"/>
+ </font>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="4"><img src="sunspotdemoimg-space.gif" height="10"/></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </form>
+ </xsl:if>
+<!-- delete a role --> <xsl:if test="menue/delrole">
+ <form method="post">
+ <xsl:attribute name="action"><xsl:value-of select="normalize-space(uri)"/></xsl:attribute>
+ <input type="hidden" value="delrole" name="authstate"/>
+ <table cellpadding="2" cellspacing="0" border="0" bgcolor="#46627A" width="60%">
+ <tr>
+ <td>
+ <table cellpadding="0" cellspacing="0" border="0" bgcolor="#ffffff" width="100%">
+ <tr>
+ <td colspan="4"><img src="sunspotdemoimg-space.gif" height="10"/></td>
+ </tr>
+ <tr>
+ <td width="1%"><img src="sunspotdemoimg-space.gif" width="30"/></td>
+ <td width="1%"><img src="sunspotdemoimg-kast_m.gif"/></td>
+ <td width="1%">
+ <font face="Arial, Helvetica, sans-serif" size="2">
+ <select name="authrole">
+ <xsl:for-each select="roles/role">
+ <option>
+ <xsl:attribute name="value">
+ <xsl:value-of select="normalize-space(.)"/>
+ </xsl:attribute>
+ <xsl:value-of select="normalize-space(.)"/>
+ </option>
+ </xsl:for-each>
+ </select>
+ </font>
+ <img src="sunspotdemoimg-space.gif" width="90" height="1"/>
+ </td>
+ <td width="97%">
+ <img src="sunspotdemoimg-space.gif" width="10"/>
+ <font face="Arial, Helvetica, sans-serif" size="2">
+ <input type="submit" value="Delete Role"/>
+ </font>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="4"><img src="sunspotdemoimg-space.gif" height="10"/></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </form>
+ </xsl:if>
+<!-- User: select role --> <table cellpadding="2" cellspacing="0" border="0" bgcolor="#46627A" width="60%">
+ <tr>
+ <td>
+ <table cellpadding="0" cellspacing="0" border="0" bgcolor="#ffffff" width="100%">
+ <tr>
+ <td colspan="4"><img src="sunspotdemoimg-space.gif" height="10"/></td>
+ </tr>
+ <form method="post">
+ <xsl:attribute name="action">
+ <xsl:value-of select="normalize-space(uri)"/>
+ </xsl:attribute>
+ <input type="hidden" value="selrole" name="authstate"/>
+ <tr>
+ <td width="1%">
+ <img src="sunspotdemoimg-space.gif"/>
+ </td>
+ <td width="1%"><img src="sunspotdemoimg-kast_o.gif"/></td>
+ <td width="1%" colspan="2">
+ <font face="Arial, Helvetica, sans-serif" size="2">
+ <b>User</b>
+ </font>
+ </td>
+ </tr>
+ <tr>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ <td width="1%" background="sunspotdemoimg-line_bg.gif">
+ <img src="sunspotdemoimg-space.gif"/>
+ </td>
+ <td colspan="2"><img src="sunspotdemoimg-space.gif" height="20"/></td>
+ </tr>
+ <tr>
+ <td width="1%"><img src="sunspotdemoimg-space.gif" width="30"/></td>
+ <td width="1%" background="sunspotdemoimg-line_bg.gif">
+ <img src="sunspotdemoimg-kast.gif"/></td>
+ <td width="1%">
+ <font face="Arial, Helvetica, sans-serif" size="2">
+ <select name="authrole">
+ <xsl:for-each select="roles/role">
+ <option>
+ <xsl:attribute name="value">
+ <xsl:value-of select="normalize-space(.)"/>
+ </xsl:attribute>
+ <xsl:if test="normalize-space(.)=$role">
+ <xsl:attribute name="selected">
+ true
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:value-of select="normalize-space(.)"/>
+ </option>
+ </xsl:for-each>
+ </select>
+ </font>
+ <img src="sunspotdemoimg-space.gif" width="90" height="1"/>
+ </td>
+ <td>
+ <img src="sunspotdemoimg-space.gif" width="10"/>
+ <font face="Arial, Helvetica, sans-serif" size="2">
+ <input type="submit" value="Choose Role"/>
+ </font>
+ </td>
+ </tr>
+ </form>
+ <tr>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ <td width="1%" background="sunspotdemoimg-line_bg.gif" valign="bottom">
+ <img src="sunspotdemoimg-line_end.gif"/>
+ </td>
+ <td colspan="2"><img src="sunspotdemoimg-space.gif" height="20"/></td>
+ </tr>
+<!-- User: select user or new user -->
+ <xsl:if test="role and not(user)">
+ <tr>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ <td width="1%" background="sunspotdemoimg-line_bg.gif"><img src="sunspotdemoimg-kast.gif"/></td>
+ <td width="1%">
+ <img src="sunspotdemoimg-space.gif"/>
+ </td>
+ <form method="post">
+ <xsl:attribute name="action">
+ <xsl:value-of select="normalize-space(uri)"/>
+ </xsl:attribute>
+ <input type="hidden" value="adduser" name="authstate"/>
+ <input type="hidden" name="authrole">
+ <xsl:attribute name="value">
+ <xsl:value-of select="$role"/>
+ </xsl:attribute>
+ </input>
+ <td>
+ <img src="sunspotdemoimg-space.gif" width="10"/>
+ <input type="submit" value="Create New User"/>
+ </td>
+ </form>
+ </tr>
+ <tr>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ <td width="1%" background="sunspotdemoimg-line_bg.gif" valign="bottom">
+ <img src="sunspotdemoimg-line_end.gif"/>
+ </td>
+ <td colspan="2"><img src="sunspotdemoimg-space.gif" height="20"/></td>
+ </tr>
+ <xsl:if test="users/user/ID">
+ <tr>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ <td width="1%">
+ <img src="sunspotdemoimg-kast_u.gif"/>
+ </td>
+ <form method="post">
+ <xsl:attribute name="action">
+ <xsl:value-of select="normalize-space(uri)"/>
+ </xsl:attribute>
+ <input type="hidden" value="seluser" name="authstate"/>
+ <input type="hidden" name="authrole">
+ <xsl:attribute name="value">
+ <xsl:value-of select="$role"/>
+ </xsl:attribute>
+ </input>
+ <td width="1%">
+ <select name="authid">
+ <xsl:for-each select="users/user/ID">
+ <option>
+ <xsl:attribute name="value">
+ <xsl:value-of select="normalize-space(.)"/>
+ </xsl:attribute>
+ <xsl:if test="normalize-space(.)=$role">
+ <xsl:attribute name="selected">
+ true
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:value-of select="normalize-space(.)"/>
+ </option>
+ </xsl:for-each>
+ </select>
+ </td>
+ <td>
+ <img src="sunspotdemoimg-space.gif" width="10"/>
+ <input type="submit" value="Choose User"/>
+ </td>
+ </form>
+ </tr>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="user">
+ <xsl:variable name="user" select="normalize-space(user)"/>
+ <form method="post">
+ <xsl:attribute name="action"><xsl:value-of select="normalize-space(uri)"/></xsl:attribute>
+ <input type="hidden" value="chguser" name="authstate"/>
+ <input type="hidden" name="authuser">
+ <xsl:choose>
+ <xsl:when test="$user='error'">
+ <xsl:attribute name="value">new</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="value">
+ <xsl:value-of select="normalize-space(user)"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </input>
+ <input type="hidden" name="autholdrole" value="{$role}"/>
+ <input type="hidden" name="autholdpassword" value="{normalize-space(uservalues/data/password)}"/>
+ <tr>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ <td width="1%" background="sunspotdemoimg-line_bg.gif">
+ <img src="sunspotdemoimg-kast.gif"/>
+ </td>
+ <td width="1%" colspan="2">
+ <font face="Arial, Helvetica, sans-serif" size="2">
+ <b>User Information</b>
+ </font>
+ </td>
+ </tr>
+ <tr>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ <td width="1%" background="sunspotdemoimg-line_bg.gif">
+ <img src="sunspotdemoimg-space.gif"/>
+ </td>
+ <td width="1%">
+ <font face="Arial, Helvetica, sans-serif" size="2">
+ Title:
+ </font>
+ </td>
+ <td>
+ <img src="sunspotdemoimg-space.gif" width="10"/>
+ <select name="title">
+ <option>
+ <xsl:if test="normalize-space(uservalues/data/title)='Mr.'">
+ <xsl:attribute name="selected">
+ true
+ </xsl:attribute>
+ </xsl:if>
+ Mr.
+ </option>
+ <option>
+ <xsl:if test="normalize-space(uservalues/data/title)='Mrs.'">
+ <xsl:attribute name="selected">
+ true
+ </xsl:attribute>
+ </xsl:if>
+ Mrs.
+ </option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ <td width="1%" background="sunspotdemoimg-line_bg.gif">
+ <img src="sunspotdemoimg-space.gif"/>
+ </td>
+ <td width="1%">
+ <font face="Arial, Helvetica, sans-serif" size="2">
+ Firstname:
+ </font>
+ </td>
+ <td>
+ <img src="sunspotdemoimg-space.gif" width="10"/>
+ <xsl:choose>
+ <xsl:when test="$user='new'">
+ <input type="text" name="firstname" value="??"/>
+ </xsl:when>
+ <xsl:when test="$user='error'">
+ <input type="text" name="firstname" value="{uservalues/data/firstname}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <input type="text" name="firstname" value="{uservalues/data/firstname}"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ </tr>
+ <tr>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ <td width="1%" background="sunspotdemoimg-line_bg.gif">
+ <img src="sunspotdemoimg-space.gif"/>
+ </td>
+ <td width="1%">
+ <font face="Arial, Helvetica, sans-serif" size="2">
+ Lastname:
+ </font>
+ </td>
+ <td>
+ <img src="sunspotdemoimg-space.gif" width="10"/>
+ <xsl:choose>
+ <xsl:when test="$user='new'">
+ <input type="text" name="lastname" value="??"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <input type="text" name="lastname">
+ <xsl:attribute name="value">
+ <xsl:value-of select="uservalues/data/lastname"/>
+ </xsl:attribute>
+ </input>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ </tr>
+ <tr>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ <td width="1%" background="sunspotdemoimg-line_bg.gif">
+ <img src="sunspotdemoimg-space.gif"/>
+ </td>
+ <td width="1%">
+ <font face="Arial, Helvetica, sans-serif" size="2">
+ Login:
+ </font>
+ </td>
+ <td>
+ <font face="Arial, Helvetica, sans-serif" size="2">
+ <img src="sunspotdemoimg-space.gif" width="10"/>
+ <xsl:choose>
+ <xsl:when test="$user='new'">
+ <input type="text" name="authid" value="??"/>
+ </xsl:when>
+ <xsl:when test="$user='error'">
+ <input type="text" name="authid" value="{uservalues/data/ID}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="uservalues/data/ID"/>
+ <input type="hidden" name="authid">
+ <xsl:attribute name="value">
+ <xsl:value-of select="normalize-space(uservalues/data/ID)"/>
+ </xsl:attribute>
+ </input>
+ </xsl:otherwise>
+ </xsl:choose>
+ </font>
+ </td>
+ </tr>
+ <xsl:if test="$user='error'">
+ <tr>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ <td width="1%" background="sunspotdemoimg-line_bg.gif">
+ <img src="sunspotdemoimg-space.gif"/>
+ </td>
+ <td width="1%">
+ <font face="Arial, Helvetica, sans-serif" size="2"> </font>
+ </td>
+ <td>
+ <font face="Arial, Helvetica, sans-serif" size="2" color="ff1111">
+ <img src="sunspotdemoimg-space.gif" width="10"/>
+ User already exists
+ </font>
+ </td>
+ </tr>
+ </xsl:if>
+ <tr>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ <td width="1%" background="sunspotdemoimg-line_bg.gif">
+ <img src="sunspotdemoimg-space.gif"/>
+ </td>
+ <td width="1%">
+ <font face="Arial, Helvetica, sans-serif" size="2">
+ Password:
+ </font>
+ </td>
+ <td>
+ <img src="sunspotdemoimg-space.gif" width="10"/>
+ <xsl:choose>
+ <xsl:when test="$user='new'">
+ <input type="password" name="password" value=""/>
+ </xsl:when>
+ <xsl:otherwise>
+ <input type="password" name="password" value="{uservalues/data/password}"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ </tr>
+ <tr>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ <td width="1%" background="sunspotdemoimg-line_bg.gif">
+ <img src="sunspotdemoimg-space.gif"/>
+ </td>
+ <td width="1%">
+ <font face="Arial, Helvetica, sans-serif" size="2">
+ Role:
+ </font>
+ </td>
+ <td>
+ <img src="sunspotdemoimg-space.gif" width="10"/>
+ <select name="authrole">
+ <xsl:for-each select="roles/role">
+ <option>
+ <xsl:attribute name="value">
+ <xsl:value-of select="normalize-space(.)"/>
+ </xsl:attribute>
+ <xsl:if test="normalize-space(.)=$role">
+ <xsl:attribute name="selected">
+ true
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:value-of select="normalize-space(.)"/>
+ </option>
+ </xsl:for-each>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ <td width="1%" background="sunspotdemoimg-line_bg.gif" valign="bottom">
+ <img src="sunspotdemoimg-line_end.gif"/>
+ </td>
+ <td colspan="2"><img src="sunspotdemoimg-space.gif" height="20"/></td>
+ </tr>
+ <tr>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ <td width="1%" background="sunspotdemoimg-line_bg.gif">
+ <img src="sunspotdemoimg-kast_url_u.gif"/>
+ </td>
+ <xsl:choose>
+ <xsl:when test="not($user='new') and not($user='error')">
+ <td width="1%">
+ <font face="Arial, Helvetica, sans-serif" size="2">
+ <input type="checkbox" value="true" name="authdeluser"/>
+ </font>
+ </td>
+ <td width="97%">
+ <img src="sunspotdemoimg-space.gif" width="10"/>
+ <font face="Arial, Helvetica, sans-serif" size="2">
+ Delete User
+ </font>
+ </td>
+ </xsl:when>
+ <xsl:otherwise>
+ <td width="1%">
+ <img src="sunspotdemoimg-space.gif" width="10"/>
+ </td>
+ <td width="97%">
+ <img src="sunspotdemoimg-space.gif" width="10"/>
+ </td>
+ </xsl:otherwise>
+ </xsl:choose>
+ </tr>
+ <tr>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ <td width="1%" background="sunspotdemoimg-line_bg.gif" valign="bottom">
+ <img src="sunspotdemoimg-line_end.gif"/>
+ </td>
+ <td colspan="2"><img src="sunspotdemoimg-space.gif" height="20"/></td>
+ </tr>
+ <xsl:if test="addeduser">
+ <tr>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ <td width="1%" background="sunspotdemoimg-line_bg.gif">
+ <img src="sunspotdemoimg-kast.gif"/>
+ </td>
+ <td width="1%" colspan="2">
+ <font face="Arial, Helvetica, sans-serif" size="2">
+ User <xsl:value-of select="normalize-space(addeduser)"/> created.
+ </font>
+ </td>
+ </tr>
+ </xsl:if>
+ <tr>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ <td width="1%">
+ <img src="sunspotdemoimg-kast_url_u.gif"/>
+ </td>
+ <td width="1%"><img src="sunspotdemoimg-space.gif" width="10"/></td>
+ <td>
+ <img src="sunspotdemoimg-space.gif" width="10"/>
+ <xsl:choose>
+ <xsl:when test="$user='new' or $user='error'">
+ <input type="submit" name="Create New" value="Create New"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <input type="submit" name="Change" value="Change"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ </tr>
+ </form>
+ </xsl:if>
+ <tr>
+ <td colspan="4"><img src="sunspotdemoimg-space.gif" height="10"/></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ <img src="sunspotdemoimg-space.gif" height="20"/>
+ </td>
+ </tr>
+<!-- Ende Content -->
+
+<!-- Start Bottom -->
+ <tr>
+ <td bgcolor="#AAB9BF" noWrap="" colspan="3">
+ <img src="sunspotdemoimg-space.gif" height="8"/>
+ </td>
+ </tr>
+<!-- Ende Bottom -->
+
+ </tbody></table>
+ </td>
+ </tr>
+ </tbody></table>
+ </body>
+</html>
+</xsl:template>
+
+ <!-- Copy all and apply templates -->
+ <xsl:template match="@*|node()">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|node()" />
+ </xsl:copy>
+ </xsl:template>
+
+</xsl:stylesheet>
1.2 +219 -220 cocoon-2.1/src/blocks/portal-fw/samples/styles/sunriseeditHTML.xsl
Index: sunriseeditHTML.xsl
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/portal-fw/samples/styles/sunriseeditHTML.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- sunriseeditHTML.xsl 9 Mar 2003 00:05:33 -0000 1.1
+++ sunriseeditHTML.xsl 6 May 2003 14:12:55 -0000 1.2
@@ -1,220 +1,219 @@
-<?xml version="1.0"?>
-
-<xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<!-- $Id$
-
- Description: Portal User Management to HTML. This stylesheet is used
- if the user changes his own information.
-
--->
-
-<xsl:template match="configuration">
- <xsl:variable name="role" select="normalize-space(role)"/>
-
-<html>
-<head>
- <title>Portal User Managemenet</title>
-</head>
-<body text="#0B2A51" link="#0B2A51" vlink="#666666" bgColor="#ffffff">
-<table border="0" cellPadding="0" cellSpacing="0" height="100%" width="100%">
- <tr>
-
-<!-- menue -->
- <td height="100%" noWrap="" width="193" valign="top" bgcolor="#cccccc">
- <img height="2" src="sunspotdemoimg-space.gif" width="1"/>
- <table bgColor="#ffffff" border="0" cellPadding="0" cellSpacing="0" width="100%">
- <tr>
- <td>
- <table bgColor="#ffffff" border="0" cellPadding="0" cellSpacing="2" width="100%">
- <tr>
- <td bgcolor="#46627A" width="1%">
- <img src="sunspotdemoimg-space.gif" width="20" height="40"/>
- </td>
- <td bgcolor="#cccccc">
- <br/>
- <font face="Arial, Helvetica, sans-serif" size="2">
- <b><a target="_top" href="sunspotdemo-portal">
- <blockquote>Your Portal</blockquote>
- </a></b>
- </font>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- </td>
-<!-- /menue -->
- <td>
-<!-- content -->
- <table border="0" cellPadding="0" cellSpacing="2" height="100%" width="100%">
- <tbody>
- <tr>
- <td><img src="sunspotdemoimg-space.gif" width="10"/></td>
- <td valign="top"><img src="sunspotdemoimg-space.gif" height="10"/><br/>
- <table cellpadding="2" cellspacing="0" border="0" bgcolor="#46627A">
- <tr>
- <td>
- <table cellpadding="0" cellspacing="0" border="0" bgcolor="#ffffff">
- <tr>
- <td colspan="5"><img src="sunspotdemoimg-space.gif" height="10"/></td>
- </tr>
- <xsl:variable name="user" select="normalize-space(user)"/>
- <xsl:variable name="linkurl"><xsl:value-of select="normalize-space(uri)"/><xsl:value-of select="urlrewrite"/></xsl:variable>
- <form method="post" action="{translate(normalize-space($linkurl), ' ', '')}">
- <input type="hidden" name="authstate" value="chguser"/>
- <input type="hidden" name="authrole" value="{$role}"/>
- <input type="hidden" name="authuser" value="{normalize-space(user)}"/>
- <input type="hidden" name="autholdrole" value="{$role}"/>
- <input type="hidden" name="autholdpassword" value="{normalize-space(uservalues/data/password)}"/>
- <tr>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- <td width="1%">
- <img src="sunspotdemoimg-kast_o.gif"/>
- </td>
- <td width="1%" colspan="2">
- <font face="Arial, Helvetica, sans-serif" size="2">
- <b>User Information</b>
- </font>
- </td>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- </tr>
- <tr>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- <td width="1%" background="sunspotdemoimg-line_bg.gif">
- <img src="sunspotdemoimg-space.gif"/>
- </td>
- <td width="1%">
- <font face="Arial, Helvetica, sans-serif" size="2">
- Title:
- </font>
- </td>
- <td>
- <img src="sunspotdemoimg-space.gif" width="10"/>
- <select name="title">
- <option><xsl:if test="normalize-space(uservalues/data/title)='Mr.'"><xsl:attribute name="selected">true</xsl:attribute></xsl:if>Mr.</option>
- <option><xsl:if test="normalize-space(uservalues/data/title)='Mrs.'"><xsl:attribute name="selected">true</xsl:attribute></xsl:if>Mrs.</option>
- </select>
- </td>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- </tr>
- <tr>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- <td width="1%" background="sunspotdemoimg-line_bg.gif">
- <img src="sunspotdemoimg-space.gif"/>
- </td>
- <td width="1%">
- <font face="Arial, Helvetica, sans-serif" size="2">
- Firstname:
- </font>
- </td>
- <td>
- <img src="sunspotdemoimg-space.gif" width="10"/>
- <input size="35" type="text" name="firstname" value="{normalize-space(uservalues/data/firstname)}"/>
- </td>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- </tr>
- <tr>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- <td width="1%" background="sunspotdemoimg-line_bg.gif">
- <img src="sunspotdemoimg-space.gif"/>
- </td>
- <td width="1%">
- <font face="Arial, Helvetica, sans-serif" size="2">
- Lastname:
- </font>
- </td>
- <td>
- <img src="sunspotdemoimg-space.gif" width="10"/>
- <input size="35" type="text" name="lastname" value="{normalize-space(uservalues/data/lastname)}"/>
- </td>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- </tr>
- <tr>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- <td width="1%" background="sunspotdemoimg-line_bg.gif">
- <img src="sunspotdemoimg-space.gif"/>
- </td>
- <td width="1%">
- <font face="Arial, Helvetica, sans-serif" size="2">
- Login:
- </font>
- </td>
- <td>
- <img src="sunspotdemoimg-space.gif" width="10"/>
- <font face="Arial, Helvetica, sans-serif" size="2">
- <xsl:value-of select="uservalues/data/ID"/>
- <input type="hidden" name="authid" value="{normalize-space(uservalues/data/ID)}"/>
- </font>
- </td>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- </tr>
- <tr>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- <td width="1%" background="sunspotdemoimg-line_bg.gif">
- <img src="sunspotdemoimg-space.gif"/>
- </td>
- <td width="1%">
- <font face="Arial, Helvetica, sans-serif" size="2">
- Password:
- </font>
- </td>
- <td>
- <img src="sunspotdemoimg-space.gif" width="10"/>
- <input size="35" type="password" name="password" value="{normalize-space(uservalues/data/password)}"/>
- </td>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- </tr>
- <tr>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- <td width="1%" background="sunspotdemoimg-line_bg.gif" valign="bottom">
- <img src="sunspotdemoimg-line_end.gif"/>
- </td>
- <td colspan="2"><img src="sunspotdemoimg-space.gif" height="20"/></td>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- </tr>
- <tr>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- <td width="1%">
- <img src="sunspotdemoimg-kast_url_u.gif"/>
- </td>
- <td width="1%"><img src="sunspotdemoimg-space.gif" width="10"/></td>
- <td>
- <img src="sunspotdemoimg-space.gif" width="10"/>
- <input type="submit" name="Change" value="Change"/>
- </td>
- <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
- </tr>
- </form>
- <tr>
- <td colspan="5"><img src="sunspotdemoimg-space.gif" height="10"/></td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- <img src="sunspotdemoimg-space.gif" height="20"/>
- </td>
- </tr>
- </tbody>
- </table>
- </td>
-<!-- /content -->
-
- </tr>
- </table>
-</body>
-</html>
-</xsl:template>
-
-<!-- Copy all and apply templates -->
-
-<xsl:template match="@*|node()">
- <xsl:copy>
- <xsl:apply-templates select="@*|node()" />
- </xsl:copy>
- </xsl:template>
-
-</xsl:stylesheet>
+<?xml version="1.0"?>
+
+<!-- $Id$
+
+ Description: Portal User Management to HTML. This stylesheet is used
+ if the user changes his own information.
+
+-->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="configuration">
+ <xsl:variable name="role" select="normalize-space(role)"/>
+
+<html>
+<head>
+ <title>Portal User Managemenet</title>
+</head>
+<body text="#0B2A51" link="#0B2A51" vlink="#666666" bgColor="#ffffff">
+<table border="0" cellPadding="0" cellSpacing="0" height="100%" width="100%">
+ <tr>
+
+<!-- menue -->
+ <td height="100%" noWrap="" width="193" valign="top" bgcolor="#cccccc">
+ <img height="2" src="sunspotdemoimg-space.gif" width="1"/>
+ <table bgColor="#ffffff" border="0" cellPadding="0" cellSpacing="0" width="100%">
+ <tr>
+ <td>
+ <table bgColor="#ffffff" border="0" cellPadding="0" cellSpacing="2" width="100%">
+ <tr>
+ <td bgcolor="#46627A" width="1%">
+ <img src="sunspotdemoimg-space.gif" width="20" height="40"/>
+ </td>
+ <td bgcolor="#cccccc">
+ <br/>
+ <font face="Arial, Helvetica, sans-serif" size="2">
+ <b><a target="_top" href="sunspotdemo-portal">
+ <blockquote>Your Portal</blockquote>
+ </a></b>
+ </font>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+<!-- /menue -->
+ <td>
+<!-- content -->
+ <table border="0" cellPadding="0" cellSpacing="2" height="100%" width="100%">
+ <tbody>
+ <tr>
+ <td><img src="sunspotdemoimg-space.gif" width="10"/></td>
+ <td valign="top"><img src="sunspotdemoimg-space.gif" height="10"/><br/>
+ <table cellpadding="2" cellspacing="0" border="0" bgcolor="#46627A">
+ <tr>
+ <td>
+ <table cellpadding="0" cellspacing="0" border="0" bgcolor="#ffffff">
+ <tr>
+ <td colspan="5"><img src="sunspotdemoimg-space.gif" height="10"/></td>
+ </tr>
+ <xsl:variable name="user" select="normalize-space(user)"/>
+ <xsl:variable name="linkurl"><xsl:value-of select="normalize-space(uri)"/><xsl:value-of select="urlrewrite"/></xsl:variable>
+ <form method="post" action="{translate(normalize-space($linkurl), ' ', '')}">
+ <input type="hidden" name="authstate" value="chguser"/>
+ <input type="hidden" name="authrole" value="{$role}"/>
+ <input type="hidden" name="authuser" value="{normalize-space(user)}"/>
+ <input type="hidden" name="autholdrole" value="{$role}"/>
+ <input type="hidden" name="autholdpassword" value="{normalize-space(uservalues/data/password)}"/>
+ <tr>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ <td width="1%">
+ <img src="sunspotdemoimg-kast_o.gif"/>
+ </td>
+ <td width="1%" colspan="2">
+ <font face="Arial, Helvetica, sans-serif" size="2">
+ <b>User Information</b>
+ </font>
+ </td>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ </tr>
+ <tr>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ <td width="1%" background="sunspotdemoimg-line_bg.gif">
+ <img src="sunspotdemoimg-space.gif"/>
+ </td>
+ <td width="1%">
+ <font face="Arial, Helvetica, sans-serif" size="2">
+ Title:
+ </font>
+ </td>
+ <td>
+ <img src="sunspotdemoimg-space.gif" width="10"/>
+ <select name="title">
+ <option><xsl:if test="normalize-space(uservalues/data/title)='Mr.'"><xsl:attribute name="selected">true</xsl:attribute></xsl:if>Mr.</option>
+ <option><xsl:if test="normalize-space(uservalues/data/title)='Mrs.'"><xsl:attribute name="selected">true</xsl:attribute></xsl:if>Mrs.</option>
+ </select>
+ </td>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ </tr>
+ <tr>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ <td width="1%" background="sunspotdemoimg-line_bg.gif">
+ <img src="sunspotdemoimg-space.gif"/>
+ </td>
+ <td width="1%">
+ <font face="Arial, Helvetica, sans-serif" size="2">
+ Firstname:
+ </font>
+ </td>
+ <td>
+ <img src="sunspotdemoimg-space.gif" width="10"/>
+ <input size="35" type="text" name="firstname" value="{normalize-space(uservalues/data/firstname)}"/>
+ </td>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ </tr>
+ <tr>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ <td width="1%" background="sunspotdemoimg-line_bg.gif">
+ <img src="sunspotdemoimg-space.gif"/>
+ </td>
+ <td width="1%">
+ <font face="Arial, Helvetica, sans-serif" size="2">
+ Lastname:
+ </font>
+ </td>
+ <td>
+ <img src="sunspotdemoimg-space.gif" width="10"/>
+ <input size="35" type="text" name="lastname" value="{normalize-space(uservalues/data/lastname)}"/>
+ </td>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ </tr>
+ <tr>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ <td width="1%" background="sunspotdemoimg-line_bg.gif">
+ <img src="sunspotdemoimg-space.gif"/>
+ </td>
+ <td width="1%">
+ <font face="Arial, Helvetica, sans-serif" size="2">
+ Login:
+ </font>
+ </td>
+ <td>
+ <img src="sunspotdemoimg-space.gif" width="10"/>
+ <font face="Arial, Helvetica, sans-serif" size="2">
+ <xsl:value-of select="uservalues/data/ID"/>
+ <input type="hidden" name="authid" value="{normalize-space(uservalues/data/ID)}"/>
+ </font>
+ </td>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ </tr>
+ <tr>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ <td width="1%" background="sunspotdemoimg-line_bg.gif">
+ <img src="sunspotdemoimg-space.gif"/>
+ </td>
+ <td width="1%">
+ <font face="Arial, Helvetica, sans-serif" size="2">
+ Password:
+ </font>
+ </td>
+ <td>
+ <img src="sunspotdemoimg-space.gif" width="10"/>
+ <input size="35" type="password" name="password" value="{normalize-space(uservalues/data/password)}"/>
+ </td>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ </tr>
+ <tr>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ <td width="1%" background="sunspotdemoimg-line_bg.gif" valign="bottom">
+ <img src="sunspotdemoimg-line_end.gif"/>
+ </td>
+ <td colspan="2"><img src="sunspotdemoimg-space.gif" height="20"/></td>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ </tr>
+ <tr>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ <td width="1%">
+ <img src="sunspotdemoimg-kast_url_u.gif"/>
+ </td>
+ <td width="1%"><img src="sunspotdemoimg-space.gif" width="10"/></td>
+ <td>
+ <img src="sunspotdemoimg-space.gif" width="10"/>
+ <input type="submit" name="Change" value="Change"/>
+ </td>
+ <td width="1%"><img src="sunspotdemoimg-space.gif"/></td>
+ </tr>
+ </form>
+ <tr>
+ <td colspan="5"><img src="sunspotdemoimg-space.gif" height="10"/></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ <img src="sunspotdemoimg-space.gif" height="20"/>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+<!-- /content -->
+
+ </tr>
+ </table>
+</body>
+</html>
+</xsl:template>
+
+ <!-- Copy all and apply templates -->
+ <xsl:template match="@*|node()">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|node()" />
+ </xsl:copy>
+ </xsl:template>
+
+</xsl:stylesheet>
1.2 +1 -0 cocoon-2.1/src/blocks/precept/samples/samples.xml
Index: samples.xml
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/samples.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- samples.xml 11 Mar 2003 15:43:27 -0000 1.1
+++ samples.xml 6 May 2003 14:12:56 -0000 1.2
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="iso-8859-1"?>
+
<samples xmlns:xlink="http://www.w3.org/1999/xlink" name="precept block">
<group name="Main examples page.">
1.2 +3 -3 cocoon-2.1/src/blocks/precept/samples/example1/README
Index: README
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example1/README,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- README 9 Mar 2003 00:05:45 -0000 1.1
+++ README 6 May 2003 14:12:56 -0000 1.2
@@ -1,3 +1,3 @@
-This example always inserts the full instance into the SAX stream and uses
-the different stylesheets to display only parts of it.
-
+This example always inserts the full instance into the SAX stream and uses
+the different stylesheets to display only parts of it.
+
1.2 +9 -9 cocoon-2.1/src/blocks/precept/samples/example1/error.xml
Index: error.xml
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example1/error.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- error.xml 9 Mar 2003 00:05:45 -0000 1.1
+++ error.xml 6 May 2003 14:12:56 -0000 1.2
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<root xmlns:f="http://www.dff.st/dform"
- xmlns:r="http://www.dff.st/drender"
- xmlns:i="http://www.dff.st/ns/desire/instance/1.0"
- >
-
- Sorry, submit failed
-
-</root>
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<root xmlns:f="http://www.dff.st/dform"
+ xmlns:r="http://www.dff.st/drender"
+ xmlns:i="http://www.dff.st/ns/desire/instance/1.0"
+ >
+
+ Sorry, submit failed
+
+</root>
1.2 +17 -18 cocoon-2.1/src/blocks/precept/samples/example1/error.xsl
Index: error.xsl
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example1/error.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- error.xsl 9 Mar 2003 00:05:45 -0000 1.1
+++ error.xsl 6 May 2003 14:12:56 -0000 1.2
@@ -1,18 +1,17 @@
-<?xml version="1.0"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
-
-
- <xsl:template match="root">
- <html><body><xsl:apply-templates/></body></html>
- </xsl:template>
-
- <xsl:template match="/|*">
- <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates /></xsl:copy>
- </xsl:template>
-
- <xsl:template match="text()">
- <xsl:value-of select="." />
- </xsl:template>
-</xsl:stylesheet>
-
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
+ <xsl:template match="root">
+ <html><body><xsl:apply-templates/></body></html>
+ </xsl:template>
+
+ <xsl:template match="/|*">
+ <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates /></xsl:copy>
+ </xsl:template>
+
+ <xsl:template match="text()">
+ <xsl:value-of select="." />
+ </xsl:template>
+</xsl:stylesheet>
+
1.2 +9 -9 cocoon-2.1/src/blocks/precept/samples/example1/thanks.xml
Index: thanks.xml
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example1/thanks.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- thanks.xml 9 Mar 2003 00:05:45 -0000 1.1
+++ thanks.xml 6 May 2003 14:12:56 -0000 1.2
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<root xmlns:f="http://www.dff.st/dform"
- xmlns:r="http://www.dff.st/drender"
- xmlns:i="http://www.dff.st/ns/desire/instance/1.0"
- >
-
- Successfully submitted your data!
-
-</root>
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<root xmlns:f="http://www.dff.st/dform"
+ xmlns:r="http://www.dff.st/drender"
+ xmlns:i="http://www.dff.st/ns/desire/instance/1.0"
+ >
+
+ Successfully submitted your data!
+
+</root>
1.2 +17 -18 cocoon-2.1/src/blocks/precept/samples/example1/thanks.xsl
Index: thanks.xsl
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example1/thanks.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- thanks.xsl 9 Mar 2003 00:05:45 -0000 1.1
+++ thanks.xsl 6 May 2003 14:12:56 -0000 1.2
@@ -1,18 +1,17 @@
-<?xml version="1.0"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
-
-
- <xsl:template match="root">
- <html><body><xsl:apply-templates/></body></html>
- </xsl:template>
-
- <xsl:template match="/|*">
- <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates /></xsl:copy>
- </xsl:template>
-
- <xsl:template match="text()">
- <xsl:value-of select="." />
- </xsl:template>
-</xsl:stylesheet>
-
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
+ <xsl:template match="root">
+ <html><body><xsl:apply-templates/></body></html>
+ </xsl:template>
+
+ <xsl:template match="/|*">
+ <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates /></xsl:copy>
+ </xsl:template>
+
+ <xsl:template match="text()">
+ <xsl:value-of select="." />
+ </xsl:template>
+</xsl:stylesheet>
+
1.2 +33 -33 cocoon-2.1/src/blocks/precept/samples/example1/view1.xml
Index: view1.xml
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example1/view1.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- view1.xml 9 Mar 2003 00:05:45 -0000 1.1
+++ view1.xml 6 May 2003 14:12:56 -0000 1.2
@@ -1,33 +1,33 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<root xmlns:f="http://www.dff.st/dform"
- xmlns:r="http://www.dff.st/drender"
- xmlns:i="http://www.dff.st/ns/desire/instance/1.0"
- >
-
- <i:insert-instance id="form-feedback"/>
-
- <!--
- <r:render>
- <f:label r:x="108" r:y="77" r:w="181" r:h="108">Name</f:label>
- <f:textbox ref="cocoon-user/name" r:x="108" r:y="77" r:w="181" r:h="108"/>
- <f:textbox ref="cocoon-user/surname" r:x="108" r:y="77" r:w="181" r:h="108"/>
- <f:textbox ref="cocoon-user/email" r:x="108" r:y="77" r:w="181" r:h="108"/>
- <f:textbox ref="cocoon-user/age" r:x="108" r:y="77" r:w="181" r:h="108"/>
- <f:textbox ref="cocoon-user/city" r:x="108" r:y="77" r:w="181" r:h="108"/>
- <f:textbox ref="cocoon-user/zip" r:x="108" r:y="77" r:w="181" r:h="108"/>
- <f:textbox ref="cocoon-user/number-of-projects" r:x="108" r:y="77" r:w="181" r:h="108"/>
-
- <f:selectOne ref="cocoon-user/position" preferred-presentation="combobox" r:x="108" r:y="77" r:w="181" r:h="108"/>
-
- <f:selectMany ref="cocoon-user/os" preferred-presentation="listbox" r:x="108" r:y="77" r:w="181" r:h="108"/>
-
- <f:selectBoolean ref="cocoon-user/like-it" preferred-presentation="checkbox" r:x="108" r:y="77" r:w="181" r:h="108"/>
-
- <f:button method="next" r:x="108" r:y="77" r:w="181" r:h="108">
- <f:caption>Next Page</f:caption>
- <f:hint>Click here to get to next page</f:hint>
- </f:button>
-
- </r:render>
- -->
-</root>
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<root xmlns:f="http://www.dff.st/dform"
+ xmlns:r="http://www.dff.st/drender"
+ xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
+
+ <i:insert-instance id="form-feedback"/>
+
+ <!--
+ <r:render>
+ <f:label r:x="108" r:y="77" r:w="181" r:h="108">Name</f:label>
+ <f:textbox ref="cocoon-user/name" r:x="108" r:y="77" r:w="181" r:h="108"/>
+ <f:textbox ref="cocoon-user/surname" r:x="108" r:y="77" r:w="181" r:h="108"/>
+ <f:textbox ref="cocoon-user/email" r:x="108" r:y="77" r:w="181" r:h="108"/>
+ <f:textbox ref="cocoon-user/age" r:x="108" r:y="77" r:w="181" r:h="108"/>
+ <f:textbox ref="cocoon-user/city" r:x="108" r:y="77" r:w="181" r:h="108"/>
+ <f:textbox ref="cocoon-user/zip" r:x="108" r:y="77" r:w="181" r:h="108"/>
+ <f:textbox ref="cocoon-user/number-of-projects" r:x="108" r:y="77" r:w="181" r:h="108"/>
+
+ <f:selectOne ref="cocoon-user/position" preferred-presentation="combobox" r:x="108" r:y="77" r:w="181" r:h="108"/>
+
+ <f:selectMany ref="cocoon-user/os" preferred-presentation="listbox" r:x="108" r:y="77" r:w="181" r:h="108"/>
+
+ <f:selectBoolean ref="cocoon-user/like-it" preferred-presentation="checkbox" r:x="108" r:y="77" r:w="181" r:h="108"/>
+
+ <f:button method="next" r:x="108" r:y="77" r:w="181" r:h="108">
+ <f:caption>Next Page</f:caption>
+ <f:hint>Click here to get to next page</f:hint>
+ </f:button>
+
+ </r:render>
+ -->
+</root>
1.2 +42 -44 cocoon-2.1/src/blocks/precept/samples/example1/view1.xsl
Index: view1.xsl
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example1/view1.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- view1.xsl 9 Mar 2003 00:05:45 -0000 1.1
+++ view1.xsl 6 May 2003 14:12:56 -0000 1.2
@@ -1,44 +1,42 @@
-<?xml version="1.0"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
-
-
- <xsl:template match="root">
- <html><body><form method="POST"><xsl:apply-templates/></form></body></html>
- </xsl:template>
-
- <xsl:template match="cocoon-installation">
- <table border="1">
- <tr>
- <td>Firstname</td>
- <td><input type="textbox" name="cocoon-installation/user/firstname" value="{user/firstname/text()}"/></td>
- <td><xsl:apply-templates select="user/firstname/constraint"/></td>
- </tr>
- <tr>
- <td>Lastname</td>
- <td><input type="textbox" name="cocoon-installation/user/lastname" value="{user/lastname/text()}"/></td>
- <td><xsl:apply-templates select="user/lastname/constraint"/></td>
- </tr>
- <tr>
- <td>Email</td>
- <td><input type="textbox" name="cocoon-installation/user/email" value="{user/email/text()}"/></td>
- <td><xsl:apply-templates select="user/email/constraint"/></td>
- </tr>
- <tr>
- <td>Age</td>
- <td><input type="textbox" name="cocoon-installation/user/age" value="{user/age/text()}"/></td>
- <td><xsl:apply-templates select="user/age/constraint"/></td>
- </tr>
- </table>
- <input type="submit" name="cocoon-method-next2" value="Next Page"/>
- </xsl:template>
-
- <xsl:template match="/|*">
- <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates /></xsl:copy>
- </xsl:template>
-
- <xsl:template match="text()">
- <xsl:value-of select="." />
- </xsl:template>
-</xsl:stylesheet>
-
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
+ <xsl:template match="root">
+ <html><body><form method="POST"><xsl:apply-templates/></form></body></html>
+ </xsl:template>
+
+ <xsl:template match="cocoon-installation">
+ <table border="1">
+ <tr>
+ <td>Firstname</td>
+ <td><input type="textbox" name="cocoon-installation/user/firstname" value="{user/firstname/text()}"/></td>
+ <td><xsl:apply-templates select="user/firstname/constraint"/></td>
+ </tr>
+ <tr>
+ <td>Lastname</td>
+ <td><input type="textbox" name="cocoon-installation/user/lastname" value="{user/lastname/text()}"/></td>
+ <td><xsl:apply-templates select="user/lastname/constraint"/></td>
+ </tr>
+ <tr>
+ <td>Email</td>
+ <td><input type="textbox" name="cocoon-installation/user/email" value="{user/email/text()}"/></td>
+ <td><xsl:apply-templates select="user/email/constraint"/></td>
+ </tr>
+ <tr>
+ <td>Age</td>
+ <td><input type="textbox" name="cocoon-installation/user/age" value="{user/age/text()}"/></td>
+ <td><xsl:apply-templates select="user/age/constraint"/></td>
+ </tr>
+ </table>
+ <input type="submit" name="cocoon-method-next2" value="Next Page"/>
+ </xsl:template>
+
+ <xsl:template match="/|*">
+ <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates /></xsl:copy>
+ </xsl:template>
+
+ <xsl:template match="text()">
+ <xsl:value-of select="." />
+ </xsl:template>
+</xsl:stylesheet>
1.2 +9 -9 cocoon-2.1/src/blocks/precept/samples/example1/view2.xml
Index: view2.xml
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example1/view2.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- view2.xml 9 Mar 2003 00:05:46 -0000 1.1
+++ view2.xml 6 May 2003 14:12:56 -0000 1.2
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<root xmlns:f="http://www.dff.st/dform"
- xmlns:r="http://www.dff.st/drender"
- xmlns:i="http://www.dff.st/ns/desire/instance/1.0"
- >
-
- <i:insert-instance id="form-feedback"/>
-
-</root>
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<root xmlns:f="http://www.dff.st/dform"
+ xmlns:r="http://www.dff.st/drender"
+ xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
+
+ <i:insert-instance id="form-feedback"/>
+
+</root>
1.2 +41 -42 cocoon-2.1/src/blocks/precept/samples/example1/view2.xsl
Index: view2.xsl
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example1/view2.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- view2.xsl 9 Mar 2003 00:05:46 -0000 1.1
+++ view2.xsl 6 May 2003 14:12:56 -0000 1.2
@@ -1,42 +1,41 @@
-<?xml version="1.0"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
-
-
- <xsl:template match="root">
- <html><body><form method="POST"><xsl:apply-templates/></form></body></html>
- </xsl:template>
-
- <xsl:template match="cocoon-installation">
- <table border="1">
- <tr>
- <td>Installation number</td>
- <td><input type="textbox" name="cocoon-installation/number" value="{number/text()}"/></td>
- </tr>
- <tr>
- <td>Live URL</td>
- <td><input type="textbox" name="cocoon-installation/live-url" value="{live-url/text()}"/></td>
- </tr>
- <tr>
- <td>Publish this URL</td>
- <td><input type="checkbox" name="cocoon-installation/publish" value="true">
- <xsl:if test="publish/text() = 'true'">
- <xsl:attribute name="checked"/>
- </xsl:if>
- </input>
- </td>
- </tr>
- </table>
- <input type="submit" name="cocoon-method-prev1" value="Prev Page"/>
- <input type="submit" name="cocoon-method-next3" value="Next Page"/>
- </xsl:template>
-
- <xsl:template match="/|*">
- <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates /></xsl:copy>
- </xsl:template>
-
- <xsl:template match="text()">
- <xsl:value-of select="." />
- </xsl:template>
-</xsl:stylesheet>
-
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
+ <xsl:template match="root">
+ <html><body><form method="POST"><xsl:apply-templates/></form></body></html>
+ </xsl:template>
+
+ <xsl:template match="cocoon-installation">
+ <table border="1">
+ <tr>
+ <td>Installation number</td>
+ <td><input type="textbox" name="cocoon-installation/number" value="{number/text()}"/></td>
+ </tr>
+ <tr>
+ <td>Live URL</td>
+ <td><input type="textbox" name="cocoon-installation/live-url" value="{live-url/text()}"/></td>
+ </tr>
+ <tr>
+ <td>Publish this URL</td>
+ <td><input type="checkbox" name="cocoon-installation/publish" value="true">
+ <xsl:if test="publish/text() = 'true'">
+ <xsl:attribute name="checked"/>
+ </xsl:if>
+ </input>
+ </td>
+ </tr>
+ </table>
+ <input type="submit" name="cocoon-method-prev1" value="Prev Page"/>
+ <input type="submit" name="cocoon-method-next3" value="Next Page"/>
+ </xsl:template>
+
+ <xsl:template match="/|*">
+ <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates /></xsl:copy>
+ </xsl:template>
+
+ <xsl:template match="text()">
+ <xsl:value-of select="." />
+ </xsl:template>
+</xsl:stylesheet>
+
1.2 +9 -9 cocoon-2.1/src/blocks/precept/samples/example1/view3.xml
Index: view3.xml
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example1/view3.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- view3.xml 9 Mar 2003 00:05:46 -0000 1.1
+++ view3.xml 6 May 2003 14:12:56 -0000 1.2
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<root xmlns:f="http://www.dff.st/dform"
- xmlns:r="http://www.dff.st/drender"
- xmlns:i="http://www.dff.st/ns/desire/instance/1.0"
- >
-
- <i:insert-instance id="form-feedback"/>
-
-</root>
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<root xmlns:f="http://www.dff.st/dform"
+ xmlns:r="http://www.dff.st/drender"
+ xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
+
+ <i:insert-instance id="form-feedback"/>
+
+</root>
1.2 +65 -66 cocoon-2.1/src/blocks/precept/samples/example1/view3.xsl
Index: view3.xsl
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example1/view3.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- view3.xsl 9 Mar 2003 00:05:46 -0000 1.1
+++ view3.xsl 6 May 2003 14:12:56 -0000 1.2
@@ -1,66 +1,65 @@
-<?xml version="1.0"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
-
-
- <xsl:template match="root">
- <html><body><form method="POST"><xsl:apply-templates/></form></body></html>
- </xsl:template>
-
- <xsl:template match="cocoon-installation">
- <table border="1">
- <tr>
- <td>os</td>
- <td>
- <select name="cocoon-installation/system/os">
- <option value="linux">
- <xsl:if test="system/os = 'linux'">
- <xsl:attribute name="selected"/>
- </xsl:if>
- Linux
- </option>
- <option value="w2k">
- <xsl:if test="system/os = 'w2k'">
- <xsl:attribute name="selected"/>
- </xsl:if>
- Windows 2k
- </option>
- </select>
- </td>
- <td><xsl:apply-templates select="system/os/constraint"/></td>
- </tr>
- <tr>
- <td>processor</td>
- <td><input type="textbox" name="cocoon-installation/system/processor" value="{system/processor/text()}"/></td>
- <td><xsl:apply-templates select="system/processor/constraint"/></td>
- </tr>
- <tr>
- <td>ram</td>
- <td><input type="textbox" name="cocoon-installation/system/ram" value="{system/ram/text()}"/></td>
- <td><xsl:apply-templates select="system/ram/constraint"/></td>
- </tr>
- <tr>
- <td>servlet engine</td>
- <td><input type="textbox" name="cocoon-installation/system/servlet-engine" value="{system/servlet-engine/text()}"/></td>
- <td><xsl:apply-templates select="system/servlet-engine/constraint"/></td>
- </tr>
- <tr>
- <td>java version</td>
- <td><input type="textbox" name="cocoon-installation/system/java-version" value="{system/java-version/text()}"/></td>
- <td><xsl:apply-templates select="system/java-version/constraint"/></td>
- </tr>
-
- </table>
- <input type="submit" name="cocoon-action-prev2" value="Prev Page"/>
- <input type="submit" name="cocoon-action-next4" value="Next Page"/>
- </xsl:template>
-
- <xsl:template match="/|*">
- <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates /></xsl:copy>
- </xsl:template>
-
- <xsl:template match="text()">
- <xsl:value-of select="." />
- </xsl:template>
-</xsl:stylesheet>
-
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
+ <xsl:template match="root">
+ <html><body><form method="POST"><xsl:apply-templates/></form></body></html>
+ </xsl:template>
+
+ <xsl:template match="cocoon-installation">
+ <table border="1">
+ <tr>
+ <td>os</td>
+ <td>
+ <select name="cocoon-installation/system/os">
+ <option value="linux">
+ <xsl:if test="system/os = 'linux'">
+ <xsl:attribute name="selected"/>
+ </xsl:if>
+ Linux
+ </option>
+ <option value="w2k">
+ <xsl:if test="system/os = 'w2k'">
+ <xsl:attribute name="selected"/>
+ </xsl:if>
+ Windows 2k
+ </option>
+ </select>
+ </td>
+ <td><xsl:apply-templates select="system/os/constraint"/></td>
+ </tr>
+ <tr>
+ <td>processor</td>
+ <td><input type="textbox" name="cocoon-installation/system/processor" value="{system/processor/text()}"/></td>
+ <td><xsl:apply-templates select="system/processor/constraint"/></td>
+ </tr>
+ <tr>
+ <td>ram</td>
+ <td><input type="textbox" name="cocoon-installation/system/ram" value="{system/ram/text()}"/></td>
+ <td><xsl:apply-templates select="system/ram/constraint"/></td>
+ </tr>
+ <tr>
+ <td>servlet engine</td>
+ <td><input type="textbox" name="cocoon-installation/system/servlet-engine" value="{system/servlet-engine/text()}"/></td>
+ <td><xsl:apply-templates select="system/servlet-engine/constraint"/></td>
+ </tr>
+ <tr>
+ <td>java version</td>
+ <td><input type="textbox" name="cocoon-installation/system/java-version" value="{system/java-version/text()}"/></td>
+ <td><xsl:apply-templates select="system/java-version/constraint"/></td>
+ </tr>
+
+ </table>
+ <input type="submit" name="cocoon-action-prev2" value="Prev Page"/>
+ <input type="submit" name="cocoon-action-next4" value="Next Page"/>
+ </xsl:template>
+
+ <xsl:template match="/|*">
+ <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates /></xsl:copy>
+ </xsl:template>
+
+ <xsl:template match="text()">
+ <xsl:value-of select="." />
+ </xsl:template>
+</xsl:stylesheet>
+
1.2 +9 -9 cocoon-2.1/src/blocks/precept/samples/example1/view4.xml
Index: view4.xml
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example1/view4.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- view4.xml 9 Mar 2003 00:05:46 -0000 1.1
+++ view4.xml 6 May 2003 14:12:56 -0000 1.2
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<root xmlns:f="http://www.dff.st/dform"
- xmlns:r="http://www.dff.st/drender"
- xmlns:i="http://www.dff.st/ns/desire/instance/1.0"
- >
-
- <i:insert-instance id="form-feedback"/>
-
-</root>
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<root xmlns:f="http://www.dff.st/dform"
+ xmlns:r="http://www.dff.st/drender"
+ xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
+
+ <i:insert-instance id="form-feedback"/>
+
+</root>
1.2 +77 -78 cocoon-2.1/src/blocks/precept/samples/example1/view4.xsl
Index: view4.xsl
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example1/view4.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- view4.xsl 9 Mar 2003 00:05:46 -0000 1.1
+++ view4.xsl 6 May 2003 14:12:56 -0000 1.2
@@ -1,78 +1,77 @@
-<?xml version="1.0"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
-
-
- <xsl:template match="root">
- <html><body><form method="POST"><xsl:apply-templates/></form></body></html>
- </xsl:template>
-
- <xsl:template match="cocoon-installation">
- <table border="1">
-
- <tr>
- <td>Firstname</td>
- <td><xsl:value-of select="user/firstname/text()"/></td>
- </tr>
- <tr>
- <td>Lastname</td>
- <td><xsl:value-of select="user/lastname/text()"/></td>
- </tr>
- <tr>
- <td>Email</td>
- <td><xsl:value-of select="user/email/text()"/></td>
- </tr>
- <tr>
- <td>Age</td>
- <td><xsl:value-of select="user/age/text()"/></td>
- </tr>
-
- <tr>
- <td>Installation number</td>
- <td><xsl:value-of select="number/text()"/></td>
- </tr>
- <tr>
- <td>Live URL</td>
- <td><xsl:value-of select="live-url/text()"/></td>
- </tr>
- <tr>
- <td>Please publish it as cocoon live-site example</td>
- <td><xsl:value-of select="publish/text()"/></td>
- </tr>
-
- <tr>
- <td>os</td>
- <td><xsl:value-of select="system/os/text()"/></td>
- </tr>
- <tr>
- <td>processor</td>
- <td><xsl:value-of select="system/processor/text()"/></td>
- </tr>
- <tr>
- <td>ram</td>
- <td><xsl:value-of select="system/ram/text()"/></td>
- </tr>
- <tr>
- <td>servlet engine</td>
- <td><xsl:value-of select="system/servlet-engine/text()"/></td>
- </tr>
- <tr>
- <td>java version</td>
- <td><xsl:value-of select="system/java-version/text()"/></td>
- </tr>
-
-
- </table>
- <input type="submit" name="cocoon-action-prev3" value="Prev Page"/>
- <input type="submit" name="cocoon-action-submit" value="Submit"/>
- </xsl:template>
-
- <xsl:template match="/|*">
- <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates /></xsl:copy>
- </xsl:template>
-
- <xsl:template match="text()">
- <xsl:value-of select="." />
- </xsl:template>
-</xsl:stylesheet>
-
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
+ <xsl:template match="root">
+ <html><body><form method="POST"><xsl:apply-templates/></form></body></html>
+ </xsl:template>
+
+ <xsl:template match="cocoon-installation">
+ <table border="1">
+
+ <tr>
+ <td>Firstname</td>
+ <td><xsl:value-of select="user/firstname/text()"/></td>
+ </tr>
+ <tr>
+ <td>Lastname</td>
+ <td><xsl:value-of select="user/lastname/text()"/></td>
+ </tr>
+ <tr>
+ <td>Email</td>
+ <td><xsl:value-of select="user/email/text()"/></td>
+ </tr>
+ <tr>
+ <td>Age</td>
+ <td><xsl:value-of select="user/age/text()"/></td>
+ </tr>
+
+ <tr>
+ <td>Installation number</td>
+ <td><xsl:value-of select="number/text()"/></td>
+ </tr>
+ <tr>
+ <td>Live URL</td>
+ <td><xsl:value-of select="live-url/text()"/></td>
+ </tr>
+ <tr>
+ <td>Please publish it as cocoon live-site example</td>
+ <td><xsl:value-of select="publish/text()"/></td>
+ </tr>
+
+ <tr>
+ <td>os</td>
+ <td><xsl:value-of select="system/os/text()"/></td>
+ </tr>
+ <tr>
+ <td>processor</td>
+ <td><xsl:value-of select="system/processor/text()"/></td>
+ </tr>
+ <tr>
+ <td>ram</td>
+ <td><xsl:value-of select="system/ram/text()"/></td>
+ </tr>
+ <tr>
+ <td>servlet engine</td>
+ <td><xsl:value-of select="system/servlet-engine/text()"/></td>
+ </tr>
+ <tr>
+ <td>java version</td>
+ <td><xsl:value-of select="system/java-version/text()"/></td>
+ </tr>
+
+
+ </table>
+ <input type="submit" name="cocoon-action-prev3" value="Prev Page"/>
+ <input type="submit" name="cocoon-action-submit" value="Submit"/>
+ </xsl:template>
+
+ <xsl:template match="/|*">
+ <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates /></xsl:copy>
+ </xsl:template>
+
+ <xsl:template match="text()">
+ <xsl:value-of select="." />
+ </xsl:template>
+</xsl:stylesheet>
+
1.2 +9 -9 cocoon-2.1/src/blocks/precept/samples/example2/error.xml
Index: error.xml
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example2/error.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- error.xml 9 Mar 2003 00:05:47 -0000 1.1
+++ error.xml 6 May 2003 14:12:56 -0000 1.2
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<root xmlns:f="http://www.dff.st/dform"
- xmlns:r="http://www.dff.st/drender"
- xmlns:i="http://www.dff.st/ns/desire/instance/1.0"
- >
-
- Sorry, submit failed
-
-</root>
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<root xmlns:f="http://www.dff.st/dform"
+ xmlns:r="http://www.dff.st/drender"
+ xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
+
+ Sorry, submit failed
+
+</root>
1.2 +73 -72 cocoon-2.1/src/blocks/precept/samples/example2/i2html.xsl
Index: i2html.xsl
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example2/i2html.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- i2html.xsl 9 Mar 2003 00:05:47 -0000 1.1
+++ i2html.xsl 6 May 2003 14:12:56 -0000 1.2
@@ -1,72 +1,73 @@
-<?xml version="1.0" encoding="iso-8859-1" ?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
- <xsl:template match="/">
- <html>
- <body>
- <form method="POST">
- <xsl:apply-templates />
- </form>
- </body>
- </html>
- </xsl:template>
-
- <xsl:template match="rows">
- <table border="1">
- <xsl:apply-templates/>
- </table>
- </xsl:template>
-
- <xsl:template match="row">
- <tr><td><xsl:apply-templates select="label"/></td><td><xsl:apply-templates select="i:*"/></td></tr>
- </xsl:template>
-
- <xsl:template match="i:output">
- [<xsl:value-of select="i:value/text()"/>]
- </xsl:template>
-
- <xsl:template match="i:textbox">
- <input name="{@ref}" type="textbox" value="{i:value/text()}" />
- </xsl:template>
-
- <xsl:template match="i:password">
- <input name="{@ref}" type="password" value="{i:value/text()}" />
- </xsl:template>
-
- <xsl:template match="i:selectBoolean">
- <input name="{@ref}" type="checkbox" value="true">
- <xsl:if test="i:value/text() = 'true'">
- <xsl:attribute name="checked"/>
- </xsl:if>
- </input>
- </xsl:template>
-
- <xsl:template match="i:selectOne">
- <select name="{@ref}">
- <xsl:variable name="selected" select="i:value/text()"/>
- <xsl:for-each select="constraint[@type = 'choice']/choice">
- <option value="{@value}">
- <xsl:if test="$selected = @value">
- <xsl:attribute name="selected"/>
- </xsl:if>
- <xsl:value-of select="."/>
- </option>
- </xsl:for-each>
- </select>
- </xsl:template>
-
- <xsl:template match="i:selectMany">
- </xsl:template>
-
- <xsl:template match="i:button">
- <input name="cocoon-method-{@method}" type="submit" value="{i:caption/text()}" />
- </xsl:template>
-
- <xsl:template match="*">
- <xsl:copy><xsl:copy-of select="@*" /><xsl:apply-templates /></xsl:copy>
- </xsl:template>
-
- <xsl:template match="text()">
- <xsl:value-of select="." />
- </xsl:template>
-</xsl:stylesheet>
-
+<?xml version="1.0" encoding="iso-8859-1" ?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
+ <xsl:template match="/">
+ <html>
+ <body>
+ <form method="POST">
+ <xsl:apply-templates />
+ </form>
+ </body>
+ </html>
+ </xsl:template>
+
+ <xsl:template match="rows">
+ <table border="1">
+ <xsl:apply-templates/>
+ </table>
+ </xsl:template>
+
+ <xsl:template match="row">
+ <tr><td><xsl:apply-templates select="label"/></td><td><xsl:apply-templates select="i:*"/></td></tr>
+ </xsl:template>
+
+ <xsl:template match="i:output">
+ [<xsl:value-of select="i:value/text()"/>]
+ </xsl:template>
+
+ <xsl:template match="i:textbox">
+ <input name="{@ref}" type="textbox" value="{i:value/text()}" />
+ </xsl:template>
+
+ <xsl:template match="i:password">
+ <input name="{@ref}" type="password" value="{i:value/text()}" />
+ </xsl:template>
+
+ <xsl:template match="i:selectBoolean">
+ <input name="{@ref}" type="checkbox" value="true">
+ <xsl:if test="i:value/text() = 'true'">
+ <xsl:attribute name="checked"/>
+ </xsl:if>
+ </input>
+ </xsl:template>
+
+ <xsl:template match="i:selectOne">
+ <select name="{@ref}">
+ <xsl:variable name="selected" select="i:value/text()"/>
+ <xsl:for-each select="constraint[@type = 'choice']/choice">
+ <option value="{@value}">
+ <xsl:if test="$selected = @value">
+ <xsl:attribute name="selected"/>
+ </xsl:if>
+ <xsl:value-of select="."/>
+ </option>
+ </xsl:for-each>
+ </select>
+ </xsl:template>
+
+ <xsl:template match="i:selectMany">
+ </xsl:template>
+
+ <xsl:template match="i:button">
+ <input name="cocoon-method-{@method}" type="submit" value="{i:caption/text()}" />
+ </xsl:template>
+
+ <xsl:template match="*">
+ <xsl:copy><xsl:copy-of select="@*" /><xsl:apply-templates /></xsl:copy>
+ </xsl:template>
+
+ <xsl:template match="text()">
+ <xsl:value-of select="." />
+ </xsl:template>
+</xsl:stylesheet>
+
1.2 +9 -9 cocoon-2.1/src/blocks/precept/samples/example2/thanks.xml
Index: thanks.xml
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example2/thanks.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- thanks.xml 9 Mar 2003 00:05:47 -0000 1.1
+++ thanks.xml 6 May 2003 14:12:56 -0000 1.2
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<root xmlns:f="http://www.dff.st/dform"
- xmlns:r="http://www.dff.st/drender"
- xmlns:i="http://www.dff.st/ns/desire/instance/1.0"
- >
-
- Successfully submitted your data!
-
-</root>
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<root xmlns:f="http://www.dff.st/dform"
+ xmlns:r="http://www.dff.st/drender"
+ xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
+
+ Successfully submitted your data!
+
+</root>
1.2 +21 -20 cocoon-2.1/src/blocks/precept/samples/example2/view1.xml
Index: view1.xml
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example2/view1.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- view1.xml 9 Mar 2003 00:05:47 -0000 1.1
+++ view1.xml 6 May 2003 14:12:56 -0000 1.2
@@ -1,20 +1,21 @@
-<?xml version="1.0" ?>
-<root xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
- <errors>
- <i:insert-violations/>
- </errors>
-
- <rows>
- <i:instance id="form-feedback">
- <row><label>Firstname</label><i:textbox ref="cocoon-installation/user/firstname"/></row>
- <row><label>Lastname</label><i:textbox ref="cocoon-installation/user/lastname"/></row>
- <row><label>Email</label><i:textbox ref="cocoon-installation/user/email"/></row>
- </i:instance>
-
- <row><label>Age</label><i:textbox ref="cocoon-installation/user/age" instance="form-feedback"/></row>
- </rows>
-
- <i:button method="next2">
- <i:caption>Next</i:caption>
- </i:button>
-</root>
+<?xml version="1.0" ?>
+
+<root xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
+ <errors>
+ <i:insert-violations/>
+ </errors>
+
+ <rows>
+ <i:instance id="form-feedback">
+ <row><label>Firstname</label><i:textbox ref="cocoon-installation/user/firstname"/></row>
+ <row><label>Lastname</label><i:textbox ref="cocoon-installation/user/lastname"/></row>
+ <row><label>Email</label><i:textbox ref="cocoon-installation/user/email"/></row>
+ </i:instance>
+
+ <row><label>Age</label><i:textbox ref="cocoon-installation/user/age" instance="form-feedback"/></row>
+ </rows>
+
+ <i:button method="next2">
+ <i:caption>Next</i:caption>
+ </i:button>
+</root>
1.2 +23 -22 cocoon-2.1/src/blocks/precept/samples/example2/view2.xml
Index: view2.xml
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example2/view2.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- view2.xml 9 Mar 2003 00:05:47 -0000 1.1
+++ view2.xml 6 May 2003 14:12:56 -0000 1.2
@@ -1,22 +1,23 @@
-<?xml version="1.0" ?>
-<root xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
- <errors>
- <i:insert-violations/>
- </errors>
-
- <rows>
- <i:instance id="form-feedback">
- <row><label>Number of installations</label><i:textbox ref="cocoon-installation/number"/></row>
- <row><label>Live URL</label><i:textbox ref="cocoon-installation/live-url"/></row>
- <row><label>Publish</label><i:selectBoolean ref="cocoon-installation/publish"/></row>
- </i:instance>
- </rows>
-
- <i:button method="prev1">
- <i:caption>Prev</i:caption>
- </i:button>
-
- <i:button method="next3">
- <i:caption>Next</i:caption>
- </i:button>
-</root>
+<?xml version="1.0" ?>
+
+<root xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
+ <errors>
+ <i:insert-violations/>
+ </errors>
+
+ <rows>
+ <i:instance id="form-feedback">
+ <row><label>Number of installations</label><i:textbox ref="cocoon-installation/number"/></row>
+ <row><label>Live URL</label><i:textbox ref="cocoon-installation/live-url"/></row>
+ <row><label>Publish</label><i:selectBoolean ref="cocoon-installation/publish"/></row>
+ </i:instance>
+ </rows>
+
+ <i:button method="prev1">
+ <i:caption>Prev</i:caption>
+ </i:button>
+
+ <i:button method="next3">
+ <i:caption>Next</i:caption>
+ </i:button>
+</root>
1.2 +25 -24 cocoon-2.1/src/blocks/precept/samples/example2/view3.xml
Index: view3.xml
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example2/view3.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- view3.xml 9 Mar 2003 00:05:48 -0000 1.1
+++ view3.xml 6 May 2003 14:12:56 -0000 1.2
@@ -1,24 +1,25 @@
-<?xml version="1.0" ?>
-<root xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
- <errors>
- <i:insert-violations/>
- </errors>
-
- <rows>
- <i:instance id="form-feedback">
- <row><label>OS</label><i:selectOne ref="cocoon-installation/system/os"/></row>
- <row><label>Processor</label><i:selectOne ref="cocoon-installation/system/processor"/></row>
- <row><label>RAM</label><i:textbox ref="cocoon-installation/system/ram"/></row>
- <row><label>Servlet Engine</label><i:selectOne ref="cocoon-installation/system/servlet-engine"/></row>
- <row><label>Java Version</label><i:selectOne ref="cocoon-installation/system/java-version"/></row>
- </i:instance>
- </rows>
-
- <i:button method="prev2">
- <i:caption>Prev</i:caption>
- </i:button>
-
- <i:button method="next4">
- <i:caption>Next</i:caption>
- </i:button>
-</root>
+<?xml version="1.0" ?>
+
+<root xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
+ <errors>
+ <i:insert-violations/>
+ </errors>
+
+ <rows>
+ <i:instance id="form-feedback">
+ <row><label>OS</label><i:selectOne ref="cocoon-installation/system/os"/></row>
+ <row><label>Processor</label><i:selectOne ref="cocoon-installation/system/processor"/></row>
+ <row><label>RAM</label><i:textbox ref="cocoon-installation/system/ram"/></row>
+ <row><label>Servlet Engine</label><i:selectOne ref="cocoon-installation/system/servlet-engine"/></row>
+ <row><label>Java Version</label><i:selectOne ref="cocoon-installation/system/java-version"/></row>
+ </i:instance>
+ </rows>
+
+ <i:button method="prev2">
+ <i:caption>Prev</i:caption>
+ </i:button>
+
+ <i:button method="next4">
+ <i:caption>Next</i:caption>
+ </i:button>
+</root>
1.2 +32 -31 cocoon-2.1/src/blocks/precept/samples/example2/view4.xml
Index: view4.xml
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/example2/view4.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- view4.xml 9 Mar 2003 00:05:48 -0000 1.1
+++ view4.xml 6 May 2003 14:12:56 -0000 1.2
@@ -1,31 +1,32 @@
-<?xml version="1.0" ?>
-<root xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
- <errors>
- <i:insert-violations/>
- </errors>
-
- <rows>
- <i:instance id="form-feedback">
- <row><label>Firstname</label><i:output ref="cocoon-installation/user/firstname"/></row>
- <row><label>Lastname</label><i:output ref="cocoon-installation/user/lastname"/></row>
- <row><label>Email</label><i:output ref="cocoon-installation/user/email"/></row>
-
- <row><label>Number of installations</label><i:output ref="cocoon-installation/number"/></row>
- <row><label>Live URL</label><i:output ref="cocoon-installation/live-url"/></row>
- <row><label>Publish</label><i:output ref="cocoon-installation/publish"/></row>
-
- <row><label>OS</label><i:output ref="cocoon-installation/system/os"/></row>
- <row><label>Processor</label><i:output ref="cocoon-installation/system/processor"/></row>
- <row><label>RAM</label><i:output ref="cocoon-installation/system/ram"/></row>
- <row><label>Servlet Engine</label><i:output ref="cocoon-installation/system/servlet-engine"/></row>
- <row><label>Java Version</label><i:output ref="cocoon-installation/system/java-version"/></row>
- </i:instance>
- </rows>
- <i:button method="prev3">
- <i:caption>Prev</i:caption>
- </i:button>
-
- <i:button method="submit">
- <i:caption>Submit</i:caption>
- </i:button>
-</root>
+<?xml version="1.0" ?>
+
+<root xmlns:i="http://www.dff.st/ns/desire/instance/1.0">
+ <errors>
+ <i:insert-violations/>
+ </errors>
+
+ <rows>
+ <i:instance id="form-feedback">
+ <row><label>Firstname</label><i:output ref="cocoon-installation/user/firstname"/></row>
+ <row><label>Lastname</label><i:output ref="cocoon-installation/user/lastname"/></row>
+ <row><label>Email</label><i:output ref="cocoon-installation/user/email"/></row>
+
+ <row><label>Number of installations</label><i:output ref="cocoon-installation/number"/></row>
+ <row><label>Live URL</label><i:output ref="cocoon-installation/live-url"/></row>
+ <row><label>Publish</label><i:output ref="cocoon-installation/publish"/></row>
+
+ <row><label>OS</label><i:output ref="cocoon-installation/system/os"/></row>
+ <row><label>Processor</label><i:output ref="cocoon-installation/system/processor"/></row>
+ <row><label>RAM</label><i:output ref="cocoon-installation/system/ram"/></row>
+ <row><label>Servlet Engine</label><i:output ref="cocoon-installation/system/servlet-engine"/></row>
+ <row><label>Java Version</label><i:output ref="cocoon-installation/system/java-version"/></row>
+ </i:instance>
+ </rows>
+ <i:button method="prev3">
+ <i:caption>Prev</i:caption>
+ </i:button>
+
+ <i:button method="submit">
+ <i:caption>Submit</i:caption>
+ </i:button>
+</root>
1.2 +61 -60 cocoon-2.1/src/blocks/precept/samples/model/easyrelax.xml
Index: easyrelax.xml
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/precept/samples/model/easyrelax.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- easyrelax.xml 9 Mar 2003 00:05:48 -0000 1.1
+++ easyrelax.xml 6 May 2003 14:12:57 -0000 1.2
@@ -1,60 +1,61 @@
-<?xml version="1.0"?>
-<grammar xmlns="http://www.dff.st/ns/desire/easyrelax/grammar/1.0">
- <start>
- <element name="cocoon-installation">
-
- <!-- the user who installed cocoon -->
- <element name="user">
- <element name="firstname"/>
- <element name="lastname"/>
- <element name="email">
- <constraint type="regexpr" name="E_EMAIL">^[a-zA-Z0-9]+[a-zA-Z0-9-_.]*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$</constraint>
- </element>
- <optional>
- <element name="age"/>
- <element name="gender"/>
- </optional>
- </element>
-
- <!-- serial number of cocoon installation -->
- <element name="number"/>
-
- <!-- an optional live url -->
- <optional>
- <element name="live-url"/>
- <element name="publish"/>
- </optional>
-
- <!-- the system cocoon is running on -->
- <element name="system">
- <element name="os">
- <constraint type="choice" name="E_OS">
- <choice value="linux">Linux</choice>
- <choice value="w2k">Windows 2000</choice>
- </constraint>
- </element>
- <element name="processor">
- <constraint type="choice" name="E_PROCESSOR">
- <choice value="intel">Intel</choice>
- <choice value="powerpc">PowerPC</choice>
- </constraint>
- </element>
- <element name="ram"/>
- <element name="servlet-engine">
- <constraint type="choice" name="E_ENGINE">
- <choice value="tc4">Tomcat 4</choice>
- <choice value="tc3">Tomcat 3</choice>
- <choice value="resin">Resin</choice>
- </constraint>
- </element>
- <element name="java-version">
- <constraint type="choice" name="E_JAVA">
- <choice value="1.2">JDK 1.2.x</choice>
- <choice value="1.3">JDK 1.3.x</choice>
- <choice value="1.4">JDK 1.4.x</choice>
- </constraint>
- </element>
- </element>
- </element>
- </start>
-</grammar>
+<?xml version="1.0"?>
+
+<grammar xmlns="http://www.dff.st/ns/desire/easyrelax/grammar/1.0">
+ <start>
+ <element name="cocoon-installation">
+
+ <!-- the user who installed cocoon -->
+ <element name="user">
+ <element name="firstname"/>
+ <element name="lastname"/>
+ <element name="email">
+ <constraint type="regexpr" name="E_EMAIL">^[a-zA-Z0-9]+[a-zA-Z0-9-_.]*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$</constraint>
+ </element>
+ <optional>
+ <element name="age"/>
+ <element name="gender"/>
+ </optional>
+ </element>
+
+ <!-- serial number of cocoon installation -->
+ <element name="number"/>
+
+ <!-- an optional live url -->
+ <optional>
+ <element name="live-url"/>
+ <element name="publish"/>
+ </optional>
+
+ <!-- the system cocoon is running on -->
+ <element name="system">
+ <element name="os">
+ <constraint type="choice" name="E_OS">
+ <choice value="linux">Linux</choice>
+ <choice value="w2k">Windows 2000</choice>
+ </constraint>
+ </element>
+ <element name="processor">
+ <constraint type="choice" name="E_PROCESSOR">
+ <choice value="intel">Intel</choice>
+ <choice value="powerpc">PowerPC</choice>
+ </constraint>
+ </element>
+ <element name="ram"/>
+ <element name="servlet-engine">
+ <constraint type="choice" name="E_ENGINE">
+ <choice value="tc4">Tomcat 4</choice>
+ <choice value="tc3">Tomcat 3</choice>
+ <choice value="resin">Resin</choice>
+ </constraint>
+ </element>
+ <element name="java-version">
+ <constraint type="choice" name="E_JAVA">
+ <choice value="1.2">JDK 1.2.x</choice>
+ <choice value="1.3">JDK 1.3.x</choice>
+ <choice value="1.4">JDK 1.4.x</choice>
+ </constraint>
+ </element>
+ </element>
+ </element>
+ </start>
+</grammar>
1.2 +11 -11 cocoon-2.1/src/blocks/session-fw/conf/session-act.xmap
Index: session-act.xmap
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/session-fw/conf/session-act.xmap,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- session-act.xmap 9 Mar 2003 00:06:06 -0000 1.1
+++ session-act.xmap 6 May 2003 14:12:57 -0000 1.2
@@ -1,11 +1,11 @@
-<?xml version="1.0"?>
-
-<xmap xpath="/sitemap/components/actions"
- unless="action[@name='session']">
-
- <map:action name="session"
- src="org.apache.cocoon.webapps.session.acting.SessionAction"/>
-
- <map:action name="session-form"
- src="org.apache.cocoon.webapps.session.acting.SessionFormAction"/>
-</xmap>
+<?xml version="1.0"?>
+
+<xmap xpath="/sitemap/components/actions"
+ unless="action[@name='session']">
+
+ <map:action name="session"
+ src="org.apache.cocoon.webapps.session.acting.SessionAction"/>
+
+ <map:action name="session-form"
+ src="org.apache.cocoon.webapps.session.acting.SessionFormAction"/>
+</xmap>
1.3 +8 -7 cocoon-2.1/src/blocks/session-fw/conf/session-sel.xmap
Index: session-sel.xmap
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/session-fw/conf/session-sel.xmap,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- session-sel.xmap 6 May 2003 13:43:55 -0000 1.2
+++ session-sel.xmap 6 May 2003 14:12:57 -0000 1.3
@@ -1,7 +1,8 @@
-<?xml version="1.0"?>
-<xmap xpath="/sitemap/components/selectors"
- unless="selector[@name='session-media']">
-
- <map:selector name="session-media"
- src="org.apache.cocoon.webapps.session.selection.MediaSelector"/>
-</xmap>
+<?xml version="1.0"?>
+
+<xmap xpath="/sitemap/components/selectors"
+ unless="selector[@name='session-media']">
+
+ <map:selector name="session-media"
+ src="org.apache.cocoon.webapps.session.selection.MediaSelector"/>
+</xmap>
1.2 +14 -14 cocoon-2.1/src/blocks/session-fw/conf/session-tran.xmap
Index: session-tran.xmap
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/session-fw/conf/session-tran.xmap,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- session-tran.xmap 9 Mar 2003 00:06:06 -0000 1.1
+++ session-tran.xmap 6 May 2003 14:12:57 -0000 1.2
@@ -1,15 +1,15 @@
-<?xml version="1.0"?>
-
-<xmap xpath="/sitemap/components/transformers"
- unless="transformer[@name='session']">
-
- <map:transformer name="session"
- src="org.apache.cocoon.webapps.session.transformation.SessionTransformer"
- pool-max="32" pool-min="8" pool-grow="4"/>
- <map:transformer name="session-pre"
- src="org.apache.cocoon.webapps.session.transformation.SessionPreTransformer"
- pool-max="32" pool-min="8" pool-grow="4"/>
- <map:transformer name="session-post"
- src="org.apache.cocoon.webapps.session.transformation.SessionPostTransformer"
- pool-max="32" pool-min="8" pool-grow="4"/>
+<?xml version="1.0"?>
+
+<xmap xpath="/sitemap/components/transformers"
+ unless="transformer[@name='session']">
+
+ <map:transformer name="session"
+ src="org.apache.cocoon.webapps.session.transformation.SessionTransformer"
+ pool-max="32" pool-min="8" pool-grow="4"/>
+ <map:transformer name="session-pre"
+ src="org.apache.cocoon.webapps.session.transformation.SessionPreTransformer"
+ pool-max="32" pool-min="8" pool-grow="4"/>
+ <map:transformer name="session-post"
+ src="org.apache.cocoon.webapps.session.transformation.SessionPostTransformer"
+ pool-max="32" pool-min="8" pool-grow="4"/>
</xmap>
1.3 +476 -476 cocoon-2.1/src/blocks/slide/java/org/apache/cocoon/components/repository/impl/SlideConfigurationAdapter.java
Index: SlideConfigurationAdapter.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/slide/java/org/apache/cocoon/components/repository/impl/SlideConfigurationAdapter.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- SlideConfigurationAdapter.java 16 Mar 2003 17:49:06 -0000 1.2
+++ SlideConfigurationAdapter.java 6 May 2003 14:12:58 -0000 1.3
@@ -1,476 +1,476 @@
-/*
-
- ============================================================================
- The Apache Software License, Version 1.1
- ============================================================================
-
- Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without modifica-
- tion, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. The end-user documentation included with the redistribution, if any, must
- include the following acknowledgment: "This product includes software
- developed by the Apache Software Foundation (http://www.apache.org/)."
- Alternately, this acknowledgment may appear in the software itself, if
- and wherever such third-party acknowledgments normally appear.
-
- 4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
- used to endorse or promote products derived from this software without
- prior written permission. For written permission, please contact
- apache@apache.org.
-
- 5. Products derived from this software may not be called "Apache", nor may
- "Apache" appear in their name, without prior written permission of the
- Apache Software Foundation.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- This software consists of voluntary contributions made by many individuals
- on behalf of the Apache Software Foundation and was originally created by
- Stefano Mazzocchi <st...@apache.org>. For more information on the Apache
- Software Foundation, please see <http://www.apache.org/>.
-
-*/
-
-package org.apache.cocoon.components.repository.impl;
-
-import org.apache.slide.util.conf.Configuration;
-import org.apache.slide.util.conf.ConfigurationException;
-
-import java.util.*;
-
-/**
- * The class represent an adapter for the configuration class from jakarta slide
- *
- * @author <a href="mailto:stephan@vern.chem.tu-berlin.de">Stephan Michels</a>
- * @version CVS $Id$
- */
-public class SlideConfigurationAdapter implements Configuration {
-
- private org.apache.avalon.framework.configuration.Configuration configuration;
-
- /**
- * Create a new adapter to map a Avalon configuration
- * to a Slide configuration
- *
- * @param configuration Avalon configuration
- */
- public SlideConfigurationAdapter(org.apache.avalon.framework.configuration.Configuration configuration) {
- this.configuration = configuration;
- }
-
- /**
- * Return the name of the node.
- *
- * @return name of the <code>Configuration</code> node.
- */
- public String getName() {
- return this.configuration.getName();
- }
-
- /**
- * Return a new <code>Configuration</code> instance encapsulating the
- * specified child node.
- *
- * @param child The name of the child node.
- *
- * @return Configuration
- *
- * @throws ConfigurationException If no child with that name exists.
- */
- public Configuration getConfiguration(String child)
- throws ConfigurationException {
- return new SlideConfigurationAdapter(this.configuration.getChild(child));
- }
-
- /**
- * Return an <code>Enumeration</code> of <code>Configuration<code>
- * elements containing all node children with the specified name.
- *
- * @param name The name of the children to get.
- *
- * @return Enumeration. The <code>Enumeration</code> will be
- * empty if there are no nodes by the specified name.
- */
- public Enumeration getConfigurations(String name) {
-
- Vector configurations = new Vector();
- org.apache.avalon.framework.configuration.Configuration[] childs = this.configuration.getChildren(name);
-
- for (int i = 0; i<childs.length; i++) {
- configurations.addElement(new SlideConfigurationAdapter(childs[i]));
- }
- return configurations.elements();
- }
-
- /**
- * Return the value of specified attribute.
- *
- * @param paramName The name of the parameter you ask the value of.
- *
- * @return String value of attribute.
- *
- * @throws ConfigurationException If no attribute with that name exists.
- */
- public String getAttribute(String paramName)
- throws ConfigurationException {
-
- try {
- return this.configuration.getAttribute(paramName);
- } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
- throw new ConfigurationException(ce.getMessage(), this);
- }
- }
-
- /**
- * Return the <code>int</code> value of the specified attribute contained
- * in this node.
- *
- * @param paramName The name of the parameter you ask the value of.
- *
- * @return int value of attribute
- *
- * @throws ConfigurationException If no parameter with that name exists.
- * or if conversion to <code>int</code> fails.
- */
- public int getAttributeAsInt(String paramName)
- throws ConfigurationException {
-
- try {
- return this.configuration.getAttributeAsInteger(paramName);
- } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
- throw new ConfigurationException(ce.getMessage(), this);
- }
- }
-
- /**
- * Returns the value of the attribute specified by its name as a
- * <code>long</code>.
- *
- *
- * @param name
- *
- * @return long value of attribute
- *
- * @throws ConfigurationException If no parameter with that name exists.
- * or if conversion to <code>long</code> fails.
- */
- public long getAttributeAsLong(String name)
- throws ConfigurationException {
-
- try {
- return this.configuration.getAttributeAsLong(name);
- } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
- throw new ConfigurationException(ce.getMessage(), this);
- }
- }
-
- /**
- * Return the <code>float</code> value of the specified parameter contained
- * in this node.
- *
- * @param paramName The name of the parameter you ask the value of.
- *
- * @return float value of attribute
- *
- * @throws ConfigurationException If no parameter with that name exists.
- * or if conversion to <code>float</code> fails.
- */
- public float getAttributeAsFloat(String paramName)
- throws ConfigurationException {
-
- try {
- return this.configuration.getAttributeAsFloat(paramName);
- } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
- throw new ConfigurationException(ce.getMessage(), this);
- }
- }
-
- /**
- * Return the <code>boolean</code> value of the specified parameter contained
- * in this node.<br>
- *
- * @param paramName The name of the parameter you ask the value of.
- *
- * @return boolean value of attribute
- *
- * @throws ConfigurationException If no parameter with that name exists.
- * or if conversion to <code>boolean</code> fails.
- */
- public boolean getAttributeAsBoolean(String paramName)
- throws ConfigurationException {
-
- try {
- return this.configuration.getAttributeAsBoolean(paramName);
- } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
- throw new ConfigurationException(ce.getMessage(), this);
- }
- }
-
- /**
- * Return the <code>String</code> value of the node.
- *
- * @return the value of the node.
- */
- public String getValue() {
-
- try {
- return this.configuration.getValue();
- } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
- return "";
- }
- }
-
- /**
- * Return the <code>int</code> value of the node.
- *
- * @return the value of the node.
- *
- * @throws ConfigurationException If conversion to <code>int</code> fails.
- */
- public int getValueAsInt() throws ConfigurationException {
-
- try {
- return this.configuration.getValueAsInteger();
- } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
- throw new ConfigurationException(ce.getMessage(), this);
- }
- }
-
- /**
- * Return the <code>float</code> value of the node.
- *
- * @return the value of the node.
- *
- * @throws ConfigurationException If conversion to <code>float</code> fails.
- */
- public float getValueAsFloat() throws ConfigurationException {
-
- try {
- return this.configuration.getValueAsFloat();
- } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
- throw new ConfigurationException(ce.getMessage(), this);
- }
- }
-
- /**
- * Return the <code>boolean</code> value of the node.
- *
- * @return the value of the node.
- *
- * @throws ConfigurationException If conversion to <code>boolean</code> fails.
- */
- public boolean getValueAsBoolean() throws ConfigurationException {
-
- try {
- return this.configuration.getValueAsBoolean();
- } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
- throw new ConfigurationException(ce.getMessage(), this);
- }
- }
-
- /**
- * Return the <code>long</code> value of the node.<br>
- *
- * @return the value of the node.
- *
- * @throws ConfigurationException If conversion to <code>long</code> fails.
- */
- public long getValueAsLong() throws ConfigurationException {
-
- try {
- return this.configuration.getValueAsLong();
- } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
- throw new ConfigurationException(ce.getMessage(), this);
- }
- }
-
- /**
- * Returns the value of the configuration element as a <code>String</code>.
- * If the configuration value is not set, the default value will be
- * used.
- *
- * @param defaultValue The default value desired.
- *
- * @return String value of the <code>Configuration</code>, or default
- * if none specified.
- */
- public String getValue(String defaultValue) {
-
- return this.configuration.getValue(defaultValue);
- }
-
- /**
- * Returns the value of the configuration element as an <code>int</code>.
- * If the configuration value is not set, the default value will be
- * used.
- *
- * @param defaultValue The default value desired.
- *
- * @return int value of the <code>Configuration</code>, or default
- * if none specified.
- */
- public int getValueAsInt(int defaultValue) {
-
- return this.configuration.getValueAsInteger(defaultValue);
- }
-
- /**
- * Returns the value of the configuration element as a <code>long</code>.
- * If the configuration value is not set, the default value will be
- * used.
- *
- * @param defaultValue The default value desired.
- *
- * @return long value of the <code>Configuration</code>, or default
- * if none specified.
- */
- public long getValueAsLong(long defaultValue) {
-
- return this.configuration.getValueAsLong(defaultValue);
- }
-
- /**
- * Returns the value of the configuration element as a <code>float</code>.
- * If the configuration value is not set, the default value will be
- * used.
- *
- * @param defaultValue The default value desired.
- *
- * @return float value of the <code>Configuration</code>, or default
- * if none specified.
- */
- public float getValueAsFloat(float defaultValue) {
-
- return this.configuration.getValueAsFloat(defaultValue);
- }
-
- /**
- * Returns the value of the configuration element as a <code>boolean</code>.
- * If the configuration value is not set, the default value will be
- * used.
- *
- * @param defaultValue The default value desired.
- *
- * @return boolean value of the <code>Configuration</code>, or default
- * if none specified.
- */
- public boolean getValueAsBoolean(boolean defaultValue) {
-
- return this.configuration.getValueAsBoolean(defaultValue);
- }
-
- /**
- * Returns the value of the attribute specified by its name as a
- * <code>String</code>, or the default value if no attribute by
- * that name exists or is empty.
- *
- * @param name The name of the attribute you ask the value of.
- * @param defaultValue The default value desired.
- *
- * @return String value of attribute. It will return the default
- * value if the named attribute does not exist, or if
- * the value is not set.
- */
- public String getAttribute(String name, String defaultValue) {
-
- return this.configuration.getAttribute(name, defaultValue);
- }
-
- /**
- * Returns the value of the attribute specified by its name as a
- * <code>int</code>, or the default value if no attribute by
- * that name exists or is empty.
- *
- * @param name The name of the attribute you ask the value of.
- * @param defaultValue The default value desired.
- *
- * @return int value of attribute. It will return the default
- * value if the named attribute does not exist, or if
- * the value is not set.
- */
- public int getAttributeAsInt(String name, int defaultValue) {
-
- return this.configuration.getAttributeAsInteger(name, defaultValue);
- }
-
- /**
- * Returns the value of the attribute specified by its name as a
- * <code>long</code>, or the default value if no attribute by
- * that name exists or is empty.
- *
- * @param name The name of the attribute you ask the value of.
- * @param defaultValue The default value desired.
- *
- * @return long value of attribute. It will return the default
- * value if the named attribute does not exist, or if
- * the value is not set.
- */
- public long getAttributeAsLong(String name, long defaultValue) {
-
- return this.configuration.getAttributeAsLong(name, defaultValue);
- }
-
- /**
- * Returns the value of the attribute specified by its name as a
- * <code>float</code>, or the default value if no attribute by
- * that name exists or is empty.
- *
- * @param name The name of the attribute you ask the value of.
- * @param defaultValue The default value desired.
- *
- * @return float value of attribute. It will return the default
- * value if the named attribute does not exist, or if
- * the value is not set.
- */
- public float getAttributeAsFloat(String name, float defaultValue) {
-
- return this.configuration.getAttributeAsFloat(name, defaultValue);
- }
-
- /**
- * Returns the value of the attribute specified by its name as a
- * <code>boolean</code>, or the default value if no attribute by
- * that name exists or is empty.
- *
- * @param name The name of the attribute you ask the value of.
- * @param defaultValue The default value desired.
- *
- * @return boolean value of attribute. It will return the default
- * value if the named attribute does not exist, or if
- * the value is not set.
- */
- public boolean getAttributeAsBoolean(String name, boolean defaultValue) {
-
- return this.configuration.getAttributeAsBoolean(name, defaultValue);
- }
-
- /**
- * Return a <code>String</code> indicating the position of this
- * configuration element in a source file or URI.
- *
- * @return String if a source file or URI is specified. Otherwise
- * it returns <code>null</code>
- */
- public String getLocation() {
-
- return this.configuration.getLocation();
- }
-}
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
+ used to endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ apache@apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation and was originally created by
+ Stefano Mazzocchi <st...@apache.org>. For more information on the Apache
+ Software Foundation, please see <http://www.apache.org/>.
+
+*/
+
+package org.apache.cocoon.components.repository.impl;
+
+import org.apache.slide.util.conf.Configuration;
+import org.apache.slide.util.conf.ConfigurationException;
+
+import java.util.*;
+
+/**
+ * The class represent an adapter for the configuration class from jakarta slide
+ *
+ * @author <a href="mailto:stephan@vern.chem.tu-berlin.de">Stephan Michels</a>
+ * @version CVS $Id$
+ */
+public class SlideConfigurationAdapter implements Configuration {
+
+ private org.apache.avalon.framework.configuration.Configuration configuration;
+
+ /**
+ * Create a new adapter to map a Avalon configuration
+ * to a Slide configuration
+ *
+ * @param configuration Avalon configuration
+ */
+ public SlideConfigurationAdapter(org.apache.avalon.framework.configuration.Configuration configuration) {
+ this.configuration = configuration;
+ }
+
+ /**
+ * Return the name of the node.
+ *
+ * @return name of the <code>Configuration</code> node.
+ */
+ public String getName() {
+ return this.configuration.getName();
+ }
+
+ /**
+ * Return a new <code>Configuration</code> instance encapsulating the
+ * specified child node.
+ *
+ * @param child The name of the child node.
+ *
+ * @return Configuration
+ *
+ * @throws ConfigurationException If no child with that name exists.
+ */
+ public Configuration getConfiguration(String child)
+ throws ConfigurationException {
+ return new SlideConfigurationAdapter(this.configuration.getChild(child));
+ }
+
+ /**
+ * Return an <code>Enumeration</code> of <code>Configuration<code>
+ * elements containing all node children with the specified name.
+ *
+ * @param name The name of the children to get.
+ *
+ * @return Enumeration. The <code>Enumeration</code> will be
+ * empty if there are no nodes by the specified name.
+ */
+ public Enumeration getConfigurations(String name) {
+
+ Vector configurations = new Vector();
+ org.apache.avalon.framework.configuration.Configuration[] childs = this.configuration.getChildren(name);
+
+ for (int i = 0; i<childs.length; i++) {
+ configurations.addElement(new SlideConfigurationAdapter(childs[i]));
+ }
+ return configurations.elements();
+ }
+
+ /**
+ * Return the value of specified attribute.
+ *
+ * @param paramName The name of the parameter you ask the value of.
+ *
+ * @return String value of attribute.
+ *
+ * @throws ConfigurationException If no attribute with that name exists.
+ */
+ public String getAttribute(String paramName)
+ throws ConfigurationException {
+
+ try {
+ return this.configuration.getAttribute(paramName);
+ } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
+ throw new ConfigurationException(ce.getMessage(), this);
+ }
+ }
+
+ /**
+ * Return the <code>int</code> value of the specified attribute contained
+ * in this node.
+ *
+ * @param paramName The name of the parameter you ask the value of.
+ *
+ * @return int value of attribute
+ *
+ * @throws ConfigurationException If no parameter with that name exists.
+ * or if conversion to <code>int</code> fails.
+ */
+ public int getAttributeAsInt(String paramName)
+ throws ConfigurationException {
+
+ try {
+ return this.configuration.getAttributeAsInteger(paramName);
+ } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
+ throw new ConfigurationException(ce.getMessage(), this);
+ }
+ }
+
+ /**
+ * Returns the value of the attribute specified by its name as a
+ * <code>long</code>.
+ *
+ *
+ * @param name
+ *
+ * @return long value of attribute
+ *
+ * @throws ConfigurationException If no parameter with that name exists.
+ * or if conversion to <code>long</code> fails.
+ */
+ public long getAttributeAsLong(String name)
+ throws ConfigurationException {
+
+ try {
+ return this.configuration.getAttributeAsLong(name);
+ } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
+ throw new ConfigurationException(ce.getMessage(), this);
+ }
+ }
+
+ /**
+ * Return the <code>float</code> value of the specified parameter contained
+ * in this node.
+ *
+ * @param paramName The name of the parameter you ask the value of.
+ *
+ * @return float value of attribute
+ *
+ * @throws ConfigurationException If no parameter with that name exists.
+ * or if conversion to <code>float</code> fails.
+ */
+ public float getAttributeAsFloat(String paramName)
+ throws ConfigurationException {
+
+ try {
+ return this.configuration.getAttributeAsFloat(paramName);
+ } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
+ throw new ConfigurationException(ce.getMessage(), this);
+ }
+ }
+
+ /**
+ * Return the <code>boolean</code> value of the specified parameter contained
+ * in this node.<br>
+ *
+ * @param paramName The name of the parameter you ask the value of.
+ *
+ * @return boolean value of attribute
+ *
+ * @throws ConfigurationException If no parameter with that name exists.
+ * or if conversion to <code>boolean</code> fails.
+ */
+ public boolean getAttributeAsBoolean(String paramName)
+ throws ConfigurationException {
+
+ try {
+ return this.configuration.getAttributeAsBoolean(paramName);
+ } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
+ throw new ConfigurationException(ce.getMessage(), this);
+ }
+ }
+
+ /**
+ * Return the <code>String</code> value of the node.
+ *
+ * @return the value of the node.
+ */
+ public String getValue() {
+
+ try {
+ return this.configuration.getValue();
+ } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
+ return "";
+ }
+ }
+
+ /**
+ * Return the <code>int</code> value of the node.
+ *
+ * @return the value of the node.
+ *
+ * @throws ConfigurationException If conversion to <code>int</code> fails.
+ */
+ public int getValueAsInt() throws ConfigurationException {
+
+ try {
+ return this.configuration.getValueAsInteger();
+ } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
+ throw new ConfigurationException(ce.getMessage(), this);
+ }
+ }
+
+ /**
+ * Return the <code>float</code> value of the node.
+ *
+ * @return the value of the node.
+ *
+ * @throws ConfigurationException If conversion to <code>float</code> fails.
+ */
+ public float getValueAsFloat() throws ConfigurationException {
+
+ try {
+ return this.configuration.getValueAsFloat();
+ } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
+ throw new ConfigurationException(ce.getMessage(), this);
+ }
+ }
+
+ /**
+ * Return the <code>boolean</code> value of the node.
+ *
+ * @return the value of the node.
+ *
+ * @throws ConfigurationException If conversion to <code>boolean</code> fails.
+ */
+ public boolean getValueAsBoolean() throws ConfigurationException {
+
+ try {
+ return this.configuration.getValueAsBoolean();
+ } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
+ throw new ConfigurationException(ce.getMessage(), this);
+ }
+ }
+
+ /**
+ * Return the <code>long</code> value of the node.<br>
+ *
+ * @return the value of the node.
+ *
+ * @throws ConfigurationException If conversion to <code>long</code> fails.
+ */
+ public long getValueAsLong() throws ConfigurationException {
+
+ try {
+ return this.configuration.getValueAsLong();
+ } catch (org.apache.avalon.framework.configuration.ConfigurationException ce) {
+ throw new ConfigurationException(ce.getMessage(), this);
+ }
+ }
+
+ /**
+ * Returns the value of the configuration element as a <code>String</code>.
+ * If the configuration value is not set, the default value will be
+ * used.
+ *
+ * @param defaultValue The default value desired.
+ *
+ * @return String value of the <code>Configuration</code>, or default
+ * if none specified.
+ */
+ public String getValue(String defaultValue) {
+
+ return this.configuration.getValue(defaultValue);
+ }
+
+ /**
+ * Returns the value of the configuration element as an <code>int</code>.
+ * If the configuration value is not set, the default value will be
+ * used.
+ *
+ * @param defaultValue The default value desired.
+ *
+ * @return int value of the <code>Configuration</code>, or default
+ * if none specified.
+ */
+ public int getValueAsInt(int defaultValue) {
+
+ return this.configuration.getValueAsInteger(defaultValue);
+ }
+
+ /**
+ * Returns the value of the configuration element as a <code>long</code>.
+ * If the configuration value is not set, the default value will be
+ * used.
+ *
+ * @param defaultValue The default value desired.
+ *
+ * @return long value of the <code>Configuration</code>, or default
+ * if none specified.
+ */
+ public long getValueAsLong(long defaultValue) {
+
+ return this.configuration.getValueAsLong(defaultValue);
+ }
+
+ /**
+ * Returns the value of the configuration element as a <code>float</code>.
+ * If the configuration value is not set, the default value will be
+ * used.
+ *
+ * @param defaultValue The default value desired.
+ *
+ * @return float value of the <code>Configuration</code>, or default
+ * if none specified.
+ */
+ public float getValueAsFloat(float defaultValue) {
+
+ return this.configuration.getValueAsFloat(defaultValue);
+ }
+
+ /**
+ * Returns the value of the configuration element as a <code>boolean</code>.
+ * If the configuration value is not set, the default value will be
+ * used.
+ *
+ * @param defaultValue The default value desired.
+ *
+ * @return boolean value of the <code>Configuration</code>, or default
+ * if none specified.
+ */
+ public boolean getValueAsBoolean(boolean defaultValue) {
+
+ return this.configuration.getValueAsBoolean(defaultValue);
+ }
+
+ /**
+ * Returns the value of the attribute specified by its name as a
+ * <code>String</code>, or the default value if no attribute by
+ * that name exists or is empty.
+ *
+ * @param name The name of the attribute you ask the value of.
+ * @param defaultValue The default value desired.
+ *
+ * @return String value of attribute. It will return the default
+ * value if the named attribute does not exist, or if
+ * the value is not set.
+ */
+ public String getAttribute(String name, String defaultValue) {
+
+ return this.configuration.getAttribute(name, defaultValue);
+ }
+
+ /**
+ * Returns the value of the attribute specified by its name as a
+ * <code>int</code>, or the default value if no attribute by
+ * that name exists or is empty.
+ *
+ * @param name The name of the attribute you ask the value of.
+ * @param defaultValue The default value desired.
+ *
+ * @return int value of attribute. It will return the default
+ * value if the named attribute does not exist, or if
+ * the value is not set.
+ */
+ public int getAttributeAsInt(String name, int defaultValue) {
+
+ return this.configuration.getAttributeAsInteger(name, defaultValue);
+ }
+
+ /**
+ * Returns the value of the attribute specified by its name as a
+ * <code>long</code>, or the default value if no attribute by
+ * that name exists or is empty.
+ *
+ * @param name The name of the attribute you ask the value of.
+ * @param defaultValue The default value desired.
+ *
+ * @return long value of attribute. It will return the default
+ * value if the named attribute does not exist, or if
+ * the value is not set.
+ */
+ public long getAttributeAsLong(String name, long defaultValue) {
+
+ return this.configuration.getAttributeAsLong(name, defaultValue);
+ }
+
+ /**
+ * Returns the value of the attribute specified by its name as a
+ * <code>float</code>, or the default value if no attribute by
+ * that name exists or is empty.
+ *
+ * @param name The name of the attribute you ask the value of.
+ * @param defaultValue The default value desired.
+ *
+ * @return float value of attribute. It will return the default
+ * value if the named attribute does not exist, or if
+ * the value is not set.
+ */
+ public float getAttributeAsFloat(String name, float defaultValue) {
+
+ return this.configuration.getAttributeAsFloat(name, defaultValue);
+ }
+
+ /**
+ * Returns the value of the attribute specified by its name as a
+ * <code>boolean</code>, or the default value if no attribute by
+ * that name exists or is empty.
+ *
+ * @param name The name of the attribute you ask the value of.
+ * @param defaultValue The default value desired.
+ *
+ * @return boolean value of attribute. It will return the default
+ * value if the named attribute does not exist, or if
+ * the value is not set.
+ */
+ public boolean getAttributeAsBoolean(String name, boolean defaultValue) {
+
+ return this.configuration.getAttributeAsBoolean(name, defaultValue);
+ }
+
+ /**
+ * Return a <code>String</code> indicating the position of this
+ * configuration element in a source file or URI.
+ *
+ * @return String if a source file or URI is specified. Otherwise
+ * it returns <code>null</code>
+ */
+ public String getLocation() {
+
+ return this.configuration.getLocation();
+ }
+}
1.4 +6 -9 cocoon-2.1/src/blocks/slide/samples/sitemap.xmap
Index: sitemap.xmap
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/slide/samples/sitemap.xmap,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- sitemap.xmap 6 May 2003 11:38:10 -0000 1.3
+++ sitemap.xmap 6 May 2003 14:12:58 -0000 1.4
@@ -1,4 +1,5 @@
<?xml version="1.0"?>
+
<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
<!-- =========================== Components =================================== -->
@@ -43,7 +44,6 @@
<!-- =========================== Views =================================== -->
<map:views>
-
<map:view name="content" from-label="content">
<map:serialize type="xml"/>
</map:view>
@@ -56,7 +56,6 @@
<map:view name="xml" from-label="content">
<map:serialize type="xml"/>
</map:view>
-
</map:views>
<!-- =========================== Resources =================================== -->
@@ -88,8 +87,8 @@
</authentication-manager>
</map:component-configurations>
- <map:pipeline internal-only="true">
+ <map:pipeline internal-only="true">
<map:match pattern="principallist">
<map:generate type="principallist">
<map:parameter name="principalprovider" value="slide"/>
@@ -121,14 +120,13 @@
<map:serialize type="xml"/>
</map:match>
-
</map:pipeline>
- <map:pipeline>
+ <map:pipeline>
<map:match pattern="">
- <map:redirect-to uri="content/"/>
- </map:match>
+ <map:redirect-to uri="content/"/>
+ </map:match>
<map:match pattern="login.html">
<map:generate src="login.xhtml"/>
@@ -241,7 +239,6 @@
</map:act>
</map:match>
- </map:pipeline>
-
+ </map:pipeline>
</map:pipelines>
</map:sitemap>
1.2 +8 -8 cocoon-2.1/src/blocks/taglib/conf/jxpath.xconf
Index: jxpath.xconf
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/taglib/conf/jxpath.xconf,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- jxpath.xconf 10 Mar 2003 18:13:42 -0000 1.1
+++ jxpath.xconf 6 May 2003 14:12:59 -0000 1.2
@@ -1,8 +1,8 @@
-<?xml version="1.0"?>
-
-<xconf xpath="/cocoon" unless="component[@role='org.apache.cocoon.jxpath.JXPathCocoonContexts']">
-
- <component role="org.apache.cocoon.jxpath.JXPathCocoonContexts"
- class="org.apache.cocoon.jxpath.JXPathCocoonContexts"
- logger="core.jxpath"/>
-</xconf>
+<?xml version="1.0"?>
+
+<xconf xpath="/cocoon" unless="component[@role='org.apache.cocoon.jxpath.JXPathCocoonContexts']">
+
+ <component role="org.apache.cocoon.jxpath.JXPathCocoonContexts"
+ class="org.apache.cocoon.jxpath.JXPathCocoonContexts"
+ logger="core.jxpath"/>
+</xconf>
1.2 +31 -31 cocoon-2.1/src/blocks/taglib/conf/tag.xconf
Index: tag.xconf
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/taglib/conf/tag.xconf,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- tag.xconf 10 Mar 2003 18:13:42 -0000 1.1
+++ tag.xconf 6 May 2003 14:12:59 -0000 1.2
@@ -1,31 +1,31 @@
-<?xml version="1.0"?>
-
-<xconf xpath="/cocoon" unless="component[@role='org.apache.cocoon.taglib.TagSelector']">
-
- <component role="org.apache.cocoon.taglib.TagSelector" class="org.apache.cocoon.components.ExtendedComponentSelector">
- <taglib name="urn:apache:taglib:core" class="org.apache.cocoon.components.ExtendedComponentSelector" logger="sitemap.taglib.core">
- <tag name="source" class="org.apache.cocoon.taglib.core.SourceTag" logger="sitemap.taglib.core.source" />
- </taglib>
- <taglib name="urn:apache:taglib:datetime" class="org.apache.cocoon.components.ExtendedComponentSelector" logger="sitemap.taglib.datetime">
- <tag name="months" class="org.apache.cocoon.taglib.datetime.MonthsTag" logger="sitemap.taglib.datetime.months" />
- </taglib>
- <taglib name="urn:apache:taglib:i18n" class="org.apache.cocoon.components.ExtendedComponentSelector" logger="sitemap.taglib.i18n">
- <tag name="locale" class="org.apache.cocoon.taglib.i18n.LocaleTag" logger="sitemap.taglib.i18n.Locale" />
- </taglib>
- <taglib name="urn:apache:taglib:jxpath:core" class="org.apache.cocoon.components.ExtendedComponentSelector" logger="sitemap.taglib.jxpath">
- <tag name="out" class="org.apache.cocoon.taglib.jxpath.core.OutTag" logger="sitemap.taglib.jxpath.core.out" />
- <tag name="forEach" class="org.apache.cocoon.taglib.jxpath.core.ForEachTag" logger="sitemap.taglib.jxpath.core.forEach" />
- </taglib>
- <taglib name="urn:apache:taglib:string" class="org.apache.cocoon.components.ExtendedComponentSelector" logger="sitemap.taglib.string">
- <tag name="lower" class="org.apache.cocoon.taglib.string.LowerCaseTag" logger="sitemap.taglib.string.lower" />
- <tag name="textRecording" class="org.apache.cocoon.taglib.string.TextRecordingTag" logger="sitemap.taglib.string.textRecording" />
- <tag name="trim" class="org.apache.cocoon.taglib.string.TrimTag" logger="sitemap.taglib.string.trim" />
- <tag name="upper" class="org.apache.cocoon.taglib.string.UpperCaseTag" logger="sitemap.taglib.string.upper" />
- </taglib>
- <taglib name="urn:apache:taglib:test" class="org.apache.cocoon.components.ExtendedComponentSelector" logger="sitemap.taglib.test">
- <tag name="hello" class="org.apache.cocoon.taglib.test.HelloWorldTag" logger="sitemap.taglib.test.hello" />
- <tag name="iteration" class="org.apache.cocoon.taglib.test.IterationTestTag" logger="sitemap.taglib.test.iteration" />
- </taglib>
- </component>
-
-</xconf>
+<?xml version="1.0"?>
+
+<xconf xpath="/cocoon" unless="component[@role='org.apache.cocoon.taglib.TagSelector']">
+
+ <component role="org.apache.cocoon.taglib.TagSelector" class="org.apache.cocoon.components.ExtendedComponentSelector">
+ <taglib name="urn:apache:taglib:core" class="org.apache.cocoon.components.ExtendedComponentSelector" logger="sitemap.taglib.core">
+ <tag name="source" class="org.apache.cocoon.taglib.core.SourceTag" logger="sitemap.taglib.core.source" />
+ </taglib>
+ <taglib name="urn:apache:taglib:datetime" class="org.apache.cocoon.components.ExtendedComponentSelector" logger="sitemap.taglib.datetime">
+ <tag name="months" class="org.apache.cocoon.taglib.datetime.MonthsTag" logger="sitemap.taglib.datetime.months" />
+ </taglib>
+ <taglib name="urn:apache:taglib:i18n" class="org.apache.cocoon.components.ExtendedComponentSelector" logger="sitemap.taglib.i18n">
+ <tag name="locale" class="org.apache.cocoon.taglib.i18n.LocaleTag" logger="sitemap.taglib.i18n.Locale" />
+ </taglib>
+ <taglib name="urn:apache:taglib:jxpath:core" class="org.apache.cocoon.components.ExtendedComponentSelector" logger="sitemap.taglib.jxpath">
+ <tag name="out" class="org.apache.cocoon.taglib.jxpath.core.OutTag" logger="sitemap.taglib.jxpath.core.out" />
+ <tag name="forEach" class="org.apache.cocoon.taglib.jxpath.core.ForEachTag" logger="sitemap.taglib.jxpath.core.forEach" />
+ </taglib>
+ <taglib name="urn:apache:taglib:string" class="org.apache.cocoon.components.ExtendedComponentSelector" logger="sitemap.taglib.string">
+ <tag name="lower" class="org.apache.cocoon.taglib.string.LowerCaseTag" logger="sitemap.taglib.string.lower" />
+ <tag name="textRecording" class="org.apache.cocoon.taglib.string.TextRecordingTag" logger="sitemap.taglib.string.textRecording" />
+ <tag name="trim" class="org.apache.cocoon.taglib.string.TrimTag" logger="sitemap.taglib.string.trim" />
+ <tag name="upper" class="org.apache.cocoon.taglib.string.UpperCaseTag" logger="sitemap.taglib.string.upper" />
+ </taglib>
+ <taglib name="urn:apache:taglib:test" class="org.apache.cocoon.components.ExtendedComponentSelector" logger="sitemap.taglib.test">
+ <tag name="hello" class="org.apache.cocoon.taglib.test.HelloWorldTag" logger="sitemap.taglib.test.hello" />
+ <tag name="iteration" class="org.apache.cocoon.taglib.test.IterationTestTag" logger="sitemap.taglib.test.iteration" />
+ </taglib>
+ </component>
+
+</xconf>
1.2 +29 -29 cocoon-2.1/src/blocks/web3/conf/web3.xconf
Index: web3.xconf
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/conf/web3.xconf,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- web3.xconf 9 Mar 2003 00:06:34 -0000 1.1
+++ web3.xconf 6 May 2003 14:12:59 -0000 1.2
@@ -1,29 +1,29 @@
-<?xml version="1.0"?>
-
-<xconf xpath="/cocoon" unless="web3">
-
- <web3 logger="core.web3">
- <!-- optional
- <class>put your DSImpl here</class>
- -->
- <backend name="indy">
- <pool size="10" trace="false" level="0">
- <client>100</client>
- <user>user</user>
- <password>secret</password>
- <language>DE</language>
- <route>indy</route>
- <system>00</system>
- <gateway>sapgw00</gateway>
- <program-id>USR-GR02</program-id>
- </pool>
- </backend>
- </web3>
-
- <web3-streamer logger="core.web3">
- <default name="default" logger="core.web3.default-streamer"/>
- </web3-streamer>
-
- <web-client logger="core.web3-client"/>
-
-</xconf>
+<?xml version="1.0"?>
+
+<xconf xpath="/cocoon" unless="web3">
+
+ <web3 logger="core.web3">
+ <!-- optional
+ <class>put your DSImpl here</class>
+ -->
+ <backend name="indy">
+ <pool size="10" trace="false" level="0">
+ <client>100</client>
+ <user>user</user>
+ <password>secret</password>
+ <language>DE</language>
+ <route>indy</route>
+ <system>00</system>
+ <gateway>sapgw00</gateway>
+ <program-id>USR-GR02</program-id>
+ </pool>
+ </backend>
+ </web3>
+
+ <web3-streamer logger="core.web3">
+ <default name="default" logger="core.web3.default-streamer"/>
+ </web3-streamer>
+
+ <web-client logger="core.web3-client"/>
+
+</xconf>
1.2 +16 -16 cocoon-2.1/src/blocks/web3/conf/web3.xsamples
Index: web3.xsamples
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/conf/web3.xsamples,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- web3.xsamples 9 Mar 2003 00:06:34 -0000 1.1
+++ web3.xsamples 6 May 2003 14:12:59 -0000 1.2
@@ -1,16 +1,16 @@
-<?xml version="1.0"?>
-
-<xsamples xpath="/samples" unless="group[@name='web3']">
-
- <group name="web3">
- <note>
- For the examples of this block to work, an SAP R/3 system and some
- SAP java classes need to be available and configured according to the docs that
- can be found in the developer section of the Apache Cocoon documentation.
- </note>
- <sample name="Samples" href="web3/samples">
- Continue to web3 block samples.
- </sample>
- </group>
-
-</xsamples>
+<?xml version="1.0"?>
+
+<xsamples xpath="/samples" unless="group[@name='web3']">
+
+ <group name="web3">
+ <note>
+ For the examples of this block to work, an SAP R/3 system and some
+ SAP java classes need to be available and configured according to the docs that
+ can be found in the developer section of the Apache Cocoon documentation.
+ </note>
+ <sample name="Samples" href="web3/samples">
+ Continue to web3 block samples.
+ </sample>
+ </group>
+
+</xsamples>
1.3 +85 -85 cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/Web3.java
Index: Web3.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/Web3.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Web3.java 16 Mar 2003 17:49:09 -0000 1.2
+++ Web3.java 6 May 2003 14:12:59 -0000 1.3
@@ -1,85 +1,85 @@
-/*
-
- ============================================================================
- The Apache Software License, Version 1.1
- ============================================================================
-
- Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without modifica-
- tion, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. The end-user documentation included with the redistribution, if any, must
- include the following acknowledgment: "This product includes software
- developed by the Apache Software Foundation (http://www.apache.org/)."
- Alternately, this acknowledgment may appear in the software itself, if
- and wherever such third-party acknowledgments normally appear.
-
- 4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
- used to endorse or promote products derived from this software without
- prior written permission. For written permission, please contact
- apache@apache.org.
-
- 5. Products derived from this software may not be called "Apache", nor may
- "Apache" appear in their name, without prior written permission of the
- Apache Software Foundation.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- This software consists of voluntary contributions made by many individuals
- on behalf of the Apache Software Foundation and was originally created by
- Stefano Mazzocchi <st...@apache.org>. For more information on the Apache
- Software Foundation, please see <http://www.apache.org/>.
-
-*/
-package org.apache.cocoon.components.web3;
-
-/**
- * Constants in Web3.
- *
- * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
- * @version CVS $Id$
- */
-public interface Web3 {
-
- String URI = "http://efp.cc/Web3-Rfc/2.0";
-
- String INCLUDE_ELEM = "include";
- String INCLUDE_NAME_ATTR = "name";
- String INCLUDE_CLASS_ATTR = "streamer";
-
- String IMPORT_ELEM = "import";
- String EXPORT_ELEM = "export";
- String TABLES_ELEM = "tables";
-
- String FIELD_ELEM = "field";
- String FIELD_NAME_ATTR = "name";
-
- String ROW_ELEM = "row";
- String ROW_ID_ATTR = "id";
-
- String STRUCTURE_ELEM = "structure";
- String STRUCTURE_NAME_ATTR = "name";
-
- String TABLE_ELEM = "table";
- String TABLE_NAME_ATTR = "name";
-
- String ABAP_EXCEPTION_ELEM = "abap-exception";
- String PROCESSING_X_ELEM = "processing-exception";
-}
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
+ used to endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ apache@apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation and was originally created by
+ Stefano Mazzocchi <st...@apache.org>. For more information on the Apache
+ Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.cocoon.components.web3;
+
+/**
+ * Constants in Web3.
+ *
+ * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
+ * @version CVS $Id$
+ */
+public interface Web3 {
+
+ String URI = "http://efp.cc/Web3-Rfc/2.0";
+
+ String INCLUDE_ELEM = "include";
+ String INCLUDE_NAME_ATTR = "name";
+ String INCLUDE_CLASS_ATTR = "streamer";
+
+ String IMPORT_ELEM = "import";
+ String EXPORT_ELEM = "export";
+ String TABLES_ELEM = "tables";
+
+ String FIELD_ELEM = "field";
+ String FIELD_NAME_ATTR = "name";
+
+ String ROW_ELEM = "row";
+ String ROW_ID_ATTR = "id";
+
+ String STRUCTURE_ELEM = "structure";
+ String STRUCTURE_NAME_ATTR = "name";
+
+ String TABLE_ELEM = "table";
+ String TABLE_NAME_ATTR = "name";
+
+ String ABAP_EXCEPTION_ELEM = "abap-exception";
+ String PROCESSING_X_ELEM = "processing-exception";
+}
1.3 +88 -88 cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/Web3Client.java
Index: Web3Client.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/Web3Client.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Web3Client.java 16 Mar 2003 17:49:09 -0000 1.2
+++ Web3Client.java 6 May 2003 14:12:59 -0000 1.3
@@ -1,88 +1,88 @@
-/*
-
- ============================================================================
- The Apache Software License, Version 1.1
- ============================================================================
-
- Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without modifica-
- tion, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. The end-user documentation included with the redistribution, if any, must
- include the following acknowledgment: "This product includes software
- developed by the Apache Software Foundation (http://www.apache.org/)."
- Alternately, this acknowledgment may appear in the software itself, if
- and wherever such third-party acknowledgments normally appear.
-
- 4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
- used to endorse or promote products derived from this software without
- prior written permission. For written permission, please contact
- apache@apache.org.
-
- 5. Products derived from this software may not be called "Apache", nor may
- "Apache" appear in their name, without prior written permission of the
- Apache Software Foundation.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- This software consists of voluntary contributions made by many individuals
- on behalf of the Apache Software Foundation and was originally created by
- Stefano Mazzocchi <st...@apache.org>. For more information on the Apache
- Software Foundation, please see <http://www.apache.org/>.
-
-*/
-package org.apache.cocoon.components.web3;
-
-import org.apache.avalon.framework.component.Component;
-
-import com.sap.mw.jco.IRepository;
-import com.sap.mw.jco.JCO.Client;
-import com.sap.mw.jco.JCO.Function;
-
-/**
- * The standard interface for R3Clients in Web3.
- *
- * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
- * @version CVS $Id$
- */
-public interface Web3Client extends Component {
-
- String ROLE = "org.apache.cocoon.components.web3.Web3Client";
-
- /**
- * Releases the Connection to the backend
- */
- void releaseClient ();
-
- /**
- * Initialize the client
- */
- void initClient (Client client);
-
- /**
- * Get a Client Repository
- */
- IRepository getRepository ();
-
- /**
- * Execute an Abab function
- */
- void execute(Function function);
-}
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
+ used to endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ apache@apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation and was originally created by
+ Stefano Mazzocchi <st...@apache.org>. For more information on the Apache
+ Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.cocoon.components.web3;
+
+import org.apache.avalon.framework.component.Component;
+
+import com.sap.mw.jco.IRepository;
+import com.sap.mw.jco.JCO.Client;
+import com.sap.mw.jco.JCO.Function;
+
+/**
+ * The standard interface for R3Clients in Web3.
+ *
+ * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
+ * @version CVS $Id$
+ */
+public interface Web3Client extends Component {
+
+ String ROLE = "org.apache.cocoon.components.web3.Web3Client";
+
+ /**
+ * Releases the Connection to the backend
+ */
+ void releaseClient ();
+
+ /**
+ * Initialize the client
+ */
+ void initClient (Client client);
+
+ /**
+ * Get a Client Repository
+ */
+ IRepository getRepository ();
+
+ /**
+ * Execute an Abab function
+ */
+ void execute(Function function);
+}
1.3 +78 -78 cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/Web3DataSource.java
Index: Web3DataSource.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/Web3DataSource.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Web3DataSource.java 16 Mar 2003 17:49:09 -0000 1.2
+++ Web3DataSource.java 6 May 2003 14:12:59 -0000 1.3
@@ -1,78 +1,78 @@
-/*
-
- ============================================================================
- The Apache Software License, Version 1.1
- ============================================================================
-
- Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without modifica-
- tion, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. The end-user documentation included with the redistribution, if any, must
- include the following acknowledgment: "This product includes software
- developed by the Apache Software Foundation (http://www.apache.org/)."
- Alternately, this acknowledgment may appear in the software itself, if
- and wherever such third-party acknowledgments normally appear.
-
- 4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
- used to endorse or promote products derived from this software without
- prior written permission. For written permission, please contact
- apache@apache.org.
-
- 5. Products derived from this software may not be called "Apache", nor may
- "Apache" appear in their name, without prior written permission of the
- Apache Software Foundation.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- This software consists of voluntary contributions made by many individuals
- on behalf of the Apache Software Foundation and was originally created by
- Stefano Mazzocchi <st...@apache.org>. For more information on the Apache
- Software Foundation, please see <http://www.apache.org/>.
-
-*/
-package org.apache.cocoon.components.web3;
-
-import org.apache.avalon.framework.component.Component;
-import org.apache.avalon.framework.activity.Disposable;
-import org.apache.avalon.framework.activity.Initializable;
-import org.apache.avalon.framework.configuration.Configurable;
-import org.apache.avalon.framework.component.Composable;
-
-import java.lang.Exception;
-
-/**
- * The standard interface for R3DataSources in Web3.
- *
- * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
- * @version CVS $Id$
- */
-public interface Web3DataSource extends Component, Configurable,
- Initializable, Disposable, Composable {
-
- String ROLE = "org.apache.cocoon.components.web3.Web3DataSource";
-
- /**
- * Gets the Connection to the backend
- */
- Web3Client getWeb3Client() throws Exception;
-
- void releaseWeb3Client( Web3Client client );
-}
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
+ used to endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ apache@apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation and was originally created by
+ Stefano Mazzocchi <st...@apache.org>. For more information on the Apache
+ Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.cocoon.components.web3;
+
+import org.apache.avalon.framework.component.Component;
+import org.apache.avalon.framework.activity.Disposable;
+import org.apache.avalon.framework.activity.Initializable;
+import org.apache.avalon.framework.configuration.Configurable;
+import org.apache.avalon.framework.component.Composable;
+
+import java.lang.Exception;
+
+/**
+ * The standard interface for R3DataSources in Web3.
+ *
+ * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
+ * @version CVS $Id$
+ */
+public interface Web3DataSource extends Component, Configurable,
+ Initializable, Disposable, Composable {
+
+ String ROLE = "org.apache.cocoon.components.web3.Web3DataSource";
+
+ /**
+ * Gets the Connection to the backend
+ */
+ Web3Client getWeb3Client() throws Exception;
+
+ void releaseWeb3Client( Web3Client client );
+}
1.3 +72 -72 cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/Web3Streamer.java
Index: Web3Streamer.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/Web3Streamer.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Web3Streamer.java 16 Mar 2003 17:49:09 -0000 1.2
+++ Web3Streamer.java 6 May 2003 14:12:59 -0000 1.3
@@ -1,72 +1,72 @@
-/*
-
- ============================================================================
- The Apache Software License, Version 1.1
- ============================================================================
-
- Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without modifica-
- tion, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. The end-user documentation included with the redistribution, if any, must
- include the following acknowledgment: "This product includes software
- developed by the Apache Software Foundation (http://www.apache.org/)."
- Alternately, this acknowledgment may appear in the software itself, if
- and wherever such third-party acknowledgments normally appear.
-
- 4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
- used to endorse or promote products derived from this software without
- prior written permission. For written permission, please contact
- apache@apache.org.
-
- 5. Products derived from this software may not be called "Apache", nor may
- "Apache" appear in their name, without prior written permission of the
- Apache Software Foundation.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- This software consists of voluntary contributions made by many individuals
- on behalf of the Apache Software Foundation and was originally created by
- Stefano Mazzocchi <st...@apache.org>. For more information on the Apache
- Software Foundation, please see <http://www.apache.org/>.
-
-*/
-package org.apache.cocoon.components.web3;
-
-import com.sap.mw.jco.JCO;
-
-import org.xml.sax.SAXException;
-import org.xml.sax.ContentHandler;
-
-import org.apache.avalon.framework.component.Component;
-
-/**
- * The standard interface for Web3Producer.
- *
- * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
- * @version CVS $Id$
- */
-public interface Web3Streamer extends Component {
-
- String ROLE = "org.apache.cocoon.components.web3.Web3Streamer";
-
- void stream(JCO.Function function,
- ContentHandler contentHandler) throws SAXException;
-}
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
+ used to endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ apache@apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation and was originally created by
+ Stefano Mazzocchi <st...@apache.org>. For more information on the Apache
+ Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.cocoon.components.web3;
+
+import com.sap.mw.jco.JCO;
+
+import org.xml.sax.SAXException;
+import org.xml.sax.ContentHandler;
+
+import org.apache.avalon.framework.component.Component;
+
+/**
+ * The standard interface for Web3Producer.
+ *
+ * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
+ * @version CVS $Id$
+ */
+public interface Web3Streamer extends Component {
+
+ String ROLE = "org.apache.cocoon.components.web3.Web3Streamer";
+
+ void stream(JCO.Function function,
+ ContentHandler contentHandler) throws SAXException;
+}
1.5 +196 -196 cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/impl/DefaultWeb3StreamerImpl.java
Index: DefaultWeb3StreamerImpl.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/impl/DefaultWeb3StreamerImpl.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- DefaultWeb3StreamerImpl.java 31 Mar 2003 11:14:11 -0000 1.4
+++ DefaultWeb3StreamerImpl.java 6 May 2003 14:13:00 -0000 1.5
@@ -1,196 +1,196 @@
-/*
-
- ============================================================================
- The Apache Software License, Version 1.1
- ============================================================================
-
- Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without modifica-
- tion, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. The end-user documentation included with the redistribution, if any, must
- include the following acknowledgment: "This product includes software
- developed by the Apache Software Foundation (http://www.apache.org/)."
- Alternately, this acknowledgment may appear in the software itself, if
- and wherever such third-party acknowledgments normally appear.
-
- 4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
- used to endorse or promote products derived from this software without
- prior written permission. For written permission, please contact
- apache@apache.org.
-
- 5. Products derived from this software may not be called "Apache", nor may
- "Apache" appear in their name, without prior written permission of the
- Apache Software Foundation.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- This software consists of voluntary contributions made by many individuals
- on behalf of the Apache Software Foundation and was originally created by
- Stefano Mazzocchi <st...@apache.org>. For more information on the Apache
- Software Foundation, please see <http://www.apache.org/>.
-
-*/
-
-package org.apache.cocoon.components.web3.impl;
-
-import com.sap.mw.jco.JCO;
-
-import org.apache.cocoon.components.web3.Web3Streamer;
-import org.apache.cocoon.components.web3.Web3;
-
-import org.apache.avalon.excalibur.pool.Poolable;
-
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.AttributesImpl;
-import org.xml.sax.ContentHandler;
-
-/**
- * TBD
- *
- * @author <a href="mailto:mge@efp.co.at">Michael Gerzabek</a>
- * @since 21. Oct. 2002
- * @version CVS $Id$
- */
-public class DefaultWeb3StreamerImpl implements Web3Streamer, Poolable {
-
- public void stream(JCO.Function function,
- ContentHandler contentHandler) throws SAXException {
-
- AttributesImpl attributes = new AttributesImpl();
- attributes.clear();
- attributes.addAttribute( Web3.URI, Web3.INCLUDE_NAME_ATTR,
- Web3.INCLUDE_NAME_ATTR, "CDATA", function.getName().toUpperCase() );
- contentHandler.startElement( Web3.URI, Web3.INCLUDE_ELEM,
- Web3.INCLUDE_ELEM, attributes );
- attributes.clear();
- contentHandler.startElement( Web3.URI, Web3.IMPORT_ELEM,
- Web3.IMPORT_ELEM, attributes );
- streamParameterList( function.getImportParameterList(), contentHandler );
- contentHandler.endElement( Web3.URI, Web3.IMPORT_ELEM, Web3.IMPORT_ELEM );
-
- attributes.clear();
- contentHandler.startElement( Web3.URI, Web3.EXPORT_ELEM,
- Web3.EXPORT_ELEM, attributes );
- streamParameterList( function.getExportParameterList(), contentHandler );
- contentHandler.endElement( Web3.URI, Web3.EXPORT_ELEM, Web3.EXPORT_ELEM );
-
- JCO.ParameterList tablesParameterList = function.getTableParameterList();
- attributes.clear();
- contentHandler.startElement( Web3.URI, Web3.TABLES_ELEM,
- Web3.TABLES_ELEM, attributes );
- if (null != tablesParameterList) {
- for (int i = 0; i < tablesParameterList.getFieldCount(); i++) {
- attributes.clear();
- attributes.addAttribute( Web3.URI, Web3.TABLE_NAME_ATTR,
- Web3.TABLE_NAME_ATTR, "CDATA",
- tablesParameterList.getName(i).toUpperCase() );
- contentHandler.startElement( Web3.URI, Web3.TABLE_ELEM,
- Web3.TABLE_ELEM, attributes );
- JCO.Table sapTable = tablesParameterList.getTable(i);
- if (null != sapTable) {
- for (int j = 0; j < sapTable.getNumRows(); j++) {
- sapTable.setRow(j);
- attributes.clear();
- attributes.addAttribute(Web3.URI, Web3.ROW_ID_ATTR,
- Web3.ROW_ID_ATTR, "CDATA", "" + (j + 1));
- contentHandler.startElement(Web3.URI, Web3.ROW_ELEM,
- Web3.ROW_ELEM, attributes);
- for (int k = 0; k < sapTable.getFieldCount(); k++) {
- attributes.clear();
- attributes.addAttribute(Web3.URI,
- Web3.FIELD_NAME_ATTR, Web3.FIELD_NAME_ATTR,
- "CDATA", sapTable.getName(k).toUpperCase());
- contentHandler.startElement(Web3.URI,
- Web3.FIELD_ELEM, Web3.FIELD_ELEM, attributes);
- String theValue = ( sapTable.getString(k) == null)
- ? "" : sapTable.getString(k).trim();
- contentHandler.characters(theValue.toCharArray(), 0,
- theValue.length());
- contentHandler.endElement(Web3.URI, Web3.FIELD_ELEM,
- Web3.FIELD_ELEM);
- }
- contentHandler.endElement(Web3.URI, Web3.ROW_ELEM,
- Web3.ROW_ELEM);
- }
- contentHandler.endElement(Web3.URI, Web3.TABLE_ELEM,
- Web3.TABLE_ELEM);
- }
- }
- }
- contentHandler.endElement(Web3.URI, Web3.TABLES_ELEM, Web3.TABLES_ELEM);
- contentHandler.endElement( Web3.URI, Web3.INCLUDE_ELEM,
- Web3.INCLUDE_ELEM );
- }
-
- protected void streamParameterList(JCO.ParameterList pList,
- ContentHandler contentHandler) throws SAXException {
-
- AttributesImpl attributes = new AttributesImpl();
- attributes.clear();
- if (pList != null) {
- for (int i = 0; i < pList.getFieldCount(); i++) {
- JCO.Field theField = pList.getField(i);
- if (theField.isStructure()) {
- JCO.Structure sapStructure =
- pList.getStructure(pList.getName(i));
- attributes.clear();
- attributes.addAttribute(Web3.URI, Web3.STRUCTURE_NAME_ATTR,
- Web3.STRUCTURE_NAME_ATTR, "CDATA",
- pList.getName(i).toUpperCase());
- contentHandler.startElement(Web3.URI, Web3.STRUCTURE_ELEM,
- Web3.STRUCTURE_ELEM, attributes);
- for (int j = 0; j < sapStructure.getFieldCount(); j++) {
- attributes.clear();
- attributes.addAttribute(Web3.URI, Web3.FIELD_NAME_ATTR,
- Web3.FIELD_NAME_ATTR, "CDATA",
- sapStructure.getName(j).toUpperCase());
- contentHandler.startElement(Web3.URI, Web3.FIELD_ELEM,
- Web3.FIELD_ELEM, attributes);
- String theValue = (sapStructure.getString(j) == null)
- ? "" : sapStructure.getString(j).trim();
- contentHandler.characters(theValue.toCharArray(), 0,
- theValue.length());
- contentHandler.endElement(Web3.URI, Web3.FIELD_ELEM,
- Web3.FIELD_ELEM);
- }
- contentHandler.endElement(Web3.URI, Web3.STRUCTURE_ELEM,
- Web3.STRUCTURE_ELEM);
- }
- else {
- attributes.clear();
- attributes.addAttribute(Web3.URI, Web3.FIELD_NAME_ATTR,
- Web3.FIELD_NAME_ATTR, "CDATA",
- pList.getName(i).toUpperCase());
- contentHandler.startElement(Web3.URI, Web3.FIELD_ELEM,
- Web3.FIELD_ELEM, attributes);
- String theValue = (pList.getString(i) == null)
- ? "" : pList.getString(i).trim();
- contentHandler.characters(theValue.toCharArray(), 0,
- theValue.length());
- contentHandler.endElement(Web3.URI, Web3.FIELD_ELEM,
- Web3.FIELD_ELEM);
- }
- }
- }
- }
-
-}
-
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
+ used to endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ apache@apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation and was originally created by
+ Stefano Mazzocchi <st...@apache.org>. For more information on the Apache
+ Software Foundation, please see <http://www.apache.org/>.
+
+*/
+
+package org.apache.cocoon.components.web3.impl;
+
+import com.sap.mw.jco.JCO;
+
+import org.apache.cocoon.components.web3.Web3Streamer;
+import org.apache.cocoon.components.web3.Web3;
+
+import org.apache.avalon.excalibur.pool.Poolable;
+
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.AttributesImpl;
+import org.xml.sax.ContentHandler;
+
+/**
+ * TBD
+ *
+ * @author <a href="mailto:mge@efp.co.at">Michael Gerzabek</a>
+ * @since 21. Oct. 2002
+ * @version CVS $Id$
+ */
+public class DefaultWeb3StreamerImpl implements Web3Streamer, Poolable {
+
+ public void stream(JCO.Function function,
+ ContentHandler contentHandler) throws SAXException {
+
+ AttributesImpl attributes = new AttributesImpl();
+ attributes.clear();
+ attributes.addAttribute( Web3.URI, Web3.INCLUDE_NAME_ATTR,
+ Web3.INCLUDE_NAME_ATTR, "CDATA", function.getName().toUpperCase() );
+ contentHandler.startElement( Web3.URI, Web3.INCLUDE_ELEM,
+ Web3.INCLUDE_ELEM, attributes );
+ attributes.clear();
+ contentHandler.startElement( Web3.URI, Web3.IMPORT_ELEM,
+ Web3.IMPORT_ELEM, attributes );
+ streamParameterList( function.getImportParameterList(), contentHandler );
+ contentHandler.endElement( Web3.URI, Web3.IMPORT_ELEM, Web3.IMPORT_ELEM );
+
+ attributes.clear();
+ contentHandler.startElement( Web3.URI, Web3.EXPORT_ELEM,
+ Web3.EXPORT_ELEM, attributes );
+ streamParameterList( function.getExportParameterList(), contentHandler );
+ contentHandler.endElement( Web3.URI, Web3.EXPORT_ELEM, Web3.EXPORT_ELEM );
+
+ JCO.ParameterList tablesParameterList = function.getTableParameterList();
+ attributes.clear();
+ contentHandler.startElement( Web3.URI, Web3.TABLES_ELEM,
+ Web3.TABLES_ELEM, attributes );
+ if (null != tablesParameterList) {
+ for (int i = 0; i < tablesParameterList.getFieldCount(); i++) {
+ attributes.clear();
+ attributes.addAttribute( Web3.URI, Web3.TABLE_NAME_ATTR,
+ Web3.TABLE_NAME_ATTR, "CDATA",
+ tablesParameterList.getName(i).toUpperCase() );
+ contentHandler.startElement( Web3.URI, Web3.TABLE_ELEM,
+ Web3.TABLE_ELEM, attributes );
+ JCO.Table sapTable = tablesParameterList.getTable(i);
+ if (null != sapTable) {
+ for (int j = 0; j < sapTable.getNumRows(); j++) {
+ sapTable.setRow(j);
+ attributes.clear();
+ attributes.addAttribute(Web3.URI, Web3.ROW_ID_ATTR,
+ Web3.ROW_ID_ATTR, "CDATA", "" + (j + 1));
+ contentHandler.startElement(Web3.URI, Web3.ROW_ELEM,
+ Web3.ROW_ELEM, attributes);
+ for (int k = 0; k < sapTable.getFieldCount(); k++) {
+ attributes.clear();
+ attributes.addAttribute(Web3.URI,
+ Web3.FIELD_NAME_ATTR, Web3.FIELD_NAME_ATTR,
+ "CDATA", sapTable.getName(k).toUpperCase());
+ contentHandler.startElement(Web3.URI,
+ Web3.FIELD_ELEM, Web3.FIELD_ELEM, attributes);
+ String theValue = ( sapTable.getString(k) == null)
+ ? "" : sapTable.getString(k).trim();
+ contentHandler.characters(theValue.toCharArray(), 0,
+ theValue.length());
+ contentHandler.endElement(Web3.URI, Web3.FIELD_ELEM,
+ Web3.FIELD_ELEM);
+ }
+ contentHandler.endElement(Web3.URI, Web3.ROW_ELEM,
+ Web3.ROW_ELEM);
+ }
+ contentHandler.endElement(Web3.URI, Web3.TABLE_ELEM,
+ Web3.TABLE_ELEM);
+ }
+ }
+ }
+ contentHandler.endElement(Web3.URI, Web3.TABLES_ELEM, Web3.TABLES_ELEM);
+ contentHandler.endElement( Web3.URI, Web3.INCLUDE_ELEM,
+ Web3.INCLUDE_ELEM );
+ }
+
+ protected void streamParameterList(JCO.ParameterList pList,
+ ContentHandler contentHandler) throws SAXException {
+
+ AttributesImpl attributes = new AttributesImpl();
+ attributes.clear();
+ if (pList != null) {
+ for (int i = 0; i < pList.getFieldCount(); i++) {
+ JCO.Field theField = pList.getField(i);
+ if (theField.isStructure()) {
+ JCO.Structure sapStructure =
+ pList.getStructure(pList.getName(i));
+ attributes.clear();
+ attributes.addAttribute(Web3.URI, Web3.STRUCTURE_NAME_ATTR,
+ Web3.STRUCTURE_NAME_ATTR, "CDATA",
+ pList.getName(i).toUpperCase());
+ contentHandler.startElement(Web3.URI, Web3.STRUCTURE_ELEM,
+ Web3.STRUCTURE_ELEM, attributes);
+ for (int j = 0; j < sapStructure.getFieldCount(); j++) {
+ attributes.clear();
+ attributes.addAttribute(Web3.URI, Web3.FIELD_NAME_ATTR,
+ Web3.FIELD_NAME_ATTR, "CDATA",
+ sapStructure.getName(j).toUpperCase());
+ contentHandler.startElement(Web3.URI, Web3.FIELD_ELEM,
+ Web3.FIELD_ELEM, attributes);
+ String theValue = (sapStructure.getString(j) == null)
+ ? "" : sapStructure.getString(j).trim();
+ contentHandler.characters(theValue.toCharArray(), 0,
+ theValue.length());
+ contentHandler.endElement(Web3.URI, Web3.FIELD_ELEM,
+ Web3.FIELD_ELEM);
+ }
+ contentHandler.endElement(Web3.URI, Web3.STRUCTURE_ELEM,
+ Web3.STRUCTURE_ELEM);
+ }
+ else {
+ attributes.clear();
+ attributes.addAttribute(Web3.URI, Web3.FIELD_NAME_ATTR,
+ Web3.FIELD_NAME_ATTR, "CDATA",
+ pList.getName(i).toUpperCase());
+ contentHandler.startElement(Web3.URI, Web3.FIELD_ELEM,
+ Web3.FIELD_ELEM, attributes);
+ String theValue = (pList.getString(i) == null)
+ ? "" : pList.getString(i).trim();
+ contentHandler.characters(theValue.toCharArray(), 0,
+ theValue.length());
+ contentHandler.endElement(Web3.URI, Web3.FIELD_ELEM,
+ Web3.FIELD_ELEM);
+ }
+ }
+ }
+ }
+
+}
+
1.3 +286 -286 cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/impl/Web3ClientImpl.java
Index: Web3ClientImpl.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/impl/Web3ClientImpl.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Web3ClientImpl.java 16 Mar 2003 17:49:10 -0000 1.2
+++ Web3ClientImpl.java 6 May 2003 14:13:00 -0000 1.3
@@ -1,286 +1,286 @@
-/*
-
- ============================================================================
- The Apache Software License, Version 1.1
- ============================================================================
-
- Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without modifica-
- tion, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. The end-user documentation included with the redistribution, if any, must
- include the following acknowledgment: "This product includes software
- developed by the Apache Software Foundation (http://www.apache.org/)."
- Alternately, this acknowledgment may appear in the software itself, if
- and wherever such third-party acknowledgments normally appear.
-
- 4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
- used to endorse or promote products derived from this software without
- prior written permission. For written permission, please contact
- apache@apache.org.
-
- 5. Products derived from this software may not be called "Apache", nor may
- "Apache" appear in their name, without prior written permission of the
- Apache Software Foundation.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- This software consists of voluntary contributions made by many individuals
- on behalf of the Apache Software Foundation and was originally created by
- Stefano Mazzocchi <st...@apache.org>. For more information on the Apache
- Software Foundation, please see <http://www.apache.org/>.
-
-*/
-package org.apache.cocoon.components.web3.impl;
-
-import org.apache.cocoon.components.web3.Web3Client;
-
-import org.apache.avalon.framework.logger.AbstractLogEnabled;
-import org.apache.avalon.framework.activity.Disposable;
-import org.apache.avalon.excalibur.pool.Recyclable;
-import org.apache.avalon.excalibur.pool.Poolable;
-
-import com.sap.mw.jco.JCO;
-import com.sap.mw.jco.IRepository;
-
-import java.net.URL;
-import java.util.Properties;
-import java.util.Date;
-
-/**
- * The standard interface for R3Clients in Web3.
- *
- * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
- * @version CVS $Id$
- */
-public class Web3ClientImpl extends AbstractLogEnabled
-implements Web3Client, Disposable, Recyclable, Poolable {
-
- protected JCO.Client client = null;
- protected String repository = null;
-
- public void initClient(JCO.Client client) {
- this.client = client;
- this.repository = "" + (new Date ()).getTime();
- }
-
- public void releaseClient() {
- JCO.releaseClient(this.client);
- this.client = null;
- }
-
- public void dispose() {
- this.client = null;
- this.repository = null;
- }
-
- public IRepository getRepository() {
- if (null != this.repository) {
- return new JCO.Repository (this.repository, this.client);
- }
- return null;
- }
-
- public void abort(String message) {
- this.client.abort (message);
- }
-
- public Object clone() {
- return null;
- }
-
- public void confirmTID(String tid) {
- this.client.confirmTID (tid);
- }
-
- public void connect() {
- this.client.connect ();
- }
-
- public String createTID() {
- return this.client.createTID ();
- }
-
- public void disconnect() {
- this.client.disconnect ();
- }
-
- public void execute(JCO.Function function) {
- this.client.execute (function);
- }
-
- public void execute(JCO.Function function, String tid) {
- this.client.execute (function, tid);
- }
-
- public void execute(JCO.Function function, String tid, String queue_name) {
- this.client.execute (function, tid, queue_name);
- }
-
- public void execute(JCO.Function function, String tid,
- String queue_name, int queue_pos) {
- this.client.execute (function, tid, queue_name, queue_pos);
- }
-
- public void execute(String name, JCO.ParameterList input,
- JCO.ParameterList output) {
- this.client.execute (name, input, output);
- }
-
- public void execute(String name, JCO.ParameterList input,
- JCO.ParameterList output, JCO.ParameterList tables) {
- this.client.execute (name, input, output, tables);
- }
-
- public void execute(String name, JCO.ParameterList input,
- JCO.ParameterList tables, String tid) {
- this.client.execute (name, input, tables, tid);
- }
-
- public void execute(java.lang.String name, JCO.ParameterList input,
- JCO.ParameterList tables, String tid,
- String queue_name) {
- this.client.execute (name, input, tables, tid, queue_name);
- }
-
- public void execute(java.lang.String name, JCO.ParameterList input,
- JCO.ParameterList tables, String tid,
- String queue_name, int queue_pos) {
- this.client.execute (name, input, tables, tid, queue_name, queue_pos);
- }
-
- public boolean getAbapDebug() {
- return this.client.getAbapDebug ();
- }
-
- public String getASHost() {
- return this.client.getASHost ();
- }
-
- public JCO.Attributes getAttributes() {
- return this.client.getAttributes ();
- }
-
- public String getClient() {
- return this.client.getClient ();
- }
-
- public String getGroup() {
- return this.client.getGroup ();
- }
-
- public String getGWHost() {
- return this.client.getGWHost ();
- }
-
- public String getGWServ() {
- return this.client.getGWServ ();
- }
-
- public String getLanguage() {
- return this.client.getLanguage ();
- }
-
- public String getMSHost() {
- return this.client.getMSHost ();
- }
-
- public String[][] getPropertyInfo() {
- return this.client.getPropertyInfo ();
- }
-
- public int getSapGui() {
- return this.client.getSapGui ();
- }
-
- public byte getState() {
- return this.client.getState ();
- }
-
- public String getSystemID() {
- return this.client.getSystemID ();
- }
-
- public String getSystemNumber() {
- return this.client.getSystemNumber ();
- }
-
- public String getTPName() {
- return this.client.getTPName ();
- }
-
- public boolean getTrace() {
- return this.client.getTrace ();
- }
-
- public URL getURL() {
- return this.client.getURL ();
- }
-
- public String getUser() {
- return this.client.getUser ();
- }
-
- public boolean isAlive() {
- return this.client.isAlive ();
- }
-
- public void ping() {
- this.client.ping ();
- }
-
- public void setAbapDebug(boolean debug) {
- this.client.setAbapDebug (debug);
- }
-
- public void setProperty(String key, String value) {
- this.client.setProperty (key, value);
- }
-
- public void setSapGui(int use_sapgui) {
- this.client.setSapGui (use_sapgui);
- }
-
- public void setTrace(boolean trace) {
- this.client.setTrace (trace);
- }
-
- public final Properties getProperties() {
- return this.client.getProperties ();
- }
-
- public final String getProperty(String key) {
- return this.client.getProperty (key);
- }
-
- public boolean isValid() {
- return this.client.isValid ();
- }
-
- public void setThroughput(JCO.Throughput throughput) {
- this.client.setThroughput (throughput);
- }
-
- public void recycle() {
- this.client = null;
- this.repository = null;
- }
-
-}
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
+ used to endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ apache@apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation and was originally created by
+ Stefano Mazzocchi <st...@apache.org>. For more information on the Apache
+ Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.cocoon.components.web3.impl;
+
+import org.apache.cocoon.components.web3.Web3Client;
+
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.avalon.framework.activity.Disposable;
+import org.apache.avalon.excalibur.pool.Recyclable;
+import org.apache.avalon.excalibur.pool.Poolable;
+
+import com.sap.mw.jco.JCO;
+import com.sap.mw.jco.IRepository;
+
+import java.net.URL;
+import java.util.Properties;
+import java.util.Date;
+
+/**
+ * The standard interface for R3Clients in Web3.
+ *
+ * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
+ * @version CVS $Id$
+ */
+public class Web3ClientImpl extends AbstractLogEnabled
+implements Web3Client, Disposable, Recyclable, Poolable {
+
+ protected JCO.Client client = null;
+ protected String repository = null;
+
+ public void initClient(JCO.Client client) {
+ this.client = client;
+ this.repository = "" + (new Date ()).getTime();
+ }
+
+ public void releaseClient() {
+ JCO.releaseClient(this.client);
+ this.client = null;
+ }
+
+ public void dispose() {
+ this.client = null;
+ this.repository = null;
+ }
+
+ public IRepository getRepository() {
+ if (null != this.repository) {
+ return new JCO.Repository (this.repository, this.client);
+ }
+ return null;
+ }
+
+ public void abort(String message) {
+ this.client.abort (message);
+ }
+
+ public Object clone() {
+ return null;
+ }
+
+ public void confirmTID(String tid) {
+ this.client.confirmTID (tid);
+ }
+
+ public void connect() {
+ this.client.connect ();
+ }
+
+ public String createTID() {
+ return this.client.createTID ();
+ }
+
+ public void disconnect() {
+ this.client.disconnect ();
+ }
+
+ public void execute(JCO.Function function) {
+ this.client.execute (function);
+ }
+
+ public void execute(JCO.Function function, String tid) {
+ this.client.execute (function, tid);
+ }
+
+ public void execute(JCO.Function function, String tid, String queue_name) {
+ this.client.execute (function, tid, queue_name);
+ }
+
+ public void execute(JCO.Function function, String tid,
+ String queue_name, int queue_pos) {
+ this.client.execute (function, tid, queue_name, queue_pos);
+ }
+
+ public void execute(String name, JCO.ParameterList input,
+ JCO.ParameterList output) {
+ this.client.execute (name, input, output);
+ }
+
+ public void execute(String name, JCO.ParameterList input,
+ JCO.ParameterList output, JCO.ParameterList tables) {
+ this.client.execute (name, input, output, tables);
+ }
+
+ public void execute(String name, JCO.ParameterList input,
+ JCO.ParameterList tables, String tid) {
+ this.client.execute (name, input, tables, tid);
+ }
+
+ public void execute(java.lang.String name, JCO.ParameterList input,
+ JCO.ParameterList tables, String tid,
+ String queue_name) {
+ this.client.execute (name, input, tables, tid, queue_name);
+ }
+
+ public void execute(java.lang.String name, JCO.ParameterList input,
+ JCO.ParameterList tables, String tid,
+ String queue_name, int queue_pos) {
+ this.client.execute (name, input, tables, tid, queue_name, queue_pos);
+ }
+
+ public boolean getAbapDebug() {
+ return this.client.getAbapDebug ();
+ }
+
+ public String getASHost() {
+ return this.client.getASHost ();
+ }
+
+ public JCO.Attributes getAttributes() {
+ return this.client.getAttributes ();
+ }
+
+ public String getClient() {
+ return this.client.getClient ();
+ }
+
+ public String getGroup() {
+ return this.client.getGroup ();
+ }
+
+ public String getGWHost() {
+ return this.client.getGWHost ();
+ }
+
+ public String getGWServ() {
+ return this.client.getGWServ ();
+ }
+
+ public String getLanguage() {
+ return this.client.getLanguage ();
+ }
+
+ public String getMSHost() {
+ return this.client.getMSHost ();
+ }
+
+ public String[][] getPropertyInfo() {
+ return this.client.getPropertyInfo ();
+ }
+
+ public int getSapGui() {
+ return this.client.getSapGui ();
+ }
+
+ public byte getState() {
+ return this.client.getState ();
+ }
+
+ public String getSystemID() {
+ return this.client.getSystemID ();
+ }
+
+ public String getSystemNumber() {
+ return this.client.getSystemNumber ();
+ }
+
+ public String getTPName() {
+ return this.client.getTPName ();
+ }
+
+ public boolean getTrace() {
+ return this.client.getTrace ();
+ }
+
+ public URL getURL() {
+ return this.client.getURL ();
+ }
+
+ public String getUser() {
+ return this.client.getUser ();
+ }
+
+ public boolean isAlive() {
+ return this.client.isAlive ();
+ }
+
+ public void ping() {
+ this.client.ping ();
+ }
+
+ public void setAbapDebug(boolean debug) {
+ this.client.setAbapDebug (debug);
+ }
+
+ public void setProperty(String key, String value) {
+ this.client.setProperty (key, value);
+ }
+
+ public void setSapGui(int use_sapgui) {
+ this.client.setSapGui (use_sapgui);
+ }
+
+ public void setTrace(boolean trace) {
+ this.client.setTrace (trace);
+ }
+
+ public final Properties getProperties() {
+ return this.client.getProperties ();
+ }
+
+ public final String getProperty(String key) {
+ return this.client.getProperty (key);
+ }
+
+ public boolean isValid() {
+ return this.client.isValid ();
+ }
+
+ public void setThroughput(JCO.Throughput throughput) {
+ this.client.setThroughput (throughput);
+ }
+
+ public void recycle() {
+ this.client = null;
+ this.repository = null;
+ }
+
+}
1.3 +197 -197 cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/impl/Web3DataSourceImpl.java
Index: Web3DataSourceImpl.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/impl/Web3DataSourceImpl.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Web3DataSourceImpl.java 16 Mar 2003 17:49:10 -0000 1.2
+++ Web3DataSourceImpl.java 6 May 2003 14:13:00 -0000 1.3
@@ -1,197 +1,197 @@
-/*
-
- ============================================================================
- The Apache Software License, Version 1.1
- ============================================================================
-
- Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without modifica-
- tion, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. The end-user documentation included with the redistribution, if any, must
- include the following acknowledgment: "This product includes software
- developed by the Apache Software Foundation (http://www.apache.org/)."
- Alternately, this acknowledgment may appear in the software itself, if
- and wherever such third-party acknowledgments normally appear.
-
- 4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
- used to endorse or promote products derived from this software without
- prior written permission. For written permission, please contact
- apache@apache.org.
-
- 5. Products derived from this software may not be called "Apache", nor may
- "Apache" appear in their name, without prior written permission of the
- Apache Software Foundation.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- This software consists of voluntary contributions made by many individuals
- on behalf of the Apache Software Foundation and was originally created by
- Stefano Mazzocchi <st...@apache.org>. For more information on the Apache
- Software Foundation, please see <http://www.apache.org/>.
-
-*/
-package org.apache.cocoon.components.web3.impl;
-
-import org.apache.avalon.framework.logger.AbstractLogEnabled;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.avalon.framework.thread.ThreadSafe;
-import org.apache.avalon.framework.component.ComponentManager;
-import org.apache.avalon.framework.component.ComponentException;
-
-import EDU.oswego.cs.dl.util.concurrent.Mutex;
-
-import com.sap.mw.jco.JCO;
-
-import org.apache.cocoon.components.web3.Web3Client;
-import org.apache.cocoon.components.web3.Web3DataSource;
-
-/**
- * The Default implementation for R3DataSources in Web3. This uses the
- * normal <code>com.sap.mw.jco.JCO</code> classes.
- *
- * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
- * @version CVS $Id$
- */
-public class Web3DataSourceImpl extends AbstractLogEnabled
-implements Web3DataSource, ThreadSafe {
-
- protected Web3Properties properties = null;
- protected int poolsize = 0;
- protected int current_clients = 0;
- protected String mySID = null;
-
- protected boolean trace = false;
- protected int level = 0;
-
- private static Mutex lock = new Mutex();
- protected ComponentManager manager;
-
- public void compose(ComponentManager componentManager) throws ComponentException {
- this.manager = componentManager;
- }
-
- /** Configure backend component */
- public void configure(final Configuration configuration)
- throws ConfigurationException {
- if (null != configuration) {
- this.properties = new Web3Properties ();
- Configuration child = configuration.getChild("pool");
- this.trace = child.getAttributeAsBoolean("trace", false);
- this.level = child.getAttributeAsInteger("level", 0);
- this.mySID = configuration.getAttribute("name");
- this.poolsize = child.getAttributeAsInteger("size");
-
- this.properties.put("jco.client.client",
- child.getChild("client").getValue());
- this.properties.put("jco.client.user",
- child.getChild("user").getValue());
- this.properties.put("jco.client.passwd",
- child.getChild("password").getValue());
- this.properties.put("jco.client.ashost",
- child.getChild("route").getValue());
- this.properties.put("jco.client.sysnr",
- child.getChild("system").getValue());
- this.properties.put("sap.gateway",
- child.getChild("gateway").getValue(""));
- this.properties.put("sap.programid",
- child.getChild("program-id").getValue(""));
-
- if ( getLogger().isDebugEnabled() ) {
- getLogger ().debug ("Configure R3DataSource [mySID="
- + this.mySID );
- }
- } else {
- getLogger ().error ("Couldn't configure Web3DataSource." +
- " No configuration provided!");
- }
- }
-
- /** initialize the component */
- public void initialize() throws Exception {
- try {
- Web3DataSourceImpl.lock.acquire();
- JCO.addClientPool( this.mySID, this.poolsize, this.properties );
- JCO.getClientPoolManager().getPool( this.mySID ).setTrace( this.trace );
- JCO.setTraceLevel( this.level );
- } catch (Exception ex) {
- getLogger ().error ("Couldn't initialize Web3DataSource "
- + this.mySID, ex);
- throw new Exception ( ex.getMessage() + this.mySID );
- }
- finally {
- Web3DataSourceImpl.lock.release();
- }
- }
-
- /** Get the backend client, returns <code>null</code> if there is no more
- client in the pool. */
- public Web3Client getWeb3Client() throws Exception {
- Web3Client theClient = null;
- if ( this.current_clients + 1 < this.poolsize ) {
- this.current_clients++;
- try {
- Web3DataSourceImpl.lock.acquire();
- theClient = (Web3Client) this.manager.lookup( Web3Client.ROLE );
- theClient.initClient (JCO.getClient(this.mySID));
-
- if ( getLogger().isDebugEnabled() ) {
- getLogger ().debug ("returning client " + theClient);
- }
- } catch (Exception ex){
- getLogger ().error ( this.mySID, ex);
- throw new Exception ( ex.getMessage() );
- } finally {
- Web3DataSourceImpl.lock.release();
- }
- }
- return theClient;
- }
-
- public void releaseWeb3Client(Web3Client client) {
- try {
- Web3DataSourceImpl.lock.acquire();
- client.releaseClient();
- this.current_clients--;
- manager.release( client );
- }
- catch (Exception x) {
- getLogger().error( x.getMessage(), x);
- }
- finally {
- Web3DataSourceImpl.lock.release();
- }
- }
-
- /** Dispose properly of the pool */
- public void dispose() {
- try {
- JCO.removeClientPool(this.mySID);
- } catch (Exception ex) {
- getLogger ().error ("Web3DataSource: couldn't" +
- " return Web3DataSource", ex);
- }
- this.properties = null;
- this.mySID = null;
- getLogger ().debug ("Web3DataSource disposed.");
- }
-
-}
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
+ used to endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ apache@apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation and was originally created by
+ Stefano Mazzocchi <st...@apache.org>. For more information on the Apache
+ Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.cocoon.components.web3.impl;
+
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.avalon.framework.configuration.Configuration;
+import org.apache.avalon.framework.configuration.ConfigurationException;
+import org.apache.avalon.framework.thread.ThreadSafe;
+import org.apache.avalon.framework.component.ComponentManager;
+import org.apache.avalon.framework.component.ComponentException;
+
+import EDU.oswego.cs.dl.util.concurrent.Mutex;
+
+import com.sap.mw.jco.JCO;
+
+import org.apache.cocoon.components.web3.Web3Client;
+import org.apache.cocoon.components.web3.Web3DataSource;
+
+/**
+ * The Default implementation for R3DataSources in Web3. This uses the
+ * normal <code>com.sap.mw.jco.JCO</code> classes.
+ *
+ * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
+ * @version CVS $Id$
+ */
+public class Web3DataSourceImpl extends AbstractLogEnabled
+implements Web3DataSource, ThreadSafe {
+
+ protected Web3Properties properties = null;
+ protected int poolsize = 0;
+ protected int current_clients = 0;
+ protected String mySID = null;
+
+ protected boolean trace = false;
+ protected int level = 0;
+
+ private static Mutex lock = new Mutex();
+ protected ComponentManager manager;
+
+ public void compose(ComponentManager componentManager) throws ComponentException {
+ this.manager = componentManager;
+ }
+
+ /** Configure backend component */
+ public void configure(final Configuration configuration)
+ throws ConfigurationException {
+ if (null != configuration) {
+ this.properties = new Web3Properties ();
+ Configuration child = configuration.getChild("pool");
+ this.trace = child.getAttributeAsBoolean("trace", false);
+ this.level = child.getAttributeAsInteger("level", 0);
+ this.mySID = configuration.getAttribute("name");
+ this.poolsize = child.getAttributeAsInteger("size");
+
+ this.properties.put("jco.client.client",
+ child.getChild("client").getValue());
+ this.properties.put("jco.client.user",
+ child.getChild("user").getValue());
+ this.properties.put("jco.client.passwd",
+ child.getChild("password").getValue());
+ this.properties.put("jco.client.ashost",
+ child.getChild("route").getValue());
+ this.properties.put("jco.client.sysnr",
+ child.getChild("system").getValue());
+ this.properties.put("sap.gateway",
+ child.getChild("gateway").getValue(""));
+ this.properties.put("sap.programid",
+ child.getChild("program-id").getValue(""));
+
+ if ( getLogger().isDebugEnabled() ) {
+ getLogger ().debug ("Configure R3DataSource [mySID="
+ + this.mySID );
+ }
+ } else {
+ getLogger ().error ("Couldn't configure Web3DataSource." +
+ " No configuration provided!");
+ }
+ }
+
+ /** initialize the component */
+ public void initialize() throws Exception {
+ try {
+ Web3DataSourceImpl.lock.acquire();
+ JCO.addClientPool( this.mySID, this.poolsize, this.properties );
+ JCO.getClientPoolManager().getPool( this.mySID ).setTrace( this.trace );
+ JCO.setTraceLevel( this.level );
+ } catch (Exception ex) {
+ getLogger ().error ("Couldn't initialize Web3DataSource "
+ + this.mySID, ex);
+ throw new Exception ( ex.getMessage() + this.mySID );
+ }
+ finally {
+ Web3DataSourceImpl.lock.release();
+ }
+ }
+
+ /** Get the backend client, returns <code>null</code> if there is no more
+ client in the pool. */
+ public Web3Client getWeb3Client() throws Exception {
+ Web3Client theClient = null;
+ if ( this.current_clients + 1 < this.poolsize ) {
+ this.current_clients++;
+ try {
+ Web3DataSourceImpl.lock.acquire();
+ theClient = (Web3Client) this.manager.lookup( Web3Client.ROLE );
+ theClient.initClient (JCO.getClient(this.mySID));
+
+ if ( getLogger().isDebugEnabled() ) {
+ getLogger ().debug ("returning client " + theClient);
+ }
+ } catch (Exception ex){
+ getLogger ().error ( this.mySID, ex);
+ throw new Exception ( ex.getMessage() );
+ } finally {
+ Web3DataSourceImpl.lock.release();
+ }
+ }
+ return theClient;
+ }
+
+ public void releaseWeb3Client(Web3Client client) {
+ try {
+ Web3DataSourceImpl.lock.acquire();
+ client.releaseClient();
+ this.current_clients--;
+ manager.release( client );
+ }
+ catch (Exception x) {
+ getLogger().error( x.getMessage(), x);
+ }
+ finally {
+ Web3DataSourceImpl.lock.release();
+ }
+ }
+
+ /** Dispose properly of the pool */
+ public void dispose() {
+ try {
+ JCO.removeClientPool(this.mySID);
+ } catch (Exception ex) {
+ getLogger ().error ("Web3DataSource: couldn't" +
+ " return Web3DataSource", ex);
+ }
+ this.properties = null;
+ this.mySID = null;
+ getLogger ().debug ("Web3DataSource disposed.");
+ }
+
+}
1.3 +198 -198 cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/impl/Web3DataSourceSelectorImpl.java
Index: Web3DataSourceSelectorImpl.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/impl/Web3DataSourceSelectorImpl.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Web3DataSourceSelectorImpl.java 16 Mar 2003 17:49:10 -0000 1.2
+++ Web3DataSourceSelectorImpl.java 6 May 2003 14:13:00 -0000 1.3
@@ -1,198 +1,198 @@
-/*
-
- ============================================================================
- The Apache Software License, Version 1.1
- ============================================================================
-
- Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without modifica-
- tion, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. The end-user documentation included with the redistribution, if any, must
- include the following acknowledgment: "This product includes software
- developed by the Apache Software Foundation (http://www.apache.org/)."
- Alternately, this acknowledgment may appear in the software itself, if
- and wherever such third-party acknowledgments normally appear.
-
- 4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
- used to endorse or promote products derived from this software without
- prior written permission. For written permission, please contact
- apache@apache.org.
-
- 5. Products derived from this software may not be called "Apache", nor may
- "Apache" appear in their name, without prior written permission of the
- Apache Software Foundation.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- This software consists of voluntary contributions made by many individuals
- on behalf of the Apache Software Foundation and was originally created by
- Stefano Mazzocchi <st...@apache.org>. For more information on the Apache
- Software Foundation, please see <http://www.apache.org/>.
-
-*/
-package org.apache.cocoon.components.web3.impl;
-
-import org.apache.cocoon.components.web3.Web3DataSource;
-
-import org.apache.avalon.framework.activity.Disposable;
-import org.apache.avalon.framework.thread.ThreadSafe;
-import org.apache.avalon.framework.component.Composable;
-import org.apache.avalon.framework.component.ComponentManager;
-import org.apache.avalon.framework.component.ComponentSelector;
-import org.apache.avalon.framework.component.ComponentException;
-import org.apache.avalon.framework.component.Component;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.configuration.Configurable;
-import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.avalon.framework.logger.AbstractLogEnabled;
-import org.apache.avalon.framework.logger.LogEnabled;
-import org.apache.cocoon.util.ClassUtils;
-
-import java.util.Enumeration;
-import java.util.Hashtable;
-
-import EDU.oswego.cs.dl.util.concurrent.Mutex;
-
-/**
- * The Default implementation for R3DataSources in Web3. This uses the
- * normal <code>com.sap.mw.jco.JCO</code> classes.
- *
- * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
- * @since 21. Oct. 2002
- * @version CVS $Id$
- */
-public class Web3DataSourceSelectorImpl
- extends AbstractLogEnabled
- implements ComponentSelector, Disposable, Composable, Configurable, ThreadSafe {
-
- /** The component manager instance */
- protected ComponentManager manager = null;
- protected Configuration configuration = null;
- private static Hashtable pools = new Hashtable();
- private static Mutex lock = new Mutex();
-
- /**
- * Set the current <code>ComponentManager</code> instance used by this
- * <code>Composable</code>.
- */
- public void compose(ComponentManager manager) throws ComponentException {
- this.manager = manager;
- }
-
- public void configure(Configuration configuration)
- throws ConfigurationException {
- if (null != configuration) {
- this.configuration = configuration;
- } else {
- getLogger().error(
- "Couldn't configure Web3DataSourceSelector."
- + " No configuration provided!");
- }
- }
-
- public boolean hasComponent(Object obj) {
- return Web3DataSourceSelectorImpl.pools.containsKey(obj);
- }
-
- public Component select(Object obj) throws ComponentException {
- Web3DataSource pool = null;
- try {
- Web3DataSourceSelectorImpl.lock.acquire();
- if (null != obj) {
- if (Web3DataSourceSelectorImpl.pools.containsKey(obj)) {
- pool =
- (Web3DataSource) Web3DataSourceSelectorImpl.pools.get(
- obj);
- } else {
- Configuration a[] =
- this.configuration.getChildren("backend"),
- c = null;
-
- if (null != a)
- for (int i = 0; i < a.length; i++) {
- try {
- String s = a[i].getAttribute("name");
- if (null != s && s.equals(obj.toString())) {
- // a backend with a name can be defined only once
- c = a[i];
- break;
- }
- } catch (ConfigurationException x) {
- // this configuration element has no mandatory
- //attribute name
- }
- }
- // No configuration for this backend-id found!
- if (null == c) {
- return null;
- }
- Class theClass =
- Class.forName(
- c.getChild("class").getValue(
- "org.apache.cocoon.components.web3.impl.Web3DataSourceImpl"),
- true,
- ClassUtils.getClassLoader());
- pool = (Web3DataSource) theClass.newInstance();
- if (pool instanceof LogEnabled) {
- ((LogEnabled) pool).enableLogging(getLogger());
- }
- pool.compose(this.manager);
- pool.configure(c);
- pool.initialize();
- Web3DataSourceSelectorImpl.pools.put(obj, pool);
- }
- }
- } catch (Exception ex) {
- getLogger().error(ex.getMessage(), ex);
- throw new ComponentException(ex.getMessage());
- } finally {
- Web3DataSourceSelectorImpl.lock.release();
- }
- getLogger().debug("Returning Web3DataSource[" + pool + "]");
- return pool;
- }
-
- public void release(Component component) {
- }
-
- /** Dispose properly of the pool */
- public void dispose() {
- this.manager = null;
- try {
- Web3DataSourceSelectorImpl.lock.acquire();
- String sid = null;
- Web3DataSource pool;
- for (Enumeration enum = Web3DataSourceSelectorImpl.pools.keys();
- enum.hasMoreElements();
- ) {
- sid = (String) enum.nextElement();
- pool =
- (Web3DataSource) Web3DataSourceSelectorImpl.pools.get(sid);
- pool.dispose();
- }
- Web3DataSourceSelectorImpl.pools.clear();
- } catch (Exception ex) {
- } finally {
- Web3DataSourceSelectorImpl.lock.release();
- }
- Web3DataSourceSelectorImpl.lock = null;
- }
-}
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
+ used to endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ apache@apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation and was originally created by
+ Stefano Mazzocchi <st...@apache.org>. For more information on the Apache
+ Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.cocoon.components.web3.impl;
+
+import org.apache.cocoon.components.web3.Web3DataSource;
+
+import org.apache.avalon.framework.activity.Disposable;
+import org.apache.avalon.framework.thread.ThreadSafe;
+import org.apache.avalon.framework.component.Composable;
+import org.apache.avalon.framework.component.ComponentManager;
+import org.apache.avalon.framework.component.ComponentSelector;
+import org.apache.avalon.framework.component.ComponentException;
+import org.apache.avalon.framework.component.Component;
+import org.apache.avalon.framework.configuration.Configuration;
+import org.apache.avalon.framework.configuration.Configurable;
+import org.apache.avalon.framework.configuration.ConfigurationException;
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.avalon.framework.logger.LogEnabled;
+import org.apache.cocoon.util.ClassUtils;
+
+import java.util.Enumeration;
+import java.util.Hashtable;
+
+import EDU.oswego.cs.dl.util.concurrent.Mutex;
+
+/**
+ * The Default implementation for R3DataSources in Web3. This uses the
+ * normal <code>com.sap.mw.jco.JCO</code> classes.
+ *
+ * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
+ * @since 21. Oct. 2002
+ * @version CVS $Id$
+ */
+public class Web3DataSourceSelectorImpl
+ extends AbstractLogEnabled
+ implements ComponentSelector, Disposable, Composable, Configurable, ThreadSafe {
+
+ /** The component manager instance */
+ protected ComponentManager manager = null;
+ protected Configuration configuration = null;
+ private static Hashtable pools = new Hashtable();
+ private static Mutex lock = new Mutex();
+
+ /**
+ * Set the current <code>ComponentManager</code> instance used by this
+ * <code>Composable</code>.
+ */
+ public void compose(ComponentManager manager) throws ComponentException {
+ this.manager = manager;
+ }
+
+ public void configure(Configuration configuration)
+ throws ConfigurationException {
+ if (null != configuration) {
+ this.configuration = configuration;
+ } else {
+ getLogger().error(
+ "Couldn't configure Web3DataSourceSelector."
+ + " No configuration provided!");
+ }
+ }
+
+ public boolean hasComponent(Object obj) {
+ return Web3DataSourceSelectorImpl.pools.containsKey(obj);
+ }
+
+ public Component select(Object obj) throws ComponentException {
+ Web3DataSource pool = null;
+ try {
+ Web3DataSourceSelectorImpl.lock.acquire();
+ if (null != obj) {
+ if (Web3DataSourceSelectorImpl.pools.containsKey(obj)) {
+ pool =
+ (Web3DataSource) Web3DataSourceSelectorImpl.pools.get(
+ obj);
+ } else {
+ Configuration a[] =
+ this.configuration.getChildren("backend"),
+ c = null;
+
+ if (null != a)
+ for (int i = 0; i < a.length; i++) {
+ try {
+ String s = a[i].getAttribute("name");
+ if (null != s && s.equals(obj.toString())) {
+ // a backend with a name can be defined only once
+ c = a[i];
+ break;
+ }
+ } catch (ConfigurationException x) {
+ // this configuration element has no mandatory
+ //attribute name
+ }
+ }
+ // No configuration for this backend-id found!
+ if (null == c) {
+ return null;
+ }
+ Class theClass =
+ Class.forName(
+ c.getChild("class").getValue(
+ "org.apache.cocoon.components.web3.impl.Web3DataSourceImpl"),
+ true,
+ ClassUtils.getClassLoader());
+ pool = (Web3DataSource) theClass.newInstance();
+ if (pool instanceof LogEnabled) {
+ ((LogEnabled) pool).enableLogging(getLogger());
+ }
+ pool.compose(this.manager);
+ pool.configure(c);
+ pool.initialize();
+ Web3DataSourceSelectorImpl.pools.put(obj, pool);
+ }
+ }
+ } catch (Exception ex) {
+ getLogger().error(ex.getMessage(), ex);
+ throw new ComponentException(ex.getMessage());
+ } finally {
+ Web3DataSourceSelectorImpl.lock.release();
+ }
+ getLogger().debug("Returning Web3DataSource[" + pool + "]");
+ return pool;
+ }
+
+ public void release(Component component) {
+ }
+
+ /** Dispose properly of the pool */
+ public void dispose() {
+ this.manager = null;
+ try {
+ Web3DataSourceSelectorImpl.lock.acquire();
+ String sid = null;
+ Web3DataSource pool;
+ for (Enumeration enum = Web3DataSourceSelectorImpl.pools.keys();
+ enum.hasMoreElements();
+ ) {
+ sid = (String) enum.nextElement();
+ pool =
+ (Web3DataSource) Web3DataSourceSelectorImpl.pools.get(sid);
+ pool.dispose();
+ }
+ Web3DataSourceSelectorImpl.pools.clear();
+ } catch (Exception ex) {
+ } finally {
+ Web3DataSourceSelectorImpl.lock.release();
+ }
+ Web3DataSourceSelectorImpl.lock = null;
+ }
+}
1.3 +106 -106 cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/impl/Web3Properties.java
Index: Web3Properties.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/components/web3/impl/Web3Properties.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Web3Properties.java 16 Mar 2003 17:49:10 -0000 1.2
+++ Web3Properties.java 6 May 2003 14:13:00 -0000 1.3
@@ -1,106 +1,106 @@
-/*
-
- ============================================================================
- The Apache Software License, Version 1.1
- ============================================================================
-
- Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without modifica-
- tion, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. The end-user documentation included with the redistribution, if any, must
- include the following acknowledgment: "This product includes software
- developed by the Apache Software Foundation (http://www.apache.org/)."
- Alternately, this acknowledgment may appear in the software itself, if
- and wherever such third-party acknowledgments normally appear.
-
- 4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
- used to endorse or promote products derived from this software without
- prior written permission. For written permission, please contact
- apache@apache.org.
-
- 5. Products derived from this software may not be called "Apache", nor may
- "Apache" appear in their name, without prior written permission of the
- Apache Software Foundation.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- This software consists of voluntary contributions made by many individuals
- on behalf of the Apache Software Foundation and was originally created by
- Stefano Mazzocchi <st...@apache.org>. For more information on the Apache
- Software Foundation, please see <http://www.apache.org/>.
-
-*/
-
-package org.apache.cocoon.components.web3.impl;
-
-import java.util.Properties;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.io.InputStream;
-import java.io.IOException;
-
-/**
- * Properties helper class.
- * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
- * @version CVS $Id$
- */
-public class Web3Properties extends Properties {
-
- ArrayList orderedKeys = new ArrayList();
-
- /** Creates new Properties */
- public Web3Properties() {
- super();
- }
-
- public Web3Properties(Properties defaults) {
- super(defaults);
- }
-
- public synchronized Iterator getKeysIterator() {
- return orderedKeys.iterator();
- }
-
- public static Web3Properties load(String name) throws Exception {
- Web3Properties props = null;
- InputStream is = Web3Properties.class.getResourceAsStream(name);
- props = new Web3Properties();
- if (null != is) {
- props.load(is);
- return props;
- }
- else {
- throw new IOException("Properties could not be loaded.");
- }
- }
-
- public synchronized Object put(Object key, Object value) {
- Object obj = super.put(key, value);
- orderedKeys.add(key);
- return obj;
- }
-
- public synchronized Object remove(Object key) {
- Object obj = super.remove(key);
- orderedKeys.remove(key);
- return obj;
- }
-}
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
+ used to endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ apache@apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation and was originally created by
+ Stefano Mazzocchi <st...@apache.org>. For more information on the Apache
+ Software Foundation, please see <http://www.apache.org/>.
+
+*/
+
+package org.apache.cocoon.components.web3.impl;
+
+import java.util.Properties;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.io.InputStream;
+import java.io.IOException;
+
+/**
+ * Properties helper class.
+ * @author <a href="mailto:michael.gerzabek@at.efp.cc">Michael Gerzabek</a>
+ * @version CVS $Id$
+ */
+public class Web3Properties extends Properties {
+
+ ArrayList orderedKeys = new ArrayList();
+
+ /** Creates new Properties */
+ public Web3Properties() {
+ super();
+ }
+
+ public Web3Properties(Properties defaults) {
+ super(defaults);
+ }
+
+ public synchronized Iterator getKeysIterator() {
+ return orderedKeys.iterator();
+ }
+
+ public static Web3Properties load(String name) throws Exception {
+ Web3Properties props = null;
+ InputStream is = Web3Properties.class.getResourceAsStream(name);
+ props = new Web3Properties();
+ if (null != is) {
+ props.load(is);
+ return props;
+ }
+ else {
+ throw new IOException("Properties could not be loaded.");
+ }
+ }
+
+ public synchronized Object put(Object key, Object value) {
+ Object obj = super.put(key, value);
+ orderedKeys.add(key);
+ return obj;
+ }
+
+ public synchronized Object remove(Object key) {
+ Object obj = super.remove(key);
+ orderedKeys.remove(key);
+ return obj;
+ }
+}
1.4 +365 -365 cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/transformation/Web3RfcTransformer.java
Index: Web3RfcTransformer.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/java/org/apache/cocoon/transformation/Web3RfcTransformer.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- Web3RfcTransformer.java 31 Mar 2003 11:14:11 -0000 1.3
+++ Web3RfcTransformer.java 6 May 2003 14:13:01 -0000 1.4
@@ -1,365 +1,365 @@
-/*
-
- ============================================================================
- The Apache Software License, Version 1.1
- ============================================================================
-
- Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without modifica-
- tion, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. The end-user documentation included with the redistribution, if any, must
- include the following acknowledgment: "This product includes software
- developed by the Apache Software Foundation (http://www.apache.org/)."
- Alternately, this acknowledgment may appear in the software itself, if
- and wherever such third-party acknowledgments normally appear.
-
- 4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
- used to endorse or promote products derived from this software without
- prior written permission. For written permission, please contact
- apache@apache.org.
-
- 5. Products derived from this software may not be called "Apache", nor may
- "Apache" appear in their name, without prior written permission of the
- Apache Software Foundation.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- This software consists of voluntary contributions made by many individuals
- on behalf of the Apache Software Foundation and was originally created by
- Stefano Mazzocchi <st...@apache.org>. For more information on the Apache
- Software Foundation, please see <http://www.apache.org/>.
-
-*/
-
-package org.apache.cocoon.transformation;
-
-import com.sap.mw.jco.IFunctionTemplate;
-import com.sap.mw.jco.JCO;
-
-import org.apache.cocoon.components.web3.Web3Client;
-import org.apache.cocoon.components.web3.Web3DataSource;
-import org.apache.cocoon.components.web3.Web3Streamer;
-import org.apache.cocoon.components.web3.Web3;
-
-import java.util.Map;
-import java.util.HashMap;
-
-import org.apache.cocoon.environment.SourceResolver;
-
-import org.apache.avalon.framework.component.Composable;
-import org.apache.avalon.framework.activity.Disposable;
-import org.apache.avalon.framework.configuration.Configurable;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.avalon.framework.component.ComponentManager;
-import org.apache.avalon.framework.component.ComponentSelector;
-import org.apache.avalon.framework.parameters.Parameters;
-import org.apache.avalon.excalibur.pool.Poolable;
-import org.apache.avalon.excalibur.pool.Recyclable;
-
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.AttributesImpl;
-
-/**
- * TBD
- *
- * @author <a href="mailto:mge@efp.co.at">Michael Gerzabek</a>
- * @since 21. Oct. 2002
- * @version CVS $Id$
- */
-public class Web3RfcTransformer extends AbstractTransformer
-implements Composable, Disposable, Configurable, Poolable, Recyclable {
-
- /** The component manager instance */
- protected ComponentManager manager = null;
- protected Web3DataSource web3source = null;
-
- protected Web3Client connection = null;
- protected JCO.Repository repository = null;
- protected IFunctionTemplate functionT = null;
- protected JCO.Function function = null;
- protected JCO.ParameterList importParameterList = null;
- protected JCO.ParameterList tablesParameterList = null;
- protected JCO.Record theRecord = null;
- protected JCO.Field fillMe = null;
-
- protected AttributesImpl attributes = new AttributesImpl();
- protected int startcount = 0;
- protected boolean error = false;
- protected String backend = null;
- protected String default_backend = null;
- protected String streamer = null;
- protected HashMap tags = new HashMap();
-
- public void setup(SourceResolver resolver, Map objectModel,
- String source, Parameters parameters)
- throws SAXException {
-
- try {
- backend = parameters.getParameter("system");
- }
- catch (Exception x) {
- if ( null == backend ) {
- getLogger().warn("No backend configured! Try to use configuration");
- backend = default_backend;
- }
- }
- }
-
- public void compose(ComponentManager manager) {
-
- this.manager = manager;
- initTags();
- }
-
- public void configure(final Configuration configuration)
- throws ConfigurationException {
-
- this.default_backend = configuration.getChild("system").getValue(null);
- }
-
- public void recycle() {
- this.connection = null;
- this.repository = null;
- this.functionT = null;
- this.function = null;
- this.importParameterList = null;
- this.tablesParameterList = null;
- this.theRecord = null;
- this.backend = null;
- this.streamer = null;
- this.error = false;
- this.startcount = 0;
- }
-
- /** Free all ressources */
- public void dispose() {
- this.recycle();
- this.manager = null;
- this.attributes = null;
- this.web3source = null;
- this.tags = null;
- }
-
- /**
- * Receive notification of the beginning of a document.
- */
- public void startDocument()
- throws SAXException {
-
- if ( null != super.contentHandler ) {
- super.contentHandler.startDocument();
- }
- }
-
- /**
- * Receive notification of the end of a document.
- */
- public void endDocument()
- throws SAXException {
-
- if ( null != super.contentHandler) {
- super.contentHandler.endDocument();
- }
- }
-
- /**
- * Receive notification of the beginning of an element.
- */
- public void startElement(String uri, String loc, String raw, Attributes a)
- throws SAXException {
-
- if ( Web3.URI.equals( uri ) && !this.error ) {
- switch ( Integer.parseInt( (String) this.tags.get( loc ))) {
- case INCLUDE_ELEM:
- ComponentSelector r3sc = null;
- try {
- r3sc = (ComponentSelector)
- this.manager.lookup ( Web3DataSource.ROLE + "Selector");
- this.web3source = (Web3DataSource) r3sc.select( this.backend );
- this.connection = this.web3source.getWeb3Client();
- this.repository = (JCO.Repository) this.connection.getRepository();
- this.functionT = this.repository.getFunctionTemplate(
- a.getValue( Web3.INCLUDE_NAME_ATTR ) );
- this.streamer = (null == a.getValue( Web3.INCLUDE_CLASS_ATTR )) ?
- "default" : a.getValue( Web3.INCLUDE_CLASS_ATTR );
- this.function = this.functionT.getFunction();
- }
- catch (Exception ex) {
- String error = "Problems getting client for backend: '"
- + this.backend + "'";
- getLogger().error (error, ex);
- super.contentHandler.startElement(uri, Web3.PROCESSING_X_ELEM,
- Web3.PROCESSING_X_ELEM, a);
- super.contentHandler.characters(error.toCharArray(), 0,
- error.length());
- super.contentHandler.endElement(uri, Web3.PROCESSING_X_ELEM,
- Web3.PROCESSING_X_ELEM);
- this.error = true;
- }
- finally {
- this.manager.release ( r3sc );
- }
- break;
- case IMPORT_ELEM:
- this.importParameterList = this.function.getImportParameterList();
- this.theRecord = this.importParameterList;
- break;
- case FIELD_ELEM:
- this.fillMe = this.theRecord.getField(
- a.getValue( Web3.FIELD_NAME_ATTR ));
- break;
- case STRUCTURE_ELEM:
- this.theRecord = this.importParameterList.getStructure(
- a.getValue( Web3.STRUCTURE_NAME_ATTR ));
- break;
- case TABLES_ELEM:
- this.tablesParameterList = this.function.getTableParameterList();
- break;
- case TABLE_ELEM:
- this.theRecord = this.tablesParameterList.getTable(
- a.getValue( Web3.TABLE_NAME_ATTR ));
- break;
- case ROW_ELEM:
- if (null != this.theRecord) {
- try {
- JCO.Table tmpTable = (JCO.Table) this.theRecord;
- tmpTable.appendRow();
- }
- catch (ClassCastException x) {
- getLogger().error("Not a table! " + x.getMessage(), x);
- }
- }
- break;
- default:
- getLogger().error("Invalid element " + loc);
- }
- }
- else if (super.contentHandler != null) {
- super.contentHandler.startElement(uri, loc, raw, a);
- }
- }
-
- /**
- * Receive notification of the end of an element.
- */
- public void characters(char c[], int start, int len)
- throws SAXException {
- String theValue = new String(c, start, len).trim();
- if ( null != this.fillMe ) {
- if ( "".equals( theValue )) {
- theValue = null;
- }
- try {
- this.fillMe.setValue( theValue );
- this.fillMe = null;
- if( getLogger().isDebugEnabled() ) {
- getLogger().debug("set value = " + theValue);
- }
- }
- catch (JCO.ConversionException x) {
- getLogger().error( x.getMessage(), x);
- }
- }
- else {
- if (super.contentHandler != null) {
- super.contentHandler.characters(c, start, len);
- }
- }
- }
-
- /**
- * Receive notification of the end of an element.
- */
- public void endElement(String uri, String loc, String raw)
- throws SAXException
- {
- if ( Web3.URI.equals(uri) && !this.error ) {
- switch ( Integer.parseInt( (String) this.tags.get( loc ))) {
- case INCLUDE_ELEM:
- Web3Streamer w3s = null;
- ComponentSelector streamerSelector = null;
- try {
- this.connection.execute( this.function );
- streamerSelector =
- (ComponentSelector)
- this.manager.lookup( Web3Streamer.ROLE + "Selector" );
- w3s = (Web3Streamer) streamerSelector.select( this.streamer );
- w3s.stream( this.function, super.contentHandler );
- }
- catch (Exception x) {
- this.attributes.clear();
- super.contentHandler.startElement(uri, Web3.ABAP_EXCEPTION_ELEM,
- Web3.ABAP_EXCEPTION_ELEM, this.attributes);
- super.contentHandler.characters(x.getMessage ().toCharArray(),
- 0, x.getMessage ().length());
- super.contentHandler.endElement(uri, Web3.ABAP_EXCEPTION_ELEM,
- Web3.ABAP_EXCEPTION_ELEM);
- getLogger().error(x.getMessage(), x);
- }
- finally {
- this.web3source.releaseWeb3Client( this.connection );
- if ( null != streamerSelector ) {
- streamerSelector.release( w3s );
- }
- manager.release( streamerSelector );
- }
- this.connection = null;
- this.repository = null;
- this.functionT = null;
- this.function = null;
- this.importParameterList = null;
- this.tablesParameterList = null;
- this.theRecord = null;
- break;
- case STRUCTURE_ELEM:
- this.theRecord = this.importParameterList;
- break;
- }
- }
- else if (super.contentHandler != null) {
- super.contentHandler.endElement(uri,loc,raw);
- }
- }
-
- protected final static int INCLUDE_ELEM = 1;
- protected final static int IMPORT_ELEM = 2;
- protected final static int EXPORT_ELEM = 3;
- protected final static int TABLES_ELEM = 4;
- protected final static int FIELD_ELEM = 5;
- protected final static int ROW_ELEM = 6;
- protected final static int STRUCTURE_ELEM = 7;
- protected final static int TABLE_ELEM = 8;
-
- protected void initTags() {
-
- this.tags.put( Web3.INCLUDE_ELEM, "1" );
- this.tags.put( Web3.IMPORT_ELEM, "2" );
- this.tags.put( Web3.EXPORT_ELEM, "3" );
- this.tags.put( Web3.TABLES_ELEM, "4" );
- this.tags.put( Web3.FIELD_ELEM, "5" );
- this.tags.put( Web3.ROW_ELEM, "6" );
- this.tags.put( Web3.STRUCTURE_ELEM, "7" );
- this.tags.put( Web3.TABLE_ELEM, "8" );
- }
-}
-
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
+ used to endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ apache@apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation and was originally created by
+ Stefano Mazzocchi <st...@apache.org>. For more information on the Apache
+ Software Foundation, please see <http://www.apache.org/>.
+
+*/
+
+package org.apache.cocoon.transformation;
+
+import com.sap.mw.jco.IFunctionTemplate;
+import com.sap.mw.jco.JCO;
+
+import org.apache.cocoon.components.web3.Web3Client;
+import org.apache.cocoon.components.web3.Web3DataSource;
+import org.apache.cocoon.components.web3.Web3Streamer;
+import org.apache.cocoon.components.web3.Web3;
+
+import java.util.Map;
+import java.util.HashMap;
+
+import org.apache.cocoon.environment.SourceResolver;
+
+import org.apache.avalon.framework.component.Composable;
+import org.apache.avalon.framework.activity.Disposable;
+import org.apache.avalon.framework.configuration.Configurable;
+import org.apache.avalon.framework.configuration.Configuration;
+import org.apache.avalon.framework.configuration.ConfigurationException;
+import org.apache.avalon.framework.component.ComponentManager;
+import org.apache.avalon.framework.component.ComponentSelector;
+import org.apache.avalon.framework.parameters.Parameters;
+import org.apache.avalon.excalibur.pool.Poolable;
+import org.apache.avalon.excalibur.pool.Recyclable;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.AttributesImpl;
+
+/**
+ * TBD
+ *
+ * @author <a href="mailto:mge@efp.co.at">Michael Gerzabek</a>
+ * @since 21. Oct. 2002
+ * @version CVS $Id$
+ */
+public class Web3RfcTransformer extends AbstractTransformer
+implements Composable, Disposable, Configurable, Poolable, Recyclable {
+
+ /** The component manager instance */
+ protected ComponentManager manager = null;
+ protected Web3DataSource web3source = null;
+
+ protected Web3Client connection = null;
+ protected JCO.Repository repository = null;
+ protected IFunctionTemplate functionT = null;
+ protected JCO.Function function = null;
+ protected JCO.ParameterList importParameterList = null;
+ protected JCO.ParameterList tablesParameterList = null;
+ protected JCO.Record theRecord = null;
+ protected JCO.Field fillMe = null;
+
+ protected AttributesImpl attributes = new AttributesImpl();
+ protected int startcount = 0;
+ protected boolean error = false;
+ protected String backend = null;
+ protected String default_backend = null;
+ protected String streamer = null;
+ protected HashMap tags = new HashMap();
+
+ public void setup(SourceResolver resolver, Map objectModel,
+ String source, Parameters parameters)
+ throws SAXException {
+
+ try {
+ backend = parameters.getParameter("system");
+ }
+ catch (Exception x) {
+ if ( null == backend ) {
+ getLogger().warn("No backend configured! Try to use configuration");
+ backend = default_backend;
+ }
+ }
+ }
+
+ public void compose(ComponentManager manager) {
+
+ this.manager = manager;
+ initTags();
+ }
+
+ public void configure(final Configuration configuration)
+ throws ConfigurationException {
+
+ this.default_backend = configuration.getChild("system").getValue(null);
+ }
+
+ public void recycle() {
+ this.connection = null;
+ this.repository = null;
+ this.functionT = null;
+ this.function = null;
+ this.importParameterList = null;
+ this.tablesParameterList = null;
+ this.theRecord = null;
+ this.backend = null;
+ this.streamer = null;
+ this.error = false;
+ this.startcount = 0;
+ }
+
+ /** Free all ressources */
+ public void dispose() {
+ this.recycle();
+ this.manager = null;
+ this.attributes = null;
+ this.web3source = null;
+ this.tags = null;
+ }
+
+ /**
+ * Receive notification of the beginning of a document.
+ */
+ public void startDocument()
+ throws SAXException {
+
+ if ( null != super.contentHandler ) {
+ super.contentHandler.startDocument();
+ }
+ }
+
+ /**
+ * Receive notification of the end of a document.
+ */
+ public void endDocument()
+ throws SAXException {
+
+ if ( null != super.contentHandler) {
+ super.contentHandler.endDocument();
+ }
+ }
+
+ /**
+ * Receive notification of the beginning of an element.
+ */
+ public void startElement(String uri, String loc, String raw, Attributes a)
+ throws SAXException {
+
+ if ( Web3.URI.equals( uri ) && !this.error ) {
+ switch ( Integer.parseInt( (String) this.tags.get( loc ))) {
+ case INCLUDE_ELEM:
+ ComponentSelector r3sc = null;
+ try {
+ r3sc = (ComponentSelector)
+ this.manager.lookup ( Web3DataSource.ROLE + "Selector");
+ this.web3source = (Web3DataSource) r3sc.select( this.backend );
+ this.connection = this.web3source.getWeb3Client();
+ this.repository = (JCO.Repository) this.connection.getRepository();
+ this.functionT = this.repository.getFunctionTemplate(
+ a.getValue( Web3.INCLUDE_NAME_ATTR ) );
+ this.streamer = (null == a.getValue( Web3.INCLUDE_CLASS_ATTR )) ?
+ "default" : a.getValue( Web3.INCLUDE_CLASS_ATTR );
+ this.function = this.functionT.getFunction();
+ }
+ catch (Exception ex) {
+ String error = "Problems getting client for backend: '"
+ + this.backend + "'";
+ getLogger().error (error, ex);
+ super.contentHandler.startElement(uri, Web3.PROCESSING_X_ELEM,
+ Web3.PROCESSING_X_ELEM, a);
+ super.contentHandler.characters(error.toCharArray(), 0,
+ error.length());
+ super.contentHandler.endElement(uri, Web3.PROCESSING_X_ELEM,
+ Web3.PROCESSING_X_ELEM);
+ this.error = true;
+ }
+ finally {
+ this.manager.release ( r3sc );
+ }
+ break;
+ case IMPORT_ELEM:
+ this.importParameterList = this.function.getImportParameterList();
+ this.theRecord = this.importParameterList;
+ break;
+ case FIELD_ELEM:
+ this.fillMe = this.theRecord.getField(
+ a.getValue( Web3.FIELD_NAME_ATTR ));
+ break;
+ case STRUCTURE_ELEM:
+ this.theRecord = this.importParameterList.getStructure(
+ a.getValue( Web3.STRUCTURE_NAME_ATTR ));
+ break;
+ case TABLES_ELEM:
+ this.tablesParameterList = this.function.getTableParameterList();
+ break;
+ case TABLE_ELEM:
+ this.theRecord = this.tablesParameterList.getTable(
+ a.getValue( Web3.TABLE_NAME_ATTR ));
+ break;
+ case ROW_ELEM:
+ if (null != this.theRecord) {
+ try {
+ JCO.Table tmpTable = (JCO.Table) this.theRecord;
+ tmpTable.appendRow();
+ }
+ catch (ClassCastException x) {
+ getLogger().error("Not a table! " + x.getMessage(), x);
+ }
+ }
+ break;
+ default:
+ getLogger().error("Invalid element " + loc);
+ }
+ }
+ else if (super.contentHandler != null) {
+ super.contentHandler.startElement(uri, loc, raw, a);
+ }
+ }
+
+ /**
+ * Receive notification of the end of an element.
+ */
+ public void characters(char c[], int start, int len)
+ throws SAXException {
+ String theValue = new String(c, start, len).trim();
+ if ( null != this.fillMe ) {
+ if ( "".equals( theValue )) {
+ theValue = null;
+ }
+ try {
+ this.fillMe.setValue( theValue );
+ this.fillMe = null;
+ if( getLogger().isDebugEnabled() ) {
+ getLogger().debug("set value = " + theValue);
+ }
+ }
+ catch (JCO.ConversionException x) {
+ getLogger().error( x.getMessage(), x);
+ }
+ }
+ else {
+ if (super.contentHandler != null) {
+ super.contentHandler.characters(c, start, len);
+ }
+ }
+ }
+
+ /**
+ * Receive notification of the end of an element.
+ */
+ public void endElement(String uri, String loc, String raw)
+ throws SAXException
+ {
+ if ( Web3.URI.equals(uri) && !this.error ) {
+ switch ( Integer.parseInt( (String) this.tags.get( loc ))) {
+ case INCLUDE_ELEM:
+ Web3Streamer w3s = null;
+ ComponentSelector streamerSelector = null;
+ try {
+ this.connection.execute( this.function );
+ streamerSelector =
+ (ComponentSelector)
+ this.manager.lookup( Web3Streamer.ROLE + "Selector" );
+ w3s = (Web3Streamer) streamerSelector.select( this.streamer );
+ w3s.stream( this.function, super.contentHandler );
+ }
+ catch (Exception x) {
+ this.attributes.clear();
+ super.contentHandler.startElement(uri, Web3.ABAP_EXCEPTION_ELEM,
+ Web3.ABAP_EXCEPTION_ELEM, this.attributes);
+ super.contentHandler.characters(x.getMessage ().toCharArray(),
+ 0, x.getMessage ().length());
+ super.contentHandler.endElement(uri, Web3.ABAP_EXCEPTION_ELEM,
+ Web3.ABAP_EXCEPTION_ELEM);
+ getLogger().error(x.getMessage(), x);
+ }
+ finally {
+ this.web3source.releaseWeb3Client( this.connection );
+ if ( null != streamerSelector ) {
+ streamerSelector.release( w3s );
+ }
+ manager.release( streamerSelector );
+ }
+ this.connection = null;
+ this.repository = null;
+ this.functionT = null;
+ this.function = null;
+ this.importParameterList = null;
+ this.tablesParameterList = null;
+ this.theRecord = null;
+ break;
+ case STRUCTURE_ELEM:
+ this.theRecord = this.importParameterList;
+ break;
+ }
+ }
+ else if (super.contentHandler != null) {
+ super.contentHandler.endElement(uri,loc,raw);
+ }
+ }
+
+ protected final static int INCLUDE_ELEM = 1;
+ protected final static int IMPORT_ELEM = 2;
+ protected final static int EXPORT_ELEM = 3;
+ protected final static int TABLES_ELEM = 4;
+ protected final static int FIELD_ELEM = 5;
+ protected final static int ROW_ELEM = 6;
+ protected final static int STRUCTURE_ELEM = 7;
+ protected final static int TABLE_ELEM = 8;
+
+ protected void initTags() {
+
+ this.tags.put( Web3.INCLUDE_ELEM, "1" );
+ this.tags.put( Web3.IMPORT_ELEM, "2" );
+ this.tags.put( Web3.EXPORT_ELEM, "3" );
+ this.tags.put( Web3.TABLES_ELEM, "4" );
+ this.tags.put( Web3.FIELD_ELEM, "5" );
+ this.tags.put( Web3.ROW_ELEM, "6" );
+ this.tags.put( Web3.STRUCTURE_ELEM, "7" );
+ this.tags.put( Web3.TABLE_ELEM, "8" );
+ }
+}
+
1.2 +72 -72 cocoon-2.1/src/blocks/web3/mocks/com/sap/mw/jco/IFunctionTemplate.java
Index: IFunctionTemplate.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/mocks/com/sap/mw/jco/IFunctionTemplate.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- IFunctionTemplate.java 9 Mar 2003 00:06:40 -0000 1.1
+++ IFunctionTemplate.java 6 May 2003 14:13:01 -0000 1.2
@@ -1,72 +1,72 @@
-/*
-
- ============================================================================
- The Apache Software License, Version 1.1
- ============================================================================
-
- Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without modifica-
- tion, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. The end-user documentation included with the redistribution, if any, must
- include the following acknowledgment: "This product includes software
- developed by the Apache Software Foundation (http://www.apache.org/)."
- Alternately, this acknowledgment may appear in the software itself, if
- and wherever such third-party acknowledgments normally appear.
-
- 4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
- used to endorse or promote products derived from this software without
- prior written permission. For written permission, please contact
- apache@apache.org.
-
- 5. Products derived from this software may not be called "Apache", nor may
- "Apache" appear in their name, without prior written permission of the
- Apache Software Foundation.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- This software consists of voluntary contributions made by many individuals
- on behalf of the Apache Software Foundation and was originally created by
- Stefano Mazzocchi <st...@apache.org>. For more information on the Apache
- Software Foundation, please see <http://www.apache.org/>.
-
-*/
-package com.sap.mw.jco;
-
-/**
- * **********************************************************************
- * * W A R N I N G *
- * **********************************************************************
- *
- * This is a mock object of the class, not the actual class.
- * It's used to compile the code in absence of the actual class.
- *
- * This clsss is created by hand, not automatically.
- *
- * **********************************************************************
- *
- * @version CVS $Id$
- */
-
-public interface IFunctionTemplate {
-
- public JCO.Function getFunction();
-
-}
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
+ used to endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ apache@apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation and was originally created by
+ Stefano Mazzocchi <st...@apache.org>. For more information on the Apache
+ Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package com.sap.mw.jco;
+
+/**
+ * **********************************************************************
+ * * W A R N I N G *
+ * **********************************************************************
+ *
+ * This is a mock object of the class, not the actual class.
+ * It's used to compile the code in absence of the actual class.
+ *
+ * This clsss is created by hand, not automatically.
+ *
+ * **********************************************************************
+ *
+ * @version CVS $Id$
+ */
+
+public interface IFunctionTemplate {
+
+ public JCO.Function getFunction();
+
+}
1.2 +71 -71 cocoon-2.1/src/blocks/web3/mocks/com/sap/mw/jco/IRepository.java
Index: IRepository.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/mocks/com/sap/mw/jco/IRepository.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- IRepository.java 9 Mar 2003 00:06:40 -0000 1.1
+++ IRepository.java 6 May 2003 14:13:01 -0000 1.2
@@ -1,71 +1,71 @@
-/*
-
- ============================================================================
- The Apache Software License, Version 1.1
- ============================================================================
-
- Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without modifica-
- tion, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. The end-user documentation included with the redistribution, if any, must
- include the following acknowledgment: "This product includes software
- developed by the Apache Software Foundation (http://www.apache.org/)."
- Alternately, this acknowledgment may appear in the software itself, if
- and wherever such third-party acknowledgments normally appear.
-
- 4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
- used to endorse or promote products derived from this software without
- prior written permission. For written permission, please contact
- apache@apache.org.
-
- 5. Products derived from this software may not be called "Apache", nor may
- "Apache" appear in their name, without prior written permission of the
- Apache Software Foundation.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- This software consists of voluntary contributions made by many individuals
- on behalf of the Apache Software Foundation and was originally created by
- Stefano Mazzocchi <st...@apache.org>. For more information on the Apache
- Software Foundation, please see <http://www.apache.org/>.
-
-*/
-package com.sap.mw.jco;
-
-/**
- * **********************************************************************
- * * W A R N I N G *
- * **********************************************************************
- *
- * This is a mock object of the class, not the actual class.
- * It's used to compile the code in absence of the actual class.
- *
- * This clsss is created by hand, not automatically.
- *
- * **********************************************************************
- *
- * @version CVS $Id$
- */
-
-public interface IRepository {
-
-
-}
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
+ used to endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ apache@apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation and was originally created by
+ Stefano Mazzocchi <st...@apache.org>. For more information on the Apache
+ Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package com.sap.mw.jco;
+
+/**
+ * **********************************************************************
+ * * W A R N I N G *
+ * **********************************************************************
+ *
+ * This is a mock object of the class, not the actual class.
+ * It's used to compile the code in absence of the actual class.
+ *
+ * This clsss is created by hand, not automatically.
+ *
+ * **********************************************************************
+ *
+ * @version CVS $Id$
+ */
+
+public interface IRepository {
+
+
+}
1.2 +397 -397 cocoon-2.1/src/blocks/web3/mocks/com/sap/mw/jco/JCO.java
Index: JCO.java
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/mocks/com/sap/mw/jco/JCO.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- JCO.java 9 Mar 2003 00:06:40 -0000 1.1
+++ JCO.java 6 May 2003 14:13:01 -0000 1.2
@@ -1,397 +1,397 @@
-/*
-
- ============================================================================
- The Apache Software License, Version 1.1
- ============================================================================
-
- Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without modifica-
- tion, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. The end-user documentation included with the redistribution, if any, must
- include the following acknowledgment: "This product includes software
- developed by the Apache Software Foundation (http://www.apache.org/)."
- Alternately, this acknowledgment may appear in the software itself, if
- and wherever such third-party acknowledgments normally appear.
-
- 4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
- used to endorse or promote products derived from this software without
- prior written permission. For written permission, please contact
- apache@apache.org.
-
- 5. Products derived from this software may not be called "Apache", nor may
- "Apache" appear in their name, without prior written permission of the
- Apache Software Foundation.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- This software consists of voluntary contributions made by many individuals
- on behalf of the Apache Software Foundation and was originally created by
- Stefano Mazzocchi <st...@apache.org>. For more information on the Apache
- Software Foundation, please see <http://www.apache.org/>.
-
-*/
-package com.sap.mw.jco;
-
-import java.util.Properties;
-import java.net.URL;
-
-/**
- * **********************************************************************
- * * W A R N I N G *
- * **********************************************************************
- *
- * This is a mock object of the class, not the actual class.
- * It's used to compile the code in absence of the actual class.
- *
- * This clsss is created by hand, not automatically.
- *
- * **********************************************************************
- *
- * @version CVS $Id$
- */
-
-public class JCO {
-
- public static void addClientPool(String SID, int poolsize, Properties properties) {
- }
-
- public static void setTraceLevel(int level) {
- }
-
- public static JCO.Client getClient(String key) {
- return null;
- }
-
- public static void releaseClient(JCO.Client client) {
- }
-
- public static void removeClientPool(String key) {
- }
-
- public static JCO.PoolManager getClientPoolManager() {
- return null;
- }
-
- public static class PoolManager {
-
- public JCO.Pool getPool(String name) {
- return null;
- }
- }
-
- public static class Pool {
-
- public final void setTrace(boolean trace) {
- }
- }
-
- public static class Function {
-
- public JCO.ParameterList getImportParameterList() {
- return null;
- }
-
- public JCO.ParameterList getExportParameterList() {
- return null;
- }
-
- public JCO.ParameterList getTableParameterList() {
- return null;
- }
-
- public String getName() {
- return null;
- }
- }
-
- public static class ParameterList extends Record {
- }
-
- public static class Attributes {
- }
-
- public static class Throughput {
- }
-
- public static class Repository implements IRepository {
- public Repository (String s, JCO.Client client) {
- }
-
- public IFunctionTemplate getFunctionTemplate(String name) {
- return null;
- }
- }
-
- public static class Record {
-
- public String getName(int index) {
- return null;
- }
-
- public final JCO.Field getField(int index) {
- return null;
- }
-
- public final JCO.Field getField(String name) {
- return null;
- }
-
- public String getString(int index) {
- return null;
- }
-
- public JCO.Structure getStructure(int index) {
- return null;
- }
-
- public JCO.Structure getStructure(String name) {
- return null;
- }
-
- public JCO.Table getTable(int index) {
- return null;
- }
-
- public JCO.Table getTable(String name) {
- return null;
- }
-
- public int getFieldCount() {
- return -1;
- }
- }
-
- public static class Field {
-
- public boolean isStructure() {
- return false;
- }
-
- public void setValue(String value) throws JCO.ConversionException {
- }
- }
-
- public static class Table extends Record {
-
- public void appendRow() {
- }
-
- public final int getNumRows() {
- return -1;
- }
-
- public void setRow(int pos) {
- }
- }
-
- public static class Structure extends Record {
- }
-
- public static class AbapException extends Throwable {
-
- public final String getKey() {
- return null;
- }
- }
-
- public static class ConversionException extends Throwable {
- }
-
- public static class Client {
-
- public void abort(String message) {
- }
-
- public void connect() {
- }
-
- public Object clone() {
- return null;
- }
-
- public void disconnect() {
- }
-
- public void execute(JCO.Function function) {
- }
-
- public void execute(String name,
- JCO.ParameterList input,
- JCO.ParameterList output) {
- }
-
- public void execute(String name,
- JCO.ParameterList input,
- JCO.ParameterList output,
- JCO.ParameterList tables) {
- }
-
- public void execute(JCO.Function function,
- java.lang.String tid) {
- }
-
- public void execute(JCO.Function function,
- String tid,
- String queue) {
- }
-
- public void execute(JCO.Function function,
- String tid,
- String queue,
- int pos) {
- }
-
- public void execute(String name,
- JCO.ParameterList input,
- JCO.ParameterList tables,
- String tid) {
- }
-
- public void execute(String name,
- JCO.ParameterList input,
- JCO.ParameterList tables,
- String tid,
- String queue) {
- }
-
- public void execute(String name,
- JCO.ParameterList input,
- JCO.ParameterList tables,
- String tid,
- String queue,
- int pos) {
- }
-
- public String createTID() {
- return null;
- }
-
- public void confirmTID(String tid) {
- }
-
- public final void ping() {
- }
-
- public boolean getAbapDebug() {
- return false;
- }
-
- public String getASHost() {
- return null;
- }
-
- public JCO.Attributes getAttributes() {
- return null;
- }
-
- public String getClient() {
- return null;
- }
-
- public String getGroup() {
- return null;
- }
-
- public String getGWHost() {
- return null;
- }
-
- public String getGWServ() {
- return null;
- }
-
- public String getLanguage() {
- return null;
- }
-
- public String getMSHost() {
- return null;
- }
-
- public String[][] getPropertyInfo() {
- return null;
- }
-
- public int getSapGui() {
- return -1;
- }
-
- public byte getState() {
- return 0;
- }
-
- public String getSystemID() {
- return null;
- }
-
- public String getSystemNumber() {
- return null;
- }
-
- public String getTPName() {
- return null;
- }
-
- public boolean getTrace() {
- return false;
- }
-
- public URL getURL() {
- return null;
- }
-
- public String getUser() {
- return null;
- }
-
- public boolean isAlive() {
- return false;
- }
-
- public void setAbapDebug(boolean debug) {
- }
-
- public void setProperty(String key, String value) {
- }
-
- public void setSapGui(int use_sapgui) {
- }
-
- public void setTrace(boolean trace) {
- }
-
- public final Properties getProperties() {
- return null;
- }
-
- public final String getProperty(String key) {
- return null;
- }
-
- public boolean isValid() {
- return false;
- }
-
- public void setThroughput(JCO.Throughput throughput) {
- }
- }
-
-}
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
+ used to endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ apache@apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation and was originally created by
+ Stefano Mazzocchi <st...@apache.org>. For more information on the Apache
+ Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package com.sap.mw.jco;
+
+import java.util.Properties;
+import java.net.URL;
+
+/**
+ * **********************************************************************
+ * * W A R N I N G *
+ * **********************************************************************
+ *
+ * This is a mock object of the class, not the actual class.
+ * It's used to compile the code in absence of the actual class.
+ *
+ * This clsss is created by hand, not automatically.
+ *
+ * **********************************************************************
+ *
+ * @version CVS $Id$
+ */
+
+public class JCO {
+
+ public static void addClientPool(String SID, int poolsize, Properties properties) {
+ }
+
+ public static void setTraceLevel(int level) {
+ }
+
+ public static JCO.Client getClient(String key) {
+ return null;
+ }
+
+ public static void releaseClient(JCO.Client client) {
+ }
+
+ public static void removeClientPool(String key) {
+ }
+
+ public static JCO.PoolManager getClientPoolManager() {
+ return null;
+ }
+
+ public static class PoolManager {
+
+ public JCO.Pool getPool(String name) {
+ return null;
+ }
+ }
+
+ public static class Pool {
+
+ public final void setTrace(boolean trace) {
+ }
+ }
+
+ public static class Function {
+
+ public JCO.ParameterList getImportParameterList() {
+ return null;
+ }
+
+ public JCO.ParameterList getExportParameterList() {
+ return null;
+ }
+
+ public JCO.ParameterList getTableParameterList() {
+ return null;
+ }
+
+ public String getName() {
+ return null;
+ }
+ }
+
+ public static class ParameterList extends Record {
+ }
+
+ public static class Attributes {
+ }
+
+ public static class Throughput {
+ }
+
+ public static class Repository implements IRepository {
+ public Repository (String s, JCO.Client client) {
+ }
+
+ public IFunctionTemplate getFunctionTemplate(String name) {
+ return null;
+ }
+ }
+
+ public static class Record {
+
+ public String getName(int index) {
+ return null;
+ }
+
+ public final JCO.Field getField(int index) {
+ return null;
+ }
+
+ public final JCO.Field getField(String name) {
+ return null;
+ }
+
+ public String getString(int index) {
+ return null;
+ }
+
+ public JCO.Structure getStructure(int index) {
+ return null;
+ }
+
+ public JCO.Structure getStructure(String name) {
+ return null;
+ }
+
+ public JCO.Table getTable(int index) {
+ return null;
+ }
+
+ public JCO.Table getTable(String name) {
+ return null;
+ }
+
+ public int getFieldCount() {
+ return -1;
+ }
+ }
+
+ public static class Field {
+
+ public boolean isStructure() {
+ return false;
+ }
+
+ public void setValue(String value) throws JCO.ConversionException {
+ }
+ }
+
+ public static class Table extends Record {
+
+ public void appendRow() {
+ }
+
+ public final int getNumRows() {
+ return -1;
+ }
+
+ public void setRow(int pos) {
+ }
+ }
+
+ public static class Structure extends Record {
+ }
+
+ public static class AbapException extends Throwable {
+
+ public final String getKey() {
+ return null;
+ }
+ }
+
+ public static class ConversionException extends Throwable {
+ }
+
+ public static class Client {
+
+ public void abort(String message) {
+ }
+
+ public void connect() {
+ }
+
+ public Object clone() {
+ return null;
+ }
+
+ public void disconnect() {
+ }
+
+ public void execute(JCO.Function function) {
+ }
+
+ public void execute(String name,
+ JCO.ParameterList input,
+ JCO.ParameterList output) {
+ }
+
+ public void execute(String name,
+ JCO.ParameterList input,
+ JCO.ParameterList output,
+ JCO.ParameterList tables) {
+ }
+
+ public void execute(JCO.Function function,
+ java.lang.String tid) {
+ }
+
+ public void execute(JCO.Function function,
+ String tid,
+ String queue) {
+ }
+
+ public void execute(JCO.Function function,
+ String tid,
+ String queue,
+ int pos) {
+ }
+
+ public void execute(String name,
+ JCO.ParameterList input,
+ JCO.ParameterList tables,
+ String tid) {
+ }
+
+ public void execute(String name,
+ JCO.ParameterList input,
+ JCO.ParameterList tables,
+ String tid,
+ String queue) {
+ }
+
+ public void execute(String name,
+ JCO.ParameterList input,
+ JCO.ParameterList tables,
+ String tid,
+ String queue,
+ int pos) {
+ }
+
+ public String createTID() {
+ return null;
+ }
+
+ public void confirmTID(String tid) {
+ }
+
+ public final void ping() {
+ }
+
+ public boolean getAbapDebug() {
+ return false;
+ }
+
+ public String getASHost() {
+ return null;
+ }
+
+ public JCO.Attributes getAttributes() {
+ return null;
+ }
+
+ public String getClient() {
+ return null;
+ }
+
+ public String getGroup() {
+ return null;
+ }
+
+ public String getGWHost() {
+ return null;
+ }
+
+ public String getGWServ() {
+ return null;
+ }
+
+ public String getLanguage() {
+ return null;
+ }
+
+ public String getMSHost() {
+ return null;
+ }
+
+ public String[][] getPropertyInfo() {
+ return null;
+ }
+
+ public int getSapGui() {
+ return -1;
+ }
+
+ public byte getState() {
+ return 0;
+ }
+
+ public String getSystemID() {
+ return null;
+ }
+
+ public String getSystemNumber() {
+ return null;
+ }
+
+ public String getTPName() {
+ return null;
+ }
+
+ public boolean getTrace() {
+ return false;
+ }
+
+ public URL getURL() {
+ return null;
+ }
+
+ public String getUser() {
+ return null;
+ }
+
+ public boolean isAlive() {
+ return false;
+ }
+
+ public void setAbapDebug(boolean debug) {
+ }
+
+ public void setProperty(String key, String value) {
+ }
+
+ public void setSapGui(int use_sapgui) {
+ }
+
+ public void setTrace(boolean trace) {
+ }
+
+ public final Properties getProperties() {
+ return null;
+ }
+
+ public final String getProperty(String key) {
+ return null;
+ }
+
+ public boolean isValid() {
+ return false;
+ }
+
+ public void setThroughput(JCO.Throughput throughput) {
+ }
+ }
+
+}
1.2 +21 -20 cocoon-2.1/src/blocks/web3/samples/dtd/rfc-in.dtd
Index: rfc-in.dtd
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/samples/dtd/rfc-in.dtd,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- rfc-in.dtd 9 Mar 2003 00:06:41 -0000 1.1
+++ rfc-in.dtd 6 May 2003 14:13:01 -0000 1.2
@@ -1,20 +1,21 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!ELEMENT include (import, tables*)>
-<!ATTLIST include
- name CDATA #REQUIRED
- producer CDATA #IMPLIED
->
-<!ELEMENT import (structure*, field*)>
-<!ELEMENT structure (field+)>
-<!ATTLIST structure
- name CDATA #REQUIRED
->
-<!ELEMENT field (#PCDATA)>
-<!ATTLIST field
- name CDATA #REQUIRED
->
-<!ELEMENT tables (table)*>
-<!ELEMENT table (structure+)>
-<!ATTLIST table
- name CDATA #REQUIRED
->
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!ELEMENT include (import, tables*)>
+<!ATTLIST include
+ name CDATA #REQUIRED
+ producer CDATA #IMPLIED
+>
+<!ELEMENT import (structure*, field*)>
+<!ELEMENT structure (field+)>
+<!ATTLIST structure
+ name CDATA #REQUIRED
+>
+<!ELEMENT field (#PCDATA)>
+<!ATTLIST field
+ name CDATA #REQUIRED
+>
+<!ELEMENT tables (table)*>
+<!ELEMENT table (structure+)>
+<!ATTLIST table
+ name CDATA #REQUIRED
+>
1.2 +21 -20 cocoon-2.1/src/blocks/web3/samples/dtd/rfc-out.dtd
Index: rfc-out.dtd
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/samples/dtd/rfc-out.dtd,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- rfc-out.dtd 9 Mar 2003 00:06:42 -0000 1.1
+++ rfc-out.dtd 6 May 2003 14:13:01 -0000 1.2
@@ -1,20 +1,21 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!ELEMENT include (export+, tables*)>
-<!ATTLIST include
- name CDATA #REQUIRED
->
-<!ELEMENT import (structure*, field*)>
-<!ELEMENT export (structure*, field*)>
-<!ELEMENT structure (field+)>
-<!ATTLIST structure
- name CDATA #REQUIRED
->
-<!ELEMENT field (#PCDATA)>
-<!ATTLIST field
- name CDATA #REQUIRED
->
-<!ELEMENT tables (table)*>
-<!ELEMENT table (structure+)>
-<!ATTLIST table
- name CDATA #REQUIRED
->
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!ELEMENT include (export+, tables*)>
+<!ATTLIST include
+ name CDATA #REQUIRED
+>
+<!ELEMENT import (structure*, field*)>
+<!ELEMENT export (structure*, field*)>
+<!ELEMENT structure (field+)>
+<!ATTLIST structure
+ name CDATA #REQUIRED
+>
+<!ELEMENT field (#PCDATA)>
+<!ATTLIST field
+ name CDATA #REQUIRED
+>
+<!ELEMENT tables (table)*>
+<!ELEMENT table (structure+)>
+<!ATTLIST table
+ name CDATA #REQUIRED
+>
1.3 +17 -15 cocoon-2.1/src/blocks/web3/samples/stylesheets/pics2view.xsl
Index: pics2view.xsl
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/samples/stylesheets/pics2view.xsl,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- pics2view.xsl 14 Mar 2003 04:13:03 -0000 1.2
+++ pics2view.xsl 6 May 2003 14:13:01 -0000 1.3
@@ -1,15 +1,17 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
- Author: Michael Gerzabek, michael.gerzabek@at.efp.cc, EFP Consulting �sterreich
- @version CVS $Revision$ $Date$
--->
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rfc="http://efp.cc/Web3-Rfc/1.0">
- <xsl:template match="@src">
- <xsl:attribute name="src">../../docs/<xsl:value-of select="."/></xsl:attribute>
- </xsl:template>
- <xsl:template match="@*|*|text()|processing-instruction()" priority="-1">
- <xsl:copy>
- <xsl:apply-templates select="@*|*|text()|processing-instruction()"/>
- </xsl:copy>
- </xsl:template>
-</xsl:stylesheet>
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!--
+ Author: Michael Gerzabek, michael.gerzabek@at.efp.cc, EFP Consulting �sterreich
+ @version CVS $Id$
+-->
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rfc="http://efp.cc/Web3-Rfc/1.0">
+ <xsl:template match="@src">
+ <xsl:attribute name="src">../../docs/<xsl:value-of select="."/></xsl:attribute>
+ </xsl:template>
+ <xsl:template match="@*|*|text()|processing-instruction()" priority="-1">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|*|text()|processing-instruction()"/>
+ </xsl:copy>
+ </xsl:template>
+</xsl:stylesheet>
1.2 +21 -20 cocoon-2.1/src/blocks/web3/samples/stylesheets/pretty.xsl
Index: pretty.xsl
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/samples/stylesheets/pretty.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- pretty.xsl 9 Mar 2003 00:06:43 -0000 1.1
+++ pretty.xsl 6 May 2003 14:13:01 -0000 1.2
@@ -1,20 +1,21 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<xsl:stylesheet version="1.0"
-xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <xsl:output method="xml" version="1.0" encoding="ISO-8859-1" indent="yes"/>
- <xsl:strip-space elements="*"/>
- <xsl:template match="*">
- <!-- remove element prefix (if any) -->
- <xsl:element name="{local-name()}">
- <!-- process attributes -->
- <xsl:for-each select="@*">
- <!-- remove attribute prefix (if any) -->
- <xsl:attribute name="{local-name()}">
- <xsl:value-of select="."/>
- </xsl:attribute>
- </xsl:for-each>
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:template>
-</xsl:stylesheet>
-
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <xsl:output method="xml" version="1.0" encoding="ISO-8859-1" indent="yes"/>
+ <xsl:strip-space elements="*"/>
+ <xsl:template match="*">
+ <!-- remove element prefix (if any) -->
+ <xsl:element name="{local-name()}">
+ <!-- process attributes -->
+ <xsl:for-each select="@*">
+ <!-- remove attribute prefix (if any) -->
+ <xsl:attribute name="{local-name()}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:for-each>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+</xsl:stylesheet>
+
1.2 +35 -33 cocoon-2.1/src/blocks/web3/samples/stylesheets/proper.xsl
Index: proper.xsl
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/samples/stylesheets/proper.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- proper.xsl 9 Mar 2003 00:06:43 -0000 1.1
+++ proper.xsl 6 May 2003 14:13:01 -0000 1.2
@@ -1,33 +1,35 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
- Author: Michael Gerzabek, michael.gerzabek@at.efp.cc, EFP Consulting �sterreich
- @version CVS $Revision$ $Date$
--->
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rfc="http://efp.cc/Web3-Rfc/1.0">
- <xsl:template match="rfc:export">
- <export>
- <xsl:apply-templates/>
- </export>
- </xsl:template>
- <xsl:template match="rfc:tables">
- <tables>
- <xsl:apply-templates/>
- </tables>
- </xsl:template>
- <xsl:template match="rfc:row">
- <row>
- <xsl:attribute name="id"><xsl:number/></xsl:attribute>
- <xsl:apply-templates/>
- </row>
- </xsl:template>
- <xsl:template match="rfc:*">
- <xsl:element name="{@rfc:name}">
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:template>
- <xsl:template match="@*|*|text()|processing-instruction()" priority="-1">
- <xsl:copy>
- <xsl:apply-templates select="@*|*|text()|processing-instruction()"/>
- </xsl:copy>
- </xsl:template>
-</xsl:stylesheet>
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!--
+ Author: Michael Gerzabek, michael.gerzabek@at.efp.cc, EFP Consulting �sterreich
+ @version CVS $Id$
+-->
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rfc="http://efp.cc/Web3-Rfc/1.0">
+ <xsl:template match="rfc:export">
+ <export>
+ <xsl:apply-templates/>
+ </export>
+ </xsl:template>
+ <xsl:template match="rfc:tables">
+ <tables>
+ <xsl:apply-templates/>
+ </tables>
+ </xsl:template>
+ <xsl:template match="rfc:row">
+ <row>
+ <xsl:attribute name="id"><xsl:number/></xsl:attribute>
+ <xsl:apply-templates/>
+ </row>
+ </xsl:template>
+ <xsl:template match="rfc:*">
+ <xsl:element name="{@rfc:name}">
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="@*|*|text()|processing-instruction()" priority="-1">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|*|text()|processing-instruction()"/>
+ </xsl:copy>
+ </xsl:template>
+</xsl:stylesheet>
1.2 +91 -88 cocoon-2.1/src/blocks/web3/samples/stylesheets/rfc2html.xsl
Index: rfc2html.xsl
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/web3/samples/stylesheets/rfc2html.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- rfc2html.xsl 9 Mar 2003 00:06:43 -0000 1.1
+++ rfc2html.xsl 6 May 2003 14:13:01 -0000 1.2
@@ -1,88 +1,91 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rfc="http://efp.cc/Web3-Rfc/1.0">
-
- <xsl:template match="/">
- <html>
- <head>
- <title>Web3</title>
- </head>
- <body>
- <xsl:apply-templates/>
- </body>
- </html>
- </xsl:template>
-
- <xsl:template match="rfc:tables">
- <xsl:if test="count(rfc:table) > 0">
- <h1>tables:</h1>
- <xsl:apply-templates/>
- </xsl:if>
- </xsl:template>
-
- <xsl:template match="rfc:table">
- <h2>table name: <xsl:value-of select="@*[name(.)='name']"/>
- </h2>
- <h3>
- <xsl:value-of select="count(rfc:row)"/> Zeilen
- </h3>
- <xsl:if test="count(rfc:row) > 0">
- <table border="1">
- <tr>
- <xsl:for-each select="rfc:row[1]/rfc:field">
- <th>
- <xsl:value-of select="@*[name(.)='name']"/>
- </th>
- </xsl:for-each>
- </tr>
- <xsl:for-each select="rfc:row">
- <tr>
- <xsl:for-each select="rfc:field">
- <td>
- <xsl:value-of select="."/>
- </td>
- </xsl:for-each>
- </tr>
- </xsl:for-each>
- </table>
- </xsl:if>
- </xsl:template>
-
- <xsl:template match="rfc:export">
- <xsl:if test="count(rfc:field) > 0">
- <h1>fields:</h1>
- <table border="1">
- <tr>
- <th>field name</th>
- <th>value</th>
- </tr>
- <xsl:apply-templates select="rfc:field"/>
- </table>
- </xsl:if>
- <xsl:if test="count(rfc:structure) > 0">
- <h1>structures:</h1>
- <xsl:for-each select="rfc:structure">
- <h2>structure name: <xsl:value-of select="@*[name(.)='name']"/>
- </h2>
- <table border="1">
- <tr>
- <th>field name</th>
- <th>value</th>
- </tr>
- <xsl:apply-templates select="rfc:field"/>
- </table>
- </xsl:for-each>
- </xsl:if>
- </xsl:template>
-
- <xsl:template match="rfc:field">
- <tr>
- <td>
- <xsl:value-of select="@*[name(.)='name']"/>
- </td>
- <td>
- <xsl:value-of select="."/>
- </td>
- </tr>
- </xsl:template>
-
-</xsl:stylesheet>
+<?xml version="1.0" encoding="iso-8859-1"?>
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:rfc="http://efp.cc/Web3-Rfc/1.0">
+
+ <xsl:template match="/">
+ <html>
+ <head>
+ <title>Web3</title>
+ </head>
+ <body>
+ <xsl:apply-templates/>
+ </body>
+ </html>
+ </xsl:template>
+
+ <xsl:template match="rfc:tables">
+ <xsl:if test="count(rfc:table) > 0">
+ <h1>tables:</h1>
+ <xsl:apply-templates/>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="rfc:table">
+ <h2>table name: <xsl:value-of select="@*[name(.)='name']"/>
+ </h2>
+ <h3>
+ <xsl:value-of select="count(rfc:row)"/> Zeilen
+ </h3>
+ <xsl:if test="count(rfc:row) > 0">
+ <table border="1">
+ <tr>
+ <xsl:for-each select="rfc:row[1]/rfc:field">
+ <th>
+ <xsl:value-of select="@*[name(.)='name']"/>
+ </th>
+ </xsl:for-each>
+ </tr>
+ <xsl:for-each select="rfc:row">
+ <tr>
+ <xsl:for-each select="rfc:field">
+ <td>
+ <xsl:value-of select="."/>
+ </td>
+ </xsl:for-each>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="rfc:export">
+ <xsl:if test="count(rfc:field) > 0">
+ <h1>fields:</h1>
+ <table border="1">
+ <tr>
+ <th>field name</th>
+ <th>value</th>
+ </tr>
+ <xsl:apply-templates select="rfc:field"/>
+ </table>
+ </xsl:if>
+ <xsl:if test="count(rfc:structure) > 0">
+ <h1>structures:</h1>
+ <xsl:for-each select="rfc:structure">
+ <h2>structure name: <xsl:value-of select="@*[name(.)='name']"/>
+ </h2>
+ <table border="1">
+ <tr>
+ <th>field name</th>
+ <th>value</th>
+ </tr>
+ <xsl:apply-templates select="rfc:field"/>
+ </table>
+ </xsl:for-each>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="rfc:field">
+ <tr>
+ <td>
+ <xsl:value-of select="@*[name(.)='name']"/>
+ </td>
+ <td>
+ <xsl:value-of select="."/>
+ </td>
+ </tr>
+ </xsl:template>
+
+</xsl:stylesheet>
1.2 +35 -34 cocoon-2.1/src/deprecated/conf/deprecated.xconf
Index: deprecated.xconf
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/deprecated/conf/deprecated.xconf,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- deprecated.xconf 9 Mar 2003 00:06:51 -0000 1.1
+++ deprecated.xconf 6 May 2003 14:13:01 -0000 1.2
@@ -1,34 +1,35 @@
-<?xml version="1.0"?>
-<xconf xpath="/cocoon" unless="url-factory">
-
- <!--+
- | URL Factory
- |
- | The url factory adds special url protocols to the system, they are then
- | available inside Cocoon, e.g. as a source argument for one of the sitemap
- | components.
- |
- | THIS COMPONENT IS DEPRECATED AND SHOULD NOT BE USED ANYMORE
- +-->
- <url-factory logger="core.url-factory">
- <!-- Allows access to resources available from the ClassLoader, using getResource() method. -->
- <protocol class="org.apache.cocoon.components.url.ResourceURLFactory" name="resource"/>
- </url-factory>
-
- <!--+
- | Source Handler
- |
- | The source handler adds special url protocols to the system, they are
- | then available inside Cocoon, e.g. as a source argument for one of the
- | sitemap components.
- |
- | THIS COMPONENT IS DEPRECATED AND SHOULD NOT BE USED ANYMORE
- +-->
- <source-handler logger="core.source-handler">
- <!-- file protocol : this is a WriteableSource -->
- <protocol class="org.apache.cocoon.components.source.FileSourceFactory" name="file"/>
- <!-- Allows access to resources available from the servlet context, using getResource() method. -->
- <protocol class="org.apache.cocoon.components.source.ContextSourceFactory" name="context"/>
- </source-handler>
-
-</xconf>
+<?xml version="1.0"?>
+
+<xconf xpath="/cocoon" unless="url-factory">
+
+ <!--+
+ | URL Factory
+ |
+ | The url factory adds special url protocols to the system, they are then
+ | available inside Cocoon, e.g. as a source argument for one of the sitemap
+ | components.
+ |
+ | THIS COMPONENT IS DEPRECATED AND SHOULD NOT BE USED ANYMORE
+ +-->
+ <url-factory logger="core.url-factory">
+ <!-- Allows access to resources available from the ClassLoader, using getResource() method. -->
+ <protocol class="org.apache.cocoon.components.url.ResourceURLFactory" name="resource"/>
+ </url-factory>
+
+ <!--+
+ | Source Handler
+ |
+ | The source handler adds special url protocols to the system, they are
+ | then available inside Cocoon, e.g. as a source argument for one of the
+ | sitemap components.
+ |
+ | THIS COMPONENT IS DEPRECATED AND SHOULD NOT BE USED ANYMORE
+ +-->
+ <source-handler logger="core.source-handler">
+ <!-- file protocol : this is a WriteableSource -->
+ <protocol class="org.apache.cocoon.components.source.FileSourceFactory" name="file"/>
+ <!-- Allows access to resources available from the servlet context, using getResource() method. -->
+ <protocol class="org.apache.cocoon.components.source.ContextSourceFactory" name="context"/>
+ </source-handler>
+
+</xconf>
1.2 +54 -53 cocoon-2.1/src/deprecated/conf/deprecated.xroles
Index: deprecated.xroles
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/deprecated/conf/deprecated.xroles,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- deprecated.xroles 9 Mar 2003 00:06:51 -0000 1.1
+++ deprecated.xroles 6 May 2003 14:13:01 -0000 1.2
@@ -1,53 +1,54 @@
-<?xml version="1.0"?>
-<xroles xpath="/role-list" unless="role[@name='org.apache.cocoon.components.resolver.Resolver']">
-
- <!-- ====================== deprecated ======================== -->
-
- <!-- DEPRECATED, use the avalon excalibur entity-resolver instead -->
- <role name="org.apache.cocoon.components.resolver.Resolver"
- shorthand="resolver"
- default-class="org.apache.cocoon.components.resolver.ResolverImpl"/>
-
- <!-- DEPRECATED, use the avalon excalibur xml-parser instead -->
- <role name="org.apache.cocoon.components.parser.Parser"
- shorthand="parser"
- default-class="org.apache.cocoon.components.parser.JaxpParser"/>
-
- <!-- DEPRECATED, use the avalon excalibur source resolve instead -->
- <role name="org.apache.cocoon.components.url.URLFactory"
- shorthand="url-factory"
- default-class="org.apache.cocoon.components.url.URLFactoryImpl"/>
-
- <!-- DEPRECATED, use the avalon excalibur source resolve instead -->
- <role name="org.apache.cocoon.components.source.SourceHandler"
- shorthand="source-handler"
- default-class="org.apache.cocoon.components.source.SourceHandlerImpl"/>
-
- <!-- DEPRECATED, use the avalon excalibur xslt processor instead -->
- <role name="org.apache.cocoon.components.xslt.XSLTProcessor"
- shorthand="old-xslt-processor"
- default-class="org.apache.cocoon.components.xslt.XSLTProcessorImpl"/>
-
- <!-- DEPRECATED, use the avalon excalibur store implementation instead -->
- <role name="org.apache.cocoon.components.store.Store/Repository"
- shorthand="repository"
- default-class="org.apache.cocoon.components.store.FilesystemStore"/>
-
- <!-- DEPRECATED, use the avalon excalibur store implementation instead -->
- <role name="org.apache.cocoon.components.store.Store/TransientCache"
- shorthand="cache-transient"
- default-class="org.apache.cocoon.components.store.MRUMemoryStore"/>
-
- <!-- DEPRECATED, use the avalon excalibur store implementation instead -->
- <role name="org.apache.cocoon.components.store.Store/PersistentCache"
- shorthand="cache-persistent"
- default-class="org.apache.cocoon.components.store.FilesystemStore"/>
-
- <!-- DEPRECATED, use the avalon excalibur store implementation instead -->
- <role name="org.apache.cocoon.components.store.StoreJanitor"
- shorthand="old-store-janitor"
- default-class="org.apache.cocoon.components.store.StoreJanitorImpl"/>
-
-
-
-</xroles>
+<?xml version="1.0"?>
+
+<xroles xpath="/role-list" unless="role[@name='org.apache.cocoon.components.resolver.Resolver']">
+
+ <!-- ====================== deprecated ======================== -->
+
+ <!-- DEPRECATED, use the avalon excalibur entity-resolver instead -->
+ <role name="org.apache.cocoon.components.resolver.Resolver"
+ shorthand="resolver"
+ default-class="org.apache.cocoon.components.resolver.ResolverImpl"/>
+
+ <!-- DEPRECATED, use the avalon excalibur xml-parser instead -->
+ <role name="org.apache.cocoon.components.parser.Parser"
+ shorthand="parser"
+ default-class="org.apache.cocoon.components.parser.JaxpParser"/>
+
+ <!-- DEPRECATED, use the avalon excalibur source resolve instead -->
+ <role name="org.apache.cocoon.components.url.URLFactory"
+ shorthand="url-factory"
+ default-class="org.apache.cocoon.components.url.URLFactoryImpl"/>
+
+ <!-- DEPRECATED, use the avalon excalibur source resolve instead -->
+ <role name="org.apache.cocoon.components.source.SourceHandler"
+ shorthand="source-handler"
+ default-class="org.apache.cocoon.components.source.SourceHandlerImpl"/>
+
+ <!-- DEPRECATED, use the avalon excalibur xslt processor instead -->
+ <role name="org.apache.cocoon.components.xslt.XSLTProcessor"
+ shorthand="old-xslt-processor"
+ default-class="org.apache.cocoon.components.xslt.XSLTProcessorImpl"/>
+
+ <!-- DEPRECATED, use the avalon excalibur store implementation instead -->
+ <role name="org.apache.cocoon.components.store.Store/Repository"
+ shorthand="repository"
+ default-class="org.apache.cocoon.components.store.FilesystemStore"/>
+
+ <!-- DEPRECATED, use the avalon excalibur store implementation instead -->
+ <role name="org.apache.cocoon.components.store.Store/TransientCache"
+ shorthand="cache-transient"
+ default-class="org.apache.cocoon.components.store.MRUMemoryStore"/>
+
+ <!-- DEPRECATED, use the avalon excalibur store implementation instead -->
+ <role name="org.apache.cocoon.components.store.Store/PersistentCache"
+ shorthand="cache-persistent"
+ default-class="org.apache.cocoon.components.store.FilesystemStore"/>
+
+ <!-- DEPRECATED, use the avalon excalibur store implementation instead -->
+ <role name="org.apache.cocoon.components.store.StoreJanitor"
+ shorthand="old-store-janitor"
+ default-class="org.apache.cocoon.components.store.StoreJanitorImpl"/>
+
+
+
+</xroles>
1.2 +499 -499 cocoon-2.1/src/documentation/xdocs/drafts/cocoon2-docbook.xml
Index: cocoon2-docbook.xml
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/documentation/xdocs/drafts/cocoon2-docbook.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- cocoon2-docbook.xml 9 Mar 2003 00:07:49 -0000 1.1
+++ cocoon2-docbook.xml 6 May 2003 14:13:01 -0000 1.2
@@ -1,505 +1,505 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.0//EN"
"http://www.oasis-open.org/docbook/xml/4.0/docbookx.dtd" []>
<!--
-<!DOCTYPE article
- PUBLIC "-//Norman Walsh//DTD Simplified DocBook XML V4.0.1//EN"
- "http://nwalsh.com/docbook/simple/4.0.1/sdocbook.dtd">
+<!DOCTYPE article
+ PUBLIC "-//Norman Walsh//DTD Simplified DocBook XML V4.0.1//EN"
+ "http://nwalsh.com/docbook/simple/4.0.1/sdocbook.dtd">
-->
-
-<book>
-<bookinfo>
- <title>Cocoon 2</title>
- <authorgroup>
- <author>
- <firstname>Stefano</firstname>
- <surname>Mazzocchi</surname>
- <affiliation>
- <orgname>The Apache Group</orgname>
- <address>
- <email>stefano@apache.org</email>
- <otheraddr>http://xml.apache.org</otheraddr>
- </address>
- </affiliation>
- </author>
- </authorgroup>
- <abstract>
- <title>The Apache XML Project</title>
- <para>
- This document describes the Cocoon project, and its role within the
- Apache Group's Java XML project.
- </para>
- </abstract>
- <revhistory>
- <revision>
- <revnumber>0.01</revnumber>
- <date>28 May 2000</date>
- <revremark>DocBook markup</revremark>
- </revision>
- </revhistory>
-</bookinfo>
-
-<chapter>
- <title>The Cocoon Project</title>
-
-<sect1>
- <title>A new look</title>
- <para>
- The Cocoon Project will evidence its new course with a new logo that was
- designed by Cocoon's creator Stefano Mazzocchi. Here it is:
- </para>
- <figure>
- <title>The new Cocoon Logo</title>
- <graphic fileref="cocoon2.gif"></graphic>
- </figure>
-</sect1>
-
-<sect1>
- <title>Introduction</title>
- <para>
- The Cocoon Project has gone a long way since it's creation on January 1999.
- It started as a simple servlet for static XSL styling and became more and
- more powerful as new features were added. Unfortunately, design decisions
- made early in the project influenced its evolution. Today, some of those
- constraints that shaped the project were modified as XML standards have
- evolved and solidified. For this reason, those design decisions need to be
- reconsidered under this new light.
- </para>
- <para>
- While Cocoon started as a small step in the direction of a new web
- publishing idea based on better design patterns and reviewed estimations of
- management issues, the technology used was not mature enough for tools to
- emerge. Today, most web engineers consider XML as the key for an improved
- web model and web site managers see XML as a way to reduce costs and ease
- production.
- </para>
- <para>
- In an era where services rather than software will be key for economical
- success, a better and less expensive model for web publishing will be a
- winner, especially if based on open standards.
- </para>
-</sect1>
-
-<sect1>
- <title>Passive APIs vs. Active APIs</title>
- <para>
- Web serving environments must be fast and scalable to be useful. Cocoon1
- was born as a "proof of concept" rather than a production
- software and had significant design restrictions based mainly on the
- availability of freely redistributable tools. Other issues were lack of
- detailed knowledge on the APIs available as well as underestimation of the
- project success, being created as a way to learn XSL rather than a full
- publishing system capable of taking care of all XML web publishing
- needs.
- </para>
-
- <para>
- For the above reasons, Cocoon1 was based on the DOM level 1 API which is a
- <emphasis>passive</emphasis> API and was intended mainly for client side
- operation. This is mainly due to the fact that most DOM implementations
- require the document to reside in memory. While this is practical for small
- documents and thus good for the "proof of concept" stage, it is
- now considered a main design constraint for Cocoon scalability.
- </para>
-
- <para>
- Since the goal of Cocoon2 is the ability to process simultaneously multiple
- 100Mb documents in JVM with a few Mbs of heap size, careful memory use and
- tuning of internal components is a key issue. To reach this goal, an
- improved API model was needed. This is now identified in the SAX API which
- is, unlike DOM, event based (so <emphasis>active</emphasis>, in the sense
- that its design is based the <emphasis>inversion of control</emphasis>
- principle).
- </para>
-
- <para>
- The event model allows document producers to trigger producing events that
- get handled in the various processing stages and get finally formatted in
- the response stream. This has significant impacts on performance and memory
- needs:
- </para>
-
- <itemizedlist>
- <listitem>
- <para>
- incremental operation
- </para>
- <para>
- the response is created during document production. Client's perceived
- performance is dramatically improved since clients can start receiving
- data as soon as it is created, not after all processing stages have
- been performed. In those cases where incremental operation is not
- possible (for example, element sorting), internal buffers store the
- events until the operation can be performed. However, even in these
- cases performance can be increased with the use of tuned memory
- structures.
- </para>
- </listitem>
- <listitem>
- <para>
- lowered memory consumption
- </para>
- <para>
- since most of the server processing required in Cocoon is incremental,
- an incremental model allows XML production events to be transformed
- directly into output events and character written on streams, thus
- avoiding the need to store them in memory.
- </para>
- </listitem>
- <listitem>
- <para>
- easier scalability
- </para>
- <para>
- reduce memory needs allow more concurrent operation to be possible,
- thus allowing the publishing system to scale as the load increases.
- </para>
- </listitem>
- <listitem>
- <para>
- more optimizable code model
- </para>
- <para>
- modern virtual machines are based on the idea of <emphasis>hot
- spots</emphasis>, code fragments that are used often and, if optimized,
- increase the process execution by far. This new event model allows
- easier detection of hot spots since it's a method driven operation,
- rather than a memory driven one. Hot methods can be identified earlier
- and their optimization performed better.
- </para>
- </listitem>
- <listitem>
- <para>
- reduced garbage collection
- </para>
- <para>
- even the most advanced and lightweight DOM implementation require at
- least three to five times (and sometimes much more than this) more
- memory than original document size. This does not only reduce the
- scalability of the operation, but also impact overall performance by
- increasing the number of memory garbage that must be collected after
- the response in sent to the client. Even if modern virtual machines
- reduced the overhead of garbage collection, less garbage will always
- have performance and scalability impacts.
- </para>
- </listitem>
- </itemizedlist>
-
- <para>
- The above points, alone, would be enough for the Cocoon2 paradigm shift,
- even if this event based model impacts not only the general architecture of
- the publishing system but also its internal processing components such as
- XSLT processing and PDF formatting. These components will require
- substantial work and maybe design reconsideration to be able to follow a
- pure event-based model. The Cocoon Project will work closely with the other
- component projects to be able to influence their operation in this
- direction.
- </para>
-</sect1>
-
-<sect1>
-<title>Reactors Reconsidered</title>
- <para>
- Another design choice that should be revised is the reactor pattern that
- was introduced to allow components to be connected in more flexible way. In
- fact, opposed to the fixed pipe model used up to Cocoon 1.3.1, the reactor
- approach allows components to be dynamically connected, depending on
- reaction instructions introduced inside the documents.
- </para>
-
- <para>
- While this at first seemed a very advanced and highly appealing model, it
- turned out to be a very dangerous approach. The first concern is mainly
- technical: porting the reactor pattern under an event-based model requires
- limitations and tradeoffs since the generated events must be cached until a
- reaction instruction is encountered.
- </para>
-
- <para>
- But even if the technical difficulties are solved, a key limitation
- remains: there is no single point of management.
- </para>
-</sect1>
-
-<sect1>
-<title>Management Considerations</title>
- <para>
- The web was created to reduce information management costs by distributing
- them back on information owners. While this model is great for user
- communities (scientists, students, employees, or people in general) each of
- them managing small amount of personal information, it becomes impractical
- for highly centralized information systems where <emphasis>distributed
- management</emphasis> is simply not practical.
- </para>
-
- <para>
- While in the HTML web model the page format and URL names where the only
- necessary contracts between individuals to create a world wide web, in more
- structured information systems the number of contracts increases by a
- significant factor due to the need of coherence between the hosted
- information: common style, common design issues, common languages, server
- side logic integration, data validation, etc...
- </para>
-
- <para>
- It is only under this light that XML and its web model reveal their power:
- the HTML web model had too little contracts to be able to develop a
- structured and more coherent distributed information system, reason that is
- mainly imposed by the lack of good and algorithmically certain information
- indexing and knowledge seeking. Lacks that tend to degrade the quality of
- the truly distributed web in favor of more structured web sites (that based
- their improved site structure on internal contracts).
- </para>
-
- <para>
- The simplification and engineering of web site management is considered one
- of the most important Cocoon2 goals. This is done mainly by technologically
- imposing a reduced number of contracts and place them in a hierarchical
- shape suitable to replace current high-structure web site management
- models.
- </para>
-
- <para>
- The model that Cocoon2 adopts is the "pyramid model of web
- contracts" which is outlined in the picture below
- </para>
-
- <figure>
- <title>The Cocoon2 Pyramid Model of Contracts</title>
- <graphic fileref="pyramid-model.gif"></graphic>
- </figure>
-
- <para>
- and is composed by four different working contexts (the rectangles)
- </para>
-
- <itemizedlist>
- <listitem>
- <para>
- Management
- </para>
- <para>
- the people that decide what the site should contain, how it should
- behave and how it should appear
- </para>
- </listitem>
- <listitem>
- <para>
- Content
- </para>
- <para>
- the people responsible to write, own and manage the site content. This
- context may contain several sub-contexts one for each language used to
- express page content.
- </para>
- </listitem>
- <listitem>
- <para>
- Logic
- </para>
- <para>
- the people responsible for integration with dynamic content generation
- technologies and database systems.
- </para>
- </listitem>
- <listitem>
- <para>
- Style
- </para>
- <para>
- the people responsible for information presentation, look & feel,
- site graphics and its maintenance.
- </para>
- </listitem>
- </itemizedlist>
-
- <para>
- and five contracts (the lines)
- <simplelist>
- <member>management - content</member>
- <member>management - logic</member>
- <member>management - style</member>
- <member>content - logic</member>
- <member>content - style</member>
- </simplelist>
- </para>
-
- <para>
- note that there is no <emphasis>logic - style</emphasis> contract. Cocoon2
- aims to provide both software and guidelines to allow you to remove such
- contract.
- </para>
-</sect1>
-
-<sect1>
-<title>Overlapping contexts and Chain Mapping</title>
- <para>
- The above model can be applied only if the different contexts never
- overlap, otherwise there is no chance of having a single management point.
- For example, if the W3C-recommended method to link stylesheets to XML
- documents is used, the content and style contexts overlap and it's
- impossible to change the styling behavior of the document without changing
- it. The same is true for the processing instructions used by the Cocoon1
- reactor to drive the page processing: each stage concur to determine the
- result thus increasing management and debug complexity. Another overlapping
- in context contracts is the need for URL-encoded parameters to drive the
- page output. These overlaps break the pyramid model and increase the
- management costs.
- </para>
-
- <para>
- In Cocoon2, the reactor pattern will be abandoned in favor of a pipeline
- mapping technique. This is based on the fact that the number of different
- contracts is limited even for big sites and grows with a rate that is
- normally much less than its size.
- </para>
-
- <para>
- Also, for performance reasons, Cocoon2 will try to compile everything that
- is possibly compilable (pages/XSP into producers, stylesheets into
- processors, etc...) so, in this new model, the <emphasis>processing
- chain</emphasis> that generates the page contains (in a direct executable
- form) all the information/logic that handles the requested resource to
- generate its response.
- </para>
-
- <para>
- This means that instead of using even-driven request-time DTD
- interpretation (done in all Cocoon1 processors), these will be either
- compiled into processors directly (XSLT stylesheet compilation) or compiled
- into producers using logicsheets and XSP which will remove totally the need
- for request-time interpretation solutions like DCP that will be removed.
- </para>
-
- <note>
- <para>
- Some of these features are already present in latest Cocoon 1.x releases
- but the Cocoon2 architecture will make them central to its new core
- </para>
- </note>
-</sect1>
-
-<sect1>
-<title>Sitemap</title>
- <para>
- In Cocoon2 terminology, a <emphasis>sitemap</emphasis> is the collection of
- pipeline matching informations that allow the Cocoon engine to associate
- the requested URI to the proper response-producing pipeline.
- </para>
-
- <para>
- The sitemap physically represents the central repository for web site
- administration, where the URI space and its handling is maintained. An
- example of the sitemap is given below:
- </para>
-
-<programlisting>
-<![CDATA[
-<source>
- <sitemap>
- <process match="/press/en/*.html">
- <generator type="file" src="/docs/english/press/*.xml"/>
- <filter type="xslt">
- <parameter name="stylesheet" value="/styles/simple-press-html.xsl"/>
- </filter>
- <serializer type="html"/>
- </process>
-
- <process match="/press/en/*.pdf">
- <generator type="file" src="/docs/english/press/*.xml"/>
- <filter type="xslt">
- <parameter name="stylesheet" value="/styles/simple-press-pdf.xsl"/>
- </filter>
- <serializer type="pdf"/>
- </process>
-
- <process match="/">
- <matcher type="agent">
- <parameter name="name" value="Mozilla/5.0">
- </matcher>
- <generator type="file" src="/docs/root.xml"/>
- <filter type="xslt">
- <parameter name="stylesheet" value="/styles/fancy-XUL-view.xsl"/>
- </filter>
- <serializer type="html"/>
- </process>
-
- <process match="/">
- <matcher type="agent">
- <parameter name="capability" value="text/vnd.wap.wml">
- </matcher>
- <generator type="file" src="/docs/root.xml"/>
- <filter type="xslt">
- <parameter name="stylesheet" value="/styles/WAP-view.xsl"/>
- </filter>
- <serializer type="wap"/>
- </process>
-
- <process match="/">
- <generator type="file" src="/docs/root.xml"/>
- <filter type="xslt">
- <parameter name="stylesheet" value="/styles/normal-view.xsl"/>
- </filter>
- <serializer type="html"/>
- </process>
- </sitemap>
-</source>
-]]>
-</programlisting>
-
- <note>
- <para>
- The sitemap DTD has not yet been standardized and it's not guaranteed to
- solidify until Cocoon 2.0 is out final. So, the above should be
- considered just as a preview and not a specification or even a working
- draft. For more information dig into the development mail list digests.
- </para>
- </note>
-</sect1>
-
-<sect1>
-<title>Pre-compilation, Pre-generation and Caching</title>
- <para>
- The cache system in Cocoon1 will be ported with no important design changes
- since it's very flexible and was not polluted by early design constraints
- since it appeared in later versions. The issue regards static file caching
- that, no matter what, will always be slower than direct web server caching.
- </para>
-
- <para>
- To be able to put most of the static part job back on the web server (where
- it belongs), Cocoon2 will greatly improve it's command line operation,
- allowing the creation of <emphasis>site makefiles</emphasis> that will
- automatically scan the web site and the source documents and will provide a
- way to <emphasis>regenerate</emphasis> the static part of a web site
- (images and tables included!) based on the same XML model used in the
- dynamic operation version.
- </para>
-
- <para>
- Cocoon2 will, in fact, be the integration between Cocoon1 and Stylebook.
- </para>
-
- <para>
- It will be up to the web server administrator to use static regeneration
- capabilities on a time basis, manually or triggered by some particular
- event (database update signal) since Cocoon2 will only provide servlet and
- command line capabilities. The nice integration is based on the fact that
- there will be no behavioral difference if the files are dynamically
- generated in Cocoon2 via the servlet operation and cached internally or
- pre-generated and served directly by the web server, as long as URI
- contracts are kept the same by the system administrator (via URL-rewriting
- or aliasing)
- </para>
-
- <para>
- Also, it will be possible to avoid on-fly page and stylesheet compilation
- (which make debugging harder) with command line pre-compilation hooks that
- will work like normal compilers from a developer's point of view.
- </para>
-</sect1>
-
-</chapter>
-</book>
+
+<book>
+<bookinfo>
+ <title>Cocoon 2</title>
+ <authorgroup>
+ <author>
+ <firstname>Stefano</firstname>
+ <surname>Mazzocchi</surname>
+ <affiliation>
+ <orgname>The Apache Group</orgname>
+ <address>
+ <email>stefano@apache.org</email>
+ <otheraddr>http://xml.apache.org</otheraddr>
+ </address>
+ </affiliation>
+ </author>
+ </authorgroup>
+ <abstract>
+ <title>The Apache XML Project</title>
+ <para>
+ This document describes the Cocoon project, and its role within the
+ Apache Group's Java XML project.
+ </para>
+ </abstract>
+ <revhistory>
+ <revision>
+ <revnumber>0.01</revnumber>
+ <date>28 May 2000</date>
+ <revremark>DocBook markup</revremark>
+ </revision>
+ </revhistory>
+</bookinfo>
+
+<chapter>
+ <title>The Cocoon Project</title>
+
+<sect1>
+ <title>A new look</title>
+ <para>
+ The Cocoon Project will evidence its new course with a new logo that was
+ designed by Cocoon's creator Stefano Mazzocchi. Here it is:
+ </para>
+ <figure>
+ <title>The new Cocoon Logo</title>
+ <graphic fileref="cocoon2.gif"></graphic>
+ </figure>
+</sect1>
+
+<sect1>
+ <title>Introduction</title>
+ <para>
+ The Cocoon Project has gone a long way since it's creation on January 1999.
+ It started as a simple servlet for static XSL styling and became more and
+ more powerful as new features were added. Unfortunately, design decisions
+ made early in the project influenced its evolution. Today, some of those
+ constraints that shaped the project were modified as XML standards have
+ evolved and solidified. For this reason, those design decisions need to be
+ reconsidered under this new light.
+ </para>
+ <para>
+ While Cocoon started as a small step in the direction of a new web
+ publishing idea based on better design patterns and reviewed estimations of
+ management issues, the technology used was not mature enough for tools to
+ emerge. Today, most web engineers consider XML as the key for an improved
+ web model and web site managers see XML as a way to reduce costs and ease
+ production.
+ </para>
+ <para>
+ In an era where services rather than software will be key for economical
+ success, a better and less expensive model for web publishing will be a
+ winner, especially if based on open standards.
+ </para>
+</sect1>
+
+<sect1>
+ <title>Passive APIs vs. Active APIs</title>
+ <para>
+ Web serving environments must be fast and scalable to be useful. Cocoon1
+ was born as a "proof of concept" rather than a production
+ software and had significant design restrictions based mainly on the
+ availability of freely redistributable tools. Other issues were lack of
+ detailed knowledge on the APIs available as well as underestimation of the
+ project success, being created as a way to learn XSL rather than a full
+ publishing system capable of taking care of all XML web publishing
+ needs.
+ </para>
+
+ <para>
+ For the above reasons, Cocoon1 was based on the DOM level 1 API which is a
+ <emphasis>passive</emphasis> API and was intended mainly for client side
+ operation. This is mainly due to the fact that most DOM implementations
+ require the document to reside in memory. While this is practical for small
+ documents and thus good for the "proof of concept" stage, it is
+ now considered a main design constraint for Cocoon scalability.
+ </para>
+
+ <para>
+ Since the goal of Cocoon2 is the ability to process simultaneously multiple
+ 100Mb documents in JVM with a few Mbs of heap size, careful memory use and
+ tuning of internal components is a key issue. To reach this goal, an
+ improved API model was needed. This is now identified in the SAX API which
+ is, unlike DOM, event based (so <emphasis>active</emphasis>, in the sense
+ that its design is based the <emphasis>inversion of control</emphasis>
+ principle).
+ </para>
+
+ <para>
+ The event model allows document producers to trigger producing events that
+ get handled in the various processing stages and get finally formatted in
+ the response stream. This has significant impacts on performance and memory
+ needs:
+ </para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ incremental operation
+ </para>
+ <para>
+ the response is created during document production. Client's perceived
+ performance is dramatically improved since clients can start receiving
+ data as soon as it is created, not after all processing stages have
+ been performed. In those cases where incremental operation is not
+ possible (for example, element sorting), internal buffers store the
+ events until the operation can be performed. However, even in these
+ cases performance can be increased with the use of tuned memory
+ structures.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ lowered memory consumption
+ </para>
+ <para>
+ since most of the server processing required in Cocoon is incremental,
+ an incremental model allows XML production events to be transformed
+ directly into output events and character written on streams, thus
+ avoiding the need to store them in memory.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ easier scalability
+ </para>
+ <para>
+ reduce memory needs allow more concurrent operation to be possible,
+ thus allowing the publishing system to scale as the load increases.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ more optimizable code model
+ </para>
+ <para>
+ modern virtual machines are based on the idea of <emphasis>hot
+ spots</emphasis>, code fragments that are used often and, if optimized,
+ increase the process execution by far. This new event model allows
+ easier detection of hot spots since it's a method driven operation,
+ rather than a memory driven one. Hot methods can be identified earlier
+ and their optimization performed better.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ reduced garbage collection
+ </para>
+ <para>
+ even the most advanced and lightweight DOM implementation require at
+ least three to five times (and sometimes much more than this) more
+ memory than original document size. This does not only reduce the
+ scalability of the operation, but also impact overall performance by
+ increasing the number of memory garbage that must be collected after
+ the response in sent to the client. Even if modern virtual machines
+ reduced the overhead of garbage collection, less garbage will always
+ have performance and scalability impacts.
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>
+ The above points, alone, would be enough for the Cocoon2 paradigm shift,
+ even if this event based model impacts not only the general architecture of
+ the publishing system but also its internal processing components such as
+ XSLT processing and PDF formatting. These components will require
+ substantial work and maybe design reconsideration to be able to follow a
+ pure event-based model. The Cocoon Project will work closely with the other
+ component projects to be able to influence their operation in this
+ direction.
+ </para>
+</sect1>
+
+<sect1>
+<title>Reactors Reconsidered</title>
+ <para>
+ Another design choice that should be revised is the reactor pattern that
+ was introduced to allow components to be connected in more flexible way. In
+ fact, opposed to the fixed pipe model used up to Cocoon 1.3.1, the reactor
+ approach allows components to be dynamically connected, depending on
+ reaction instructions introduced inside the documents.
+ </para>
+
+ <para>
+ While this at first seemed a very advanced and highly appealing model, it
+ turned out to be a very dangerous approach. The first concern is mainly
+ technical: porting the reactor pattern under an event-based model requires
+ limitations and tradeoffs since the generated events must be cached until a
+ reaction instruction is encountered.
+ </para>
+
+ <para>
+ But even if the technical difficulties are solved, a key limitation
+ remains: there is no single point of management.
+ </para>
+</sect1>
+
+<sect1>
+<title>Management Considerations</title>
+ <para>
+ The web was created to reduce information management costs by distributing
+ them back on information owners. While this model is great for user
+ communities (scientists, students, employees, or people in general) each of
+ them managing small amount of personal information, it becomes impractical
+ for highly centralized information systems where <emphasis>distributed
+ management</emphasis> is simply not practical.
+ </para>
+
+ <para>
+ While in the HTML web model the page format and URL names where the only
+ necessary contracts between individuals to create a world wide web, in more
+ structured information systems the number of contracts increases by a
+ significant factor due to the need of coherence between the hosted
+ information: common style, common design issues, common languages, server
+ side logic integration, data validation, etc...
+ </para>
+
+ <para>
+ It is only under this light that XML and its web model reveal their power:
+ the HTML web model had too little contracts to be able to develop a
+ structured and more coherent distributed information system, reason that is
+ mainly imposed by the lack of good and algorithmically certain information
+ indexing and knowledge seeking. Lacks that tend to degrade the quality of
+ the truly distributed web in favor of more structured web sites (that based
+ their improved site structure on internal contracts).
+ </para>
+
+ <para>
+ The simplification and engineering of web site management is considered one
+ of the most important Cocoon2 goals. This is done mainly by technologically
+ imposing a reduced number of contracts and place them in a hierarchical
+ shape suitable to replace current high-structure web site management
+ models.
+ </para>
+
+ <para>
+ The model that Cocoon2 adopts is the "pyramid model of web
+ contracts" which is outlined in the picture below
+ </para>
+
+ <figure>
+ <title>The Cocoon2 Pyramid Model of Contracts</title>
+ <graphic fileref="pyramid-model.gif"></graphic>
+ </figure>
+
+ <para>
+ and is composed by four different working contexts (the rectangles)
+ </para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ Management
+ </para>
+ <para>
+ the people that decide what the site should contain, how it should
+ behave and how it should appear
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Content
+ </para>
+ <para>
+ the people responsible to write, own and manage the site content. This
+ context may contain several sub-contexts one for each language used to
+ express page content.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Logic
+ </para>
+ <para>
+ the people responsible for integration with dynamic content generation
+ technologies and database systems.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Style
+ </para>
+ <para>
+ the people responsible for information presentation, look & feel,
+ site graphics and its maintenance.
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>
+ and five contracts (the lines)
+ <simplelist>
+ <member>management - content</member>
+ <member>management - logic</member>
+ <member>management - style</member>
+ <member>content - logic</member>
+ <member>content - style</member>
+ </simplelist>
+ </para>
+
+ <para>
+ note that there is no <emphasis>logic - style</emphasis> contract. Cocoon2
+ aims to provide both software and guidelines to allow you to remove such
+ contract.
+ </para>
+</sect1>
+
+<sect1>
+<title>Overlapping contexts and Chain Mapping</title>
+ <para>
+ The above model can be applied only if the different contexts never
+ overlap, otherwise there is no chance of having a single management point.
+ For example, if the W3C-recommended method to link stylesheets to XML
+ documents is used, the content and style contexts overlap and it's
+ impossible to change the styling behavior of the document without changing
+ it. The same is true for the processing instructions used by the Cocoon1
+ reactor to drive the page processing: each stage concur to determine the
+ result thus increasing management and debug complexity. Another overlapping
+ in context contracts is the need for URL-encoded parameters to drive the
+ page output. These overlaps break the pyramid model and increase the
+ management costs.
+ </para>
+
+ <para>
+ In Cocoon2, the reactor pattern will be abandoned in favor of a pipeline
+ mapping technique. This is based on the fact that the number of different
+ contracts is limited even for big sites and grows with a rate that is
+ normally much less than its size.
+ </para>
+
+ <para>
+ Also, for performance reasons, Cocoon2 will try to compile everything that
+ is possibly compilable (pages/XSP into producers, stylesheets into
+ processors, etc...) so, in this new model, the <emphasis>processing
+ chain</emphasis> that generates the page contains (in a direct executable
+ form) all the information/logic that handles the requested resource to
+ generate its response.
+ </para>
+
+ <para>
+ This means that instead of using even-driven request-time DTD
+ interpretation (done in all Cocoon1 processors), these will be either
+ compiled into processors directly (XSLT stylesheet compilation) or compiled
+ into producers using logicsheets and XSP which will remove totally the need
+ for request-time interpretation solutions like DCP that will be removed.
+ </para>
+
+ <note>
+ <para>
+ Some of these features are already present in latest Cocoon 1.x releases
+ but the Cocoon2 architecture will make them central to its new core
+ </para>
+ </note>
+</sect1>
+
+<sect1>
+<title>Sitemap</title>
+ <para>
+ In Cocoon2 terminology, a <emphasis>sitemap</emphasis> is the collection of
+ pipeline matching informations that allow the Cocoon engine to associate
+ the requested URI to the proper response-producing pipeline.
+ </para>
+
+ <para>
+ The sitemap physically represents the central repository for web site
+ administration, where the URI space and its handling is maintained. An
+ example of the sitemap is given below:
+ </para>
+
+<programlisting>
+<![CDATA[
+<source>
+ <sitemap>
+ <process match="/press/en/*.html">
+ <generator type="file" src="/docs/english/press/*.xml"/>
+ <filter type="xslt">
+ <parameter name="stylesheet" value="/styles/simple-press-html.xsl"/>
+ </filter>
+ <serializer type="html"/>
+ </process>
+
+ <process match="/press/en/*.pdf">
+ <generator type="file" src="/docs/english/press/*.xml"/>
+ <filter type="xslt">
+ <parameter name="stylesheet" value="/styles/simple-press-pdf.xsl"/>
+ </filter>
+ <serializer type="pdf"/>
+ </process>
+
+ <process match="/">
+ <matcher type="agent">
+ <parameter name="name" value="Mozilla/5.0">
+ </matcher>
+ <generator type="file" src="/docs/root.xml"/>
+ <filter type="xslt">
+ <parameter name="stylesheet" value="/styles/fancy-XUL-view.xsl"/>
+ </filter>
+ <serializer type="html"/>
+ </process>
+
+ <process match="/">
+ <matcher type="agent">
+ <parameter name="capability" value="text/vnd.wap.wml">
+ </matcher>
+ <generator type="file" src="/docs/root.xml"/>
+ <filter type="xslt">
+ <parameter name="stylesheet" value="/styles/WAP-view.xsl"/>
+ </filter>
+ <serializer type="wap"/>
+ </process>
+
+ <process match="/">
+ <generator type="file" src="/docs/root.xml"/>
+ <filter type="xslt">
+ <parameter name="stylesheet" value="/styles/normal-view.xsl"/>
+ </filter>
+ <serializer type="html"/>
+ </process>
+ </sitemap>
+</source>
+]]>
+</programlisting>
+
+ <note>
+ <para>
+ The sitemap DTD has not yet been standardized and it's not guaranteed to
+ solidify until Cocoon 2.0 is out final. So, the above should be
+ considered just as a preview and not a specification or even a working
+ draft. For more information dig into the development mail list digests.
+ </para>
+ </note>
+</sect1>
+
+<sect1>
+<title>Pre-compilation, Pre-generation and Caching</title>
+ <para>
+ The cache system in Cocoon1 will be ported with no important design changes
+ since it's very flexible and was not polluted by early design constraints
+ since it appeared in later versions. The issue regards static file caching
+ that, no matter what, will always be slower than direct web server caching.
+ </para>
+
+ <para>
+ To be able to put most of the static part job back on the web server (where
+ it belongs), Cocoon2 will greatly improve it's command line operation,
+ allowing the creation of <emphasis>site makefiles</emphasis> that will
+ automatically scan the web site and the source documents and will provide a
+ way to <emphasis>regenerate</emphasis> the static part of a web site
+ (images and tables included!) based on the same XML model used in the
+ dynamic operation version.
+ </para>
+
+ <para>
+ Cocoon2 will, in fact, be the integration between Cocoon1 and Stylebook.
+ </para>
+
+ <para>
+ It will be up to the web server administrator to use static regeneration
+ capabilities on a time basis, manually or triggered by some particular
+ event (database update signal) since Cocoon2 will only provide servlet and
+ command line capabilities. The nice integration is based on the fact that
+ there will be no behavioral difference if the files are dynamically
+ generated in Cocoon2 via the servlet operation and cached internally or
+ pre-generated and served directly by the web server, as long as URI
+ contracts are kept the same by the system administrator (via URL-rewriting
+ or aliasing)
+ </para>
+
+ <para>
+ Also, it will be possible to avoid on-fly page and stylesheet compilation
+ (which make debugging harder) with command line pre-compilation hooks that
+ will work like normal compilers from a developer's point of view.
+ </para>
+</sect1>
+
+</chapter>
+</book>
1.2 +8 -8 cocoon-2.1/src/scratchpad/src/org/apache/cocoon/components/source/impl/blob.xconf
Index: blob.xconf
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/scratchpad/src/org/apache/cocoon/components/source/impl/blob.xconf,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- blob.xconf 12 Mar 2003 09:35:39 -0000 1.1
+++ blob.xconf 6 May 2003 14:13:02 -0000 1.2
@@ -1,8 +1,8 @@
-<?xml version="1.0"?>
-
-<xconf xpath="/cocoon/source-factories" unless="protocol[@name='blob']">
-
- <!-- blob pseudo protocol -->
- <protocol name="blob" class="org.apache.cocoon.components.source.impl.BlobSourceFactory"/>
-
-</xconf>
+<?xml version="1.0"?>
+
+<xconf xpath="/cocoon/source-factories" unless="protocol[@name='blob']">
+
+ <!-- blob pseudo protocol -->
+ <protocol name="blob" class="org.apache.cocoon.components.source.impl.BlobSourceFactory"/>
+
+</xconf>
1.3 +208 -211 cocoon-2.1/src/scratchpad/webapp/samples/jxforms/stylesheets/jxforms2html.xsl
Index: jxforms2html.xsl
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/scratchpad/webapp/samples/jxforms/stylesheets/jxforms2html.xsl,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- jxforms2html.xsl 3 May 2003 20:36:12 -0000 1.2
+++ jxforms2html.xsl 6 May 2003 14:13:02 -0000 1.3
@@ -1,211 +1,208 @@
-<?xml version="1.0" encoding="iso-8859-1" ?>
-
-
-<!--
-
- Basic XMLForm processing stylesheet.
- Converts XMLForm tags to HTML tags.
-
- Syntax is borrowed from the XForms standard.
- http://www.w3.org/TR/2002/WD-xforms-20020118/
-
- This stylesheet is usually applied at the end of a
- transformation process after laying out the jxform
- tags on the page is complete. At this stage jxform tags
- are rendered in device specific format.
-
- Different widgets are broken into templates
- to allow customization in importing stylesheets
-
- author: Ivelin Ivanov, ivelin@apache.org, June 2002
- author: Andrew Timberlake <an...@timberlake.co.za>, June 2002
- author: Michael Ratliff, mratliff@collegenet.com <mr...@collegenet.com>, May 2002
- author: Torsten Curdt, tcurdt@dff.st, March 2002
- author: Simon Price <pr...@bristol.ac.uk>, September 2002
- author: Konstantin Piroumian <kp...@protek.com>, September 2002
- author: Robert Ellis Parrott <pa...@fas.harvard.edu>, October 2002
--->
-
-<xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:xf="http://apache.org/cocoon/jxforms/1.0">
-
- <xsl:output method = "xml" omit-xml-declaration = "no" />
-
-
- <xsl:template match="/">
- <xsl:apply-templates />
- </xsl:template>
-
-
- <xsl:template match="xf:form">
- <form>
- <xsl:copy-of select="@*"/>
-
- <!-- the xf:form/@view attributed is sent back to the server as a hidden field -->
- <input type="hidden" name="cocoon-xmlform-view" value="{@view}"/>
-
- <!-- render the child form controls -->
- <xsl:apply-templates />
-
- </form>
- </xsl:template>
-
-
- <xsl:template match="xf:output">
- [<xsl:value-of select="xf:value/text()"/>]
- </xsl:template>
-
-
- <xsl:template match="xf:input">
- <!-- the ref attribute is assigned to html:name, which is how it is linked to the model -->
- <input name="{@ref}" type="text" value="{xf:value/text()}">
- <!-- copy all attributes from the original markup, except for "ref" -->
- <xsl:copy-of select="@*[not(name()='ref')]"/>
- <xsl:apply-templates select="xf:hint"/>
- </input>
- </xsl:template>
-
-
- <xsl:template match="xf:textarea">
- <textarea name="{@ref}" >
- <xsl:copy-of select="@*[not(name()='ref')]"/>
- <xsl:value-of select="xf:value/text()"/>
- <xsl:apply-templates select="xf:hint"/>
- </textarea>
- </xsl:template>
-
- <xsl:template match="xf:repeat">
- <tr width="100%">
- <td colspan="3" width="100%">
- <table class="repeat">
- <xsl:apply-templates select="*"/>
- </table>
- </td>
- </tr>
- </xsl:template>
- <xsl:template match="xf:group">
- <tr width="100%">
- <td width="100%" colspan="2">
- <table class="group" border="0">
- <tr>
- <td align="left">
- <xsl:value-of select="xf:label" />
- </td>
- </tr>
- <xsl:apply-templates select="*"/>
- </table>
- </td>
- </tr>
- </xsl:template>
-
- <xsl:template match="xf:secret">
- <input name="{@ref}" type="password" value="{xf:value/text()}">
- <xsl:copy-of select="@*[not(name()='ref')]"/>
- <xsl:apply-templates select="xf:hint"/>
- </input>
- </xsl:template>
-
-
- <xsl:template match="xf:hidden">
- <input name="{@ref}" type="hidden" value="{xf:value/text()}">
- <xsl:copy-of select="@*[not(name()='ref')]"/>
- </input>
- </xsl:template>
-
-
- <xsl:template match="xf:select1 | xf:select1[@appearance='compact']">
- <select name="{@ref}">
- <xsl:copy-of select="@*[not(name()='ref')]"/>
- <!-- all currently selected nodes are listed as value elements -->
- <xsl:variable name="selected" select="xf:value"/>
- <xsl:for-each select="xf:item">
- <option value="{xf:value}">
- <!-- If the current item value matches one of the selected values -->
- <!-- mark it as selected in the listbox -->
- <xsl:if test="$selected = xf:value">
- <xsl:attribute name="selected"/>
- </xsl:if>
- <xsl:value-of select="xf:label"/>
- </option>
- </xsl:for-each>
- </select>
- </xsl:template>
-
-
- <xsl:template match="xf:select1[@appearance='full']">
- <xsl:variable name="selected" select="xf:value"/>
- <xsl:variable name="ref" select="@ref"/>
- <xsl:for-each select="xf:item">
- <input name="{$ref}" type="radio" value="{xf:value}">
- <xsl:copy-of select="@*[not(name()='ref')]"/>
- <xsl:if test="xf:value = $selected">
- <xsl:attribute name="checked"/>
- </xsl:if>
- </input>
- <xsl:value-of select="xf:label"/>
- <br/>
- </xsl:for-each>
- </xsl:template>
-
-
- <xsl:template match="xf:select | xf:select[@appearance='compact']">
- <xsl:variable name="selected" select="xf:value"/>
- <select name="{@ref}">
- <xsl:copy-of select="@*[not(name()='ref')]"/>
- <xsl:attribute name="multiple"/>
- <xsl:for-each select="xf:item">
- <option value="{xf:value}">
- <xsl:if test="xf:value = $selected">
- <xsl:attribute name="selected"/>
- </xsl:if>
- <xsl:value-of select="xf:label"/>
- </option>
- </xsl:for-each>
- </select>
- </xsl:template>
-
-
- <xsl:template match="xf:select[@appearance='full']">
- <xsl:variable name="selected" select="xf:value"/>
- <xsl:variable name="ref" select="@ref"/>
- <xsl:for-each select="xf:item">
- <input name="{$ref}" type="checkbox" value="{xf:value}">
- <xsl:copy-of select="@*[not(name()='ref')]"/>
- <xsl:if test="xf:value = $selected">
- <xsl:attribute name="checked"/>
- </xsl:if>
- </input>
- <xsl:value-of select="xf:label"/>
- <br/>
- </xsl:for-each>
- </xsl:template>
-
-
-
- <xsl:template match="xf:submit">
- <!-- the id attribute of the submit control is sent to the server -->
- <!-- as a conventional Cocoon Action parameter of the form cocoon-action-* -->
- <input name="cocoon-action-{@id}" type="submit" value="{xf:label/text()}">
- <xsl:copy-of select="@*[not(name()='id')]"/>
- <xsl:apply-templates select="xf:hint"/>
- </input>
- </xsl:template>
-
- <xsl:template match="xf:hint">
- <xsl:attribute name="title"><xsl:value-of select="."/></xsl:attribute>
- </xsl:template>
-
-
- <!-- copy all the rest of the markup which is not recognized above -->
- <xsl:template match="*">
- <xsl:copy><xsl:copy-of select="@*" /><xsl:apply-templates /></xsl:copy>
- </xsl:template>
-
- <xsl:template match="text()">
- <xsl:value-of select="." />
- </xsl:template>
-
-
-</xsl:stylesheet>
-
+<?xml version="1.0" encoding="iso-8859-1" ?>
+
+<!--
+
+ Basic XMLForm processing stylesheet.
+ Converts XMLForm tags to HTML tags.
+
+ Syntax is borrowed from the XForms standard.
+ http://www.w3.org/TR/2002/WD-xforms-20020118/
+
+ This stylesheet is usually applied at the end of a
+ transformation process after laying out the jxform
+ tags on the page is complete. At this stage jxform tags
+ are rendered in device specific format.
+
+ Different widgets are broken into templates
+ to allow customization in importing stylesheets
+
+ author: Ivelin Ivanov, ivelin@apache.org, June 2002
+ author: Andrew Timberlake <an...@timberlake.co.za>, June 2002
+ author: Michael Ratliff, mratliff@collegenet.com <mr...@collegenet.com>, May 2002
+ author: Torsten Curdt, tcurdt@dff.st, March 2002
+ author: Simon Price <pr...@bristol.ac.uk>, September 2002
+ author: Konstantin Piroumian <kp...@protek.com>, September 2002
+ author: Robert Ellis Parrott <pa...@fas.harvard.edu>, October 2002
+-->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xf="http://apache.org/cocoon/jxforms/1.0">
+
+ <xsl:output method = "xml" omit-xml-declaration = "no" />
+
+
+ <xsl:template match="/">
+ <xsl:apply-templates />
+ </xsl:template>
+
+
+ <xsl:template match="xf:form">
+ <form>
+ <xsl:copy-of select="@*"/>
+
+ <!-- the xf:form/@view attributed is sent back to the server as a hidden field -->
+ <input type="hidden" name="cocoon-xmlform-view" value="{@view}"/>
+
+ <!-- render the child form controls -->
+ <xsl:apply-templates />
+
+ </form>
+ </xsl:template>
+
+
+ <xsl:template match="xf:output">
+ [<xsl:value-of select="xf:value/text()"/>]
+ </xsl:template>
+
+
+ <xsl:template match="xf:input">
+ <!-- the ref attribute is assigned to html:name, which is how it is linked to the model -->
+ <input name="{@ref}" type="text" value="{xf:value/text()}">
+ <!-- copy all attributes from the original markup, except for "ref" -->
+ <xsl:copy-of select="@*[not(name()='ref')]"/>
+ <xsl:apply-templates select="xf:hint"/>
+ </input>
+ </xsl:template>
+
+
+ <xsl:template match="xf:textarea">
+ <textarea name="{@ref}" >
+ <xsl:copy-of select="@*[not(name()='ref')]"/>
+ <xsl:value-of select="xf:value/text()"/>
+ <xsl:apply-templates select="xf:hint"/>
+ </textarea>
+ </xsl:template>
+
+ <xsl:template match="xf:repeat">
+ <tr width="100%">
+ <td colspan="3" width="100%">
+ <table class="repeat">
+ <xsl:apply-templates select="*"/>
+ </table>
+ </td>
+ </tr>
+ </xsl:template>
+ <xsl:template match="xf:group">
+ <tr width="100%">
+ <td width="100%" colspan="2">
+ <table class="group" border="0">
+ <tr>
+ <td align="left">
+ <xsl:value-of select="xf:label" />
+ </td>
+ </tr>
+ <xsl:apply-templates select="*"/>
+ </table>
+ </td>
+ </tr>
+ </xsl:template>
+
+ <xsl:template match="xf:secret">
+ <input name="{@ref}" type="password" value="{xf:value/text()}">
+ <xsl:copy-of select="@*[not(name()='ref')]"/>
+ <xsl:apply-templates select="xf:hint"/>
+ </input>
+ </xsl:template>
+
+
+ <xsl:template match="xf:hidden">
+ <input name="{@ref}" type="hidden" value="{xf:value/text()}">
+ <xsl:copy-of select="@*[not(name()='ref')]"/>
+ </input>
+ </xsl:template>
+
+
+ <xsl:template match="xf:select1 | xf:select1[@appearance='compact']">
+ <select name="{@ref}">
+ <xsl:copy-of select="@*[not(name()='ref')]"/>
+ <!-- all currently selected nodes are listed as value elements -->
+ <xsl:variable name="selected" select="xf:value"/>
+ <xsl:for-each select="xf:item">
+ <option value="{xf:value}">
+ <!-- If the current item value matches one of the selected values -->
+ <!-- mark it as selected in the listbox -->
+ <xsl:if test="$selected = xf:value">
+ <xsl:attribute name="selected"/>
+ </xsl:if>
+ <xsl:value-of select="xf:label"/>
+ </option>
+ </xsl:for-each>
+ </select>
+ </xsl:template>
+
+
+ <xsl:template match="xf:select1[@appearance='full']">
+ <xsl:variable name="selected" select="xf:value"/>
+ <xsl:variable name="ref" select="@ref"/>
+ <xsl:for-each select="xf:item">
+ <input name="{$ref}" type="radio" value="{xf:value}">
+ <xsl:copy-of select="@*[not(name()='ref')]"/>
+ <xsl:if test="xf:value = $selected">
+ <xsl:attribute name="checked"/>
+ </xsl:if>
+ </input>
+ <xsl:value-of select="xf:label"/>
+ <br/>
+ </xsl:for-each>
+ </xsl:template>
+
+
+ <xsl:template match="xf:select | xf:select[@appearance='compact']">
+ <xsl:variable name="selected" select="xf:value"/>
+ <select name="{@ref}">
+ <xsl:copy-of select="@*[not(name()='ref')]"/>
+ <xsl:attribute name="multiple"/>
+ <xsl:for-each select="xf:item">
+ <option value="{xf:value}">
+ <xsl:if test="xf:value = $selected">
+ <xsl:attribute name="selected"/>
+ </xsl:if>
+ <xsl:value-of select="xf:label"/>
+ </option>
+ </xsl:for-each>
+ </select>
+ </xsl:template>
+
+
+ <xsl:template match="xf:select[@appearance='full']">
+ <xsl:variable name="selected" select="xf:value"/>
+ <xsl:variable name="ref" select="@ref"/>
+ <xsl:for-each select="xf:item">
+ <input name="{$ref}" type="checkbox" value="{xf:value}">
+ <xsl:copy-of select="@*[not(name()='ref')]"/>
+ <xsl:if test="xf:value = $selected">
+ <xsl:attribute name="checked"/>
+ </xsl:if>
+ </input>
+ <xsl:value-of select="xf:label"/>
+ <br/>
+ </xsl:for-each>
+ </xsl:template>
+
+
+
+ <xsl:template match="xf:submit">
+ <!-- the id attribute of the submit control is sent to the server -->
+ <!-- as a conventional Cocoon Action parameter of the form cocoon-action-* -->
+ <input name="cocoon-action-{@id}" type="submit" value="{xf:label/text()}">
+ <xsl:copy-of select="@*[not(name()='id')]"/>
+ <xsl:apply-templates select="xf:hint"/>
+ </input>
+ </xsl:template>
+
+ <xsl:template match="xf:hint">
+ <xsl:attribute name="title"><xsl:value-of select="."/></xsl:attribute>
+ </xsl:template>
+
+
+ <!-- copy all the rest of the markup which is not recognized above -->
+ <xsl:template match="*">
+ <xsl:copy><xsl:copy-of select="@*" /><xsl:apply-templates /></xsl:copy>
+ </xsl:template>
+
+ <xsl:template match="text()">
+ <xsl:value-of select="." />
+ </xsl:template>
+
+</xsl:stylesheet>
1.2 +17 -17 cocoon-2.1/src/scratchpad/webapp/samples/paginator/content/text.xml
Index: text.xml
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/scratchpad/webapp/samples/paginator/content/text.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- text.xml 9 Mar 2003 00:10:32 -0000 1.1
+++ text.xml 6 May 2003 14:13:02 -0000 1.2
@@ -1,17 +1,17 @@
-<?xml version="1.0"?>
-
-<!-- CVS: $Id$ -->
-
-<list>
- <item>This is the paragraph number one (44 chars).</item>
- <item>This is the paragraph number two, a bit longer (58 chars).</item>
- <item>This one is third (29 chars).</item>
- <item>4th (15 chars).</item>
- <item>5th (15 chars).</item>
- <item>This is the paragraph number six.</item>
- <item>This is the paragraph number seven.</item>
- <item>This is the paragraph number eight.</item>
- <item>This is the paragraph number nine which is longer (twice) then any other paragraph before.</item>
- <item>This is the paragraph number ten.</item>
- <item>This is the paragraph number eleven.</item>
-</list>
+<?xml version="1.0"?>
+
+<!-- CVS: $Id$ -->
+
+<list>
+ <item>This is the paragraph number one (44 chars).</item>
+ <item>This is the paragraph number two, a bit longer (58 chars).</item>
+ <item>This one is third (29 chars).</item>
+ <item>4th (15 chars).</item>
+ <item>5th (15 chars).</item>
+ <item>This is the paragraph number six.</item>
+ <item>This is the paragraph number seven.</item>
+ <item>This is the paragraph number eight.</item>
+ <item>This is the paragraph number nine which is longer (twice) then any other paragraph before.</item>
+ <item>This is the paragraph number ten.</item>
+ <item>This is the paragraph number eleven.</item>
+</list>
1.2 +10 -10 cocoon-2.1/src/scratchpad/webapp/samples/paginator/pagesheets/text.pagesheet
Index: text.pagesheet
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/scratchpad/webapp/samples/paginator/pagesheets/text.pagesheet,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- text.pagesheet 9 Mar 2003 00:10:32 -0000 1.1
+++ text.pagesheet 6 May 2003 14:13:02 -0000 1.2
@@ -1,10 +1,10 @@
-<?xml version="1.0"?>
-
-<!-- CVS: $Id$ -->
-
-<pagesheet xmlns="http://apache.org/cocoon/paginate/1.0">
- <rules>
- <count type="chars" name="item" num="110"/>
- <link type="unit" num="1"/>
- </rules>
-</pagesheet>
+<?xml version="1.0"?>
+
+<!-- CVS: $Id$ -->
+
+<pagesheet xmlns="http://apache.org/cocoon/paginate/1.0">
+ <rules>
+ <count type="chars" name="item" num="110"/>
+ <link type="unit" num="1"/>
+ </rules>
+</pagesheet>
1.18 +146 -155 cocoon-2.1/src/scratchpad/webapp/samples/petstore/sitemap.xmap
Index: sitemap.xmap
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/scratchpad/webapp/samples/petstore/sitemap.xmap,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- sitemap.xmap 30 Apr 2003 09:39:01 -0000 1.17
+++ sitemap.xmap 6 May 2003 14:13:02 -0000 1.18
@@ -1,155 +1,146 @@
-<?xml version="1.0"?>
-<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
-
- <!-- =========================== Components ================================ -->
- <map:components>
- <map:transformers default="xslt">
- <map:transformer name="jx" src="org.apache.cocoon.transformation.JXTemplateTransformer" logger="jx.sitemap.transformer"/>
- </map:transformers>
- <map:generators default="file">
- <map:generator label="content,data" logger="sitemap.generator.velocity" name="velocity" src="org.apache.cocoon.generation.FlowVelocityGenerator"/>
- <map:generator label="content,data" logger="sitemap.generator.jx" name="jx" src="org.apache.cocoon.generation.JXTemplateGenerator"/>
- <map:generator name="jxforms" src="org.apache.cocoon.generation.JXFormsGenerator" logger="sitemap.generator.jxforms"/>
- </map:generators>
- <map:flow-interpreters default="JavaScript"/>
- <map:serializers default="html"/>
- <map:matchers default="wildcard"/>
- </map:components>
-
-
-<!-- =========================== Views =================================== -->
-
-<!--
- The debug view can be used to output an intermediate
- snapshot of the pipeline.
- Pass cocoon-view=debug as a URL parameter to see
- the pipeline output produced by the transofrmer
- labeled "debug". You can move the label to different
- transformers to understand each processing
- stage better.
--->
-<map:views>
- <map:view name="debug" from-label="debug">
- <map:serialize type="xml"/>
- </map:view>
- <map:view name="debug1" from-label="debug1">
- <map:serialize type="xml"/>
- </map:view>
- <map:view name="debug2" from-label="debug2">
- <map:serialize type="xml"/>
- </map:view>
- <map:view name="xml" from-label="xml">
- <map:serialize type="xml"/>
- </map:view>
-</map:views>
-
- <!-- =========================== Resources ================================= -->
-
- <map:resources>
- </map:resources>
-
- <!-- =========================== Pipelines ================================= -->
- <map:flow language="JavaScript">
- <map:script src="flow/PetStoreImpl.js"/>
- <map:script src="flow/petstore.js"/>
- </map:flow>
- <map:pipelines>
-
- <map:pipeline>
- <map:match pattern="*.kont">
- <map:call continuation="{1}"/> <!--
- This handles sendPage*() continuations.
- -->
- </map:match>
- <map:match pattern="*.do">
- <map:call function="main">
- <map:parameter name="page" value="{1}"/>
- </map:call>
- </map:match>
- <map:match pattern="petstore">
- <map:call function="jxForm"/> <!--
- Without parameters jxForm() handles continuations:
- The pattern I'm matching here, "petstore", must match the value
- of the "action" attribute in the view's <xf:submit> element
- -->
- </map:match>
- <map:match pattern="">
- <map:call function="index"/>
- </map:match>
- <map:match pattern="editAccount.form">
- <map:call function="jxForm">
- <map:parameter name="function" value="editAccountForm"/>
- <map:parameter name="id" value="petstore-edit-account"/> <!--
- The value I supply here, "petstore-edit-account", must match
- the "id" attribute of the view's <xf:form> element
- -->
- <map:parameter name="validator-schema-ns"/> <!-- no validator -->
- <map:parameter name="validator-schema"/> <!-- no validator -->
- <map:parameter name="scope" value="request"/>
- </map:call>
- </map:match>
-
- <map:match pattern="view/jxforms/*.xml">
- <!-- original JXForms document -->
- <map:generate type="jxforms" src="view/jxforms/{1}.xml"/>
-
- <map:transform type="xalan" src="stylesheets/form2html.xsl" label="debug1"/>
-
- <map:transform type="xalan" src="../jxforms/stylesheets/jxforms2html.xsl" />
-
-
- <map:transform type="xalan" src="stylesheets/site2html.xsl" label="debug1"/>
-
- <map:serialize type="html" />
- </map:match>
- </map:pipeline>
- <map:pipeline>
- <map:match pattern="view/*.xsp">
- <map:generate src="view/xsp/{1}.xsp" type="serverpages"/>
- <map:transform src="stylesheets/site2html.xsl" />
- <map:serialize type="html"/>
- </map:match>
- <map:match pattern="view/Cart.jxpath">
- <map:generate src="view/jxpath/Cart.xml" type="jx" />
- <map:serialize type="html"/>
- </map:match>
- <map:match pattern="view/*.jxpath">
- <map:generate src="view/jxpath/{1}.xml" type="file" />
- <map:transform type="jx" />
- <map:transform src="stylesheets/site2html.xsl" />
- <map:serialize type="html"/>
- </map:match>
- <map:match pattern="view/Cart.jexl">
- <map:generate src="view/jexl/Cart.xml" type="jx" />
- <map:serialize type="html"/>
- </map:match>
- <map:match pattern="view/*.jexl">
- <map:generate src="view/jexl/{1}.xml" type="jx" />
- <map:transform src="stylesheets/site2html.xsl" />
- <map:serialize type="html"/>
- </map:match>
- <map:match pattern="view/*.vm">
- <map:generate src="view/templates/{1}.vm" type="velocity"/>
- <map:serialize type="html"/>
- </map:match>
- </map:pipeline>
-
- <map:pipeline>
- <map:match pattern="images/*.gif">
- <map:read mime-type="images/gif" src="images/{1}.gif"/>
- </map:match>
- </map:pipeline>
-
-
- </map:pipelines>
-
-</map:sitemap>
-<!-- end of file -->
-
-
-
-
-
-
-
-
+<?xml version="1.0"?>
+
+<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
+
+ <!-- =========================== Components ================================ -->
+ <map:components>
+ <map:transformers default="xslt">
+ <map:transformer name="jx" src="org.apache.cocoon.transformation.JXTemplateTransformer" logger="jx.sitemap.transformer"/>
+ </map:transformers>
+ <map:generators default="file">
+ <map:generator label="content,data" logger="sitemap.generator.velocity" name="velocity" src="org.apache.cocoon.generation.FlowVelocityGenerator"/>
+ <map:generator label="content,data" logger="sitemap.generator.jx" name="jx" src="org.apache.cocoon.generation.JXTemplateGenerator"/>
+ <map:generator name="jxforms" src="org.apache.cocoon.generation.JXFormsGenerator" logger="sitemap.generator.jxforms"/>
+ </map:generators>
+ <map:flow-interpreters default="JavaScript"/>
+ <map:serializers default="html"/>
+ <map:matchers default="wildcard"/>
+ </map:components>
+
+
+<!-- =========================== Views =================================== -->
+
+<!--
+ The debug view can be used to output an intermediate
+ snapshot of the pipeline.
+ Pass cocoon-view=debug as a URL parameter to see
+ the pipeline output produced by the transofrmer
+ labeled "debug". You can move the label to different
+ transformers to understand each processing
+ stage better.
+-->
+<map:views>
+ <map:view name="debug" from-label="debug">
+ <map:serialize type="xml"/>
+ </map:view>
+ <map:view name="debug1" from-label="debug1">
+ <map:serialize type="xml"/>
+ </map:view>
+ <map:view name="debug2" from-label="debug2">
+ <map:serialize type="xml"/>
+ </map:view>
+ <map:view name="xml" from-label="xml">
+ <map:serialize type="xml"/>
+ </map:view>
+</map:views>
+
+ <!-- =========================== Resources ================================= -->
+
+ <map:resources>
+ </map:resources>
+
+ <!-- =========================== Pipelines ================================= -->
+ <map:flow language="JavaScript">
+ <map:script src="flow/PetStoreImpl.js"/>
+ <map:script src="flow/petstore.js"/>
+ </map:flow>
+ <map:pipelines>
+
+ <map:pipeline>
+ <map:match pattern="*.kont">
+ <map:call continuation="{1}"/> <!--
+ This handles sendPage*() continuations.
+ -->
+ </map:match>
+ <map:match pattern="*.do">
+ <map:call function="main">
+ <map:parameter name="page" value="{1}"/>
+ </map:call>
+ </map:match>
+ <map:match pattern="petstore">
+ <map:call function="jxForm"/> <!--
+ Without parameters jxForm() handles continuations:
+ The pattern I'm matching here, "petstore", must match the value
+ of the "action" attribute in the view's <xf:submit> element
+ -->
+ </map:match>
+ <map:match pattern="">
+ <map:call function="index"/>
+ </map:match>
+ <map:match pattern="editAccount.form">
+ <map:call function="jxForm">
+ <map:parameter name="function" value="editAccountForm"/>
+ <map:parameter name="id" value="petstore-edit-account"/> <!--
+ The value I supply here, "petstore-edit-account", must match
+ the "id" attribute of the view's <xf:form> element
+ -->
+ <map:parameter name="validator-schema-ns"/> <!-- no validator -->
+ <map:parameter name="validator-schema"/> <!-- no validator -->
+ <map:parameter name="scope" value="request"/>
+ </map:call>
+ </map:match>
+
+ <map:match pattern="view/jxforms/*.xml">
+ <!-- original JXForms document -->
+ <map:generate type="jxforms" src="view/jxforms/{1}.xml"/>
+
+ <map:transform type="xalan" src="stylesheets/form2html.xsl" label="debug1"/>
+
+ <map:transform type="xalan" src="../jxforms/stylesheets/jxforms2html.xsl" />
+
+
+ <map:transform type="xalan" src="stylesheets/site2html.xsl" label="debug1"/>
+
+ <map:serialize type="html" />
+ </map:match>
+ </map:pipeline>
+ <map:pipeline>
+ <map:match pattern="view/*.xsp">
+ <map:generate src="view/xsp/{1}.xsp" type="serverpages"/>
+ <map:transform src="stylesheets/site2html.xsl" />
+ <map:serialize type="html"/>
+ </map:match>
+ <map:match pattern="view/Cart.jxpath">
+ <map:generate src="view/jxpath/Cart.xml" type="jx" />
+ <map:serialize type="html"/>
+ </map:match>
+ <map:match pattern="view/*.jxpath">
+ <map:generate src="view/jxpath/{1}.xml" type="file" />
+ <map:transform type="jx" />
+ <map:transform src="stylesheets/site2html.xsl" />
+ <map:serialize type="html"/>
+ </map:match>
+ <map:match pattern="view/Cart.jexl">
+ <map:generate src="view/jexl/Cart.xml" type="jx" />
+ <map:serialize type="html"/>
+ </map:match>
+ <map:match pattern="view/*.jexl">
+ <map:generate src="view/jexl/{1}.xml" type="jx" />
+ <map:transform src="stylesheets/site2html.xsl" />
+ <map:serialize type="html"/>
+ </map:match>
+ <map:match pattern="view/*.vm">
+ <map:generate src="view/templates/{1}.vm" type="velocity"/>
+ <map:serialize type="html"/>
+ </map:match>
+ </map:pipeline>
+
+ <map:pipeline>
+ <map:match pattern="images/*.gif">
+ <map:read mime-type="images/gif" src="images/{1}.gif"/>
+ </map:match>
+ </map:pipeline>
+
+ </map:pipelines>
+</map:sitemap>
+<!-- end of file -->
1.5 +122 -120 cocoon-2.1/src/scratchpad/webapp/samples/petstore/stylesheets/form2html.xsl
Index: form2html.xsl
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/scratchpad/webapp/samples/petstore/stylesheets/form2html.xsl,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- form2html.xsl 3 May 2003 20:36:12 -0000 1.4
+++ form2html.xsl 6 May 2003 14:13:02 -0000 1.5
@@ -1,120 +1,122 @@
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:xf="http://apache.org/cocoon/jxforms/1.0"
- exclude-result-prefixes="xalan" >
-
- <xsl:template match="/">
- <xsl:apply-templates />
- </xsl:template>
-
- <xsl:template match="xf:form">
- <xf:form method="post">
- <xsl:copy-of select="@*" />
- <table cellpadding="10" cellspacing="0" border="1" align="center" bgcolor="#dddddd">
- <xsl:if test="count(error/xf:violation) > 0">
- <tr>
- <td align="left" colspan="3"
- class="{error/xf:violation[1]/@class}">
- <p>* [<b><xsl:value-of
- select="count(error/xf:violation)"/></b>]
- error(s). Please fix these errors and submit the
- form again.</p>
- <p>
- <xsl:variable name="localViolations"
- select=".//xf:*[ child::xf:violation ]"/>
- <xsl:for-each select="error/xf:violation">
- <xsl:variable name="eref" select="./@ref"/>
- <xsl:if
- test="count ($localViolations[ @ref=$eref ]) = 0"
- >* <xsl:value-of select="." /> <br/> </xsl:if>
- </xsl:for-each>
- </p>
- <p/>
- </td>
- </tr>
- </xsl:if>
- <xsl:for-each select="*[name() != 'xf:submit']">
- <xsl:choose>
- <xsl:when test="name() = 'error'"/>
- <xsl:when test="name() = 'xf:label'"/>
- <xsl:when test="xf:*">
- <xsl:apply-templates select="."/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:copy-of select="."/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:for-each>
- <tr>
- <td align="center" colspan="3">
- <xsl:for-each select="*[name() = 'xf:submit']">
- <xsl:copy-of select="." />
- <xsl:text>
- </xsl:text>
- </xsl:for-each>
- </td>
- </tr>
- </table>
- </xf:form>
- </xsl:template>
- <xsl:template match="xf:group">
- <tr>
- <td>
- <font color="darkgreen"><h3><xsl:value-of select="xf:label" /></h3></font>
- <table cellspacing="1" cellpadding="3" border="0" bgcolor="#008800">
- <xsl:apply-templates select="*"/>
- </table>
- </td>
- </tr>
- </xsl:template>
- <xsl:template match="xf:output[@form]">
- <div align="center">
- <hr width="30%"/>
- <br/>
- <font size="-1">
- <code> <xsl:value-of select="xf:label" /> : <xsl:copy-of
- select="." /> </code>
- </font>
- <br/>
- </div>
- </xsl:template>
- <xsl:template match="xf:label"/>
- <xsl:template match="xf:*">
- <tr bgcolor="#FFFF88">
- <td align="left" valign="top">
- <p class="label">
- <xsl:value-of select="xf:label" />
- </p>
- </td>
- <td align="left">
- <table class="plaintable">
- <tr bgcolor="#FFFF88">
- <td align="left">
- <xsl:copy-of select="." />
- </td>
- <xsl:if test="xf:violation">
- <td align="left" class="{xf:violation[1]/@class}" width="100%">
- <xsl:for-each select="xf:violation">*
- <xsl:value-of select="." /> <br/> </xsl:for-each>
- </td>
- </xsl:if>
- </tr>
- </table>
- <xsl:if test="xf:help">
- <div class="help">
- <xsl:value-of select="xf:help" />
- </div>
- <br />
- </xsl:if>
- </td>
- </tr>
- </xsl:template>
- <!-- copy all the rest of the markup which is not recognized above -->
- <xsl:template match="*">
- <xsl:copy><xsl:copy-of select="@*" /><xsl:apply-templates /></xsl:copy>
- </xsl:template>
-
- <xsl:template match="text()">
- <xsl:value-of select="." />
- </xsl:template>
-
-</xsl:stylesheet>
+<?xml version="1.0"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xf="http://apache.org/cocoon/jxforms/1.0"
+ exclude-result-prefixes="xalan" >
+
+ <xsl:template match="/">
+ <xsl:apply-templates />
+ </xsl:template>
+
+ <xsl:template match="xf:form">
+ <xf:form method="post">
+ <xsl:copy-of select="@*" />
+ <table cellpadding="10" cellspacing="0" border="1" align="center" bgcolor="#dddddd">
+ <xsl:if test="count(error/xf:violation) > 0">
+ <tr>
+ <td align="left" colspan="3"
+ class="{error/xf:violation[1]/@class}">
+ <p>* [<b><xsl:value-of
+ select="count(error/xf:violation)"/></b>]
+ error(s). Please fix these errors and submit the
+ form again.</p>
+ <p>
+ <xsl:variable name="localViolations"
+ select=".//xf:*[ child::xf:violation ]"/>
+ <xsl:for-each select="error/xf:violation">
+ <xsl:variable name="eref" select="./@ref"/>
+ <xsl:if
+ test="count ($localViolations[ @ref=$eref ]) = 0"
+ >* <xsl:value-of select="." /> <br/> </xsl:if>
+ </xsl:for-each>
+ </p>
+ <p/>
+ </td>
+ </tr>
+ </xsl:if>
+ <xsl:for-each select="*[name() != 'xf:submit']">
+ <xsl:choose>
+ <xsl:when test="name() = 'error'"/>
+ <xsl:when test="name() = 'xf:label'"/>
+ <xsl:when test="xf:*">
+ <xsl:apply-templates select="."/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="."/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ <tr>
+ <td align="center" colspan="3">
+ <xsl:for-each select="*[name() = 'xf:submit']">
+ <xsl:copy-of select="." />
+ <xsl:text>
+ </xsl:text>
+ </xsl:for-each>
+ </td>
+ </tr>
+ </table>
+ </xf:form>
+ </xsl:template>
+ <xsl:template match="xf:group">
+ <tr>
+ <td>
+ <font color="darkgreen"><h3><xsl:value-of select="xf:label" /></h3></font>
+ <table cellspacing="1" cellpadding="3" border="0" bgcolor="#008800">
+ <xsl:apply-templates select="*"/>
+ </table>
+ </td>
+ </tr>
+ </xsl:template>
+ <xsl:template match="xf:output[@form]">
+ <div align="center">
+ <hr width="30%"/>
+ <br/>
+ <font size="-1">
+ <code> <xsl:value-of select="xf:label" /> : <xsl:copy-of
+ select="." /> </code>
+ </font>
+ <br/>
+ </div>
+ </xsl:template>
+ <xsl:template match="xf:label"/>
+ <xsl:template match="xf:*">
+ <tr bgcolor="#FFFF88">
+ <td align="left" valign="top">
+ <p class="label">
+ <xsl:value-of select="xf:label" />
+ </p>
+ </td>
+ <td align="left">
+ <table class="plaintable">
+ <tr bgcolor="#FFFF88">
+ <td align="left">
+ <xsl:copy-of select="." />
+ </td>
+ <xsl:if test="xf:violation">
+ <td align="left" class="{xf:violation[1]/@class}" width="100%">
+ <xsl:for-each select="xf:violation">*
+ <xsl:value-of select="." /> <br/> </xsl:for-each>
+ </td>
+ </xsl:if>
+ </tr>
+ </table>
+ <xsl:if test="xf:help">
+ <div class="help">
+ <xsl:value-of select="xf:help" />
+ </div>
+ <br />
+ </xsl:if>
+ </td>
+ </tr>
+ </xsl:template>
+ <!-- copy all the rest of the markup which is not recognized above -->
+ <xsl:template match="*">
+ <xsl:copy><xsl:copy-of select="@*" /><xsl:apply-templates /></xsl:copy>
+ </xsl:template>
+
+ <xsl:template match="text()">
+ <xsl:value-of select="." />
+ </xsl:template>
+
+</xsl:stylesheet>
1.11 +602 -603 cocoon-2.1/src/scratchpad/webapp/samples/petstore/stylesheets/site2html.xsl
Index: site2html.xsl
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/scratchpad/webapp/samples/petstore/stylesheets/site2html.xsl,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- site2html.xsl 3 May 2003 21:03:30 -0000 1.10
+++ site2html.xsl 6 May 2003 14:13:02 -0000 1.11
@@ -1,603 +1,602 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- exclude-result-prefixes="xalan" >
-
- <xsl:template match="site">
- <html>
- <head>
- <meta content="text/html; charset=windows-1252" http-equiv="Content-Type" />
- <meta HTTP-EQUIV="Cache-Control" CONTENT="max-age=0"/>
- <meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache"/>
- <meta http-equiv="expires" content="0"/>
- <meta HTTP-EQUIV="Expires" CONTENT="Tue, 01 Jan 1980 1:00:00 GMT"/>
- <meta HTTP-EQUIV="Pragma" CONTENT="no-cache"/>
- </head>
- <body bgcolor="white">
- <table background="images/bkg-topbar.gif" border="0" cellspacing="0" cellpadding="5" width="100%">
- <tbody>
- <tr>
- <td>
- <form method="post" action="index.do">
- <input type="image" border="0" src="images/logo-topbar.gif" />
- <select name="view" width="14" align="left" onChange="document.forms[0].submit()">
- <xsl:choose>
- <xsl:when test="@view='jxpath'">
- <option value="JXPath">JXPath</option>
- <option value="Jexl">Jexl</option>
- <option value="Xsp">Xsp</option>
- <option value="Velocity">Velocity</option>
- </xsl:when>
- <xsl:when test="@view='jexl'">
- <option value="Jexl">Jexl</option>
- <option value="JXPath">JXPath</option>
- <option value="Xsp">Xsp</option>
- <option value="Velocity">Velocity</option>
- </xsl:when>
- <xsl:otherwise>
- <option value="Xsp">Xsp</option>
- <option value="JXPath">JXPath</option>
- <option value="Jexl">Jexl</option>
- <option value="Velocity">Velocity</option>
- </xsl:otherwise>
- </xsl:choose>
- </select>
- </form>
- </td>
- <td align="right">
- <a href="viewCart.do"><img border="0" name="img_cart" src="images/cart.gif" /></a><img border="0" src="images/separator.gif" hspace="4" />
- <xsl:choose>
- <xsl:when test="@signOn='true'">
- <a href="signonForm.do"><img border="0" name="img_signin" src="images/sign-in.gif" /></a>
- </xsl:when>
- <xsl:otherwise>
- <a href="signonForm.do?signoff=true"><img border="0" name="img_signout" src="images/sign-out.gif" /></a><img border="0" src="images/separator.gif" hspace="4" />
- <a href="editAccount.form"><img border="0" name="img_myaccount" src="images/my_account.gif" /></a>
- </xsl:otherwise>
- </xsl:choose>
- <img border="0" src="images/separator.gif" hspace="4" /><a href="../help.html"><img border="0" name="img_help" src="images/help.gif" /></a>
- </td>
- <td align="left" valign="bottom">
- <form method="post" action="searchProducts.do">
- <input name="keyword" size="14" />
- <input border="0" src="images/search.gif" type="image" />
- </form>
- </td>
- </tr>
- </tbody>
- </table>
- <center>
- <a href="viewCategory.do?categoryId=FISH"><img border="0" src="images/sm_fish.gif" /></a>
- <img border="0" src="images/separator.gif" hspace="4" />
- <a href="viewCategory.do?categoryId=DOGS"><img border="0" src="images/sm_dogs.gif" /></a>
- <img border="0" src="images/separator.gif" hspace="4" />
- <a href="viewCategory.do?categoryId=REPTILES"><img border="0" src="images/sm_reptiles.gif" /></a>
- <img border="0" src="images/separator.gif" hspace="4" />
- <a href="viewCategory.do?categoryId=CATS"><img border="0" src="images/sm_cats.gif" /></a>
- <img border="0" src="images/separator.gif" hspace="4" />
- <a href="viewCategory.do?categoryId=BIRDS"><img border="0" src="images/sm_birds.gif" /></a>
- </center>
- <xsl:apply-templates/>
- <br/>
- <p align="center">
- <a href="http://cocoon.apache.org"><img border="0" align="center" src="images/cocoon.gif" /></a>
- </p>
- </body>
- </html>
- </xsl:template>
-
- <xsl:template match="welcome">
- <table border="0" cellspacing="0" width="100%">
- <tbody>
- <tr>
- <td valign="top" width="100%">
- <table align="left" border="0" cellspacing="0" width="80%">
- <tbody>
- <tr>
- <td valign="top">
- <xsl:apply-templates/>
- </td>
- <td align="center" bgcolor="white" height="300" width="100%">
- <map name="estoremap">
- <area alt="Birds" coords="72,2,280,250" href="viewCategory.do?categoryId=BIRDS" shape="RECT" />
- <area alt="Fish" coords="2,180,72,250" href="viewCategory.do?categoryId=FISH" shape="RECT" />
- <area alt="Dogs" coords="60,250,130,320" href="viewCategory.do?categoryId=DOGS" shape="RECT" />
- <area alt="Reptiles" coords="140,270,210,340" href="viewCategory.do?categoryId=REPTILES" shape="RECT" />
- <area alt="Cats" coords="225,240,295,310" href="viewCategory.do?categoryId=CATS" shape="RECT" />
- <area alt="Birds" coords="280,180,350,250" href="viewCategory.do?categoryId=BIRDS" shape="RECT" />
- </map>
- <img border="0" height="355" src="images/splash.gif" align="center" usemap="#estoremap" width="350" />
- </td>
- </tr>
- </tbody>
- </table>
- </td>
- </tr>
- </tbody>
- </table>
- </xsl:template>
-
- <xsl:template match="menu">
- <table bgcolor="#FFFF88" border="0" cellspacing="0" cellpadding="5" width="200">
- <tbody>
- <tr>
- <td>
- <!--
- #if (!$accountForm.signOn)
- <b><i><font size="2" color="BLACK">Welcome $accountForm.account.firstName!</font></i></b>
- #end
- -->
- </td>
- </tr>
- <xsl:apply-templates/>
- </tbody>
- </table>
- </xsl:template>
-
- <xsl:template match="menu/category">
- <tr>
- <td>
- <a href="viewCategory.do?categoryId={@id}"><i><h2><xsl:value-of select="@name" /></h2></i></a>
- </td>
- </tr>
- </xsl:template>
-
- <xsl:template match="backpointer">
- <table align="left" bgcolor="#008800" border="0" cellspacing="2" cellpadding="2">
- <tr>
- <td bgcolor="#FFFF88">
- <a href="{@do}"><b><font color="BLACK" size="2"><< <xsl:value-of select="@name" /></font></b></a>
- </td>
- </tr>
- </table>
- </xsl:template>
-
- <xsl:template match="category">
- <p>
- <center>
- <h2><xsl:value-of select="@name" /></h2>
- </center>
- <table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="3">
- <tr bgcolor="#CCCCCC">
- <td>
- <b>Product ID</b>
- </td>
- <td>
- <b>Name</b>
- </td>
- </tr>
- <xsl:apply-templates/>
- </table>
- </p>
- </xsl:template>
-
- <xsl:template match="category/product">
- <tr bgcolor="#FFFF88">
- <td>
- <b><a href="viewProduct.do?productId={@id}"><font color="BLACK"><xsl:value-of select="@id" /></font></a></b>
- </td>
- <td>
- <xsl:value-of select="@name" />
- </td>
- </tr>
- </xsl:template>
-
- <xsl:template match="search">
- <table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="3">
- <tr bgcolor="#CCCCCC">
- <td></td>
- <td>
- <b>Product ID</b>
- </td>
- <td>
- <b>Name</b>
- </td>
- </tr>
-
- <xsl:apply-templates/>
- </table>
-
- </xsl:template>
-
- <xsl:template match="search/product">
- <tr bgcolor="#FFFF88">
- <td><a href="viewProduct.do?productId={@id}"><xsl:value-of select="product-desc" /></a></td>
- <td>
- <b><a href="viewProduct.do?productId={@id}"><font color="BLACK"><xsl:value-of select="@id" /></font></a></b>
- </td>
- <td><xsl:value-of select="@name" /></td>
- </tr>
- </xsl:template>
-
- <xsl:template match="situation">
- <tr>
- <td>
- <xsl:if test="@firstPage='false'" >
- <a href="{@continuation}.kont?page=previous"><font color="white"><B><< Prev</B></font></a>
- </xsl:if>
- <xsl:if test="@lastPage='false'" >
- <a href="{@continuation}.kont?page=next"><font color="white"><B>Next >></B></font></a>
- </xsl:if>
- </td>
- </tr>
- </xsl:template>
-
- <xsl:template match="product">
- <p>
- <center>
- <b><font size="4"><xsl:value-of select="@name" /></font></b>
- </center>
-
- <table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="3">
- <tr bgcolor="#CCCCCC">
- <td><b>Item ID</b></td>
- <td><b>Product ID</b></td>
- <td><b>Description</b></td>
- <td><b>List Price</b></td>
- <td></td>
- </tr>
- <xsl:apply-templates/>
- </table>
- </p>
- </xsl:template>
-
- <xsl:template match="product/item">
- <tr bgcolor="#FFFF88">
- <td>
- <b><a href="viewItem.do?itemId={@id}"><xsl:value-of select="@id" /></a></b>
- </td>
- <td>
- <b><xsl:value-of select="@product-id" /></b>
- </td>
- <td>
- <xsl:value-of select="desc" /><xsl:text> </xsl:text><xsl:value-of select="../@name" />
- </td>
- <td>
- <xsl:text>$</xsl:text> <xsl:value-of select="price" />
- </td>
- <td>
- <a href="addItemToCart.do?itemId={@id}"><img border="0" src="images/button_add_to_cart.gif" /></a>
- </td>
- </tr>
- </xsl:template>
-
- <xsl:template name="cart-common-columns">
- <td><b>Item ID</b></td>
- <td><b>Product ID</b></td>
- <td><b>Description</b></td>
- <td><b>Quantity</b></td>
- <td><b>List Price</b></td>
- </xsl:template>
-
- <xsl:template match="cart[@name='Shopping Cart']">
- <table border="0" width="100%" cellspacing="0" cellpadding="0">
- <tr>
- <td valign="top" width="20%" align="left">
- <xsl:apply-templates select="backpointer" />
- </td>
- <td valign="top" align="center">
- <h2 align="center"><xsl:value-of select="@name" /></h2>
- <form action="updateCartQuantities.do" method="post" >
- <table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="5">
- <tr bgcolor="#cccccc">
- <xsl:call-template name="cart-common-columns" />
- <td></td>
- </tr>
- <xsl:if test="not(item)">
- <tr bgcolor="#FFFF88">
- <td colspan="6">
- <b>Your cart is empty.</b>
- </td>
- </tr>
- </xsl:if>
- <xsl:apply-templates select="item" />
- <tr bgcolor="#FFFF88">
- <td colspan="5" align="right">
- <b>Sub Total: $<xsl:value-of select="format-number (total, '###,##0.00')"/></b><br />
- <input type="image" border="0" src="images/button_update_cart.gif" name="update" />
- </td>
- <td></td>
- </tr>
- </table>
- </form>
- <xsl:if test="item">
- <xsl:apply-templates select="nextpointer" />
- </xsl:if>
- </td>
- <td valign="top" width="20%" align="right">
- </td>
- </tr>
- </table>
- </xsl:template>
-
- <xsl:template match="cart[@name='Checkout Summary']">
- <table border="0" width="100%" cellspacing="0" cellpadding="0">
- <tr>
- <td valign="top" width="20%" align="left">
- <xsl:apply-templates select="backpointer" />
- </td>
- <td valign="top" align="center">
- <h2 align="center"><xsl:value-of select="@name" /></h2>
- <table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="5">
- <tr bgcolor="#cccccc">
- <xsl:call-template name="cart-common-columns" />
- </tr>
- <xsl:apply-templates select="item" />
- <tr bgcolor="#FFFF88">
- <td colspan="5" align="right">
- <b>Sub Total: $<xsl:value-of select="format-number (total, '###,##0.00')"/></b><br />
- </td>
- </tr>
- </table>
- <xsl:apply-templates select="nextpointer" />
- </td>
- <td valign="top" width="20%" align="right">
- </td>
- </tr>
- </table>
- </xsl:template>
-
- <xsl:template match="cart[@name='Status']">
- <table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="5">
- <tr bgcolor="#cccccc">
- <xsl:call-template name="cart-common-columns" />
- </tr>
- <xsl:apply-templates select="item" />
- <tr bgcolor="#FFFF88">
- <td colspan="5" align="right">
- <b>Total: $<xsl:value-of select="format-number (total, '###,##0.00')"/></b><br />
- </td>
- </tr>
- </table>
- </xsl:template>
-
-
- <xsl:template match="nextpointer">
- <br />
- <center>
- <a href="{@do}"><img border="0" src="{@img}" /></a>
- </center>
- </xsl:template>
-
-
- <xsl:template match="cart/item">
- <tr bgcolor="#FFFF88">
- <td>
- <b><xsl:value-of select="@id" /></b>
- </td>
- <td>
- <xsl:value-of select="@product-id" />
- </td>
- <td>
- <xsl:value-of select="desc" />
- </td>
- <td align="center">
- <xsl:choose>
- <xsl:when test="../@name='Shopping Cart'">
- <input type="text" size="3" name="{@id}" >
- <xsl:attribute name="value"><xsl:value-of select="format-number (quantity, '####')"/></xsl:attribute>
- </input>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="format-number (quantity, '####')"/>
- </xsl:otherwise>
- </xsl:choose>
- </td>
- <td align="right">
- $<xsl:value-of select="format-number (price, '###,##0.00')"/>
- </td>
- <xsl:if test="../@name='Shopping Cart'">
- <td>
- <a href="removeItemFromCart.do?workingItemId={@id}"><img border="0" src="images/button_remove.gif" /></a>
- </td>
- </xsl:if>
- </tr>
- </xsl:template>
-
-
-
-
- <xsl:template match="item">
- <p>
- <table align="center" bgcolor="#008800" cellspacing="2" cellpadding="3" border="0" width="60%">
- <tr bgcolor="#FFFF88">
- <td bgcolor="#FFFFFF">
- <xsl:value-of select="product-desc" />
- </td>
- </tr>
- <tr bgcolor="#FFFF88">
- <td width="100%" bgcolor="#cccccc">
- <b><xsl:value-of select="@id" /></b>
- </td>
- </tr>
- <tr bgcolor="#FFFF88">
- <td>
- <b><font size="4"><xsl:value-of select="desc" /></font></b>
- </td>
- </tr>
- <tr bgcolor="#FFFF88">
- <td>
- <font size="3"><i><xsl:value-of select="product-name" /></i></font>
- </td>
- </tr>
- <!-- quantity stuff still missing -->
-
- <tr bgcolor="#FFFF88">
- <td>
- <xsl:value-of select="format-number (instock, '####')"/> in stock.
- </td>
- </tr>
- <tr bgcolor="#FFFF88">
- <td>
- $<xsl:value-of select="format-number (price, '###,##0.00')"/>
- </td>
- </tr>
- <tr bgcolor="#FFFF88">
- <td>
- <a href="addItemToCart.do?itemId={@id}" ><img border="0" src="images/button_add_to_cart.gif" /></a>
- </td>
- </tr>
- </table>
- </p>
- </xsl:template>
-
- <xsl:template match="editAccountForm">
- <xsl:copy-of select="*"/>
- </xsl:template>
-
- <xsl:template match="form[@styleId='workingAccountForm']">
- <form>
- <xsl:copy-of select="@action | @method | @styleId "/>
- <xsl:choose>
- <xsl:when test="/site/@signOn='true'">
- <hidden name="workingAccountForm" property="validate" value="newAccount"/>
- </xsl:when>
- <xsl:otherwise>
- <hidden name="workingAccountForm" property="validate" value="editAccount" />
- <hidden name="workingAccountForm" property="account.username" />
- </xsl:otherwise>
- </xsl:choose>
- <table cellpadding="10" cellspacing="0" align="center" border="1" bgcolor="#dddddd">
- <tr>
- <td>
- <xsl:apply-templates/>
- </td>
- </tr>
- </table>
- <br />
- <center>
- <input border="0" type="image" src="images/button_submit.gif" name="submit" value="Save Account Information" />
- </center>
- </form>
- <xsl:if test="/site/@signOn='false'">
- <p>
- <center><b><a href="listOrders.do">My Orders</a></b></center>
- </p>
- </xsl:if>
- </xsl:template>
-
-
- <xsl:template match="form[@styleId='workingOrderForm']">
- <b><font color="RED"><xsl:value-of select="message" /></font></b>
- <form>
- <xsl:copy-of select="@action | @method | @styleId"/>
- <xsl:apply-templates/>
- <p><center>
- <input type="image" src="images/button_submit.gif"/>
- </center>
- </p>
- </form>
- </xsl:template>
-
- <xsl:template match="form[@label='signon']">
- <xsl:apply-templates select="message"/>
- <form>
- <xsl:copy-of select="@action | @method"/>
- <table align="center" border="0">
- <tr>
- <td colspan="2">Please enter your username and password.<br /> </td>
- </tr>
- <xsl:apply-templates select="input"/>
- </table>
- </form>
- </xsl:template>
-
-
- <xsl:template match="panel[panel]">
- <table width="60%" align="center" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFF88">
- <xsl:if test="@header">
- <tr bgcolor="#FFFF88">
- <td align="center" colspan="2">
- <font size="4"><b><xsl:value-of select="@header" /></b></font>
- <xsl:if test="@subheader">
- <br /><font size="3"><b><xsl:value-of select="@subheader" /></b></font>
- </xsl:if>
- </td>
- </tr>
- </xsl:if>
- <xsl:apply-templates/>
- </table>
- </xsl:template>
-
- <xsl:template match="panel">
- <font color="darkgreen"><h3><xsl:value-of select="@label" /></h3></font>
- <table border="0" cellpadding="3" cellspacing="1" bgcolor="#008800">
- <xsl:apply-templates/>
- </table>
- </xsl:template>
-
- <xsl:template match="panel/panel">
- <tr bgcolor="#FFFF88">
- <td colspan="2">
- <font color="GREEN" size="4"><b><xsl:value-of select="@label" />:</b></font>
- </td>
- </tr>
- <xsl:apply-templates/>
- </xsl:template>
-
- <xsl:template match="panel/select">
- <tr bgcolor="#FFFF88">
- <td><xsl:value-of select="@label" /></td>
- <td>
- <select>
- <xsl:copy-of select="@type | @src | @value | @name | @size | @selected | node()" />
- </select>
- </td>
- </tr>
- </xsl:template>
-
- <xsl:template match="panel/input">
- <tr bgcolor="#FFFF88">
- <td><xsl:value-of select="@label" /></td>
- <td><input><xsl:copy-of select="@type | @src | @value | @name | @size | @selected"/></input></td>
- </tr>
- </xsl:template>
-
- <xsl:template match="panel/field">
- <tr bgcolor="#FFFF88">
- <td><xsl:value-of select="@label" />:</td>
- <td><xsl:value-of select="." /></td>
- </tr>
- </xsl:template>
-
- <xsl:template match="panel/field[@empty]">
- <tr bgcolor="#FFFF88">
- <td colspan="{@empty}"><xsl:value-of select="@label" />
- <xsl:apply-templates />
- </td>
- </tr>
- </xsl:template>
-
- <xsl:template match="message">
- <br clear="all" />
- <center>
- <b>
- <font size="4">
- <xsl:if test="@type='warning'">
- <xsl:attribute name="color">RED</xsl:attribute>
- </xsl:if>
- <xsl:value-of select="." />
- </font>
- </b>
- </center>
- <br clear="all" />
- </xsl:template>
-
-
- <xsl:template match="input">
- <tr>
- <td><xsl:value-of select="@label" /></td>
- <td><input><xsl:copy-of select="@type | @src | @value | @name | @size | @selected"/></input></td>
- </tr>
- </xsl:template>
-
-
- <xsl:template match="register">
- <center>
- <a href="newAccountForm.do"><img border="0" src="images/button_register_now.gif" /></a>
- </center>
- </xsl:template>
-
-</xsl:stylesheet>
-
+<?xml version="1.0" encoding="utf-8"?>
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ exclude-result-prefixes="xalan" >
+
+ <xsl:template match="site">
+ <html>
+ <head>
+ <meta content="text/html; charset=windows-1252" http-equiv="Content-Type" />
+ <meta HTTP-EQUIV="Cache-Control" CONTENT="max-age=0"/>
+ <meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache"/>
+ <meta http-equiv="expires" content="0"/>
+ <meta HTTP-EQUIV="Expires" CONTENT="Tue, 01 Jan 1980 1:00:00 GMT"/>
+ <meta HTTP-EQUIV="Pragma" CONTENT="no-cache"/>
+ </head>
+ <body bgcolor="white">
+ <table background="images/bkg-topbar.gif" border="0" cellspacing="0" cellpadding="5" width="100%">
+ <tbody>
+ <tr>
+ <td>
+ <form method="post" action="index.do">
+ <input type="image" border="0" src="images/logo-topbar.gif" />
+ <select name="view" width="14" align="left" onChange="document.forms[0].submit()">
+ <xsl:choose>
+ <xsl:when test="@view='jxpath'">
+ <option value="JXPath">JXPath</option>
+ <option value="Jexl">Jexl</option>
+ <option value="Xsp">Xsp</option>
+ <option value="Velocity">Velocity</option>
+ </xsl:when>
+ <xsl:when test="@view='jexl'">
+ <option value="Jexl">Jexl</option>
+ <option value="JXPath">JXPath</option>
+ <option value="Xsp">Xsp</option>
+ <option value="Velocity">Velocity</option>
+ </xsl:when>
+ <xsl:otherwise>
+ <option value="Xsp">Xsp</option>
+ <option value="JXPath">JXPath</option>
+ <option value="Jexl">Jexl</option>
+ <option value="Velocity">Velocity</option>
+ </xsl:otherwise>
+ </xsl:choose>
+ </select>
+ </form>
+ </td>
+ <td align="right">
+ <a href="viewCart.do"><img border="0" name="img_cart" src="images/cart.gif" /></a><img border="0" src="images/separator.gif" hspace="4" />
+ <xsl:choose>
+ <xsl:when test="@signOn='true'">
+ <a href="signonForm.do"><img border="0" name="img_signin" src="images/sign-in.gif" /></a>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="signonForm.do?signoff=true"><img border="0" name="img_signout" src="images/sign-out.gif" /></a><img border="0" src="images/separator.gif" hspace="4" />
+ <a href="editAccount.form"><img border="0" name="img_myaccount" src="images/my_account.gif" /></a>
+ </xsl:otherwise>
+ </xsl:choose>
+ <img border="0" src="images/separator.gif" hspace="4" /><a href="../help.html"><img border="0" name="img_help" src="images/help.gif" /></a>
+ </td>
+ <td align="left" valign="bottom">
+ <form method="post" action="searchProducts.do">
+ <input name="keyword" size="14" />
+ <input border="0" src="images/search.gif" type="image" />
+ </form>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <center>
+ <a href="viewCategory.do?categoryId=FISH"><img border="0" src="images/sm_fish.gif" /></a>
+ <img border="0" src="images/separator.gif" hspace="4" />
+ <a href="viewCategory.do?categoryId=DOGS"><img border="0" src="images/sm_dogs.gif" /></a>
+ <img border="0" src="images/separator.gif" hspace="4" />
+ <a href="viewCategory.do?categoryId=REPTILES"><img border="0" src="images/sm_reptiles.gif" /></a>
+ <img border="0" src="images/separator.gif" hspace="4" />
+ <a href="viewCategory.do?categoryId=CATS"><img border="0" src="images/sm_cats.gif" /></a>
+ <img border="0" src="images/separator.gif" hspace="4" />
+ <a href="viewCategory.do?categoryId=BIRDS"><img border="0" src="images/sm_birds.gif" /></a>
+ </center>
+ <xsl:apply-templates/>
+ <br/>
+ <p align="center">
+ <a href="http://cocoon.apache.org"><img border="0" align="center" src="images/cocoon.gif" /></a>
+ </p>
+ </body>
+ </html>
+ </xsl:template>
+
+ <xsl:template match="welcome">
+ <table border="0" cellspacing="0" width="100%">
+ <tbody>
+ <tr>
+ <td valign="top" width="100%">
+ <table align="left" border="0" cellspacing="0" width="80%">
+ <tbody>
+ <tr>
+ <td valign="top">
+ <xsl:apply-templates/>
+ </td>
+ <td align="center" bgcolor="white" height="300" width="100%">
+ <map name="estoremap">
+ <area alt="Birds" coords="72,2,280,250" href="viewCategory.do?categoryId=BIRDS" shape="RECT" />
+ <area alt="Fish" coords="2,180,72,250" href="viewCategory.do?categoryId=FISH" shape="RECT" />
+ <area alt="Dogs" coords="60,250,130,320" href="viewCategory.do?categoryId=DOGS" shape="RECT" />
+ <area alt="Reptiles" coords="140,270,210,340" href="viewCategory.do?categoryId=REPTILES" shape="RECT" />
+ <area alt="Cats" coords="225,240,295,310" href="viewCategory.do?categoryId=CATS" shape="RECT" />
+ <area alt="Birds" coords="280,180,350,250" href="viewCategory.do?categoryId=BIRDS" shape="RECT" />
+ </map>
+ <img border="0" height="355" src="images/splash.gif" align="center" usemap="#estoremap" width="350" />
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </xsl:template>
+
+ <xsl:template match="menu">
+ <table bgcolor="#FFFF88" border="0" cellspacing="0" cellpadding="5" width="200">
+ <tbody>
+ <tr>
+ <td>
+ <!--
+ #if (!$accountForm.signOn)
+ <b><i><font size="2" color="BLACK">Welcome $accountForm.account.firstName!</font></i></b>
+ #end
+ -->
+ </td>
+ </tr>
+ <xsl:apply-templates/>
+ </tbody>
+ </table>
+ </xsl:template>
+
+ <xsl:template match="menu/category">
+ <tr>
+ <td>
+ <a href="viewCategory.do?categoryId={@id}"><i><h2><xsl:value-of select="@name" /></h2></i></a>
+ </td>
+ </tr>
+ </xsl:template>
+
+ <xsl:template match="backpointer">
+ <table align="left" bgcolor="#008800" border="0" cellspacing="2" cellpadding="2">
+ <tr>
+ <td bgcolor="#FFFF88">
+ <a href="{@do}"><b><font color="BLACK" size="2"><< <xsl:value-of select="@name" /></font></b></a>
+ </td>
+ </tr>
+ </table>
+ </xsl:template>
+
+ <xsl:template match="category">
+ <p>
+ <center>
+ <h2><xsl:value-of select="@name" /></h2>
+ </center>
+ <table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="3">
+ <tr bgcolor="#CCCCCC">
+ <td>
+ <b>Product ID</b>
+ </td>
+ <td>
+ <b>Name</b>
+ </td>
+ </tr>
+ <xsl:apply-templates/>
+ </table>
+ </p>
+ </xsl:template>
+
+ <xsl:template match="category/product">
+ <tr bgcolor="#FFFF88">
+ <td>
+ <b><a href="viewProduct.do?productId={@id}"><font color="BLACK"><xsl:value-of select="@id" /></font></a></b>
+ </td>
+ <td>
+ <xsl:value-of select="@name" />
+ </td>
+ </tr>
+ </xsl:template>
+
+ <xsl:template match="search">
+ <table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="3">
+ <tr bgcolor="#CCCCCC">
+ <td></td>
+ <td>
+ <b>Product ID</b>
+ </td>
+ <td>
+ <b>Name</b>
+ </td>
+ </tr>
+
+ <xsl:apply-templates/>
+ </table>
+
+ </xsl:template>
+
+ <xsl:template match="search/product">
+ <tr bgcolor="#FFFF88">
+ <td><a href="viewProduct.do?productId={@id}"><xsl:value-of select="product-desc" /></a></td>
+ <td>
+ <b><a href="viewProduct.do?productId={@id}"><font color="BLACK"><xsl:value-of select="@id" /></font></a></b>
+ </td>
+ <td><xsl:value-of select="@name" /></td>
+ </tr>
+ </xsl:template>
+
+ <xsl:template match="situation">
+ <tr>
+ <td>
+ <xsl:if test="@firstPage='false'" >
+ <a href="{@continuation}.kont?page=previous"><font color="white"><B><< Prev</B></font></a>
+ </xsl:if>
+ <xsl:if test="@lastPage='false'" >
+ <a href="{@continuation}.kont?page=next"><font color="white"><B>Next >></B></font></a>
+ </xsl:if>
+ </td>
+ </tr>
+ </xsl:template>
+
+ <xsl:template match="product">
+ <p>
+ <center>
+ <b><font size="4"><xsl:value-of select="@name" /></font></b>
+ </center>
+
+ <table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="3">
+ <tr bgcolor="#CCCCCC">
+ <td><b>Item ID</b></td>
+ <td><b>Product ID</b></td>
+ <td><b>Description</b></td>
+ <td><b>List Price</b></td>
+ <td></td>
+ </tr>
+ <xsl:apply-templates/>
+ </table>
+ </p>
+ </xsl:template>
+
+ <xsl:template match="product/item">
+ <tr bgcolor="#FFFF88">
+ <td>
+ <b><a href="viewItem.do?itemId={@id}"><xsl:value-of select="@id" /></a></b>
+ </td>
+ <td>
+ <b><xsl:value-of select="@product-id" /></b>
+ </td>
+ <td>
+ <xsl:value-of select="desc" /><xsl:text> </xsl:text><xsl:value-of select="../@name" />
+ </td>
+ <td>
+ <xsl:text>$</xsl:text> <xsl:value-of select="price" />
+ </td>
+ <td>
+ <a href="addItemToCart.do?itemId={@id}"><img border="0" src="images/button_add_to_cart.gif" /></a>
+ </td>
+ </tr>
+ </xsl:template>
+
+ <xsl:template name="cart-common-columns">
+ <td><b>Item ID</b></td>
+ <td><b>Product ID</b></td>
+ <td><b>Description</b></td>
+ <td><b>Quantity</b></td>
+ <td><b>List Price</b></td>
+ </xsl:template>
+
+ <xsl:template match="cart[@name='Shopping Cart']">
+ <table border="0" width="100%" cellspacing="0" cellpadding="0">
+ <tr>
+ <td valign="top" width="20%" align="left">
+ <xsl:apply-templates select="backpointer" />
+ </td>
+ <td valign="top" align="center">
+ <h2 align="center"><xsl:value-of select="@name" /></h2>
+ <form action="updateCartQuantities.do" method="post" >
+ <table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="5">
+ <tr bgcolor="#cccccc">
+ <xsl:call-template name="cart-common-columns" />
+ <td></td>
+ </tr>
+ <xsl:if test="not(item)">
+ <tr bgcolor="#FFFF88">
+ <td colspan="6">
+ <b>Your cart is empty.</b>
+ </td>
+ </tr>
+ </xsl:if>
+ <xsl:apply-templates select="item" />
+ <tr bgcolor="#FFFF88">
+ <td colspan="5" align="right">
+ <b>Sub Total: $<xsl:value-of select="format-number (total, '###,##0.00')"/></b><br />
+ <input type="image" border="0" src="images/button_update_cart.gif" name="update" />
+ </td>
+ <td></td>
+ </tr>
+ </table>
+ </form>
+ <xsl:if test="item">
+ <xsl:apply-templates select="nextpointer" />
+ </xsl:if>
+ </td>
+ <td valign="top" width="20%" align="right">
+ </td>
+ </tr>
+ </table>
+ </xsl:template>
+
+ <xsl:template match="cart[@name='Checkout Summary']">
+ <table border="0" width="100%" cellspacing="0" cellpadding="0">
+ <tr>
+ <td valign="top" width="20%" align="left">
+ <xsl:apply-templates select="backpointer" />
+ </td>
+ <td valign="top" align="center">
+ <h2 align="center"><xsl:value-of select="@name" /></h2>
+ <table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="5">
+ <tr bgcolor="#cccccc">
+ <xsl:call-template name="cart-common-columns" />
+ </tr>
+ <xsl:apply-templates select="item" />
+ <tr bgcolor="#FFFF88">
+ <td colspan="5" align="right">
+ <b>Sub Total: $<xsl:value-of select="format-number (total, '###,##0.00')"/></b><br />
+ </td>
+ </tr>
+ </table>
+ <xsl:apply-templates select="nextpointer" />
+ </td>
+ <td valign="top" width="20%" align="right">
+ </td>
+ </tr>
+ </table>
+ </xsl:template>
+
+ <xsl:template match="cart[@name='Status']">
+ <table align="center" bgcolor="#008800" border="0" cellspacing="2" cellpadding="5">
+ <tr bgcolor="#cccccc">
+ <xsl:call-template name="cart-common-columns" />
+ </tr>
+ <xsl:apply-templates select="item" />
+ <tr bgcolor="#FFFF88">
+ <td colspan="5" align="right">
+ <b>Total: $<xsl:value-of select="format-number (total, '###,##0.00')"/></b><br />
+ </td>
+ </tr>
+ </table>
+ </xsl:template>
+
+
+ <xsl:template match="nextpointer">
+ <br />
+ <center>
+ <a href="{@do}"><img border="0" src="{@img}" /></a>
+ </center>
+ </xsl:template>
+
+
+ <xsl:template match="cart/item">
+ <tr bgcolor="#FFFF88">
+ <td>
+ <b><xsl:value-of select="@id" /></b>
+ </td>
+ <td>
+ <xsl:value-of select="@product-id" />
+ </td>
+ <td>
+ <xsl:value-of select="desc" />
+ </td>
+ <td align="center">
+ <xsl:choose>
+ <xsl:when test="../@name='Shopping Cart'">
+ <input type="text" size="3" name="{@id}" >
+ <xsl:attribute name="value"><xsl:value-of select="format-number (quantity, '####')"/></xsl:attribute>
+ </input>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="format-number (quantity, '####')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td align="right">
+ $<xsl:value-of select="format-number (price, '###,##0.00')"/>
+ </td>
+ <xsl:if test="../@name='Shopping Cart'">
+ <td>
+ <a href="removeItemFromCart.do?workingItemId={@id}"><img border="0" src="images/button_remove.gif" /></a>
+ </td>
+ </xsl:if>
+ </tr>
+ </xsl:template>
+
+
+
+
+ <xsl:template match="item">
+ <p>
+ <table align="center" bgcolor="#008800" cellspacing="2" cellpadding="3" border="0" width="60%">
+ <tr bgcolor="#FFFF88">
+ <td bgcolor="#FFFFFF">
+ <xsl:value-of select="product-desc" />
+ </td>
+ </tr>
+ <tr bgcolor="#FFFF88">
+ <td width="100%" bgcolor="#cccccc">
+ <b><xsl:value-of select="@id" /></b>
+ </td>
+ </tr>
+ <tr bgcolor="#FFFF88">
+ <td>
+ <b><font size="4"><xsl:value-of select="desc" /></font></b>
+ </td>
+ </tr>
+ <tr bgcolor="#FFFF88">
+ <td>
+ <font size="3"><i><xsl:value-of select="product-name" /></i></font>
+ </td>
+ </tr>
+ <!-- quantity stuff still missing -->
+
+ <tr bgcolor="#FFFF88">
+ <td>
+ <xsl:value-of select="format-number (instock, '####')"/> in stock.
+ </td>
+ </tr>
+ <tr bgcolor="#FFFF88">
+ <td>
+ $<xsl:value-of select="format-number (price, '###,##0.00')"/>
+ </td>
+ </tr>
+ <tr bgcolor="#FFFF88">
+ <td>
+ <a href="addItemToCart.do?itemId={@id}" ><img border="0" src="images/button_add_to_cart.gif" /></a>
+ </td>
+ </tr>
+ </table>
+ </p>
+ </xsl:template>
+
+ <xsl:template match="editAccountForm">
+ <xsl:copy-of select="*"/>
+ </xsl:template>
+
+ <xsl:template match="form[@styleId='workingAccountForm']">
+ <form>
+ <xsl:copy-of select="@action | @method | @styleId "/>
+ <xsl:choose>
+ <xsl:when test="/site/@signOn='true'">
+ <hidden name="workingAccountForm" property="validate" value="newAccount"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <hidden name="workingAccountForm" property="validate" value="editAccount" />
+ <hidden name="workingAccountForm" property="account.username" />
+ </xsl:otherwise>
+ </xsl:choose>
+ <table cellpadding="10" cellspacing="0" align="center" border="1" bgcolor="#dddddd">
+ <tr>
+ <td>
+ <xsl:apply-templates/>
+ </td>
+ </tr>
+ </table>
+ <br />
+ <center>
+ <input border="0" type="image" src="images/button_submit.gif" name="submit" value="Save Account Information" />
+ </center>
+ </form>
+ <xsl:if test="/site/@signOn='false'">
+ <p>
+ <center><b><a href="listOrders.do">My Orders</a></b></center>
+ </p>
+ </xsl:if>
+ </xsl:template>
+
+
+ <xsl:template match="form[@styleId='workingOrderForm']">
+ <b><font color="RED"><xsl:value-of select="message" /></font></b>
+ <form>
+ <xsl:copy-of select="@action | @method | @styleId"/>
+ <xsl:apply-templates/>
+ <p><center>
+ <input type="image" src="images/button_submit.gif"/>
+ </center>
+ </p>
+ </form>
+ </xsl:template>
+
+ <xsl:template match="form[@label='signon']">
+ <xsl:apply-templates select="message"/>
+ <form>
+ <xsl:copy-of select="@action | @method"/>
+ <table align="center" border="0">
+ <tr>
+ <td colspan="2">Please enter your username and password.<br /> </td>
+ </tr>
+ <xsl:apply-templates select="input"/>
+ </table>
+ </form>
+ </xsl:template>
+
+
+ <xsl:template match="panel[panel]">
+ <table width="60%" align="center" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFF88">
+ <xsl:if test="@header">
+ <tr bgcolor="#FFFF88">
+ <td align="center" colspan="2">
+ <font size="4"><b><xsl:value-of select="@header" /></b></font>
+ <xsl:if test="@subheader">
+ <br /><font size="3"><b><xsl:value-of select="@subheader" /></b></font>
+ </xsl:if>
+ </td>
+ </tr>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </table>
+ </xsl:template>
+
+ <xsl:template match="panel">
+ <font color="darkgreen"><h3><xsl:value-of select="@label" /></h3></font>
+ <table border="0" cellpadding="3" cellspacing="1" bgcolor="#008800">
+ <xsl:apply-templates/>
+ </table>
+ </xsl:template>
+
+ <xsl:template match="panel/panel">
+ <tr bgcolor="#FFFF88">
+ <td colspan="2">
+ <font color="GREEN" size="4"><b><xsl:value-of select="@label" />:</b></font>
+ </td>
+ </tr>
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="panel/select">
+ <tr bgcolor="#FFFF88">
+ <td><xsl:value-of select="@label" /></td>
+ <td>
+ <select>
+ <xsl:copy-of select="@type | @src | @value | @name | @size | @selected | node()" />
+ </select>
+ </td>
+ </tr>
+ </xsl:template>
+
+ <xsl:template match="panel/input">
+ <tr bgcolor="#FFFF88">
+ <td><xsl:value-of select="@label" /></td>
+ <td><input><xsl:copy-of select="@type | @src | @value | @name | @size | @selected"/></input></td>
+ </tr>
+ </xsl:template>
+
+ <xsl:template match="panel/field">
+ <tr bgcolor="#FFFF88">
+ <td><xsl:value-of select="@label" />:</td>
+ <td><xsl:value-of select="." /></td>
+ </tr>
+ </xsl:template>
+
+ <xsl:template match="panel/field[@empty]">
+ <tr bgcolor="#FFFF88">
+ <td colspan="{@empty}"><xsl:value-of select="@label" />
+ <xsl:apply-templates />
+ </td>
+ </tr>
+ </xsl:template>
+
+ <xsl:template match="message">
+ <br clear="all" />
+ <center>
+ <b>
+ <font size="4">
+ <xsl:if test="@type='warning'">
+ <xsl:attribute name="color">RED</xsl:attribute>
+ </xsl:if>
+ <xsl:value-of select="." />
+ </font>
+ </b>
+ </center>
+ <br clear="all" />
+ </xsl:template>
+
+
+ <xsl:template match="input">
+ <tr>
+ <td><xsl:value-of select="@label" /></td>
+ <td><input><xsl:copy-of select="@type | @src | @value | @name | @size | @selected"/></input></td>
+ </tr>
+ </xsl:template>
+
+
+ <xsl:template match="register">
+ <center>
+ <a href="newAccountForm.do"><img border="0" src="images/button_register_now.gif" /></a>
+ </center>
+ </xsl:template>
+
+</xsl:stylesheet>
+
1.3 +65 -65 cocoon-2.1/src/scratchpad/webapp/samples/petstore/view/jxforms/EditAccountInformation.xml
Index: EditAccountInformation.xml
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/scratchpad/webapp/samples/petstore/view/jxforms/EditAccountInformation.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- EditAccountInformation.xml 3 May 2003 20:36:13 -0000 1.2
+++ EditAccountInformation.xml 6 May 2003 14:13:03 -0000 1.3
@@ -1,65 +1,65 @@
-<?xml version="1.0"?>
-
-<site xmlns:xf="http://apache.org/cocoon/jxforms/1.0"
- signOn="false" view="xsp">
- <editAccountForm>
- <xf:form id="petstore-edit-account" view="edit-account-info" action="petstore" method="GET" class="petstore-form">
- <error>
- <xf:violations class="error"/>
- </error>
-
- <xf:group class="panel" ref="/account">
- <xf:label class="header" >Account Information</xf:label>
- <xf:input ref="/account/firstName">
- <xf:label>First Name:</xf:label>
- <xf:violations class="error"/>
- </xf:input>
- <xf:input ref="lastName">
- <xf:label>Last Name:</xf:label>
- <xf:violations class="error"/>
- </xf:input>
- <xf:input ref="email">
- <xf:label>Email:</xf:label>
- <xf:violations class="error"/>
- </xf:input>
- <xf:input ref="phone">
- <xf:label>Phone:</xf:label>
- <xf:violations class="error"/>
- </xf:input>
- <xf:input ref="address1">
- <xf:label>Address 1:</xf:label>
- <xf:violations class="error"/>
- </xf:input>
- <xf:input ref="address2">
- <xf:label>Address 2:</xf:label>
- <xf:violations class="error"/>
- </xf:input>
- <xf:input ref="city">
- <xf:label>City:</xf:label>
- <xf:violations class="error"/>
- </xf:input>
- <xf:input ref="state">
- <xf:label>State:</xf:label>
- <xf:violations class="error"/>
- </xf:input>
- <xf:input ref="zip">
- <xf:label>Zip:</xf:label>
- <xf:violations class="error"/>
- </xf:input>
- <xf:input ref="country">
- <xf:label>Country:</xf:label>
- <xf:violations class="error"/>
- </xf:input>
- </xf:group>
-
- <xf:submit id="prev" continuation="back" class="button">
- <xf:label>Back</xf:label>
- <xf:hint>Go Back</xf:hint>
- </xf:submit>
- <xf:submit id="next" continuation="forward" class="button">
- <xf:label>Next</xf:label>
- <xf:hint>Continue</xf:hint>
- </xf:submit>
- </xf:form>
-</editAccountForm>
-</site>
+<?xml version="1.0"?>
+
+<site xmlns:xf="http://apache.org/cocoon/jxforms/1.0"
+ signOn="false" view="xsp">
+ <editAccountForm>
+ <xf:form id="petstore-edit-account" view="edit-account-info" action="petstore" method="GET" class="petstore-form">
+ <error>
+ <xf:violations class="error"/>
+ </error>
+
+ <xf:group class="panel" ref="/account">
+ <xf:label class="header" >Account Information</xf:label>
+ <xf:input ref="/account/firstName">
+ <xf:label>First Name:</xf:label>
+ <xf:violations class="error"/>
+ </xf:input>
+ <xf:input ref="lastName">
+ <xf:label>Last Name:</xf:label>
+ <xf:violations class="error"/>
+ </xf:input>
+ <xf:input ref="email">
+ <xf:label>Email:</xf:label>
+ <xf:violations class="error"/>
+ </xf:input>
+ <xf:input ref="phone">
+ <xf:label>Phone:</xf:label>
+ <xf:violations class="error"/>
+ </xf:input>
+ <xf:input ref="address1">
+ <xf:label>Address 1:</xf:label>
+ <xf:violations class="error"/>
+ </xf:input>
+ <xf:input ref="address2">
+ <xf:label>Address 2:</xf:label>
+ <xf:violations class="error"/>
+ </xf:input>
+ <xf:input ref="city">
+ <xf:label>City:</xf:label>
+ <xf:violations class="error"/>
+ </xf:input>
+ <xf:input ref="state">
+ <xf:label>State:</xf:label>
+ <xf:violations class="error"/>
+ </xf:input>
+ <xf:input ref="zip">
+ <xf:label>Zip:</xf:label>
+ <xf:violations class="error"/>
+ </xf:input>
+ <xf:input ref="country">
+ <xf:label>Country:</xf:label>
+ <xf:violations class="error"/>
+ </xf:input>
+ </xf:group>
+
+ <xf:submit id="prev" continuation="back" class="button">
+ <xf:label>Back</xf:label>
+ <xf:hint>Go Back</xf:hint>
+ </xf:submit>
+ <xf:submit id="next" continuation="forward" class="button">
+ <xf:label>Next</xf:label>
+ <xf:hint>Continue</xf:hint>
+ </xf:submit>
+ </xf:form>
+</editAccountForm>
+</site>
1.3 +54 -54 cocoon-2.1/src/scratchpad/webapp/samples/petstore/view/jxforms/EditProfileInformation.xml
Index: EditProfileInformation.xml
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/scratchpad/webapp/samples/petstore/view/jxforms/EditProfileInformation.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- EditProfileInformation.xml 3 May 2003 20:36:13 -0000 1.2
+++ EditProfileInformation.xml 6 May 2003 14:13:03 -0000 1.3
@@ -1,54 +1,54 @@
-<?xml version="1.0"?>
-
-<site xmlns:xf="http://apache.org/cocoon/jxforms/1.0"
- signOn="false" view="xsp">
- <editAccountForm>
- <xf:form id="petstore-edit-account" view="edit-profile" action="petstore" method="GET">
- <error>
- <xf:violations class="error"/>
- </error>
-
- <xf:group ref="/account">
- <xf:label class="header">Profile Information</xf:label>
- <xf:select1 ref="/account/favCategory">
- <xf:label>Favorite Category:</xf:label>
- <xf:itemset nodeset="/categoryList">
- <xf:label><xf:output ref="name"/></xf:label>
- <xf:value><xf:output ref="name"/></xf:value>
- </xf:itemset>
- </xf:select1>
- <xf:select1 ref="/account/listOption">
- <xf:label>Enable MyList</xf:label>
- <xf:item>
- <xf:label>Yes</xf:label>
- <xf:value>true</xf:value>
- </xf:item>
- <xf:item>
- <xf:label>No</xf:label>
- <xf:value></xf:value>
- </xf:item>
- </xf:select1>
- <xf:select1 ref="/account/bannerOption">
- <xf:label>Enable MyBanner</xf:label>
- <xf:item>
- <xf:label>Yes</xf:label>
- <xf:value>true</xf:value>
- </xf:item>
- <xf:item>
- <xf:label>No</xf:label>
- <xf:value></xf:value>
- </xf:item>
- </xf:select1>
- </xf:group>
-
- <xf:submit id="prev" continuation="back" class="button">
- <xf:label>Back</xf:label>
- <xf:hint>Go Back</xf:hint>
- </xf:submit>
- <xf:submit id="next" continuation="forward" class="button">
- <xf:label>Finish</xf:label>
- <xf:hint>Submit Account Information</xf:hint>
- </xf:submit>
- </xf:form>
-</editAccountForm>
-</site>
+<?xml version="1.0"?>
+
+<site xmlns:xf="http://apache.org/cocoon/jxforms/1.0"
+ signOn="false" view="xsp">
+ <editAccountForm>
+ <xf:form id="petstore-edit-account" view="edit-profile" action="petstore" method="GET">
+ <error>
+ <xf:violations class="error"/>
+ </error>
+
+ <xf:group ref="/account">
+ <xf:label class="header">Profile Information</xf:label>
+ <xf:select1 ref="/account/favCategory">
+ <xf:label>Favorite Category:</xf:label>
+ <xf:itemset nodeset="/categoryList">
+ <xf:label><xf:output ref="name"/></xf:label>
+ <xf:value><xf:output ref="name"/></xf:value>
+ </xf:itemset>
+ </xf:select1>
+ <xf:select1 ref="/account/listOption">
+ <xf:label>Enable MyList</xf:label>
+ <xf:item>
+ <xf:label>Yes</xf:label>
+ <xf:value>true</xf:value>
+ </xf:item>
+ <xf:item>
+ <xf:label>No</xf:label>
+ <xf:value></xf:value>
+ </xf:item>
+ </xf:select1>
+ <xf:select1 ref="/account/bannerOption">
+ <xf:label>Enable MyBanner</xf:label>
+ <xf:item>
+ <xf:label>Yes</xf:label>
+ <xf:value>true</xf:value>
+ </xf:item>
+ <xf:item>
+ <xf:label>No</xf:label>
+ <xf:value></xf:value>
+ </xf:item>
+ </xf:select1>
+ </xf:group>
+
+ <xf:submit id="prev" continuation="back" class="button">
+ <xf:label>Back</xf:label>
+ <xf:hint>Go Back</xf:hint>
+ </xf:submit>
+ <xf:submit id="next" continuation="forward" class="button">
+ <xf:label>Finish</xf:label>
+ <xf:hint>Submit Account Information</xf:hint>
+ </xf:submit>
+ </xf:form>
+</editAccountForm>
+</site>
1.3 +34 -34 cocoon-2.1/src/scratchpad/webapp/samples/petstore/view/jxforms/EditUserInformation.xml
Index: EditUserInformation.xml
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/scratchpad/webapp/samples/petstore/view/jxforms/EditUserInformation.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- EditUserInformation.xml 3 May 2003 20:36:13 -0000 1.2
+++ EditUserInformation.xml 6 May 2003 14:13:03 -0000 1.3
@@ -1,34 +1,34 @@
-<?xml version="1.0"?>
-
-<site xmlns:xf="http://apache.org/cocoon/jxforms/1.0"
- signOn="false" view="xsp">
- <editAccountForm>
- <xf:form id="petstore-edit-account" view="edit-user-info" action="petstore" method="GET" class="petstore-form">
- <error>
- <xf:violations class="error"/>
- </error>
-
- <xf:group class="panel" ref="/">
- <xf:label class="header">User Information</xf:label>
- <xf:input ref="/username">
- <xf:label>User ID:</xf:label>
- <xf:violations class="error"/>
- </xf:input>
- <xf:secret ref="/password">
- <xf:label>Password:</xf:label>
- <xf:violations class="error"/>
- </xf:secret>
- <xf:secret ref="/password2">
- <xf:label>Repeat Password:</xf:label>
- <xf:violations class="error"/>
- </xf:secret>
- </xf:group>
-
-
- <xf:submit id="next" continuation="forward" class="button">
- <xf:label>Next</xf:label>
- <xf:hint>Continue</xf:hint>
- </xf:submit>
- </xf:form>
-</editAccountForm>
-</site>
+<?xml version="1.0"?>
+
+<site xmlns:xf="http://apache.org/cocoon/jxforms/1.0"
+ signOn="false" view="xsp">
+ <editAccountForm>
+ <xf:form id="petstore-edit-account" view="edit-user-info" action="petstore" method="GET" class="petstore-form">
+ <error>
+ <xf:violations class="error"/>
+ </error>
+
+ <xf:group class="panel" ref="/">
+ <xf:label class="header">User Information</xf:label>
+ <xf:input ref="/username">
+ <xf:label>User ID:</xf:label>
+ <xf:violations class="error"/>
+ </xf:input>
+ <xf:secret ref="/password">
+ <xf:label>Password:</xf:label>
+ <xf:violations class="error"/>
+ </xf:secret>
+ <xf:secret ref="/password2">
+ <xf:label>Repeat Password:</xf:label>
+ <xf:violations class="error"/>
+ </xf:secret>
+ </xf:group>
+
+
+ <xf:submit id="next" continuation="forward" class="button">
+ <xf:label>Next</xf:label>
+ <xf:hint>Continue</xf:hint>
+ </xf:submit>
+ </xf:form>
+</editAccountForm>
+</site>
1.2 +40 -39 cocoon-2.1/src/webapp/samples/errorhandling/sitemap.xmap
Index: sitemap.xmap
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/webapp/samples/errorhandling/sitemap.xmap,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- sitemap.xmap 29 Apr 2003 10:45:19 -0000 1.1
+++ sitemap.xmap 6 May 2003 14:13:03 -0000 1.2
@@ -1,39 +1,40 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
- <map:components>
- <map:selectors default="browser">
- <map:selector name="exception" src="org.apache.cocoon.selection.XPathExceptionSelector">
- <exception name="application" class="org.apache.cocoon.samples.errorhandling.ApplicationException">
- <xpath name="application1" test="errorCode=1"/>
- <xpath name="application2" test="errorCode=2"/>
- </exception>
- <exception name="validation" class="org.apache.cocoon.samples.errorhandling.ValidationException"/>
- <exception name="resourceNotFound" class="org.apache.cocoon.ResourceNotFoundException"/>
- <exception class="java.lang.Throwable" unroll="true"/>
- </map:selector>
- </map:selectors>
- </map:components>
- <map:pipelines>
- <map:pipeline>
- <map:match pattern="main">
- <map:generate src="main.htm"/>
- <map:serialize/>
- </map:match>
- </map:pipeline>
- <map:pipeline>
- <map:mount uri-prefix="exception" src="exception/"/>
- <map:handle-errors>
- <map:select type="exception">
- <map:when test="resourceNotFound">
- <map:generate src="resourceNotFound.htm"/>
- <map:serialize/>
- </map:when>
- </map:select>
- </map:handle-errors>
- </map:pipeline>
- <map:handle-errors>
- <map:generate src="generalerror.htm"/>
- <map:serialize/>
- </map:handle-errors>
- </map:pipelines>
-</map:sitemap>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+
+<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
+ <map:components>
+ <map:selectors default="browser">
+ <map:selector name="exception" src="org.apache.cocoon.selection.XPathExceptionSelector">
+ <exception name="application" class="org.apache.cocoon.samples.errorhandling.ApplicationException">
+ <xpath name="application1" test="errorCode=1"/>
+ <xpath name="application2" test="errorCode=2"/>
+ </exception>
+ <exception name="validation" class="org.apache.cocoon.samples.errorhandling.ValidationException"/>
+ <exception name="resourceNotFound" class="org.apache.cocoon.ResourceNotFoundException"/>
+ <exception class="java.lang.Throwable" unroll="true"/>
+ </map:selector>
+ </map:selectors>
+ </map:components>
+ <map:pipelines>
+ <map:pipeline>
+ <map:match pattern="main">
+ <map:generate src="main.htm"/>
+ <map:serialize/>
+ </map:match>
+ </map:pipeline>
+ <map:pipeline>
+ <map:mount uri-prefix="exception" src="exception/"/>
+ <map:handle-errors>
+ <map:select type="exception">
+ <map:when test="resourceNotFound">
+ <map:generate src="resourceNotFound.htm"/>
+ <map:serialize/>
+ </map:when>
+ </map:select>
+ </map:handle-errors>
+ </map:pipeline>
+ <map:handle-errors>
+ <map:generate src="generalerror.htm"/>
+ <map:serialize/>
+ </map:handle-errors>
+ </map:pipelines>
+</map:sitemap>
1.2 +41 -40 cocoon-2.1/src/webapp/samples/errorhandling/exception/sitemap.xmap
Index: sitemap.xmap
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/webapp/samples/errorhandling/exception/sitemap.xmap,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- sitemap.xmap 29 Apr 2003 10:45:20 -0000 1.1
+++ sitemap.xmap 6 May 2003 14:13:03 -0000 1.2
@@ -1,40 +1,41 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
- <map:components>
- <map:generators default="file">
- <map:generator name="exception" src="org.apache.cocoon.samples.errorhandling.ExceptionGenerator"/>
- </map:generators>
- </map:components>
- <map:pipelines>
- <map:pipeline>
- <map:match pattern="exception">
- <map:generate type="exception"/>
- <map:serialize/>
- </map:match>
- <map:handle-errors>
- <map:select type="exception">
- <map:when test="validation">
- <map:generate src="validation.htm"/>
- <map:serialize/>
- </map:when>
- </map:select>
- </map:handle-errors>
- </map:pipeline>
- <map:handle-errors>
- <map:select type="exception">
- <map:when test="application1">
- <map:generate src="application1.htm"/>
- <map:serialize/>
- </map:when>
- <map:when test="application2">
- <map:generate src="application2.htm"/>
- <map:serialize/>
- </map:when>
- <map:when test="application">
- <map:generate src="application.htm"/>
- <map:serialize/>
- </map:when>
- </map:select>
- </map:handle-errors>
- </map:pipelines>
-</map:sitemap>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+
+<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
+ <map:components>
+ <map:generators default="file">
+ <map:generator name="exception" src="org.apache.cocoon.samples.errorhandling.ExceptionGenerator"/>
+ </map:generators>
+ </map:components>
+ <map:pipelines>
+ <map:pipeline>
+ <map:match pattern="exception">
+ <map:generate type="exception"/>
+ <map:serialize/>
+ </map:match>
+ <map:handle-errors>
+ <map:select type="exception">
+ <map:when test="validation">
+ <map:generate src="validation.htm"/>
+ <map:serialize/>
+ </map:when>
+ </map:select>
+ </map:handle-errors>
+ </map:pipeline>
+ <map:handle-errors>
+ <map:select type="exception">
+ <map:when test="application1">
+ <map:generate src="application1.htm"/>
+ <map:serialize/>
+ </map:when>
+ <map:when test="application2">
+ <map:generate src="application2.htm"/>
+ <map:serialize/>
+ </map:when>
+ <map:when test="application">
+ <map:generate src="application.htm"/>
+ <map:serialize/>
+ </map:when>
+ </map:select>
+ </map:handle-errors>
+ </map:pipelines>
+</map:sitemap>
1.2 +40 -40 cocoon-2.1/src/webapp/samples/webserviceproxy/cocoonhive/stylesheets/page.css
Index: page.css
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/webapp/samples/webserviceproxy/cocoonhive/stylesheets/page.css,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- page.css 9 Mar 2003 00:11:28 -0000 1.1
+++ page.css 6 May 2003 14:13:03 -0000 1.2
@@ -1,40 +1,40 @@
-body { background-color: #FFFFFF; margin: 0px 0px 0px 0px; font-family: Arial, Helvetica, sans-serif; font-size : 14px; }
-
-a:link { color: #0F3660; }
-a:visited { color: #009999; }
-a:active { color: #000066; }
-a:hover { color: #000066; }
-
-.menu { background-color: #4C6C8F; margin: 0px; padding: 3px 8px 5px 3px; font-size : 14px; }
-.menu a:link { color: #FFFFFF; text-decoration : none; }
-.menu a:visited { color: #FFFFFF; text-decoration : none; }
-/*.menu a:active { font-weight: bold }*/
-.menu a:hover { color: #FFCC00; text-decoration : none; }
-.menu ul { margin: 0px 0px 0px 20px; padding: 0px; }
-.menu li { list-style-image: url('images/label.gif'); }
-.menu ul ul li .sel { list-style-image: url('images/current.gif'); }
-.menu ul ul li { list-style-image: url('images/page.gif'); }
-
-.content { padding: 5px 5px 5px 10px; font : small; font-size : 14px; }
-.content table { width: 100%; background-color: #7099C5; color: #ffffff; font-size : 14px;}
-.content table .caption { text-align: left; color: black; font-size : 14px; }
-.content table .th { text-align: center; font-size : 14px;}
-.content td { background-color: #f0f0ff; color: black; font-size : 14px;}
-
-.frame { margin: 5px 20px 5px 20px; font-size: 14px; }
-.frame .content { margin: 0px; }
-
-.note { border: solid 1px #7099C5; background-color: #f0f0ff; }
-.note .label { background-color: #7099C5; color: #ffffff; }
-
-.warning { border: solid 1px #D00000; background-color: #fff0f0; }
-.warning .label { background-color: #D00000; color: #ffffff; }
-
-.fixme { border: solid 1px #C6C600; background-color: #FAF9C3; }
-.fixme .label { background-color: #C6C600; color: #ffffff; }
-
-.code { border-color: #CFDCED; border-style: solid; border-width: 1px; }
-
-.highlight { background-color: yellow; }
-
-.minitoc {margin: 5px 5px 5px 40px;}
+body { background-color: #FFFFFF; margin: 0px 0px 0px 0px; font-family: Arial, Helvetica, sans-serif; font-size : 14px; }
+
+a:link { color: #0F3660; }
+a:visited { color: #009999; }
+a:active { color: #000066; }
+a:hover { color: #000066; }
+
+.menu { background-color: #4C6C8F; margin: 0px; padding: 3px 8px 5px 3px; font-size : 14px; }
+.menu a:link { color: #FFFFFF; text-decoration : none; }
+.menu a:visited { color: #FFFFFF; text-decoration : none; }
+/*.menu a:active { font-weight: bold }*/
+.menu a:hover { color: #FFCC00; text-decoration : none; }
+.menu ul { margin: 0px 0px 0px 20px; padding: 0px; }
+.menu li { list-style-image: url('images/label.gif'); }
+.menu ul ul li .sel { list-style-image: url('images/current.gif'); }
+.menu ul ul li { list-style-image: url('images/page.gif'); }
+
+.content { padding: 5px 5px 5px 10px; font : small; font-size : 14px; }
+.content table { width: 100%; background-color: #7099C5; color: #ffffff; font-size : 14px;}
+.content table .caption { text-align: left; color: black; font-size : 14px; }
+.content table .th { text-align: center; font-size : 14px;}
+.content td { background-color: #f0f0ff; color: black; font-size : 14px;}
+
+.frame { margin: 5px 20px 5px 20px; font-size: 14px; }
+.frame .content { margin: 0px; }
+
+.note { border: solid 1px #7099C5; background-color: #f0f0ff; }
+.note .label { background-color: #7099C5; color: #ffffff; }
+
+.warning { border: solid 1px #D00000; background-color: #fff0f0; }
+.warning .label { background-color: #D00000; color: #ffffff; }
+
+.fixme { border: solid 1px #C6C600; background-color: #FAF9C3; }
+.fixme .label { background-color: #C6C600; color: #ffffff; }
+
+.code { border-color: #CFDCED; border-style: solid; border-width: 1px; }
+
+.highlight { background-color: yellow; }
+
+.minitoc {margin: 5px 5px 5px 40px;}
Mail size limit (Re: cvs commit: ...)
Posted by Jeff Turner <je...@apache.org>.
Hi,
Can we put a mail size limit on cocoon-dev? This 667k commit log took a
looong time to download.
--Jeff
On Tue, May 06, 2003 at 02:13:04PM -0000, vgritsenko@apache.org wrote:
> vgritsenko 2003/05/06 07:13:03
>
> Modified: src/blocks/databases/samples/mod-db stupid.xsl
> src/blocks/deli/WEB-INF/deli/config localProfiles.xml
> src/blocks/html/conf tidy.xconf tidy.xroles
> src/blocks/linkrewriter/samples sitemap.xmap
> src/blocks/lucene/java/org/apache/cocoon/components/search
> SimpleLuceneXMLIndexerImpl.java
> src/blocks/portal-fw/conf portal-act.xmap portal-gen.xmap
> portal.xconf portal.xroles
> src/blocks/portal-fw/samples sitemap.xmap
> src/blocks/portal-fw/samples/styles TO-html.xsl
> changeuser.xsl load.xsl login-html.xsl portal.xsl
> portalHTML-Netscape.xsl portalHTML.xsl
> portalconfHTML.xsl sunLet_MoreoverDotCom.xsl
> sunLet_sundnNews.xsl sunletconf.xsl
> sunrise-user.xsl sunriseconfHTML.xsl
> sunriseeditHTML.xsl
> src/blocks/precept/samples samples.xml
> src/blocks/precept/samples/example1 README error.xml
> error.xsl thanks.xml thanks.xsl view1.xml view1.xsl
> view2.xml view2.xsl view3.xml view3.xsl view4.xml
> view4.xsl
> src/blocks/precept/samples/example2 error.xml i2html.xsl
> thanks.xml view1.xml view2.xml view3.xml view4.xml
> src/blocks/precept/samples/model easyrelax.xml
> src/blocks/session-fw/conf session-act.xmap session-sel.xmap
> session-tran.xmap
> src/blocks/slide/java/org/apache/cocoon/components/repository/impl
> SlideConfigurationAdapter.java
> src/blocks/slide/samples sitemap.xmap
> src/blocks/taglib/conf jxpath.xconf tag.xconf
> src/blocks/web3/conf web3.xconf web3.xsamples
> src/blocks/web3/java/org/apache/cocoon/components/web3
> Web3.java Web3Client.java Web3DataSource.java
> Web3Streamer.java
> src/blocks/web3/java/org/apache/cocoon/components/web3/impl
> DefaultWeb3StreamerImpl.java Web3ClientImpl.java
> Web3DataSourceImpl.java
> Web3DataSourceSelectorImpl.java Web3Properties.java
> src/blocks/web3/java/org/apache/cocoon/transformation
> Web3RfcTransformer.java
> src/blocks/web3/mocks/com/sap/mw/jco IFunctionTemplate.java
> IRepository.java JCO.java
> src/blocks/web3/samples/dtd rfc-in.dtd rfc-out.dtd
> src/blocks/web3/samples/stylesheets pics2view.xsl pretty.xsl
> proper.xsl rfc2html.xsl
> src/deprecated/conf deprecated.xconf deprecated.xroles
> src/documentation/xdocs/drafts cocoon2-docbook.xml
> src/scratchpad/src/org/apache/cocoon/components/source/impl
> blob.xconf
> src/scratchpad/webapp/samples/jxforms/stylesheets
> jxforms2html.xsl
> src/scratchpad/webapp/samples/paginator/content text.xml
> src/scratchpad/webapp/samples/paginator/pagesheets
> text.pagesheet
> src/scratchpad/webapp/samples/petstore sitemap.xmap
> src/scratchpad/webapp/samples/petstore/stylesheets
> form2html.xsl site2html.xsl
> src/scratchpad/webapp/samples/petstore/view/jxforms
> EditAccountInformation.xml
> EditProfileInformation.xml EditUserInformation.xml
> src/webapp/samples/errorhandling sitemap.xmap
> src/webapp/samples/errorhandling/exception sitemap.xmap
> src/webapp/samples/webserviceproxy/cocoonhive/stylesheets
> page.css
> Log:
> fix line endings