cocoon-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From d...@apache.org
Subject cvs commit: xml-cocoon2/src/org/apache/cocoon/components/language/markup/sitemap/java sitemap.xsl
Date Mon, 11 Jun 2001 10:50:52 GMT
dims        01/06/11 03:50:51

  Modified:    src/org/apache/cocoon/components/language/markup/sitemap/java
                        Tag: cocoon_20_branch sitemap.xsl
  Log:
  Patch for using SAXON instead of Xalan
  from Ovidiu Predescu <ovidiu@cup.hp.com>
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.11.2.5  +57 -52    xml-cocoon2/src/org/apache/cocoon/components/language/markup/sitemap/java/sitemap.xsl
  
  Index: sitemap.xsl
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/components/language/markup/sitemap/java/sitemap.xsl,v
  retrieving revision 1.11.2.4
  retrieving revision 1.11.2.5
  diff -u -r1.11.2.4 -r1.11.2.5
  --- sitemap.xsl	2001/06/08 15:38:33	1.11.2.4
  +++ sitemap.xsl	2001/06/11 10:50:47	1.11.2.5
  @@ -13,7 +13,7 @@
   <xsl:stylesheet
       xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
       xmlns:map="http://apache.org/cocoon/sitemap/1.0"
  -    xmlns:java="http://xml.apache.org/xslt/java/org.apache.cocoon.sitemap.XSLTFactoryLoader"
exclude-result-prefixes="java"
  +    xmlns:XSLTFactoryLoader="org.apache.cocoon.sitemap.XSLTFactoryLoader"
       version="1.0">
   
     <xsl:output method="text"/>
  @@ -26,13 +26,39 @@
     <xsl:variable name="nsprefix">map</xsl:variable>
   
   
  -  <!-- this variable holds the factory loader used to get at the code matcher/selector
factories
  -       are producing
  -       FIXME(GP): This approach seem Xalan dependant and not (yet) portable
  -  -->
  -  <xsl:variable name="factory-loader" select="java:new()"/>
  +  <!--
  +    this variable holds the factory loader used to get at the code
  +    matcher/selector factories are producing
   
  +    ovidiu: use the class name as the namespace to identify the
  +    class. This is supposedly portable across XSLT implementations.
  +  -->
  +  <xsl:variable
  +       name="factory-loader"
  +       select="XSLTFactoryLoader:new()"
  +       xmlns:XSLTFactoryLoader="org.apache.cocoon.sitemap.XSLTFactoryLoader"/>
  +
  +  <!-- Define the XSLT processor. Currently only Saxon and Xalan are
  +  recognized. -->
  +  <xsl:variable name="xslt-processor">
  +    <xsl:choose>
  +      <xsl:when test="contains(system-property('xsl:vendor-url'), 'xalan')">xalan</xsl:when>
  +      <xsl:when test="contains(system-property('xsl:vendor-url'), 'saxon')">saxon</xsl:when>
  +    </xsl:choose>
  +  </xsl:variable>
   
  +  <xsl:template name="line-number">
  +    <xsl:choose>
  +      <xsl:when test="$xslt-processor = 'saxon'"
  +                xmlns:saxon="http://icl.com/saxon">
  +//file <xsl:value-of select="saxon:system-id()"/>
  +//line <xsl:value-of select="saxon:line-number()"/>
  +</xsl:when>
  +      <xsl:otherwise>
  +//line numbers not supported with <xsl:value-of select="$xslt-processor"/>
  +</xsl:otherwise>
  +    </xsl:choose>
  +  </xsl:template>
     <!-- this template wraps the hole content within a single <code> element which
          the xsp core logicsheet uses to build the java source code out of it
     -->
  @@ -101,7 +127,7 @@
        *
        * @author &lt;a href="mailto:giacomo@apache.org"&gt;Giacomo Pati&lt;/a&gt;
        * @author &lt;a href="mailto:bloritsch@apache.org"&gt;Berin Loritsch&lt;/a&gt;
  -     * @version CVS $Id: sitemap.xsl,v 1.11.2.4 2001/06/08 15:38:33 bloritsch Exp $
  +     * @version CVS $Id: sitemap.xsl,v 1.11.2.5 2001/06/11 10:50:47 dims Exp $
        */
       public class <xsl:value-of select="@file-name"/> extends AbstractSitemap {
         static final String LOCATION = "<xsl:value-of select="translate(@file-path, '/',
'.')"/>.<xsl:value-of select="@file-name"/>";
  @@ -116,18 +142,20 @@
   
         <!-- Generate matchers which implements CodeFactory -->
         <xsl:for-each select="/map:sitemap/map:components/map:matchers/map:matcher">
  +<xsl:call-template name="line-number"/>
           <xsl:variable name="src">
             <xsl:value-of select="@src"/>
           </xsl:variable>
  -        <xsl:if test="java:isFactory($factory-loader, string($src))">
  +        <xsl:if test="XSLTFactoryLoader:isFactory($factory-loader, string($src))">
             <xsl:variable name="type" select="translate(@name, '- ', '__')"/>
             <xsl:variable name="default" select="$type = ../@default"/>
             <xsl:variable name="config"><xsl:copy-of select="."/></xsl:variable>
  -          private Map <xsl:value-of select="$type"/>Match (<xsl:value-of select="java:getParameterSource($factory-loader,
string($src),$config)"/> pattern, Map objectModel, Parameters parameters) {
  -            <xsl:value-of select="java:getMethodSource($factory-loader, string($src),$config)"/>
  +          private Map <xsl:value-of select="$type"/>Match (<xsl:value-of select="XSLTFactoryLoader:getParameterSource($factory-loader,
string($src),$config)"/> pattern, Map objectModel, Parameters parameters) {
  +            <xsl:value-of select="XSLTFactoryLoader:getMethodSource($factory-loader,
string($src),$config)"/>
             }
             <!-- process all map:match elements with a type attribute refering to the
