bloritsch    01/06/06 10:13:32

  Modified:    src/org/apache/cocoon Tag: cocoon_20_branch Cocoon.java
                        cocoon.roles
               src/org/apache/cocoon/components/language/generator Tag:
                        cocoon_20_branch GeneratorSelector.java
                        ProgramGeneratorImpl.java
               src/org/apache/cocoon/components/language/markup/sitemap/java
                        Tag: cocoon_20_branch sitemap.xsl
               src/org/apache/cocoon/sitemap Tag: cocoon_20_branch
                        AbstractSitemap.java Handler.java Manager.java
                        SitemapComponentSelector.java
               src/org/apache/cocoon/util Tag: cocoon_20_branch
                        IOUtils.java
  Added:       lib      Tag: cocoon_20_branch avalon-excalibur-4.0b3.jar
                        avalon-framework-4.0b3.jar logkit-1.0b2.jar
               src/org/apache/cocoon/sitemap Tag: cocoon_20_branch
                        sitemap.roles
  Removed:     lib      Tag: cocoon_20_branch avalon-excalibur-4.0b1.jar
                        avalon-framework-4.0b1.jar logkit-1.0b1.jar
  Log:
  Upgrade to Avalon-4.0beta3  (beta 2 had a serious bug that
  surfaced when I tried to do the port for Cocoon 2).
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.1   +303 -0    xml-cocoon2/lib/Attic/avalon-excalibur-4.0b3.jar
  
        <<Binary file>>
  
  
  1.1.2.1   +118 -0    xml-cocoon2/lib/Attic/avalon-framework-4.0b3.jar
  
        <<Binary file>>
  
  
  1.1.2.1   +102 -0    xml-cocoon2/lib/Attic/logkit-1.0b2.jar
  
        <<Binary file>>
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.9.2.1   +69 -33    xml-cocoon2/src/org/apache/cocoon/Cocoon.java
  
  Index: Cocoon.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/Cocoon.java,v
  retrieving revision 1.9
  retrieving revision 1.9.2.1
  diff -u -r1.9 -r1.9.2.1
  --- Cocoon.java       2001/06/05 08:05:13     1.9
  +++ Cocoon.java       2001/06/06 17:12:58     1.9.2.1
  @@ -42,9 +42,10 @@
   import org.apache.cocoon.environment.Source;
   import org.apache.cocoon.serialization.Serializer;
   import org.apache.cocoon.sitemap.Manager;
  +import org.apache.cocoon.sitemap.AbstractSitemap;
   import org.apache.cocoon.util.ClassUtils;
   import org.apache.cocoon.util.NetUtils;
  -import org.apache.avalon.excalibur.component.DefaultComponentManager;
  +import org.apache.avalon.excalibur.component.ExcaliburComponentManager;
   import org.apache.avalon.excalibur.component.DefaultRoleManager;
   import org.xml.sax.InputSource;
   import org.xml.sax.SAXException;
  @@ -54,7 +55,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Pierpaolo Fumagalli</a> (Apache 
Software Foundation, Exoffice Technologies)
    * @author <a href="mailto:[EMAIL PROTECTED]";>Stefano Mazzocchi</a>
  - * @version CVS $Revision: 1.9 $ $Date: 2001/06/05 08:05:13 $
  + * @version CVS $Revision: 1.9.2.1 $ $Date: 2001/06/06 17:12:58 $
    */
   public class Cocoon extends AbstractLoggable implements ThreadSafe, Component, 
