giacomo     00/10/12 21:14:46

  Modified:    src/org/apache/cocoon/components/language/markup/sitemap/java
                        Tag: xml-cocoon2 sitemap.xsl
               src/org/apache/cocoon/sitemap Tag: xml-cocoon2
                        AbstractSitemap.java ComponentHolder.java
                        ComponentHolderFactory.java
                        DefaultComponentHolder.java Handler.java
                        Manager.java PoolableComponentHolder.java
                        ResourcePipeline.java Sitemap.java
                        ThreadSafeComponentHolder.java
               webapp   Tag: xml-cocoon2 cocoon.xconf
  Log:
  Sitemap component inheritence implemented.
  
  Sub sitemaps can now use sitemap components declared in the parent sitemap. 
CodeFactories are not inheritable.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.48  +165 -264  
xml-cocoon/src/org/apache/cocoon/components/language/markup/sitemap/java/Attic/sitemap.xsl
  
  Index: sitemap.xsl
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/components/language/markup/sitemap/java/Attic/sitemap.xsl,v
  retrieving revision 1.1.2.47
  retrieving revision 1.1.2.48
  diff -u -r1.1.2.47 -r1.1.2.48
  --- sitemap.xsl       2000/10/12 16:43:45     1.1.2.47
  +++ sitemap.xsl       2000/10/13 04:14:33     1.1.2.48
  @@ -70,7 +70,7 @@
        * This is the automatically generated class from the sitemap definitions
        *
        * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo 
Pati</a>
  -     * @version CVS $Revision: 1.1.2.47 $ $Date: 2000/10/12 16:43:45 $
  +     * @version CVS $Revision: 1.1.2.48 $ $Date: 2000/10/13 04:14:33 $
        */
       public class <xsl:value-of select="@file-name"/> extends AbstractSitemap 
{
         static {
  @@ -79,115 +79,68 @@
   
         /** An empty &lt;code&gt;Parameter&lt;/code&gt; used to pass to the 
sitemap components */
         private Parameters emptyParam = new Parameters();
  -      /** The &lt;code&gt;Generator&lt;/code&gt; used to generate a SAX 
event stream out of an &lt;code&gt;Exception&lt;/code&gt; */
  -      private ComponentHolder generator_error_handler = null;
  -      /** The &lt;code&gt;Configuration&lt;/code&gt; for the error generator 
above */
  -      private Configuration generator_config_error_handler = null;
  -      /** The &lt;code&gt;Transformer&lt;/code&gt; used when link 
transformation is requested */
  -      private ComponentHolder transformer_link_translator = null;
  -      /** The &lt;code&gt;Configuration&lt;/code&gt; for the link 
transformer above */
  -      private Configuration transformer_config_link_translator = null;
  -
  -      <!-- generate variables for all components -->
  -      /** The generators */
  -      <xsl:for-each 
select="/map:sitemap/map:components/map:generators/map:generator">
  -        private ComponentHolder generator_<xsl:value-of 
select="translate(./@name, '- ', '__')"/> = null;
  -        private Configuration generator_config_<xsl:value-of 
select="translate(./@name, '- ', '__')"/> = null;
  -      </xsl:for-each>
  -
  -      /** The transformers */
  -      <xsl:for-each 
select="/map:sitemap/map:components/map:transformers/map:transformer">
  -        private ComponentHolder transformer_<xsl:value-of 
select="translate(./@name, '- ', '__')"/> = null;
  -        private Configuration transformer_config_<xsl:value-of 
select="translate(./@name, '- ', '__')"/> = null;
  -      </xsl:for-each>
  -
  -      /** The readers */
  -      <xsl:for-each 
select="/map:sitemap/map:components/map:readers/map:reader">
  -        private ComponentHolder reader_<xsl:value-of 
select="translate(./@name, '- ', '__')"/> = null;
  -        private Configuration reader_config_<xsl:value-of 
select="translate(./@name, '- ', '__')"/> = null;
  -      </xsl:for-each>
  -
  -      /** The serializers */
  -      <xsl:for-each 
select="/map:sitemap/map:components/map:serializers/map:serializer">
  -        private ComponentHolder serializer_<xsl:value-of 
select="translate(./@name, '- ', '__')"/> = null;
  -        private Configuration serializer_config_<xsl:value-of 
select="translate(./@name, '- ', '__')"/> = null;
  -      </xsl:for-each>
   
         /** The matchers */
         <xsl:for-each 
select="/map:sitemap/map:components/map:matchers/map:[EMAIL PROTECTED]">
  -        <xsl:variable name="src" select="@src"/>
  -        <xsl:variable name="is-factory" 
select="java:isFactory($factory-loader, string(@src))"/>
  -        <xsl:choose>
  -          <xsl:when test="$is-factory">
  -            <xsl:variable name="type" select="@name"/>
  -            <xsl:variable name="default"><xsl:if test="$type = 
../@default">true</xsl:if></xsl:variable>
  -            <xsl:variable name="config"><xsl:copy-of 
select="."/></xsl:variable>
  -            <!-- 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:[EMAIL 
PROTECTED] or (not(@type) and $default!='')]">
  -              <xsl:variable name="matcher-name">
  -                <xsl:call-template name="generate-name">
  -                  <xsl:with-param name="prefix">matcher_</xsl:with-param>
  -                  <xsl:with-param name="value" select="@pattern"/>
  -                </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)"/>
  -              private List <xsl:value-of select="$matcher-name"/> (String 
pattern, Map objectModel) {
  -                <xsl:value-of 
select="java:getMethodSource($factory-loader,string($src),string($matcher-name),string(@pattern),$config)"/>
  -              }
  -            </xsl:for-each>
  -          </xsl:when>
  -          <xsl:otherwise>
  -            private ComponentHolder matcher_<xsl:value-of 
select="translate(./@name, '- ', '__')"/> = null;
  -          </xsl:otherwise>
  -        </xsl:choose>
  -        private Configuration matcher_config_<xsl:value-of 
select="translate(./@name, '- ', '__')"/> = null;
  +        <xsl:if test="java:isFactory($factory-loader, string(@src))">
  +          <xsl:variable name="src" select="@src"/>
  +          <xsl:variable name="type" select="@name"/>
  +          <xsl:variable name="default" select="$type = ../@default"/>
  +          <xsl:variable name="config"><xsl:copy-of 
select="."/></xsl:variable>
  +          <!-- 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:[EMAIL 
PROTECTED] or (not(@type) and $default)]">
  +            <xsl:variable name="matcher-name">
  +              <xsl:call-template name="generate-name">
  +                <xsl:with-param name="prefix">matcher_</xsl:with-param>
  +                <xsl:with-param name="value" select="@pattern"/>
  +              </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)"/>
  +            private List <xsl:value-of select="$matcher-name"/> (String 
pattern, Map objectModel) {
  +              <xsl:value-of 
select="java:getMethodSource($factory-loader,string($src),string($matcher-name),string(@pattern),$config)"/>
  +            }
  +          </xsl:for-each>
  +        </xsl:if>
         </xsl:for-each>
   
         /** The selectors */
         <xsl:for-each 
select="/map:sitemap/map:components/map:selectors/map:[EMAIL PROTECTED]">
  -        <xsl:variable name="src" select="@src"/>
  -        <xsl:variable name="is-factory" 
select="java:isFactory($factory-loader, string(@src))"/>
  -        <xsl:choose>
  -          <xsl:when test="$is-factory">
  -            <xsl:variable name="type" select="@name"/>
  -            <xsl:variable name="default"><xsl:if test="$type = 
../@default">true</xsl:if></xsl:variable>
  -            <xsl:variable name="config"><xsl:copy-of 
select="."/></xsl:variable>
  -            <!-- process all map:when elements with are in a map:chooser 
element having a type attribute
  -                 refering to the current selector factory iteration -->
  -            <xsl:for-each 
select="/map:sitemap/map:pipelines/map:pipeline/descendant-or-self::map:when[../map:select/@type=$type
 or (not(../map:select/@type) and $default!='')]">
  -              <xsl:variable name="selector-name">
  -                <xsl:call-template name="generate-name">
  -                  <xsl:with-param name="prefix">selector_</xsl:with-param>
  -                  <xsl:with-param name="value" select="@test"/>
  -                </xsl:call-template>
  -              </xsl:variable>
  -              <xsl:variable name="this-test">
  -                <xsl:value-of select="@test"/>
  -              </xsl:variable>
  -              <xsl:if test="not(preceding::map:[EMAIL PROTECTED] = 
$this-test])">
  -              /** The generated selector for a test of "<xsl:value-of 
select="@test"/>" */
  -                <xsl:value-of 
select="java:getClassSource($factory-loader,string($src),string(@test),string($selector-name),$config)"/>
  -                private boolean <xsl:value-of select="$selector-name"/> 
(String pattern, Map objectModel) {
  -                  <xsl:value-of 
select="java:getMethodSource($factory-loader,string($src),string(@test),string($selector-name),$config)"/>
  -                }
  -              </xsl:if>
  -            </xsl:for-each>
  -          </xsl:when>
  -          <xsl:otherwise>
  -            private ComponentHolder selector_<xsl:value-of 