current matcher factory iteration -->
             <xsl:for-each select="/map:sitemap/map:pipelines/map:pipeline/descendant-or-self::map:match[@type=$type
or (not(@type) and $default)]">
  +<xsl:call-template name="line-number"/>
               <xsl:variable name="matcher-name">
                 <xsl:call-template name="generate-name">
                   <xsl:with-param name="prefix">matcher_</xsl:with-param>
  @@ -135,7 +163,7 @@
                 </xsl:call-template>
               </xsl:variable>
               // The generated matcher for a pattern of "<xsl:value-of select="@pattern"/>"
  -            <xsl:value-of select="java:getClassSource($factory-loader,string($src),string($matcher-name),string(@pattern),$config)"/>
  +            <xsl:value-of select="XSLTFactoryLoader:getClassSource($factory-loader,string($src),string($matcher-name),string(@pattern),$config)"/>
             </xsl:for-each>
           </xsl:if>
         </xsl:for-each>
  @@ -143,18 +171,20 @@
   
         <!-- Generate selectors which implements CodeFactory -->
         <xsl:for-each select="/map:sitemap/map:components/map:selectors/map:selector">
  +<xsl:call-template name="line-number"/>
           <xsl:variable name="src">
             <xsl:value-of select="@src"/>
           </xsl:variable>
  -        <xsl:if test="java:isFactory($factory-loader, string($src))">
  +        <xsl:if test="XSLTFactoryLoader:isFactory($factory-loader, string($src))">
             <xsl:variable name="name" select="@name"/>
             <xsl:variable name="type" select="translate(@name, '- ', '__')"/>
             <xsl:variable name="default" select="@name = ../@default"/>
             <xsl:variable name="config" select="descendant-or-self::*"/>
  -          private boolean <xsl:value-of select="$name"/>Select (<xsl:value-of
select="java:getParameterSource($factory-loader, string($src),$config)"/> pattern, Map
objectModel, Parameters param) {
  -            <xsl:value-of select="java:getMethodSource($factory-loader, string($src),$config)"/>
  +          private boolean <xsl:value-of select="$name"/>Select (<xsl:value-of
select="XSLTFactoryLoader:getParameterSource($factory-loader, string($src),$config)"/>
pattern, Map objectModel, Parameters param) {
  +            <xsl:value-of select="XSLTFactoryLoader:getMethodSource($factory-loader,
string($src),$config)"/>
             }
             <xsl:for-each select="/map:sitemap/map:pipelines/map:pipeline/descendant::map:select[@type=$name
