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="[EMAIL PROTECTED]'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="[EMAIL PROTECTED]'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="[EMAIL PROTECTED]'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="[EMAIL PROTECTED]'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:[EMAIL PROTECTED]">Bernhard Huber</a> * @author <a href="mailto:[EMAIL PROTECTED]">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="[EMAIL PROTECTED]'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="[EMAIL PROTECTED]'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="[EMAIL PROTECTED]'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="[EMAIL PROTECTED]'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="[EMAIL PROTECTED]'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="[EMAIL PROTECTED]'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="[EMAIL PROTECTED]" type="textbox" value="{i:value/text()}" /> - </xsl:template> - - <xsl:template match="i:password"> - <input name="[EMAIL PROTECTED]" type="password" value="{i:value/text()}" /> - </xsl:template> - - <xsl:template match="i:selectBoolean"> - <input name="[EMAIL PROTECTED]" 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="[EMAIL PROTECTED]"> - <xsl:variable name="selected" select="i:value/text()"/> - <xsl:for-each select="[EMAIL PROTECTED] = 'choice']/choice"> - <option value="[EMAIL PROTECTED]"> - <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="[EMAIL PROTECTED]" 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="[EMAIL PROTECTED]" type="textbox" value="{i:value/text()}" /> + </xsl:template> + + <xsl:template match="i:password"> + <input name="[EMAIL PROTECTED]" type="password" value="{i:value/text()}" /> + </xsl:template> + + <xsl:template match="i:selectBoolean"> + <input name="[EMAIL PROTECTED]" 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="[EMAIL PROTECTED]"> + <xsl:variable name="selected" select="i:value/text()"/> + <xsl:for-each select="[EMAIL PROTECTED] = 'choice']/choice"> + <option value="[EMAIL PROTECTED]"> + <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="[EMAIL PROTECTED]" 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">[EMAIL PROTECTED](\.[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">[EMAIL PROTECTED](\.[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="[EMAIL PROTECTED]'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="[EMAIL PROTECTED]'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="[EMAIL PROTECTED]'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="[EMAIL PROTECTED]'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="[EMAIL PROTECTED]'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="[EMAIL PROTECTED]'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 - [EMAIL PROTECTED] - - 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 <[EMAIL PROTECTED]>. 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:[EMAIL PROTECTED]">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 + [EMAIL PROTECTED] + + 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 <[EMAIL PROTECTED]>. 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:[EMAIL PROTECTED]">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="[EMAIL PROTECTED]'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="[EMAIL PROTECTED]'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="[EMAIL PROTECTED]'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="[EMAIL PROTECTED]'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="[EMAIL PROTECTED]'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="[EMAIL PROTECTED]'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 - [EMAIL PROTECTED] - - 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 <[EMAIL PROTECTED]>. 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:[EMAIL PROTECTED]">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 + [EMAIL PROTECTED] + + 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 <[EMAIL PROTECTED]>. 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:[EMAIL PROTECTED]">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 - [EMAIL PROTECTED] - - 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 <[EMAIL PROTECTED]>. 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:[EMAIL PROTECTED]">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 + [EMAIL PROTECTED] + + 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 <[EMAIL PROTECTED]>. 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:[EMAIL PROTECTED]">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 - [EMAIL PROTECTED] - - 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 <[EMAIL PROTECTED]>. 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:[EMAIL PROTECTED]">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 + [EMAIL PROTECTED] + + 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 <[EMAIL PROTECTED]>. 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:[EMAIL PROTECTED]">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 - [EMAIL PROTECTED] - - 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 <[EMAIL PROTECTED]>. 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:[EMAIL PROTECTED]">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 + [EMAIL PROTECTED] + + 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 <[EMAIL PROTECTED]>. 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:[EMAIL PROTECTED]">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 - [EMAIL PROTECTED] - - 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 <[EMAIL PROTECTED]>. 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:[EMAIL PROTECTED]">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 + [EMAIL PROTECTED] + + 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 <[EMAIL PROTECTED]>. 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:[EMAIL PROTECTED]">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 - [EMAIL PROTECTED] - - 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 <[EMAIL PROTECTED]>. 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:[EMAIL PROTECTED]">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 + [EMAIL PROTECTED] + + 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 <[EMAIL PROTECTED]>. 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:[EMAIL PROTECTED]">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 - [EMAIL PROTECTED] - - 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 <[EMAIL PROTECTED]>. 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:[EMAIL PROTECTED]">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 + [EMAIL PROTECTED] + + 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 <[EMAIL PROTECTED]>. 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:[EMAIL PROTECTED]">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 - [EMAIL PROTECTED] - - 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 <[EMAIL PROTECTED]>. 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:[EMAIL PROTECTED]">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 + [EMAIL PROTECTED] + + 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 <[EMAIL PROTECTED]>. 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:[EMAIL PROTECTED]">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 - [EMAIL PROTECTED] - - 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 <[EMAIL PROTECTED]>. 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:[EMAIL PROTECTED]">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 + [EMAIL PROTECTED] + + 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 <[EMAIL PROTECTED]>. 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:[EMAIL PROTECTED]">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 - [EMAIL PROTECTED] - - 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 <[EMAIL PROTECTED]>. 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:[EMAIL PROTECTED]">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 + [EMAIL PROTECTED] + + 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 <[EMAIL PROTECTED]>. 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:[EMAIL PROTECTED]">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 - [EMAIL PROTECTED] - - 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 <[EMAIL PROTECTED]>. 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 + [EMAIL PROTECTED] + + 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 <[EMAIL PROTECTED]>. 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 - [EMAIL PROTECTED] - - 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 <[EMAIL PROTECTED]>. 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 + [EMAIL PROTECTED] + + 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 <[EMAIL PROTECTED]>. 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 - [EMAIL PROTECTED] - - 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 <[EMAIL PROTECTED]>. 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 + [EMAIL PROTECTED] + + 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 <[EMAIL PROTECTED]>. 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, [EMAIL PROTECTED], 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, [EMAIL PROTECTED], 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, [EMAIL PROTECTED], 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="[EMAIL PROTECTED]: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, [EMAIL PROTECTED], 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="[EMAIL PROTECTED]: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="[EMAIL PROTECTED]'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="[EMAIL PROTECTED]'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>[EMAIL PROTECTED]</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>[EMAIL PROTECTED]</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="[EMAIL PROTECTED]'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="[EMAIL PROTECTED]'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, [EMAIL PROTECTED], June 2002 - author: Andrew Timberlake <[EMAIL PROTECTED]>, June 2002 - author: Michael Ratliff, [EMAIL PROTECTED] <[EMAIL PROTECTED]>, May 2002 - author: Torsten Curdt, [EMAIL PROTECTED], March 2002 - author: Simon Price <[EMAIL PROTECTED]>, September 2002 - author: Konstantin Piroumian <[EMAIL PROTECTED]>, September 2002 - author: Robert Ellis Parrott <[EMAIL PROTECTED]>, 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="[EMAIL PROTECTED]"/> - - <!-- 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="[EMAIL PROTECTED]" 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="[EMAIL PROTECTED]" > - <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="[EMAIL PROTECTED]" 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="[EMAIL PROTECTED]" type="hidden" value="{xf:value/text()}"> - <xsl:copy-of select="@*[not(name()='ref')]"/> - </input> - </xsl:template> - - - <xsl:template match="xf:select1 | xf:[EMAIL PROTECTED]'compact']"> - <select name="[EMAIL PROTECTED]"> - <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:[EMAIL PROTECTED]'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:[EMAIL PROTECTED]'compact']"> - <xsl:variable name="selected" select="xf:value"/> - <select name="[EMAIL PROTECTED]"> - <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:[EMAIL PROTECTED]'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="[EMAIL PROTECTED]" 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, [EMAIL PROTECTED], June 2002 + author: Andrew Timberlake <[EMAIL PROTECTED]>, June 2002 + author: Michael Ratliff, [EMAIL PROTECTED] <[EMAIL PROTECTED]>, May 2002 + author: Torsten Curdt, [EMAIL PROTECTED], March 2002 + author: Simon Price <[EMAIL PROTECTED]>, September 2002 + author: Konstantin Piroumian <[EMAIL PROTECTED]>, September 2002 + author: Robert Ellis Parrott <[EMAIL PROTECTED]>, 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="[EMAIL PROTECTED]"/> + + <!-- 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="[EMAIL PROTECTED]" 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="[EMAIL PROTECTED]" > + <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="[EMAIL PROTECTED]" 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="[EMAIL PROTECTED]" type="hidden" value="{xf:value/text()}"> + <xsl:copy-of select="@*[not(name()='ref')]"/> + </input> + </xsl:template> + + + <xsl:template match="xf:select1 | xf:[EMAIL PROTECTED]'compact']"> + <select name="[EMAIL PROTECTED]"> + <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:[EMAIL PROTECTED]'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:[EMAIL PROTECTED]'compact']"> + <xsl:variable name="selected" select="xf:value"/> + <select name="[EMAIL PROTECTED]"> + <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:[EMAIL PROTECTED]'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="[EMAIL PROTECTED]" 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:[EMAIL PROTECTED]"> - <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:[EMAIL PROTECTED]"> + <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="[EMAIL PROTECTED]"><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="[EMAIL PROTECTED]"><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="[EMAIL PROTECTED]"><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="[EMAIL PROTECTED]"><xsl:value-of select="product-desc" /></a></td> - <td> - <b><a href="[EMAIL PROTECTED]"><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="[EMAIL PROTECTED]"><font color="white"><B><< Prev</B></font></a> - </xsl:if> - <xsl:if test="@lastPage='false'" > - <a href="[EMAIL PROTECTED]"><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="[EMAIL PROTECTED]"><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="[EMAIL PROTECTED]"><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="[EMAIL PROTECTED]'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="[EMAIL PROTECTED]'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="[EMAIL PROTECTED]'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="[EMAIL PROTECTED]"><img border="0" src="[EMAIL PROTECTED]" /></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="[EMAIL PROTECTED]" > - <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="[EMAIL PROTECTED]"><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="[EMAIL PROTECTED]" ><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="[EMAIL PROTECTED]'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="[EMAIL PROTECTED]'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="[EMAIL PROTECTED]'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/[EMAIL PROTECTED]"> - <tr bgcolor="#FFFF88"> - <td colspan="[EMAIL PROTECTED]"><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="[EMAIL PROTECTED]"><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="[EMAIL PROTECTED]"><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="[EMAIL PROTECTED]"><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="[EMAIL PROTECTED]"><xsl:value-of select="product-desc" /></a></td> + <td> + <b><a href="[EMAIL PROTECTED]"><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="[EMAIL PROTECTED]"><font color="white"><B><< Prev</B></font></a> + </xsl:if> + <xsl:if test="@lastPage='false'" > + <a href="[EMAIL PROTECTED]"><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="[EMAIL PROTECTED]"><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="[EMAIL PROTECTED]"><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="[EMAIL PROTECTED]'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="[EMAIL PROTECTED]'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="[EMAIL PROTECTED]'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="[EMAIL PROTECTED]"><img border="0" src="[EMAIL PROTECTED]" /></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="[EMAIL PROTECTED]" > + <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="[EMAIL PROTECTED]"><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="[EMAIL PROTECTED]" ><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="[EMAIL PROTECTED]'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="[EMAIL PROTECTED]'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="[EMAIL PROTECTED]'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/[EMAIL PROTECTED]"> + <tr bgcolor="#FFFF88"> + <td colspan="[EMAIL PROTECTED]"><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;}