select="translate(./@name, '- ', '__')"/> = null;
  -          </xsl:otherwise>
  -        </xsl:choose>
  -        private Configuration selector_config_<xsl:value-of 
select="translate(./@name, '- ', '__')"/> = null;
  +        <xsl:if test="java:isFactory($factory-loader, string(@src))">
  +          <xsl:variable name="src" select="@src"/>
  +          <xsl:variable name="type" select="@name"/>
  +          <xsl:variable name="default" select="$type = ../@default"/>
  +          <xsl:variable name="config"><xsl:copy-of 
select="."/></xsl:variable>
  +          <!-- process all map:when elements with are in a map:chooser 
element having a type attribute
  +               refering to the current selector factory iteration -->
  +          <xsl:for-each 
select="/map:sitemap/map:pipelines/map:pipeline/descendant-or-self::map:when[../map:select/@type=$type
 or (not(../map:select/@type) and $default)]">
  +            <xsl:variable name="selector-name">
  +              <xsl:call-template name="generate-name">
  +                <xsl:with-param name="prefix">selector_</xsl:with-param>
  +                <xsl:with-param name="value" select="@test"/>
  +              </xsl:call-template>
  +            </xsl:variable>
  +            <xsl:variable name="this-test">
  +              <xsl:value-of select="@test"/>
  +            </xsl:variable>
  +            <xsl:if test="not(preceding::map:[EMAIL PROTECTED] = 
$this-test])">
  +            /** The generated selector for a test of "<xsl:value-of 
select="@test"/>" */
  +              <xsl:value-of 
select="java:getClassSource($factory-loader,string($src),string(@test),string($selector-name),$config)"/>
  +              private boolean <xsl:value-of select="$selector-name"/> 
(String pattern, Map objectModel) {
  +                <xsl:value-of 
select="java:getMethodSource($factory-loader,string($src),string(@test),string($selector-name),$config)"/>
  +              }
  +            </xsl:if>
  +          </xsl:for-each>
  +        </xsl:if>
         </xsl:for-each>
   
         /** The generated matchers (for backward compatability. Should be 
removed in the future) */
         <xsl:for-each 
select="/map:sitemap/map:components/map:matchers/map:[EMAIL PROTECTED]">
           <xsl:variable name="factory" select="@factory"/>
           <xsl:variable name="type" select="@name"/>
  -        <xsl:variable name="default"><xsl:if test="$type = 
../@default">true</xsl:if></xsl:variable>
  +        <xsl:variable name="default" select="$type = ../@default"/>
           <xsl:variable name="config"><xsl:copy-of select="."/></xsl:variable>
  -        <xsl:for-each 
select="/map:sitemap/map:pipelines/map:pipeline/descendant-or-self::map:[EMAIL 
PROTECTED] or (not(@type) and $default!='')]">
  +        <xsl:for-each 
select="/map:sitemap/map:pipelines/map:pipeline/descendant-or-self::map:[EMAIL 
PROTECTED] or (not(@type) and $default)]">
             <xsl:variable name="matcher-name">
               <xsl:call-template name="generate-name">
                 <xsl:with-param name="prefix">matcher_</xsl:with-param>
  @@ -205,9 +158,9 @@
         <xsl:for-each 
select="/map:sitemap/map:components/map:selectors/map:[EMAIL PROTECTED]">
           <xsl:variable name="factory" select="@factory"/>
           <xsl:variable name="type" select="@name"/>
  -        <xsl:variable name="default"><xsl:if test="$type = 
../@default">true</xsl:if></xsl:variable>
  +        <xsl:variable name="default" select="$type = ../@default"/>
           <xsl:variable name="config"><xsl:copy-of select="."/></xsl:variable>
  -        <xsl:for-each 
select="/map:sitemap/map:pipelines/map:pipeline/descendant-or-self::map:when[../map:select/@type=$type
 or (not(../map:select/@type) and $default!='')]">
  +        <xsl:for-each 
select="/map:sitemap/map:pipelines/map:pipeline/descendant-or-self::map:when[../map:select/@type=$type
 or (not(../map:select/@type) and $default)]">
             <xsl:variable name="selector-name">
               <xsl:call-template name="generate-name">
                 <xsl:with-param name="prefix">selector_</xsl:with-param>
  @@ -226,82 +179,70 @@
           </xsl:for-each>
         </xsl:for-each>
   
  -      /** The actions */
  -      <xsl:for-each 
select="/map:sitemap/map:components/map:actions/map:action">
  -        private ComponentHolder action_<xsl:value-of 
select="translate(./@name, '- ', '__')"/> = null;
  -        private Configuration action_config_<xsl:value-of 
select="translate(./@name, '- ', '__')"/> = null;
  -      </xsl:for-each>
  -
         /**
          * Pass a &lt;code&gt;Configuration&lt;/code&gt; instance to this
          * &lt;code&gt;Configurable&lt;/code&gt; class.
          */
  -      public void setConfiguration(Configuration conf)
  -      throws ConfigurationException /*, SAXException, ClassNotFoundException,
  -             InstantiationException, IllegalAccessException */ {
  +      public void setConfiguration(Configuration conf) throws 
ConfigurationException {
           SAXConfigurationBuilder confBuilder = new SAXConfigurationBuilder ();
           Configuration cconf = null;
           AttributesImpl attr = new AttributesImpl();
   
  -        this.sitemapManager = new Manager();
  +        this.sitemapManager = new Manager(super.sitemapComponentManager);
           this.sitemapManager.setComponentManager(this.manager);
           this.sitemapManager.setConfiguration(conf);
           try {
             <!-- configure all components -->
  -          /* Configure special ErrorNotifier */
  +          /* Configure special ErrorNotifier and LinkTransformer */
             confBuilder.startDocument ();
             confBuilder.endDocument ();
             Configuration cconf2 = confBuilder.getConfiguration();
  -          generator_config_error_handler = cconf2;
  -          generator_error_handler =
  -            (ComponentHolder) load_component 
("org.apache.cocoon.sitemap.ErrorNotifier", cconf2);
  -          transformer_config_link_translator = cconf2;
  -          transformer_link_translator =
  -            (ComponentHolder) load_component 
("org.apache.cocoon.sitemap.LinkTranslator", cconf2);
  +          load_component ("!generator:error-notifier!", 
"org.apache.cocoon.sitemap.ErrorNotifier", cconf2, null);
  +          load_component ("!transformer:link-translator!", 
"org.apache.cocoon.sitemap.LinkTranslator", cconf2, null);
   
  -          /* Configure generators */
  +          <!-- Configure generators -->
             <xsl:call-template name="config-components">
               <xsl:with-param name="name">generator</xsl:with-param>
               <xsl:with-param name="components"
                   
select="/map:sitemap/map:components/map:generators/map:generator"/>
             </xsl:call-template>
   
  -          /* Configure transformers */
  +          <!-- Configure transformers -->
             <xsl:call-template name="config-components">
               <xsl:with-param name="name">transformer</xsl:with-param>
               <xsl:with-param name="components"
                   
select="/map:sitemap/map:components/map:transformers/map:transformer"/>
             </xsl:call-template>
   
  -          /* Configure readers */
  +          <!-- Configure readers -->
             <xsl:call-template name="config-components">
               <xsl:with-param name="name">reader</xsl:with-param>
               <xsl:with-param name="components"
                   select="/map:sitemap/map:components/map:readers/map:reader"/>
             </xsl:call-template>
   
  -          /* Configure serializers */
  +          <!-- Configure serializers -->
             <xsl:call-template name="config-components">
               <xsl:with-param name="name">serializer</xsl:with-param>
               <xsl:with-param name="components"
                   
select="/map:sitemap/map:components/map:serializers/map:serializer"/>
             </xsl:call-template>
   
  -          /* Configure matchers */
  +          <!-- Configure matchers -->
             <xsl:call-template name="config-components">
               <xsl:with-param name="name">matcher</xsl:with-param>
               <xsl:with-param name="components"
                   
select="/map:sitemap/map:components/map:matchers/map:matcher"/>
             </xsl:call-template>
   
  -          /* Configure selectors */
  +          <!-- Configure selectors -->
             <xsl:call-template name="config-components">
               <xsl:with-param name="name">selector</xsl:with-param>
               <xsl:with-param name="components"
                   
select="/map:sitemap/map:components/map:selectors/map:selector"/>
             </xsl:call-template>
   
  -          /* Configure actions */
  +          <!-- Configure actions -->
             <xsl:call-template name="config-components">
               <xsl:with-param name="name">action</xsl:with-param>
               <xsl:with-param name="components"
  @@ -335,7 +276,7 @@
           }
         </xsl:for-each>
   
  -      <!-- generate methods for every map:resource element -->
  +      <!-- generate methods for every map:view element -->
         <xsl:for-each select="/map:sitemap/map:views/map:view">
           /**
            * This is the method to produce the "<xsl:value-of 
select="@name"/>" view of the requested resource
  @@ -362,13 +303,12 @@
         throws Exception {
           /* the &lt;code&gt;ResourcePipeline&lt;/code&gt; used to collect the 
sitemap
              components to produce the requested resource */
  -        ResourcePipeline pipeline = new ResourcePipeline ();
  -        pipeline.setComponentManager (this.manager);
  +        ResourcePipeline pipeline = new ResourcePipeline 
(super.sitemapComponentManager);
           /* the &lt;code&gt;List&lt;/code&gt; objects to hold the replacement 
values
              delivered from matchers and selectors to replace occurences of
              XPath kind expressions in values of src attribute used with
              generate and transform elements */
  -        List listOfLists = (List)(new ArrayList());
  +        List listOfLists = (List) new ArrayList();
           List list;
           Parameters param;
           Map objectModel = environment.getObjectModel();
  @@ -406,14 +346,11 @@
           <xsl:if test="(./map:handle-errors)">
             private boolean error_process_<xsl:value-of 
select="$pipeline-position"/> (Environment environment, Map objectModel, 
Exception e)
             throws Exception {
  -            ResourcePipeline pipeline = new ResourcePipeline ();
  -            pipeline.setComponentManager (this.manager);
  +            ResourcePipeline pipeline = new ResourcePipeline 
(super.sitemapComponentManager);
               List listOfLists = (List)(new ArrayList());
               List list;
               Parameters param;
  -            pipeline.setGenerator (generator_error_handler, e.getMessage(), 
emptyParam);
  -            ErrorNotifier eg = (ErrorNotifier)pipeline.getGenerator().get();
  -            eg.setException (e);
  +            pipeline.setGenerator ("!generator:error-notifier!", 
e.getMessage(), emptyParam, e);
               <xsl:apply-templates select="./map:handle-errors/*"/>
               return false;
             }
  @@ -450,24 +387,41 @@
         </xsl:call-template>
       </xsl:variable>
   
  +    <!-- get the name of this matcher in case it is defined in this sitemap 
? -->
  +    <xsl:variable name="local-matcher">
  +      <xsl:value-of 
select="/map:sitemap/map:components/map:matchers/map:[EMAIL PROTECTED]"/>
  +    </xsl:variable>
  +
  +    <!-- check if this matcher is a factory ? -->
  +    <xsl:variable name="is-factory">
  +      <xsl:choose>
  +        <xsl:when test="not($local-matcher)">
  +          <xsl:value-of select="false()"/>
  +        </xsl:when>
  +        <xsl:when test="$local-matcher/@factory">
  +          <xsl:value-of select="true()"/>
  +        </xsl:when>
  +        <xsl:when test="$local-matcher/@src">
  +          <xsl:value-of select="java:isFactory($factory-loader, 
string($local-matcher/@src))"/>
  +        </xsl:when>
  +        <xsl:otherwise>
  +          <xsl:value-of select="false()"/>
  +        </xsl:otherwise>
  +      </xsl:choose>
  +    </xsl:variable>
  +
  +
       <!-- gets the string how the matcher is to be invoced in java code -->
       <xsl:variable name="matcher-name">
  -      <xsl:for-each 
select="/map:sitemap/map:components/map:matchers/map:[EMAIL PROTECTED]">
  -        <xsl:variable name="is-factory" 
select="java:isFactory($factory-loader, string(@src))"/>
  -        <xsl:choose>
  -          <xsl:when test="(./@src) and not($is-factory)">
  -            matcher_<xsl:value-of select="translate($matcher-type, '- ', 
'__')"/>.match
  -          </xsl:when>
  -          <xsl:when test="(./@factory) or $is-factory">
  -            matcher_<xsl:value-of select="$matcher-name2"/>
  -          </xsl:when>
  -          <xsl:otherwise>
  -            <xsl:call-template name="error">
  -              <xsl:with-param name="message">cannot choose a matcher name 