or (not(@type) and $default)]/map:when">
  +<xsl:call-template name="line-number"/>
               <xsl:variable name="selector-name">
                 <xsl:call-template name="generate-name">
                   <xsl:with-param name="prefix">selector_</xsl:with-param>
  @@ -162,7 +192,7 @@
                 </xsl:call-template>
               </xsl:variable>
               <!-- produce a definition for this test string -->
  -            <xsl:value-of select="java:getClassSource($factory-loader,string($src),string($selector-name),string(@test),$config)"/>
  +            <xsl:value-of select="XSLTFactoryLoader:getClassSource($factory-loader,string($src),string($selector-name),string(@test),$config)"/>
             </xsl:for-each>
           </xsl:if>
         </xsl:for-each>
  @@ -277,6 +307,7 @@
   
         <!-- generate methods for every map:resource element -->
         <xsl:for-each select="/map:sitemap/map:resources/map:resource">
  +<xsl:call-template name="line-number"/>
           /**
            * This is the internal resource named "<xsl:value-of select="@name"/>"
            * @param pipeline A &lt;code&gt;StreamPipeline&lt;/code&gt; holding
the sitemap component collected so far
  @@ -301,6 +332,7 @@
   
         <!-- generate methods for every map:view element -->
         <xsl:for-each select="/map:sitemap/map:views/map:view">
  +<xsl:call-template name="line-number"/>
           /**
            * This is the method to produce the "<xsl:value-of select="@name"/>" view
of the requested resource
            * @param pipeline A &lt;code&gt;StreamPipeline&lt;/code&gt; holding
the sitemap component collected so far
  @@ -323,6 +355,7 @@
   
         <!-- generate methods for every map:action-set element -->
         <xsl:for-each select="/map:sitemap/map:action-sets/map:action-set">
  +<xsl:call-template name="line-number"/>
           /**
            * This is the method to process the "<xsl:value-of select="@name"/>" action-set
of the requested resource
            * @param cocoon_action A &lt;code&gt;String&lt;/code&gt; holding
the requested action
  @@ -420,6 +453,7 @@
           <!-- process the pipelines -->
           <!-- for each pipeline element generate a try/catch block -->
           <xsl:for-each select="/map:sitemap/map:pipelines/map:pipeline">
  +<xsl:call-template name="line-number"/>
             <xsl:variable name="pipeline-position" select="position()"/>
             <xsl:if test="@internal-only = 'yes' or @internal-only='true'">
               if (internalRequest) {
  @@ -456,6 +490,7 @@
   
         <!-- generate methods for every map:handle-errors elements in all map:pipeline
elements -->
         <xsl:for-each select="/map:sitemap/map:pipelines/map:pipeline">
  +<xsl:call-template name="line-number"/>
           <xsl:variable name="pipeline-position" select="position()"/>
           <xsl:if test="(./map:handle-errors)">
             private boolean error_process_<xsl:value-of select="$pipeline-position"/>
(Environment environment, Map objectModel, Exception e, boolean internalRequest)
  @@ -516,7 +551,7 @@
   
       <!-- check if this matcher is a factory ? -->
       <xsl:variable name="is-factory">
  -      <xsl:value-of select="java:isFactory($factory-loader, string(/map:sitemap/map:components/map:matchers/map:matcher[@name=$matcher-type]/@src))"/>
  +      <xsl:value-of select="XSLTFactoryLoader:isFactory($factory-loader, string(/map:sitemap/map:components/map:matchers/map:matcher[@name=$matcher-type]/@src))"/>
       </xsl:variable>
   
       <!-- break on error when old parameter syntax exists -->
  @@ -583,39 +618,6 @@
         </xsl:call-template>
       </xsl:variable>
   
  -    <!-- Modified 20010509 L.Sutic Changed to pass sitemap parameters. -->
  -
  -    <!-- break on error when old parameter syntax exists -->
  -    <xsl:if test="parameter">
  -      <xsl:call-template name="error">
  -        <xsl:with-param name="message">Sitemap parameters should now be in the sitemap
namespace (map:parameter).</xsl:with-param>
  -      </xsl:call-template>
  -    </xsl:if>
  -
  -    <!-- test if we have to define parameters for this action -->
  -    <xsl:if test="count(map:parameter)>0">
  -      param = new Parameters ();
  -    </xsl:if>
  -
  -    <!-- generate the value used for the parameter argument in the invocation of the
act method of this action -->
  -    <xsl:variable name="component-param">
  -      <xsl:choose>
  -        <xsl:when test="count(map:parameter)>0">
  -          param
  -        </xsl:when>
  -        <xsl:otherwise>
  -          emptyParam
  -        </xsl:otherwise>
  -      </xsl:choose>
  -    </xsl:variable>
  -
  -    <!-- collect the parameters -->
  -    <xsl:apply-templates select="map:parameter">
  -        <xsl:with-param name="param">param</xsl:with-param>
  -    </xsl:apply-templates>
  -
  -    <!-- modification end -->
  -
       <!-- Modified 20010510 L.Sutic Changed to pass sitemap parameters. -->
   
       <!-- break on error when old parameter syntax exists -->
  @@ -649,9 +651,9 @@
   
       <!-- modification end -->
   
  -
       <!-- loop through all the when cases -->
       <xsl:for-each select="./map:when">
  +<xsl:call-template name="line-number"/>
   
         <!-- get the pattern used -->
         <xsl:variable name="test-value">
  @@ -672,7 +674,7 @@
   
         <!-- check if this selector is a factory ? -->
         <xsl:variable name="is-factory">
  -        <xsl:value-of select="java:isFactory($factory-loader, string(/map:sitemap/map:components/map:selectors/map:selector[@name=$selector-type]/@src))"/>
  +        <xsl:value-of select="XSLTFactoryLoader:isFactory($factory-loader, string(/map:sitemap/map:components/map:selectors/map:selector[@name=$selector-type]/@src))"/>
         </xsl:variable>
   
         <!-- Modified 20010509 L.Sutic Changed to pass sitemap parameters. -->
  @@ -701,6 +703,7 @@
   
       <!-- this is the actual code produced on the otherwise element -->
       <xsl:for-each select="./map:otherwise">
  +<xsl:call-template name="line-number"/>
         else {
           getLogger().debug("Select Otherwise");
         <xsl:apply-templates/>
  @@ -1150,8 +1153,9 @@
   
       <xsl:variable name="ns" select="namespace-uri(.)"/>
       <xsl:for-each select="$components">
  +<xsl:call-template name="line-number"/>
         <xsl:variable name="is-factory-component"
  -        select="@src and ($name = 'matcher' or $name = 'selector') and java:isFactory($factory-loader,
string(@src))"/>
  +        select="@src and ($name = 'matcher' or $name = 'selector') and XSLTFactoryLoader:isFactory($factory-loader,
string(@src))"/>
         <xsl:if test="$is-factory-component=false()">
         {
           DefaultConfiguration cconf1 = new DefaultConfiguration("<xsl:value-of select="translate(@name,
'- ', '__')"/>", LOCATION);
  @@ -1207,6 +1211,7 @@
   
       <!-- process content -->
       <xsl:for-each select="$components">
  +<xsl:call-template name="line-number"/>
         {
            DefaultConfiguration cconf<xsl:value-of select="$level"/> = new DefaultConfiguration("<xsl:value-of
select="name(.)"/>", LOCATION);
         <xsl:for-each select="attribute::*[name(.)!=$qname]">
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     webmaster@xml.apache.org
To unsubscribe, e-mail:          cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org


Mime
View raw message