Initializable, Disposable, Modifiable, Processor, Contextualizable {
       /** The application context */
  @@ -85,7 +86,7 @@
       private boolean reloadSitemapAsynchron = true;
   
       /** The component manager. */
  -    public DefaultComponentManager componentManager;
  +    private ExcaliburComponentManager componentManager;
   
       /** flag for disposed or not */
       private boolean disposed = false;
  @@ -111,7 +112,7 @@
       }
   
       public void initialize() throws Exception {
  -        this.componentManager = new DefaultComponentManager();
  +        this.componentManager = new 
ExcaliburComponentManager((ClassLoader)this.context.get(Constants.CONTEXT_CLASS_LOADER));
           this.componentManager.setLogger(getLogger());
           this.componentManager.contextualize(this.context);
   
  @@ -120,9 +121,12 @@
           // If one need to use a different parser, set the given system property
           String parser = System.getProperty(Constants.PARSER_PROPERTY, 
Constants.DEFAULT_PARSER);
           getLogger().debug("Using parser: " + parser);
  +        ExcaliburComponentManager startupManager = new 
ExcaliburComponentManager((ClassLoader)this.context.get(Constants.CONTEXT_CLASS_LOADER));
  +        startupManager.setLogger(getLogger());
  +        startupManager.contextualize(this.context);
   
           try {
  -            this.componentManager.addComponent(Roles.PARSER, 
ClassUtils.loadClass(parser), null);
  +            startupManager.addComponent(Roles.PARSER, ClassUtils.loadClass(parser), 
null);
           } catch (Exception e) {
               getLogger().error("Could not load parser, Cocoon object not created.", 
e);
               throw new ConfigurationException("Could not load parser " + parser, e);
  @@ -141,17 +145,44 @@
   
           getLogger().debug("Classpath = " + classpath);
           getLogger().debug("Work directory = " + workDir.getCanonicalPath());
  -        this.configure();
  +        startupManager.initialize();
  +
  +        Configuration conf = this.configure(startupManager);
  +        startupManager.dispose();
  +
  +        this.componentManager.initialize();
  +
  +        getLogger().debug("Setting up the sitemap.");
  +        // Create the sitemap
  +        Configuration sconf = conf.getChild("sitemap");
  +        this.sitemapManager = new Manager();
  +        this.sitemapManager.setLogger(getLogger());
  +        this.sitemapManager.contextualize(this.context);
  +        this.sitemapManager.compose(this.componentManager);
  +        this.sitemapManager.configure(conf);
  +        this.sitemapFileName = sconf.getAttribute("file");
  +        if (this.sitemapFileName == null) {
  +            getLogger().error("No sitemap file name");
  +            throw new ConfigurationException("No sitemap file name\n" + 
conf.toString());
  +        }
  +        String value = sconf.getAttribute("check-reload", "yes");
  +        this.checkSitemapReload = !(value != null && value.equalsIgnoreCase("no") 
== true);
  +        value = sconf.getAttribute("reload-method", "asynchron");
  +        this.reloadSitemapAsynchron = !(value != null && 
value.equalsIgnoreCase("synchron") == true);
  +        getLogger().debug("Sitemap location = " + this.sitemapFileName);
  +        getLogger().debug("Checking sitemap reload = " + this.checkSitemapReload);
  +        getLogger().debug("Reloading sitemap asynchron = " + 
this.reloadSitemapAsynchron);
       }
   
       /** Configure this <code>Cocoon</code> instance. */
  -    public void configure() throws ConfigurationException, ContextException {
  +    public Configuration configure(ExcaliburComponentManager startupManager) throws 
ConfigurationException, ContextException {
           Parser p = null;
           Configuration roleConfig = null;
  +        Configuration sitemapConfig = null;
   
           try {
               this.configurationFile.refresh();
  -            p = (Parser)this.componentManager.lookup(Roles.PARSER);
  +            p = (Parser)startupManager.lookup(Roles.PARSER);
               SAXConfigurationHandler b = new SAXConfigurationHandler();
               InputStream inputStream = 
ClassUtils.getResource("org/apache/cocoon/cocoon.roles").openStream();
               InputSource is = new InputSource(inputStream);
  @@ -163,7 +194,7 @@
               getLogger().error("Could not configure Cocoon environment", e);
               throw new ConfigurationException("Error trying to load configurations", 
e);
           } finally {
  -            if (p != null) this.componentManager.release(p);
  +            if (p != null) startupManager.release(p);
           }
   
           DefaultRoleManager drm = new DefaultRoleManager();
  @@ -172,8 +203,31 @@
           roleConfig = null;
   
           try {
  -            p = (Parser)this.componentManager.lookup(Roles.PARSER);
  +            this.configurationFile.refresh();
  +            p = (Parser)startupManager.lookup(Roles.PARSER);
               SAXConfigurationHandler b = new SAXConfigurationHandler();
  +            InputStream inputStream = 
ClassUtils.getResource("org/apache/cocoon/sitemap/sitemap.roles").openStream();
  +            InputSource is = new InputSource(inputStream);
  +            is.setSystemId(this.configurationFile.getSystemId());
  +            p.setContentHandler(b);
  +            p.parse(is);
  +            sitemapConfig = b.getConfiguration();
  +        } catch (Exception e) {
  +            getLogger().error("Could not configure Cocoon environment", e);
  +            throw new ConfigurationException("Error trying to load configurations", 
e);
  +        } finally {
  +            if (p != null) startupManager.release(p);
  +        }
  +
  +        DefaultRoleManager sitemapRoleManager = new DefaultRoleManager();
  +        sitemapRoleManager.setLogger(getLogger());
  +        sitemapRoleManager.configure(sitemapConfig);
  +
  +        AbstractSitemap.setRoleManager(sitemapRoleManager);
  +
  +        try {
  +            p = (Parser)startupManager.lookup(Roles.PARSER);
  +            SAXConfigurationHandler b = new SAXConfigurationHandler();
               InputSource is = this.configurationFile.getInputSource();
               p.setContentHandler(b);
               p.parse(is);
  @@ -182,7 +236,7 @@
               getLogger().error("Could not configure Cocoon environment", e);
               throw new ConfigurationException("Error trying to load 
configurations",e);
           } finally {
  -            if (p != null) this.componentManager.release(p);
  +            if (p != null) startupManager.release(p);
           }
   
           Configuration conf = this.configuration;
  @@ -199,7 +253,7 @@
           String userRoles = conf.getAttribute("user-roles", "");
           if ("".equals(userRoles) == false) {
               try {
  -                p = (Parser)this.componentManager.lookup(Roles.PARSER);
  +                p = (Parser)startupManager.lookup(Roles.PARSER);
                   SAXConfigurationHandler b = new SAXConfigurationHandler();
                   org.apache.cocoon.environment.Context context =
                       (org.apache.cocoon.environment.Context) 
this.context.get(Constants.CONTEXT_ENVIRONMENT_CONTEXT);
  @@ -213,7 +267,7 @@
                   getLogger().error("Could not configure Cocoon environment", e);
                   throw new ConfigurationException("Error trying to load 
configurations", e);
               } finally {
  -                if (p != null) this.componentManager.release(p);
  +                if (p != null) startupManager.release(p);
               }
   
               DefaultRoleManager urm = new DefaultRoleManager(drm);
  @@ -227,26 +281,8 @@
   
           getLogger().debug("Setting up components...");
           this.componentManager.configure(conf);
  -        getLogger().debug("Setting up the sitemap.");
  -        // Create the sitemap
  -        Configuration sconf = conf.getChild("sitemap");
  -        this.sitemapManager = new Manager();
  -        this.sitemapManager.setLogger(getLogger());
  -        this.sitemapManager.contextualize(this.context);
  -        this.sitemapManager.compose(this.componentManager);
  -        this.sitemapManager.configure(conf);
  -        this.sitemapFileName = sconf.getAttribute("file");
  -        if (this.sitemapFileName == null) {
  -            getLogger().error("No sitemap file name");
  -            throw new ConfigurationException("No sitemap file name\n" + 
conf.toString());
  -        }
  -        String value = sconf.getAttribute("check-reload", "yes");
  -        this.checkSitemapReload = !(value != null && value.equalsIgnoreCase("no") 
== true);
  -        value = sconf.getAttribute("reload-method", "asynchron");
  -        this.reloadSitemapAsynchron = !(value != null && 
value.equalsIgnoreCase("synchron") == true);
  -        getLogger().debug("Sitemap location = " + this.sitemapFileName);
  -        getLogger().debug("Checking sitemap reload = " + this.checkSitemapReload);
  -        getLogger().debug("Reloading sitemap asynchron = " + 
this.reloadSitemapAsynchron);
  +
  +        return conf;
       }
   
       /** Queries the class to estimate its ergodic period termination. */
  
  
  
  1.6.2.1   +6 -46     xml-cocoon2/src/org/apache/cocoon/cocoon.roles
  
  Index: cocoon.roles
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/cocoon.roles,v
  retrieving revision 1.6
  retrieving revision 1.6.2.1
  diff -u -r1.6 -r1.6.2.1
  --- cocoon.roles      2001/05/28 12:01:14     1.6
  +++ cocoon.roles      2001/06/06 17:12:59     1.6.2.1
  @@ -26,11 +26,11 @@
   
    <role name="org.apache.cocoon.components.language.markup.MarkupLanguageSelector"
          shorthand="markup-languages"
  -       
default-class="org.apache.avalon.excalibur.component.DefaultComponentSelector"/>
  +       
default-class="org.apache.avalon.excalibur.component.ExcaliburComponentSelector"/>
   
    <role 
name="org.apache.cocoon.components.language.programming.ProgrammingLanguageSelector"
          shorthand="programming-languages"
  -       
default-class="org.apache.avalon.excalibur.component.DefaultComponentSelector"/>
  +       
default-class="org.apache.avalon.excalibur.component.ExcaliburComponentSelector"/>
   
    <role name="org.apache.cocoon.components.language.generator.ProgramGenerator"
          shorthand="program-generator"
  @@ -40,10 +40,6 @@
          shorthand="classloader"
          
default-class="org.apache.cocoon.components.classloader.ClassLoaderManagerImpl"/>
   
  - <role name="org.apache.avalon.excalibur.pool.PoolController"
  -       shorthand="pool-controller"
  -       
default-class="org.apache.avalon.excalibur.component.DefaultComponentPoolController"/>
  -
    <role name="org.apache.cocoon.components.saxconnector.SAXConnector"
          shorthand="sax-connector"
          default-class="org.apache.cocoon.components.saxconnector.NullSAXConnector"/>
  @@ -53,7 +49,7 @@
   
    <role name="org.apache.avalon.excalibur.datasource.DataSourceComponentSelector"
          shorthand="datasources"
  -       
default-class="org.apache.avalon.excalibur.component.DefaultComponentSelector">
  +       
default-class="org.apache.avalon.excalibur.component.ExcaliburComponentSelector">
       <hint shorthand="jdbc" 
class="org.apache.avalon.excalibur.datasource.JdbcDataSource"/>
       <hint shorthand="j2ee" class="org.apache.excalibur.datasource.J2eeDataSource"/>
   </role>
  @@ -61,44 +57,8 @@
    <role name="org.apache.cocoon.components.url.URLFactory"
          shorthand="url-factory"
          default-class="org.apache.cocoon.components.url.URLFactoryImpl"/>
  -
  - <role name="org.apache.cocoon.components.pipeline.StreamPipeline"
  -       shorthand="stream-pipeline"
  -       
default-class="org.apache.cocoon.components.pipeline.NonCachingStreamPipeline"/>
  -
  - <role name="org.apache.cocoon.components.pipeline.EventPipeline"
  -       shorthand="event-pipeline"
  -       
default-class="org.apache.cocoon.components.pipeline.NonCachingEventPipeline"/>
  -
  - <role name="org.apache.cocoon.acting.ActionSelector"
  -       shorthand="action"
  -       
default-class="org.apache.avalon.excalibur.component.DefaultComponentSelector"/>
  -
  - <role name="org.apache.cocoon.selection.SelectorSelector"
  -       shorthand="selector"
  -       
default-class="org.apache.avalon.excalibur.component.DefaultComponentSelector"/>
  -
  - <role name="org.apache.cocoon.matching.MatcherSelector"
  -       shorthand="matcher"
  -       
default-class="org.apache.avalon.excalibur.component.DefaultComponentSelector"/>
  -
  - <role name="org.apache.cocoon.generation.GeneratorSelector"
  -       shorthand="generator"
  -       
default-class="org.apache.avalon.excalibur.component.DefaultComponentSelector"/>
  -
  - <role name="org.apache.cocoon.transformation.TransformerSelector"
  -       shorthand="transformer"
  -       
default-class="org.apache.avalon.excalibur.component.DefaultComponentSelector"/>
  -
  - <role name="org.apache.cocoon.serialization.SerializerSelector"
  -       shorthand="serializer"
  -       default-class="org.apache.cocoon.sitemap.SitemapComponentSelector"/>
  -
  - <role name="org.apache.cocoon.reading.ReaderSelector"
  -       shorthand="reader"
  -       default-class="org.apache.cocoon.sitemap.SitemapComponentSelector"/>
   
  -<role name="org.apache.cocoon.components.sax.XMLSerializer"
  + <role name="org.apache.cocoon.components.sax.XMLSerializer"
          shorthand="xml-serializer"
          default-class="org.apache.cocoon.components.sax.XMLByteStreamCompiler"/>
   
  @@ -106,11 +66,11 @@
          shorthand="xml-deserializer"
          default-class="org.apache.cocoon.components.sax.XMLByteStreamInterpreter"/>
   
  -<role name="org.apache.cocoon.caching.EventCache"
  + <role name="org.apache.cocoon.caching.EventCache"
          shorthand="event-cache"
          default-class="org.apache.cocoon.caching.EventMemoryCache"/>
   
  -<role name="org.apache.cocoon.caching.StreamCache"
  + <role name="org.apache.cocoon.caching.StreamCache"
          shorthand="stream-cache"
          default-class="org.apache.cocoon.caching.StreamMemoryCache"/>
   
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.1.1.2.1 +63 -6     
xml-cocoon2/src/org/apache/cocoon/components/language/generator/GeneratorSelector.java
  
  Index: GeneratorSelector.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/org/apache/cocoon/components/language/generator/GeneratorSelector.java,v
  retrieving revision 1.1.1.1
  retrieving revision 1.1.1.1.2.1
  diff -u -r1.1.1.1 -r1.1.1.1.2.1
  --- GeneratorSelector.java    2001/05/09 20:49:49     1.1.1.1
  +++ GeneratorSelector.java    2001/06/06 17:13:04     1.1.1.1.2.1
  @@ -12,26 +12,48 @@
   import org.apache.avalon.framework.component.Component;
   import org.apache.avalon.framework.component.ComponentException;
   import org.apache.avalon.framework.component.ComponentManager;
  +import org.apache.avalon.framework.context.Context;
   import org.apache.avalon.framework.configuration.DefaultConfiguration;
   import org.apache.cocoon.Constants;
   import org.apache.cocoon.Roles;
   import org.apache.cocoon.components.classloader.ClassLoaderManager;
   import org.apache.cocoon.util.ClassUtils;
  -import org.apache.avalon.excalibur.component.DefaultComponentSelector;
  +import org.apache.avalon.excalibur.component.ExcaliburComponentSelector;
  +import org.apache.avalon.excalibur.component.ComponentHandler;
  +import org.apache.avalon.excalibur.component.RoleManager;
   
  +import java.util.Map;
  +import java.util.HashMap;
  +
   /**
    * This interface is the common base of all Compiled Components.  This
    * includes Sitemaps and XSP Pages
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Berin Loritsch</a>
  - * @version CVS $Revision: 1.1.1.1 $ $Date: 2001/05/09 20:49:49 $
  + * @version CVS $Revision: 1.1.1.1.2.1 $ $Date: 2001/06/06 17:13:04 $
    */
  -public class GeneratorSelector extends DefaultComponentSelector implements 
Disposable {
  +public class GeneratorSelector extends ExcaliburComponentSelector implements 
Disposable {
       private ClassLoaderManager classManager;
   
       /** The component manager */
       protected ComponentManager manager = null;
   
  +    protected Context context = null;
  +
  +    protected RoleManager roles = null;
  +
  +    protected Map componentHandlers = new HashMap();
  +
  +    public void contextualize(Context context) {
  +        super.contextualize(context);
  +        this.context = context;
  +    }
  +
  +    public void setRoleManager(RoleManager roleMgr) {
  +        super.setRoleManager(roleMgr);
  +        this.roles = roleMgr;
  +    }
  +
       public void compose (ComponentManager manager) throws ComponentException {
           super.compose(manager);
           this.manager = manager;
  @@ -54,8 +76,23 @@
               return super.select(hint);
           } catch (Exception e) {
               // if it isn't loaded, it may already be compiled...
  -            this.addGenerator(hint);
  -            return super.select(hint);
  +            try {
  +                ComponentHandler handler = (ComponentHandler) 
this.componentHandlers.get(hint);
  +
  +                if (handler == null) {
  +                    this.addGenerator(hint);
  +                    handler = (ComponentHandler) this.componentHandlers.get(hint);
  +
  +                    if (handler == null) {
  +                        throw new ComponentException("Could not find component for 
hint: " + hint);
  +                    }
  +                }
  +
  +                return (Component) handler.get();
  +            } catch (Exception ce) {
  +                getLogger().debug("Could not access component for hint: " + hint, 
ce);
  +                throw new ComponentException("Could not access component for hint: 
" + hint, ce);
  +            }
           }
       }
   
  @@ -72,7 +109,27 @@
       }
   
       public void addGenerator(Object hint, Class generator) throws 
ComponentException {
  -        super.addComponent(hint, generator, new DefaultConfiguration("", 
"GeneratorSelector"));
  +        try
  +        {
  +            final ComponentHandler handler =
  +                ComponentHandler.getComponentHandler( generator,
  +                                                      new DefaultConfiguration("", 
"GeneratorSelector"),
  +                                                      this.manager,
  +                                                      this.context,
  +                                                      this.roles );
  +
  +            handler.setLogger( getLogger() );
  +            handler.initialize();
  +            this.componentHandlers.put( hint, handler );
  +            getLogger().debug( "Adding " + generator.getName() + " for " + 
hint.toString() );
  +        }
  +        catch( final Exception e )
  +        {
  +            final String message =
  +                "Could not set up Component for hint: " + hint;
  +            getLogger().error( message, e);
  +            throw new ComponentException( message, e );
  +        }
       }
   
       public void dispose() {
  
  
  
  1.5.2.1   +8 -3      
xml-cocoon2/src/org/apache/cocoon/components/language/generator/ProgramGeneratorImpl.java
  
  Index: ProgramGeneratorImpl.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/org/apache/cocoon/components/language/generator/ProgramGeneratorImpl.java,v
  retrieving revision 1.5
  retrieving revision 1.5.2.1
  diff -u -r1.5 -r1.5.2.1
  --- ProgramGeneratorImpl.java 2001/05/31 17:37:50     1.5
  +++ ProgramGeneratorImpl.java 2001/06/06 17:13:05     1.5.2.1
  @@ -48,7 +48,7 @@
   /**
    * The default implementation of <code>ProgramGenerator</code>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Ricardo Rocha</a>
  - * @version CVS $Revision: 1.5 $ $Date: 2001/05/31 17:37:50 $
  + * @version CVS $Revision: 1.5.2.1 $ $Date: 2001/06/06 17:13:05 $
    */
   public class ProgramGeneratorImpl extends AbstractLoggable
       implements ProgramGenerator, Contextualizable, Composable, Configurable, 
ThreadSafe, Disposable {
  @@ -160,8 +160,13 @@
                   getLogger().debug("Language Exception", le);
                   throw new ProcessingException("Language Exception", le);
               } finally {
  -                this.markupSelector.release(markupLanguage);
  -                this.languageSelector.release(programmingLanguage);
  +                if (this.markupSelector != null) {
  +                    this.markupSelector.release(markupLanguage);
  +                }
  +
  +                if (this.languageSelector != null) {
  +                    this.languageSelector.release(programmingLanguage);
  +                }
               }
   
               try {
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.11.2.1  +9 -8      
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
  retrieving revision 1.11.2.1
  diff -u -r1.11 -r1.11.2.1
  --- sitemap.xsl       2001/06/05 21:36:23     1.11
  +++ sitemap.xsl       2001/06/06 17:13:11     1.11.2.1
  @@ -100,7 +100,7 @@
        *
        * @author &lt;a href="mailto:[EMAIL PROTECTED]"&gt;Giacomo Pati&lt;/a&gt;
        * @author &lt;a href="mailto:[EMAIL PROTECTED]"&gt;Berin Loritsch&lt;/a&gt;
  -     * @version CVS $Id: sitemap.xsl,v 1.11 2001/06/05 21:36:23 dims Exp $
  +     * @version CVS $Id: sitemap.xsl,v 1.11.2.1 2001/06/06 17:13:11 bloritsch 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"/>";
  @@ -191,6 +191,7 @@
             configurer.configActions();
             configurer = null;
   
  +          this.manager.initialize();
           /* catch any exception thrown by a component during configuration */
           } catch (Exception e) {
             getLogger().warn(e.getMessage(), e);
  @@ -609,10 +610,10 @@
           <xsl:with-param name="param">param</xsl:with-param>
       </xsl:apply-templates>
   
  -    <!-- modification end -->                
  -             
  -     <!-- Modified 20010510 L.Sutic Changed to pass sitemap parameters. -->
  +    <!-- modification end -->
   
  +    <!-- Modified 20010510 L.Sutic Changed to pass sitemap parameters. -->
  +
       <!-- break on error when old parameter syntax exists -->
       <xsl:if test="parameter">
         <xsl:call-template name="error">
  @@ -620,7 +621,7 @@
         </xsl:call-template>
       </xsl:if>
   
  -     <!-- test if we have to define parameters for this action -->
  +    <!-- test if we have to define parameters for this action -->
       <xsl:if test="count(map:parameter)>0">
         param = new Parameters ();
       </xsl:if>
  @@ -641,10 +642,10 @@
       <xsl:apply-templates select="map:parameter">
           <xsl:with-param name="param">param</xsl:with-param>
       </xsl:apply-templates>
  +
  +    <!-- modification end -->
  +
   
  -     <!-- modification end -->
  -             
  -             
       <!-- loop through all the when cases -->
       <xsl:for-each select="./map:when">
   
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.4.2.1   +65 -17    xml-cocoon2/src/org/apache/cocoon/sitemap/AbstractSitemap.java
  
  Index: AbstractSitemap.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/sitemap/AbstractSitemap.java,v
  retrieving revision 1.4
  retrieving revision 1.4.2.1
  diff -u -r1.4 -r1.4.2.1
  --- AbstractSitemap.java      2001/05/31 17:38:49     1.4
  +++ AbstractSitemap.java      2001/06/06 17:13:15     1.4.2.1
  @@ -15,6 +15,7 @@
   import java.util.List;
   import java.util.Map;
   import org.apache.avalon.framework.activity.Disposable;
  +import org.apache.avalon.framework.activity.Initializable;
   import org.apache.avalon.framework.component.Component;
   import org.apache.avalon.framework.component.ComponentException;
   import org.apache.avalon.framework.component.ComponentException;
  @@ -22,6 +23,7 @@
   import org.apache.avalon.framework.component.Composable;
   import org.apache.avalon.framework.configuration.Configurable;
   import org.apache.avalon.framework.configuration.Configuration;
  +import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder;
   import org.apache.avalon.framework.context.Context;
   import org.apache.avalon.framework.context.ContextException;
   import org.apache.avalon.framework.context.Contextualizable;
  @@ -37,22 +39,28 @@
   import org.apache.cocoon.environment.Environment;
   import org.apache.cocoon.environment.Request;
   import org.apache.cocoon.util.ClassUtils;
  -import org.apache.avalon.excalibur.component.DefaultComponentSelector;
  +import org.apache.avalon.excalibur.component.ExcaliburComponentManager;
  +import org.apache.avalon.excalibur.component.ExcaliburComponentSelector;
  +import org.apache.avalon.excalibur.component.RoleManager;
  +import org.apache.avalon.excalibur.component.DefaultRoleManager;
  +import org.apache.log.Hierarchy;
   import org.xml.sax.SAXException;
   
   /**
    * Base class for generated <code>Sitemap</code> classes
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Giacomo Pati</a>
  - * @version CVS $Revision: 1.4 $ $Date: 2001/05/31 17:38:49 $
  + * @version CVS $Revision: 1.4.2.1 $ $Date: 2001/06/06 17:13:15 $
    */
   public abstract class AbstractSitemap extends AbstractLoggable implements Sitemap, 
Disposable, ThreadSafe {
       private Context context;
   
       private static final int BYTE_ARRAY_SIZE = 1024;
   
  +    private static RoleManager roleManager;
  +
       /** The component manager instance */
  -    protected ComponentManager manager;
  +    protected ExcaliburComponentManager manager;
   
       /** The sitemap manager instance */
       protected Manager sitemapManager;
  @@ -63,34 +71,74 @@
       /** The creation date */
       protected static long dateCreated = -1L;
   
  -    protected DefaultComponentSelector generators;
  -    protected DefaultComponentSelector transformers;
  +    protected ExcaliburComponentSelector generators;
  +    protected ExcaliburComponentSelector transformers;
       protected SitemapComponentSelector serializers;
       protected SitemapComponentSelector readers;
  -    protected DefaultComponentSelector actions;
  -    protected DefaultComponentSelector matchers;
  -    protected DefaultComponentSelector selectors;
  +    protected ExcaliburComponentSelector actions;
  +    protected ExcaliburComponentSelector matchers;
  +    protected ExcaliburComponentSelector selectors;
   
       /**
  +     * Set the role manager
  +     */
  +    public static void setRoleManager(RoleManager roles) {
  +        if (AbstractSitemap.roleManager == null) {
  +            AbstractSitemap.roleManager = roles;
  +        }
  +    }
  +
  +    /**
        * Set the current <code>ComponentManager</code> instance used by this
        * <code>Composable</code>.
        */
       public void compose(ComponentManager manager)  throws ComponentException {
  -        this.manager = manager;
  +        this.manager = new ExcaliburComponentManager(manager);
  +        this.manager.setLogger(getLogger());
  +        this.manager.contextualize(this.context);
  +        this.manager.setRoleManager(AbstractSitemap.roleManager);
   
           try {
  -            this.urlFactory = (URLFactory) this.manager.lookup(Roles.URL_FACTORY);
  -            this.generators = (DefaultComponentSelector) 
this.manager.lookup(Roles.GENERATORS);
  -            this.transformers = (DefaultComponentSelector) 
this.manager.lookup(Roles.TRANSFORMERS);
  -            this.serializers = (SitemapComponentSelector) 
this.manager.lookup(Roles.SERIALIZERS);
  -            this.readers = (SitemapComponentSelector) 
this.manager.lookup(Roles.READERS);
  -            this.actions = (DefaultComponentSelector) 
this.manager.lookup(Roles.ACTIONS);
  -            this.matchers = (DefaultComponentSelector) 
this.manager.lookup(Roles.MATCHERS);
  -            this.selectors = (DefaultComponentSelector) 
this.manager.lookup(Roles.SELECTORS);
  +            this.urlFactory = (URLFactory) manager.lookup(Roles.URL_FACTORY);
  +
  +            this.generators = new ExcaliburComponentSelector();
  +            this.setupSelector(this.generators);
  +            this.manager.addComponentInstance(Roles.GENERATORS, this.generators);
  +
  +            this.transformers = new ExcaliburComponentSelector();
  +            this.setupSelector(this.transformers);
  +            this.manager.addComponentInstance(Roles.TRANSFORMERS, 
this.transformers);
  +
  +            this.serializers = new SitemapComponentSelector();
  +            this.setupSelector(this.serializers);
  +            this.manager.addComponentInstance(Roles.SERIALIZERS, this.serializers);
  +
  +            this.readers = new SitemapComponentSelector();
  +            this.setupSelector(this.readers);
  +            this.manager.addComponentInstance(Roles.READERS, this.readers);
  +
  +            this.actions = new ExcaliburComponentSelector();
  +            this.setupSelector(this.actions);
  +            this.manager.addComponentInstance(Roles.ACTIONS, this.actions);
  +
  +            this.matchers = new ExcaliburComponentSelector();
  +            this.setupSelector(this.matchers);
  +            this.manager.addComponentInstance(Roles.MATCHERS, this.matchers);
  +
  +            this.selectors = new ExcaliburComponentSelector();
  +            this.setupSelector(this.selectors);
  +            this.manager.addComponentInstance(Roles.SELECTORS, this.selectors);
           } catch (Exception e) {
               getLogger().error("cannot obtain the Component", e);
               throw new ComponentException ("cannot obtain the URLFactory", e);
           }
  +    }
  +
  +    private void setupSelector(ExcaliburComponentSelector selector) throws 
Exception {
  +        selector.setLogger(getLogger());
  +        selector.contextualize(this.context);
  +        selector.setRoleManager(AbstractSitemap.roleManager);
  +        selector.compose(this.manager);
       }
   
       public void contextualize(Context context) throws ContextException {
  
  
  
  1.9.2.1   +2 -1      xml-cocoon2/src/org/apache/cocoon/sitemap/Handler.java
  
  Index: Handler.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/sitemap/Handler.java,v
  retrieving revision 1.9
  retrieving revision 1.9.2.1
  diff -u -r1.9 -r1.9.2.1
  --- Handler.java      2001/05/31 19:10:08     1.9
  +++ Handler.java      2001/06/06 17:13:16     1.9.2.1
  @@ -21,6 +21,7 @@
   import org.apache.avalon.framework.context.ContextException;
   import org.apache.avalon.framework.context.Contextualizable;
   import org.apache.avalon.framework.logger.AbstractLoggable;
  +import org.apache.avalon.excalibur.component.RoleManager;
   import org.apache.cocoon.ProcessingException;
   import org.apache.cocoon.Processor;
   import org.apache.cocoon.Roles;
  @@ -42,7 +43,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Carsten Ziegeler</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Giacomo Pati</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Stefano Mazzocchi</a>
  - * @version CVS $Revision: 1.9 $ $Date: 2001/05/31 19:10:08 $
  + * @version CVS $Revision: 1.9.2.1 $ $Date: 2001/06/06 17:13:16 $
    */
   public class Handler extends AbstractLoggable
   implements Runnable, Configurable, Composable, Contextualizable, Processor, 
Disposable {
  
  
  
  1.2.2.1   +12 -1     xml-cocoon2/src/org/apache/cocoon/sitemap/Manager.java
  
  Index: Manager.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/sitemap/Manager.java,v
  retrieving revision 1.2
  retrieving revision 1.2.2.1
  diff -u -r1.2 -r1.2.2.1
  --- Manager.java      2001/05/31 17:38:54     1.2
  +++ Manager.java      2001/06/06 17:13:18     1.2.2.1
  @@ -22,6 +22,7 @@
   import org.apache.avalon.framework.context.Contextualizable;
   import org.apache.avalon.framework.logger.AbstractLoggable;
   import org.apache.avalon.framework.thread.ThreadSafe;
  +import org.apache.avalon.excalibur.component.RoleManager;
   import org.apache.cocoon.Constants;
   import org.apache.cocoon.ProcessingException;
   import org.apache.cocoon.components.pipeline.EventPipeline;
  @@ -37,7 +38,7 @@
    * checking regeneration of the sub <code>Sitemap</code>
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Giacomo Pati</a>
  - * @version CVS $Revision: 1.2 $ $Date: 2001/05/31 17:38:54 $
  + * @version CVS $Revision: 1.2.2.1 $ $Date: 2001/06/06 17:13:18 $
    */
   public class Manager extends AbstractLoggable implements Component, Configurable, 
Composable, Contextualizable, ThreadSafe {
   
  @@ -51,6 +52,16 @@
   
       /** The component manager */
       private ComponentManager manager;
  +
  +    /** The sitemap role manager */
  +    private RoleManager sitemapRoles;
  +
  +    /**
  +     * Set the role manager
  +     */
  +    public void setRoleManager(RoleManager roles) {
  +        this.sitemapRoles = roles;
  +    }
   
       /** get a configuration
        * @param conf the configuration
  
  
  
  1.2.2.1   +3 -3      
xml-cocoon2/src/org/apache/cocoon/sitemap/SitemapComponentSelector.java
  
  Index: SitemapComponentSelector.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/org/apache/cocoon/sitemap/SitemapComponentSelector.java,v
  retrieving revision 1.2
  retrieving revision 1.2.2.1
  diff -u -r1.2 -r1.2.2.1
  --- SitemapComponentSelector.java     2001/05/22 14:45:35     1.2
  +++ SitemapComponentSelector.java     2001/06/06 17:13:19     1.2.2.1
  @@ -15,14 +15,14 @@
   import org.apache.avalon.framework.component.Composable;
   import org.apache.avalon.framework.configuration.Configuration;
   import org.apache.avalon.framework.configuration.ConfigurationException;
  -import org.apache.avalon.excalibur.component.DefaultComponentSelector;
  +import org.apache.avalon.excalibur.component.ExcaliburComponentSelector;
   
   /** Default component manager for Cocoon's sitemap components.
    * @author <a href="mailto:[EMAIL PROTECTED]";>Berin Loritsch</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Giacomo Pati</a>
  - * @version CVS $Id: SitemapComponentSelector.java,v 1.2 2001/05/22 14:45:35 
cziegeler Exp $
  + * @version CVS $Id: SitemapComponentSelector.java,v 1.2.2.1 2001/06/06 17:13:19 
bloritsch Exp $
    */
  -public class SitemapComponentSelector extends DefaultComponentSelector {
  +public class SitemapComponentSelector extends ExcaliburComponentSelector {
       HashMap mime_types;
   
       /** The conctructors (same as the Avalon ComponentManager)
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.1   +39 -0     xml-cocoon2/src/org/apache/cocoon/sitemap/Attic/sitemap.roles
  
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.2.2.1   +4 -4      xml-cocoon2/src/org/apache/cocoon/util/IOUtils.java
  
  Index: IOUtils.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/util/IOUtils.java,v
  retrieving revision 1.2
  retrieving revision 1.2.2.1
  diff -u -r1.2 -r1.2.2.1
  --- IOUtils.java      2001/05/25 14:25:59     1.2
  +++ IOUtils.java      2001/06/06 17:13:29     1.2.2.1
  @@ -20,7 +20,7 @@
   import java.text.Collator;
   import java.util.Arrays;
   import java.util.Locale;
  -import org.apache.log.LogKit;
  +import org.apache.log.Hierarchy;
   
   /**
    * A collection of <code>File</code>, <code>URL</code> and filename
  @@ -28,7 +28,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Ricardo Rocha</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Stefano Mazzocchi</a>
  - * @version CVS $Revision: 1.2 $ $Date: 2001/05/25 14:25:59 $
  + * @version CVS $Revision: 1.2.2.1 $ $Date: 2001/06/06 17:13:29 $
    */
   public class IOUtils {
   
  @@ -242,7 +242,7 @@
       try {
         return file.getCanonicalPath();
       } catch (Exception e) {
  -      LogKit.getLoggerFor("cocoon").debug("IOUtils.getFullFilename", e);
  +      
Hierarchy.getDefaultHierarchy().getLoggerFor("cocoon").debug("IOUtils.getFullFilename",
 e);
         return file.getAbsolutePath();
       }
     }
  @@ -283,7 +283,7 @@
                 filePath = filePath.substring(directoryPath.length());
             }
         } catch (Exception e){
  -          LogKit.getLoggerFor("cocoon").debug("IOUtils.getContextFilePath", e);
  +          
Hierarchy.getDefaultHierarchy().getLoggerFor("cocoon").debug("IOUtils.getContextFilePath",
 e);
         }
   
         return filePath;
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to