<xsl:value-of select="$matcher-type"/></xsl:with-param>
  -            </xsl:call-template>
  -          </xsl:otherwise>
  -        </xsl:choose>
  -      </xsl:for-each>
  +      <!-- check if we have a matcher definition in this sitemap otherwise 
get it from the parent -->
  +      <xsl:choose>
  +        <xsl:when test="$is-factory">
  +          matcher_<xsl:value-of select="$matcher-name2"/>
  +        </xsl:when>
  +        <xsl:otherwise>
  +          
((Matcher)((ComponentHolder)super.sitemapComponentManager.getComponent("matcher:<xsl:value-of
 select="$matcher-type"/>")).get()).match
  +        </xsl:otherwise>
  +      </xsl:choose>
       </xsl:variable>
   
       <!-- this is the actual code produced -->
  @@ -509,24 +463,41 @@
           </xsl:call-template>
         </xsl:variable>
   
  +
  +      <!-- get the name of this selector in case it is defined in this 
sitemap ? -->
  +      <xsl:variable name="local-selector">
  +        <xsl:value-of 
select="/map:sitemap/map:components/map:selectors/map:[EMAIL PROTECTED]"/>
  +      </xsl:variable>
  +
  +      <!-- check if this selector is a factory ? -->
  +      <xsl:variable name="is-factory">
  +        <xsl:choose>
  +          <xsl:when test="not($local-selector)">
  +            <xsl:value-of select="false()"/>
  +          </xsl:when>
  +          <xsl:when test="$local-selector/@factory">
  +            <xsl:value-of select="true()"/>
  +          </xsl:when>
  +          <xsl:when test="$local-selector/@src">
  +            <xsl:value-of select="java:isFactory($factory-loader, 
string($local-selector/@src))"/>
  +          </xsl:when>
  +          <xsl:otherwise>
  +            <xsl:value-of select="false()"/>
  +          </xsl:otherwise>
  +        </xsl:choose>
  +      </xsl:variable>
  +
         <!-- gets the string how the selector is to be invoced in java code -->
         <xsl:variable name="selector-name">
  -        <xsl:for-each 
select="/map:sitemap/map:components/map:selectors/map:[EMAIL PROTECTED]">
  -          <xsl:variable name="is-factory" 
select="java:isFactory($factory-loader, string(@src))"/>
  -          <xsl:choose>
  -            <xsl:when test="(./@src) and not($is-factory)">
  -              selector_<xsl:value-of select="translate($selector-type, '- ', 
'__')"/>.select
  -            </xsl:when>
  -            <xsl:when test="(./@factory) or $is-factory">
  -              selector_<xsl:value-of select="$selector-name2"/>
  -            </xsl:when>
  -            <xsl:otherwise>
  -              <xsl:call-template name="error">
  -                <xsl:with-param name="message">cannot choose a selector name 
<xsl:value-of select="$selector-type"/></xsl:with-param>
  -              </xsl:call-template>
  -            </xsl:otherwise>
  -          </xsl:choose>
  -        </xsl:for-each>
  +        <!-- check if we have a selector definition in this sitemap 
otherwise get it from the parent -->
  +        <xsl:choose>
  +          <xsl:when test="$is-factory">
  +            selector_<xsl:value-of select="$selector-name2"/>
  +          </xsl:when>
  +          <xsl:otherwise>
  +            
((Selector)((ComponentHolder)super.sitemapComponentManager.getComponent("selector:<xsl:value-of
 select="$selector-type"/>")).get()).select
  +          </xsl:otherwise>
  +        </xsl:choose>
         </xsl:variable>
   
         <!-- this is the actual code produced on the when elements -->
  @@ -559,18 +530,7 @@
   
       <!-- gets the string how the action is to be invoced in java code -->
       <xsl:variable name="action-name">
  -      <xsl:for-each 
select="/map:sitemap/map:components/map:actions/map:[EMAIL PROTECTED]">
  -        <xsl:choose>
  -          <xsl:when test="(./@src)">
  -            action_<xsl:value-of select="translate($action-type, '- ', 
'__')"/>.act
  -          </xsl:when>
  -          <xsl:otherwise>
  -            <xsl:call-template name="error">
  -              <xsl:with-param name="message">cannot choose an action name 
<xsl:value-of select="$action-type"/></xsl:with-param>
  -            </xsl:call-template>
  -          </xsl:otherwise>
  -        </xsl:choose>
  -      </xsl:for-each>
  +      
((Action)((ComponentHolder)super.sitemapComponentManager.getComponent("action:<xsl:value-of
 select="$selector-type"/>")).get()).act
       </xsl:variable>
   
       <!-- test if we have to define parameters for this action -->
  @@ -596,14 +556,14 @@
       <!-- generate the invocation of the act method of the action component 
-->
       <xsl:choose>
         <xsl:when test="./*">
  -        if ((list = <xsl:value-of select="$action-name"/> (environment, 
objectModel, <xsl:value-of select="$src-param"/>, <xsl:value-of 
select="$component-param"/>)) != null) {
  +        if ((list = <xsl:value-of select="$action-name"/> (environment, 
objectModel, <xsl:value-of select="$component-param"/>)) != null) {
             listOfLists.add (list);
             <xsl:apply-templates/>
             listOfList.remove(list);
           }
         </xsl:when>
         <xsl:otherwise>
  -        list = <xsl:value-of select="$action-name"/> (environment, 
objectModel, <xsl:value-of select="$src-param"/>, <xsl:value-of 
select="$component-param"/>);
  +        list = <xsl:value-of select="$action-name"/> (environment, 
objectModel, <xsl:value-of select="$component-param"/>);
         </xsl:otherwise>
       </xsl:choose>
     </xsl:template> <!-- match="map:act" -->
  @@ -626,44 +586,13 @@
       </xsl:call-template>
     </xsl:template> <!-- match="map:transformer" -->
   
  -  <!-- generate the code to invoke a transformer -->
  +  <!-- generate the code to invoke a serializer -->
     <xsl:template match="map:serialize">
  -
  -    <!-- get the type of serializer used -->
  -    <xsl:variable name="default-serializer-type">
  -      <xsl:value-of 
select="/map:sitemap/map:components/map:serializers/@default"/>
  -    </xsl:variable>
  -    <xsl:variable name="this-type">
  -      <xsl:choose>
  -        <xsl:when test="@type">
  -          <xsl:value-of select="@type"/>
  -        </xsl:when>
  -        <xsl:otherwise>
  -          <xsl:value-of select="$default-serializer-type"/>
  -        </xsl:otherwise>
  -      </xsl:choose>
  -    </xsl:variable>
  -
  -    <!-- get the mime-type to be used for this serializer -->
  -    <xsl:variable name="default-mime-type">
  -      <xsl:value-of 
select="/map:sitemap/map:components/map:serializers/map:[EMAIL 
PROTECTED]/@mime-type"/>
  -    </xsl:variable>
  -
  -    <!-- generate the code to invoke a serializer -->
       <xsl:call-template name="setup-component">
  -      <xsl:with-param name="default-component" 
select="$default-serializer-type"/>
  +      <xsl:with-param name="default-component" 
select="/map:sitemap/map:components/map:serializers/@default"/>
         <xsl:with-param name="method">setSerializer</xsl:with-param>
         <xsl:with-param name="prefix">serializer</xsl:with-param>
  -      <xsl:with-param name="mime-type">
  -        <xsl:choose>
  -          <xsl:when test="@mime-type">
  -              <xsl:value-of select="@mime-type"/>
  -          </xsl:when>
  -          <xsl:otherwise>
  -            <xsl:value-of select="$default-mime-type"/>
  -          </xsl:otherwise>
  -        </xsl:choose>
  -      </xsl:with-param>
  +      <xsl:with-param name="mime-type" select="@mime-type"/>
       </xsl:call-template>
   
       <!-- if there is a status-code attribute tell it to the environment -->
  @@ -675,44 +604,13 @@
       if(true)return pipeline.process (environment);
     </xsl:template> <!-- match="map:serialize" -->
   
  -  <!-- generate the code to invoke a transformer -->
  +  <!-- generate the code to invoke a reader -->
     <xsl:template match="map:read">
  -
  -    <!-- get the type of reader used -->
  -    <xsl:variable name="default-reader-type">
  -      <xsl:value-of 
select="/map:sitemap/map:components/map:readers/@default"/>
  -    </xsl:variable>
  -    <xsl:variable name="this-type">
  -      <xsl:choose>
  -        <xsl:when test="@type">
  -          <xsl:value-of select="@type"/>
  -        </xsl:when>
  -        <xsl:otherwise>
  -          <xsl:value-of select="$default-reader-type"/>
  -        </xsl:otherwise>
  -      </xsl:choose>
  -    </xsl:variable>
  -
  -    <!-- get the mime-type to be used for this reader -->
  -    <xsl:variable name="default-mime-type">
  -      <xsl:value-of 
select="/map:sitemap/map:components/map:readers/map:[EMAIL 
PROTECTED]/@mime-type"/>
  -    </xsl:variable>
  -
  -    <!-- generate the code to invoke a reader -->
       <xsl:call-template name="setup-component">
         <xsl:with-param name="default-component" 
select="/map:sitemap/map:components/map:readers/@default"/>
         <xsl:with-param name="method">setReader</xsl:with-param>
         <xsl:with-param name="prefix">reader</xsl:with-param>
  -      <xsl:with-param name="mime-type">
  -        <xsl:choose>
  -          <xsl:when test="@mime-type">
  -            <xsl:value-of select="@mime-type"/>
  -          </xsl:when>
  -          <xsl:otherwise>
  -            <xsl:value-of select="$default-mime-type"/>
  -          </xsl:otherwise>
  -        </xsl:choose>
  -      </xsl:with-param>
  +      <xsl:with-param name="mime-type" select="@mime-type"/>
       </xsl:call-template>
   
       <!-- the "if(true)" is needed to prevent "statement not reachable" error 
messages during compile -->
  @@ -749,7 +647,7 @@
         <xsl:when test="substring(@uri-prefix,string-length(@uri-prefix))='}'">
           String uri_prefix<xsl:value-of 
select="count(.)"/>=substitute(listOfLists,"<xsl:value-of 
select="@uri-prefix"/>");
           if (uri_prefix<xsl:value-of 
select="count(.)"/>.charAt(uri_prefix<xsl:value-of 
select="count(.)"/>.length()-1)=='/'){
  -          return sitemapManager.invoke (environment, uri_prefix<xsl:value-of 
select="count(.)"/>, substitute(listOfLists,"<xsl:value-of select="@src"/>"), 
<xsl:value-of select="$check-reload"/>);
  +          if(true)return sitemapManager.invoke (environment, 
uri_prefix<xsl:value-of select="count(.)"/>, 
substitute(listOfLists,"<xsl:value-of select="@src"/>"), <xsl:value-of 
select="$check-reload"/>);
           } else {
             return sitemapManager.invoke (environment, uri_prefix<xsl:value-of 
select="count(.)"/>+"/", substitute(listOfLists,"<xsl:value-of 
select="@src"/>"), <xsl:value-of select="$check-reload"/>);
           }
  @@ -806,7 +704,6 @@
     <!-- this template generates the code to configure a specific sitemap 
component -->
     <xsl:template name="config-components">
       <xsl:param name="name"/>
  -    <xsl:param name="interface"/>
       <xsl:param name="components"/>
   
       <xsl:variable name="qname">
  @@ -815,10 +712,9 @@
   
       <xsl:variable name="ns" select="namespace-uri(.)"/>
       <xsl:for-each select="$components">
  -      <xsl:variable name="factory-component">
  -        <xsl:if test="$name = 'matcher' or $name = 'selector'"><xsl:value-of 
select="java:isFactory($factory-loader, string(@src))"/></xsl:if>
  -      </xsl:variable>
  -      <xsl:if test="not($factory-component)">
  +      <xsl:variable name="is-factory-component"
  +        select="(@factory and ($name = 'matcher' or $name = 'selector')) or 
(@src and ($name = 'matcher' or $name = 'selector') and 
java:isFactory($factory-loader, string(@src)))"/>
  +      <xsl:if test="$is-factory-component=false()">
           confBuilder.startDocument ();
           <xsl:if test="$ns">
             confBuilder.startPrefixMapping("","<xsl:value-of 
select="namespace-uri(.)"/>");
  @@ -838,7 +734,6 @@
           <xsl:call-template name="nested-config-components">
             <xsl:with-param name="name" select="$name"/>
             <xsl:with-param name="config-name"><xsl:value-of 
select="concat(local-name(.),'/',@name)"/></xsl:with-param>
  -          <xsl:with-param name="interface" select="$interface"/>
             <xsl:with-param name="components" select="*"/>
             <xsl:with-param name="type" select="@name"/>
             <xsl:with-param name="ns" select="$ns"/>
  @@ -848,13 +743,18 @@
           confBuilder.endElement ("", "<xsl:value-of select="translate(@name, 
'- ', '__')"/>",
                                       "<xsl:value-of select="translate(@name, 
'- ', '__')"/>");
           <xsl:if test="$ns">
  -        confBuilder.endPrefixMapping("");
  +          confBuilder.endPrefixMapping("");
           </xsl:if>
           confBuilder.endDocument ();
           cconf = confBuilder.getConfiguration();
  -        <xsl:value-of select="$name"/>_config_<xsl:value-of 
select="translate(@name, '- ', '__')"/> = cconf;
  -        <xsl:value-of select="$name"/>_<xsl:value-of 
select="translate(@name, '- ', '__')"/> =
  -          (ComponentHolder)load_component ("<xsl:value-of select="@src"/>", 
cconf);
  +        <xsl:choose>
  +          <xsl:when test="@mime-type">
  +            load_component ("<xsl:value-of select="$name"/>:<xsl:value-of 
select="@name"/>", "<xsl:value-of select="@src"/>", cconf, "<xsl:value-of 
select="@mime-type"/>");
  +          </xsl:when>
  +          <xsl:otherwise>
  +            load_component ("<xsl:value-of select="$name"/>:<xsl:value-of 
select="@name"/>", "<xsl:value-of select="@src"/>", cconf, null);
  +          </xsl:otherwise>
  +        </xsl:choose>
         </xsl:if>
       </xsl:for-each>
     </xsl:template>
  @@ -863,7 +763,6 @@
     <xsl:template name="nested-config-components">
       <xsl:param name="name"/>
       <xsl:param name="config-name"/>
  -    <xsl:param name="interface"/>
       <xsl:param name="components"/>
       <xsl:param name="type"/>
       <xsl:param name="ns"/>
  @@ -898,7 +797,6 @@
         <xsl:call-template name="nested-config-components">
           <xsl:with-param name="name"><xsl:value-of 
select="$name"/></xsl:with-param>
           <xsl:with-param name="config-name"><xsl:value-of 
select="local-name(.)"/></xsl:with-param>
  -        <xsl:with-param name="interface"><xsl:value-of 
select="$interface"/></xsl:with-param>
           <xsl:with-param name="components" select="./*"/>
           <xsl:with-param name="type"><xsl:value-of 
select="$type"/></xsl:with-param>
           <xsl:with-param name="ns"><xsl:value-of 
select="namespace-uri(.)"/></xsl:with-param>
  @@ -917,6 +815,7 @@
       <xsl:param name="method"/>
       <xsl:param name="prefix"/>
       <xsl:param name="mime-type"/>
  +
       <!-- view/label 'last' check -->
       <xsl:if test="not(ancestor::map:views) and 
not(ancestor::map:handle-errors)">
         <xsl:if test="$prefix='serializer'">
  @@ -927,7 +826,7 @@
           </xsl:for-each>
           // performing link translation
           if (environment.getObjectModel().containsKey(Cocoon.LINK_OBJECT)) {
  -            pipeline.addTransformer (transformer_link_translator, null, 
emptyParam);
  +            pipeline.addTransformer ("!transformer:link-translator!", null, 
emptyParam);
           }
         </xsl:if>
       </xsl:if>
  @@ -948,7 +847,7 @@
         </xsl:call-template>
       </xsl:variable>
   
  -    <!-- test if we have to define parameters for this action -->
  +    <!-- test if we have to define parameters for this component -->
       <xsl:if test="count(parameter)>0">
         param = new Parameters ();
       </xsl:if>
  @@ -973,24 +872,26 @@
         <xsl:when test="$component-source='null'">
           <xsl:choose>
             <xsl:when test="$mime-type!=''">
  -            pipeline.<xsl:value-of select="$method"/> (<xsl:value-of 
select="$prefix"/>_<xsl:value-of select="$component-type"/>,
  -                null, <xsl:value-of 
select="$component-param"/>,"<xsl:value-of select="$mime-type"/>");
  +            pipeline.<xsl:value-of select="$method"/> ("<xsl:value-of 
select="$prefix"/>:<xsl:value-of select="$component-type"/>",
  +              null, <xsl:value-of select="$component-param"/>,"<xsl:value-of 
select="$mime-type"/>"
  +            );
             </xsl:when>
             <xsl:otherwise>
  -            pipeline.<xsl:value-of select="$method"/> (<xsl:value-of 
select="$prefix"/>_<xsl:value-of select="$component-type"/>,
  -                null, <xsl:value-of select="$component-param"/>);
  +            pipeline.<xsl:value-of select="$method"/> ("<xsl:value-of 
select="$prefix"/>:<xsl:value-of select="$component-type"/>",
  +              null, <xsl:value-of select="$component-param"/>
  +            );
             </xsl:otherwise>
           </xsl:choose>
         </xsl:when>
         <xsl:otherwise>
           <xsl:choose>
             <xsl:when test="$mime-type!=''">
  -            pipeline.<xsl:value-of select="$method"/> (<xsl:value-of 
select="$prefix"/>_<xsl:value-of select="$component-type"/>,
  +            pipeline.<xsl:value-of select="$method"/> ("<xsl:value-of 
select="$prefix"/>:<xsl:value-of select="$component-type"/>",
                   substitute(listOfLists,"<xsl:value-of 
select="$component-source"/>"),
                   <xsl:value-of select="$component-param"/>,"<xsl:value-of 
select="$mime-type"/>");
             </xsl:when>
             <xsl:otherwise>
  -            pipeline.<xsl:value-of select="$method"/> (<xsl:value-of 
select="$prefix"/>_<xsl:value-of select="$component-type"/>,
  +            pipeline.<xsl:value-of select="$method"/> ("<xsl:value-of 
select="$prefix"/>:<xsl:value-of select="$component-type"/>",
                   substitute(listOfLists,"<xsl:value-of 
select="$component-source"/>"),
                   <xsl:value-of select="$component-param"/>);
             </xsl:otherwise>
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.11  +23 -8     
xml-cocoon/src/org/apache/cocoon/sitemap/Attic/AbstractSitemap.java
  
  Index: AbstractSitemap.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/sitemap/Attic/AbstractSitemap.java,v
  retrieving revision 1.1.2.10
  retrieving revision 1.1.2.11
  diff -u -r1.1.2.10 -r1.1.2.11
  --- AbstractSitemap.java      2000/10/08 21:09:26     1.1.2.10
  +++ AbstractSitemap.java      2000/10/13 04:14:41     1.1.2.11
  @@ -17,6 +17,7 @@
   import org.apache.avalon.Composer;
   import org.apache.avalon.Configurable;
   import org.apache.avalon.Configuration;
  +import org.apache.avalon.DefaultComponentManager;
   
   import org.apache.cocoon.ProcessingException;
   import org.apache.cocoon.Processor;
  @@ -30,15 +31,18 @@
    * Base class for generated <code>Sitemap</code> classes
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
  - * @version CVS $Revision: 1.1.2.10 $ $Date: 2000/10/08 21:09:26 $
  + * @version CVS $Revision: 1.1.2.11 $ $Date: 2000/10/13 04:14:41 $
    */
   public abstract class AbstractSitemap implements Sitemap {
  -    
  +
       /** The component manager instance */
  -    protected ComponentManager manager = null;
  +    protected ComponentManager manager;
  +
  +    /** The sitemap component manager instance */
  +    protected DefaultComponentManager sitemapComponentManager;
   
       /** The sitemap manager instance */
  -    protected Manager sitemapManager = null;
  +    protected Manager sitemapManager;
   
       /** The creation date */
       protected static long dateCreated = -1L;
  @@ -47,6 +51,14 @@
        * Set the current <code>ComponentManager</code> instance used by this
        * <code>Composer</code>.
        */
  +    public void setParentSitemapComponentManager(ComponentManager 
parentSitemapComponentManager) {
  +        this.sitemapComponentManager = new DefaultComponentManager 
(parentSitemapComponentManager);
  +    }
  +
  +    /**
  +     * Set the current <code>ComponentManager</code> instance used by this
  +     * <code>Composer</code>.
  +     */
       public void setComponentManager(ComponentManager manager) {
           this.manager = manager;
       }
  @@ -78,13 +90,16 @@
         * Loads a class specified in a sitemap component definition and
         * initialize it
         */
  -    protected ComponentHolder load_component(String classURL, Configuration 
configuration) throws Exception {
  +    protected void load_component(String type, String classURL, 
Configuration configuration, String mime_type)
  +    throws Exception {
           if (!(ClassUtils.implementsInterface (classURL, 
Component.class.getName()))) {
               throw new IllegalAccessException ("Object " + classURL + " is 
not a Component");
           }
  -        ComponentHolder componentHolder;
  -        componentHolder = ComponentHolderFactory.getComponentHolder 
(classURL, configuration, this.manager);
  -        return (componentHolder);
  +        this.sitemapComponentManager.put(
  +            type, ComponentHolderFactory.getComponentHolder(
  +                classURL, configuration, this.manager, mime_type
  +            )
  +        );
       }
   
        /**
  
  
  
  1.1.2.2   +2 -1      
xml-cocoon/src/org/apache/cocoon/sitemap/Attic/ComponentHolder.java
  
  Index: ComponentHolder.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/sitemap/Attic/ComponentHolder.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- ComponentHolder.java      2000/10/08 20:58:58     1.1.2.1
  +++ ComponentHolder.java      2000/10/13 04:14:42     1.1.2.2
  @@ -14,10 +14,11 @@
    * This interface is used by the sitemap engine to access the sitemap 
components
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
  - * @version CVS $Revision: 1.1.2.1 $ $Date: 2000/10/08 20:58:58 $
  + * @version CVS $Revision: 1.1.2.2 $ $Date: 2000/10/13 04:14:42 $
    */
   public interface ComponentHolder extends Component {
       Component get() throws Exception;
       void put (Component component);
  +    String getMimeType ();
       String getName ();
   }
  
  
  
  1.1.2.4   +14 -9     
xml-cocoon/src/org/apache/cocoon/sitemap/Attic/ComponentHolderFactory.java
  
  Index: ComponentHolderFactory.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/sitemap/Attic/ComponentHolderFactory.java,v
  retrieving revision 1.1.2.3
  retrieving revision 1.1.2.4
  diff -u -r1.1.2.3 -r1.1.2.4
  --- ComponentHolderFactory.java       2000/10/12 16:44:05     1.1.2.3
  +++ ComponentHolderFactory.java       2000/10/13 04:14:42     1.1.2.4
  @@ -21,20 +21,25 @@
    * interfaces the passed component implements.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
  - * @version CVS $Revision: 1.1.2.3 $ $Date: 2000/10/12 16:44:05 $
  + * @version CVS $Revision: 1.1.2.4 $ $Date: 2000/10/13 04:14:42 $
    */
   public class ComponentHolderFactory {
   
       public static ComponentHolder getComponentHolder (String componentName, 
Configuration configuration, ComponentManager manager)
       throws Exception {
  -          /* if (ClassUtils.implementsInterface (componentName, 
Poolable.class.getName())) {
  -              return new PoolableComponentHolder (componentName, 
configuration, manager);
  -          } else if (ClassUtils.implementsInterface (componentName, 
SingleThreaded.class.getName())) {
  -              return new DefaultComponentHolder (componentName, 
configuration, manager);
  -          } else */ if (ClassUtils.implementsInterface (componentName, 
ThreadSafe.class.getName())) {
  -            return new ThreadSafeComponentHolder (componentName, 
configuration, manager);
  -          } else  {
  -            return new DefaultComponentHolder (componentName, configuration, 
manager);
  -          }
  +        return (getComponentHolder(componentName, configuration, manager, 
null));
  +    }
  +
  +    public static ComponentHolder getComponentHolder (String componentName, 
Configuration configuration, ComponentManager manager, String mime_type)
  +    throws Exception {
  +        if (ClassUtils.implementsInterface (componentName, 
Poolable.class.getName())) {
  +            return new PoolableComponentHolder (componentName, 
configuration, manager, mime_type);
  +        } else if (ClassUtils.implementsInterface (componentName, 
SingleThreaded.class.getName())) {
  +            return new DefaultComponentHolder (componentName, configuration, 
manager, mime_type);
  +        } else if (ClassUtils.implementsInterface (componentName, 
ThreadSafe.class.getName())) {
  +            return new ThreadSafeComponentHolder (componentName, 
configuration, manager, mime_type);
  +        } else  {
  +            return new DefaultComponentHolder (componentName, configuration, 
manager, mime_type);
  +        }
       }
   }
  
  
  
  1.1.2.2   +15 -6     
xml-cocoon/src/org/apache/cocoon/sitemap/Attic/DefaultComponentHolder.java
  
  Index: DefaultComponentHolder.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/sitemap/Attic/DefaultComponentHolder.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- DefaultComponentHolder.java       2000/10/08 20:58:58     1.1.2.1
  +++ DefaultComponentHolder.java       2000/10/13 04:14:42     1.1.2.2
  @@ -21,23 +21,25 @@
    * a spezial behaviour or treatment.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
  - * @version CVS $Revision: 1.1.2.1 $ $Date: 2000/10/08 20:58:58 $
  + * @version CVS $Revision: 1.1.2.2 $ $Date: 2000/10/13 04:14:42 $
    */
   public class DefaultComponentHolder implements ComponentHolder {
   
  -    private String className;
  -    private Configuration configuration;
  -    private ComponentManager manager;
  -    
  +    protected String className;
  +    protected Configuration configuration;
  +    protected ComponentManager manager;
  +    protected String mime_type;
  +
       /** Creates a DefaultComponentHolder
        * @param className The component class name
        * @param configuration The </CODE>Configuration</CODE> for the component
        * @param manager A <CODE>ComponentManager</CODE> for the component
        */
  -    public DefaultComponentHolder(String className, Configuration 
configuration, ComponentManager manager) {
  +    public DefaultComponentHolder(String className, Configuration 
configuration, ComponentManager manager, String mime_type) {
           this.className = className;
           this.configuration = configuration;
           this.manager = manager;
  +        this.mime_type = mime_type;
       }
   
       /** Creates a new instance of the <CODE>Component</CODE>
  @@ -68,5 +70,12 @@
        */
       public String getName() {
           return className;
  +    }
  +
  +    /**
  +     * This method returns the mime-type of the component or null
  +     */
  +    public String getMimeType() {
  +        return mime_type;
       }
   }
  
  
  
  1.1.2.3   +7 -2      
xml-cocoon/src/org/apache/cocoon/sitemap/Attic/Handler.java
  
  Index: Handler.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/sitemap/Attic/Handler.java,v
  retrieving revision 1.1.2.2
  retrieving revision 1.1.2.3
  diff -u -r1.1.2.2 -r1.1.2.3
  --- Handler.java      2000/10/04 20:54:38     1.1.2.2
  +++ Handler.java      2000/10/13 04:14:42     1.1.2.3
  @@ -31,7 +31,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
    * @author <a href="mailto:[EMAIL PROTECTED]">Stefano Mazzocchi</a>
  - * @version CVS $Revision: 1.1.2.2 $ $Date: 2000/10/04 20:54:38 $
  + * @version CVS $Revision: 1.1.2.3 $ $Date: 2000/10/13 04:14:42 $
    */
   public class Handler implements Runnable, Configurable, Composer, Processor {
   
  @@ -41,6 +41,9 @@
       /** the component manager */
       private ComponentManager manager;
   
  +    /** the parent sitemap component manager */
  +    private ComponentManager parentSitemapComponentManager;
  +
       /** the source of this sitemap */
       private File sourceFile;
   
  @@ -67,8 +70,9 @@
           this.conf = conf;
       }
   
  -    protected Handler (String source, boolean check_reload)
  +    protected Handler (ComponentManager sitemapComponentManager, String 
source, boolean check_reload)
       throws FileNotFoundException {
  +        this.parentSitemapComponentManager = sitemapComponentManager;
           this.check_reload = check_reload;
           String s = null;
           if (source.charAt(source.length() - 1) == File.separatorChar) {
  @@ -145,6 +149,7 @@
           try {
               ProgramGenerator programGenerator = (ProgramGenerator) 
this.manager.getComponent("program-generator");
               smap = (Sitemap) programGenerator.load(file, markupLanguage, 
programmingLanguage, environment);
  +            smap.setParentSitemapComponentManager 
(this.parentSitemapComponentManager);
               if (smap instanceof Composer) 
smap.setComponentManager(this.manager);
               if (smap instanceof Configurable) 
smap.setConfiguration(this.conf);
               this.sitemap = smap;
  
  
  
  1.1.2.2   +11 -4     
xml-cocoon/src/org/apache/cocoon/sitemap/Attic/Manager.java
  
  Index: Manager.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/sitemap/Attic/Manager.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- Manager.java      2000/09/28 19:14:04     1.1.2.1
  +++ Manager.java      2000/10/13 04:14:43     1.1.2.2
  @@ -32,7 +32,7 @@
    * checking regeneration of the sub <code>Sitemap</code>
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
  - * @version CVS $Revision: 1.1.2.1 $ $Date: 2000/09/28 19:14:04 $
  + * @version CVS $Revision: 1.1.2.2 $ $Date: 2000/10/13 04:14:43 $
    */
   public class Manager implements Configurable, Composer {
   
  @@ -40,11 +40,18 @@
       private HashMap sitemaps = new HashMap();
   
       /** The configuration */
  -    private Configuration conf = null;
  +    private Configuration conf;
   
       /** The component manager */
  -    private ComponentManager manager = null;
  +    private ComponentManager manager;
   
  +    /** The parent sitemap component manager */
  +    private ComponentManager parentSitemapComponentManager;
  +
  +    public Manager (ComponentManager sitemapComponentManager) {
  +        this.parentSitemapComponentManager = sitemapComponentManager;
  +    }
  +
       public void setConfiguration (Configuration conf) {
           this.conf = conf;
       }
  @@ -69,7 +76,7 @@
                   sitemapHandler.regenerate(environment);
               }
           } else {
  -            sitemapHandler = new Handler(source, check_reload);
  +            sitemapHandler = new Handler(parentSitemapComponentManager, 
source, check_reload);
               if (sitemapHandler instanceof Composer) 
sitemapHandler.setComponentManager(this.manager);
               if (sitemapHandler instanceof Configurable) 
sitemapHandler.setConfiguration(this.conf); 
               sitemaps.put(source, sitemapHandler);
  
  
  
  1.1.2.2   +10 -31    
xml-cocoon/src/org/apache/cocoon/sitemap/Attic/PoolableComponentHolder.java
  
  Index: PoolableComponentHolder.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/sitemap/Attic/PoolableComponentHolder.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- PoolableComponentHolder.java      2000/10/08 20:58:58     1.1.2.1
  +++ PoolableComponentHolder.java      2000/10/13 04:14:43     1.1.2.2
  @@ -19,58 +19,44 @@
   import org.apache.avalon.util.pool.PoolController;
   
   import org.apache.cocoon.util.ClassUtils;
  +import org.apache.cocoon.util.ComponentPool;
   
   /** 
    * This class holds a sitemap component which is not specially marked as 
having 
    * a spezial behaviour or treatment.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
  - * @version CVS $Revision: 1.1.2.1 $ $Date: 2000/10/08 20:58:58 $
  + * @version CVS $Revision: 1.1.2.2 $ $Date: 2000/10/13 04:14:43 $
    */
  -public class PoolableComponentHolder implements ComponentHolder, 
ObjectFactory {
  +public class PoolableComponentHolder extends DefaultComponentHolder 
implements ObjectFactory {
   
  -    /** The name of the class */
  -    private String className;
  -
       /** The class of this component */
       private Class clazz = null;
   
  -    /** The <code>Configuration</code> of this component */
  -    private Configuration configuration;
  -
  -    /** The <code>ComponentManagercode> of this component */
  -    private ComponentManager manager;
  -
       /** Initial increase/decrease amount */
       public final static int DEFAULT_AMOUNT = 16;
   
       /** Current increase/decrease amount */
  -    protected int amount = DEFAULT_AMOUNT;
  -
  -    /** The last direction to increase/decrease >0 means increase, <0 
decrease */
  -    protected int sizing_direction = 0;
  +    protected int amount = DEFAULT_AMOUNT / 2;
   
       /** The <code>Pool</code> for this components */
       protected Pool pool;
  -
       
       /** Creates a DefaultComponentHolder
        * @param className The component class name
        * @param configuration The </CODE>Configuration</CODE> for the component
        * @param manager A <CODE>ComponentManager</CODE> for the component
        */
  -    public PoolableComponentHolder(String className, Configuration 
configuration, ComponentManager manager)
  +    public PoolableComponentHolder(String className, Configuration 
configuration, ComponentManager manager, String mime_type)
       throws Exception {
  -        this.className = className;
  +        super(className, configuration, manager, mime_type);
           try {
  -            this.clazz = ClassUtils.loadClass (className);
  +            this.clazz = ClassUtils.loadClass (super.className);
           } catch (Exception e) {
               this.clazz = null;
           }
  -        this.configuration = configuration;
  -        this.manager = manager;
  -        PoolController pc = (PoolController)this.manager.getComponent 
("sitemap-component-pool-controller");
  -        this.pool = new ComponentPool (this, pc, amount, amount);
  +        PoolController pc = (PoolController)super.manager.getComponent 
("sitemap-component-pool-controller");
  +        this.pool = new ComponentPool (this, pc, amount, DEFAULT_AMOUNT);
       }
   
       /** Creates a new instance of the <CODE>Component</CODE>
  @@ -102,14 +88,7 @@
        * @return A Poolable component
        */
       public Poolable newInstance() throws Exception {
  -        Poolable comp = (Poolable) ClassUtils.newInstance (this.className);
  -        if (comp instanceof Composer) {
  -            ((Composer) comp).setComponentManager (this.manager);
  -        }
  -        if (comp instanceof Configurable) {
  -            ((Configurable) comp).setConfiguration (this.configuration);
  -        }
  -        return comp;
  +        return (Poolable) super.get();
       }
   
       /**
  
  
  
  1.1.2.17  +99 -66    
xml-cocoon/src/org/apache/cocoon/sitemap/Attic/ResourcePipeline.java
  
  Index: ResourcePipeline.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/sitemap/Attic/ResourcePipeline.java,v
  retrieving revision 1.1.2.16
  retrieving revision 1.1.2.17
  diff -u -r1.1.2.16 -r1.1.2.17
  --- ResourcePipeline.java     2000/10/08 21:09:26     1.1.2.16
  +++ ResourcePipeline.java     2000/10/13 04:14:43     1.1.2.17
  @@ -26,88 +26,97 @@
   import org.apache.cocoon.serialization.Serializer;
   import org.apache.cocoon.xml.XMLProducer;
   
  +import org.apache.cocoon.sitemap.ErrorNotifier;
  +
   import org.xml.sax.SAXException;
   import org.xml.sax.EntityResolver;
   
   /**
    * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
  - * @version CVS $Revision: 1.1.2.16 $ $Date: 2000/10/08 21:09:26 $
  + * @version CVS $Revision: 1.1.2.17 $ $Date: 2000/10/13 04:14:43 $
    */
   public class ResourcePipeline implements Composer {
  -    private ComponentHolder generator = null;
  -    private Parameters generatorParam = null;
  -    private String generatorSource = null;
  -    private ComponentHolder reader = null;
  -    private Parameters readerParam = null;
  -    private String readerSource = null;
  -    private String readerMimeType = null;
  +    private ComponentHolder generator;
  +    private Parameters generatorParam;
  +    private String generatorSource;
  +    private Exception generatorException;
  +    private ComponentHolder reader;
  +    private Parameters readerParam;
  +    private String readerSource;
  +    private String readerMimeType;
       private Vector transformers = new Vector();
       private Vector transformerParams = new Vector();
       private Vector transformerSources = new Vector();
  -    private ComponentHolder serializer = null;
  -    private Parameters serializerParam = null;
  -    private String serializerSource = null;
  -    private String serializerMimeType = null;
  +    private ComponentHolder serializer;
  +    private Parameters serializerParam;
  +    private String serializerSource;
  +    private String serializerMimeType;
   
       /** the component manager */
  -    private ComponentManager manager = null;
  +    private ComponentManager manager;
  +
  +    /** the sitemap component manager */
  +    private ComponentManager sitemapComponentManager;
   
  -    public ResourcePipeline () {
  +    public ResourcePipeline (ComponentManager sitemapComponentManager) {
  +        this.sitemapComponentManager = sitemapComponentManager;
       }
   
       public void setComponentManager (ComponentManager manager) {
           this.manager = manager;
       }
  +
  +    public void setGenerator (String role, String source, Parameters param, 
Exception e)
  +    throws Exception {
  +        this.generatorException = e;
  +        this.setGenerator (role, source, param);
  +    }
   
  -    public void setGenerator (ComponentHolder holder, String source, 
Parameters param)
  +    public void setGenerator (String role, String source, Parameters param)
       throws Exception {
           if (this.generator != null) {
  -            throw new ProcessingException ("Generator " + holder.getName() + 
" already set. You can only select one Generator");
  +            throw new ProcessingException ("Generator already set. You can 
only select one Generator (" + role + ")");
           }
  -        this.generator = holder;
  +        this.generator = 
(ComponentHolder)sitemapComponentManager.getComponent(role);
           this.generatorSource = source;
           this.generatorParam = param;
       }
   
  -    public ComponentHolder getGenerator () {
  -        return this.generator;
  -    }
  -
  -    public void setReader (ComponentHolder holder, String source, Parameters 
param)
  +    public void setReader (String role, String source, Parameters param)
       throws Exception {
  -        this.setReader (holder, source, param, null);
  +        this.setReader (role, source, param, null);
       }
   
  -    public void setReader (ComponentHolder holder, String source, Parameters 
param, String mimeType)
  +    public void setReader (String role, String source, Parameters param, 
String mimeType)
       throws Exception {
           if (this.reader != null) {
  -            throw new ProcessingException ("Reader " + holder.getName() + " 
already set. You can only select one Reader");
  +            throw new ProcessingException ("Reader already set. You can only 
select one Reader (" + role + ")");
           }
  -        this.reader = holder;
  +        this.reader = 
(ComponentHolder)sitemapComponentManager.getComponent(role);
           this.readerSource = source;
           this.readerParam = param;
           this.readerMimeType = mimeType;
       }
   
  -    public void setSerializer (ComponentHolder holder, String source, 
Parameters param)
  +    public void setSerializer (String role, String source, Parameters param)
       throws Exception {
  -        this.setSerializer (holder, source, param, null);
  +        this.setSerializer (role, source, param, null);
       }
   
  -    public void setSerializer (ComponentHolder holder, String source, 
Parameters param, String mimeType)
  +    public void setSerializer (String role, String source, Parameters param, 
String mimeType)
       throws Exception {
           if (this.serializer != null) {
  -            throw new ProcessingException ("Serializer " + holder.getName() 
+ " already set. You can only select one Serializer");
  +            throw new ProcessingException ("Serializer already set. You can 
only select one Serializer (" + role + ")");
           }
  -        this.serializer = holder;
  +        this.serializer = 
(ComponentHolder)sitemapComponentManager.getComponent(role);
           this.serializerSource = source;
           this.serializerParam = param;
           this.serializerMimeType = mimeType;
       }
   
  -    public void addTransformer (ComponentHolder holder, String source, 
Parameters param)
  +    public void addTransformer (String role, String source, Parameters param)
       throws Exception {
  -        this.transformers.add (holder);
  +        this.transformers.add 
((ComponentHolder)sitemapComponentManager.getComponent(role));
           this.transformerSources.add (source);
           this.transformerParams.add (param);
       }
  @@ -118,23 +127,28 @@
   
           if (generator == null) {
               if (reader != null) {
  -                Reader myReader = (Reader) reader.get();
  +                Reader myReader = null;
                   try {
  +                    myReader = (Reader) reader.get();
                       myReader.setup ((EntityResolver) environment, 
environment.getObjectModel(), readerSource, readerParam);
                       mime_type = myReader.getMimeType();
                       if (mime_type != null) {
  +                        // we have a mimeType freom the component itself
                           environment.setContentType (mime_type);
                       } else if (readerMimeType != null) {
  +                        // there was a mimeType specified in the sitemap 
pipeline
                           environment.setContentType (readerMimeType);
                       } else {
  -                        /* (GP)FIXME: Reaching here we havn't set a 
mime-type. This
  -                         * case should be prevented by the sitemap 
generating stylesheet */
  +                        // use the mimeType specified in the sitemap 
component declaration
  +                        environment.setContentType (reader.getMimeType());
                       }
                       myReader.setOutputStream (environment.getOutputStream());
                       myReader.generate();
                   } finally {
  -                    reader.put(myReader);
  +                    if (myReader != null)
  +                        reader.put(myReader);
                   }
  +
               } else {
                   throw new ProcessingException ("Generator or Reader not 
specified");
               }
  @@ -144,39 +158,58 @@
               }
   
               Generator myGenerator = (Generator) generator.get();
  -            int i = transformers.size();
  -            Transformer myTransformer[] = new Transformer[i];
  -            for (int j=0; j < i; j++) {
  -                myTransformer[j] = (Transformer)((ComponentHolder) 
transformers.elementAt (j)).get();
  -            }
  -            Serializer mySerializer = (Serializer) serializer.get();
  -
               try {
  -                myGenerator.setup ((EntityResolver) environment, 
environment.getObjectModel(), generatorSource, generatorParam);
  -                Transformer transformer = null;
  -                XMLProducer producer = myGenerator;
  -                for (int j=0; j < i; j++) {
  -                    myTransformer[j].setup ((EntityResolver) environment, 
environment.getObjectModel(),
  -                                   (String)transformerSources.elementAt (j),
  -                                   (Parameters)transformerParams.elementAt 
(j));
  -                    producer.setConsumer (myTransformer[j]);
  -                    producer = myTransformer[j];
  +                if (generatorException != null) {
  +                    ((ErrorNotifier)myGenerator).setException 
(generatorException);
                   }
  +                int i = transformers.size();
  +                Transformer myTransformer[] = new Transformer[i];
  +                int num_transformers = 0;
   
  -                mime_type = mySerializer.getMimeType();
  -                if (mime_type != null)
  -                        environment.setContentType (mime_type);
  -                else if (serializerMimeType != null)
  -                        environment.setContentType (serializerMimeType);
  -                mySerializer.setOutputStream (environment.getOutputStream());
  -                producer.setConsumer (mySerializer);
  -                myGenerator.generate();
  -            } finally {
  -                serializer.put(mySerializer);
  -                for (int j=0; j < i; j++) {
  -                    ((ComponentHolder) transformers.elementAt 
(j)).put(myTransformer[j]);
  +                try {
  +                    for (num_transformers=0; num_transformers < i; 
num_transformers++) {
  +                        myTransformer[num_transformers] = 
(Transformer)((ComponentHolder) transformers.elementAt 
(num_transformers)).get();
  +                    }
  +
  +                    Serializer mySerializer = (Serializer) serializer.get();
  +                    try {
  +
  +                        myGenerator.setup ((EntityResolver) environment, 
environment.getObjectModel(), generatorSource, generatorParam);
  +                        Transformer transformer = null;
  +                        XMLProducer producer = myGenerator;
  +                        for (int j=0; j < i; j++) {
  +                            myTransformer[j].setup ((EntityResolver) 
environment, environment.getObjectModel(),
  +                                    (String)transformerSources.elementAt (j),
  +                                    (Parameters)transformerParams.elementAt 
(j));
  +                            producer.setConsumer (myTransformer[j]);
  +                            producer = myTransformer[j];
  +                        }
  +
  +                        mime_type = mySerializer.getMimeType();
  +                        if (mime_type != null) {
  +                            // we have a mimeType freom the component itself
  +                            environment.setContentType (mime_type);
  +                        } else if (serializerMimeType != null) {
  +                            // there was a mimeType specified in the sitemap 
pipeline
  +                            environment.setContentType (serializerMimeType);
  +                        } else {
  +                            // use the mimeType specified in the sitemap 
component declaration
  +                            environment.setContentType 
(serializer.getMimeType());
  +                        }
  +                        mySerializer.setOutputStream 
(environment.getOutputStream());
  +                        producer.setConsumer (mySerializer);
  +                        myGenerator.generate();
  +                    } finally {
  +                        serializer.put(mySerializer);
  +                    }
  +                } finally {
  +                    for (int j=0; j < num_transformers; j++) {
  +                        ((ComponentHolder) transformers.elementAt 
(j)).put(myTransformer[j]);
  +                    }
                   }
  -                generator.put(myGenerator);
  +            } finally {
  +                if (myGenerator != null)
  +                    generator.put(myGenerator);
               }
           }
           return true;
  
  
  
  1.1.4.10  +6 -4      
xml-cocoon/src/org/apache/cocoon/sitemap/Attic/Sitemap.java
  
  Index: Sitemap.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/sitemap/Attic/Sitemap.java,v
  retrieving revision 1.1.4.9
  retrieving revision 1.1.4.10
  diff -u -r1.1.4.9 -r1.1.4.10
  --- Sitemap.java      2000/07/27 21:49:05     1.1.4.9
  +++ Sitemap.java      2000/10/13 04:14:43     1.1.4.10
  @@ -10,15 +10,17 @@
   import org.apache.avalon.Composer; 
   import org.apache.avalon.Modifiable; 
   import org.apache.avalon.Configurable; 
  -import org.apache.avalon.Configuration; 
  +import org.apache.avalon.Configuration;
  +import org.apache.avalon.ComponentManager;
  +
   import org.apache.cocoon.Processor;
   
   /**
    * Base interface for generated <code>Sitemap</code> classes
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
  - * @version CVS $Revision: 1.1.4.9 $ $Date: 2000/07/27 21:49:05 $
  + * @version CVS $Revision: 1.1.4.10 $ $Date: 2000/10/13 04:14:43 $
    */
  -public interface Sitemap
  -         extends Composer, Configurable, Processor, Modifiable { 
  +public interface Sitemap extends Composer, Configurable, Processor, 
Modifiable {
  +    public void setParentSitemapComponentManager (ComponentManager 
sitemapComponentManager);
   } 
  
  
  
  1.1.2.2   +5 -16     
xml-cocoon/src/org/apache/cocoon/sitemap/Attic/ThreadSafeComponentHolder.java
  
  Index: ThreadSafeComponentHolder.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/sitemap/Attic/ThreadSafeComponentHolder.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- ThreadSafeComponentHolder.java    2000/10/09 09:30:12     1.1.2.1
  +++ ThreadSafeComponentHolder.java    2000/10/13 04:14:43     1.1.2.2
  @@ -20,13 +20,10 @@
    * This class holds a sitemap component which is specially marked as beeing 
thread safe
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
  - * @version CVS $Revision: 1.1.2.1 $ $Date: 2000/10/09 09:30:12 $
  + * @version CVS $Revision: 1.1.2.2 $ $Date: 2000/10/13 04:14:43 $
    */
  -public class ThreadSafeComponentHolder implements ComponentHolder {
  +public class ThreadSafeComponentHolder extends DefaultComponentHolder {
   
  -    private String className;
  -    private Configuration configuration;
  -    private ComponentManager manager;
       private Component comp;
   
       /** Creates a ThreadSafeComponentHolder
  @@ -34,18 +31,10 @@
        * @param configuration The </CODE>Configuration</CODE> for the component
        * @param manager A <CODE>ComponentManager</CODE> for the component
        */
  -    public ThreadSafeComponentHolder(String className, Configuration 
configuration, ComponentManager manager)
  +    public ThreadSafeComponentHolder(String className, Configuration 
configuration, ComponentManager manager, String mime_type)
       throws Exception {
  -        this.className = className;
  -        this.configuration = configuration;
  -        this.manager = manager;
  -        this.comp = (Component) ClassUtils.newInstance (this.className);
  -        if (this.comp instanceof Composer) {
  -            ((Composer) this.comp).setComponentManager (this.manager);
  -        }
  -        if (this.comp instanceof Configurable) {
  -            ((Configurable) this.comp).setConfiguration (this.configuration);
  -        }
  +        super(className, configuration, manager, mime_type);
  +        this.comp = super.get();
       }
   
       /** Returns the instance of the <CODE>Component</CODE>
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.6   +1 -1      xml-cocoon/webapp/Attic/cocoon.xconf
  
  Index: cocoon.xconf
  ===================================================================
  RCS file: /home/cvs/xml-cocoon/webapp/Attic/cocoon.xconf,v
  retrieving revision 1.1.2.5
  retrieving revision 1.1.2.6
  diff -u -r1.1.2.5 -r1.1.2.6
  --- cocoon.xconf      2000/10/08 21:11:34     1.1.2.5
  +++ cocoon.xconf      2000/10/13 04:14:45     1.1.2.6
  @@ -56,7 +56,7 @@
     <component role="jpegencoder" 
class="org.apache.cocoon.components.image.JPEGEncoder"/>
   
     <!-- these components is used as a PoolController for the sitemap 
component pools  -->
  -  <component role="sitemap-component-pool-controller" 
class="org.apache.cocoon.sitemap.ComponentPoolController"/>
  +  <component role="sitemap-component-pool-controller" 
class="org.apache.cocoon.util.ComponentPoolController"/>
   
     <sitemap file="sitemap.xmap"/> 
   </cocoon>
  
  
  

Reply via email to