bloritsch    01/02/17 11:55:42

  Modified:    src/org/apache/cocoon/sitemap Tag: xml-cocoon2
                        AbstractSitemap.java SitemapComponentManager.java
  Log:
  Fix for XSP!
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.22  +3 -2      
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.21
  retrieving revision 1.1.2.22
  diff -u -r1.1.2.21 -r1.1.2.22
  --- AbstractSitemap.java      2001/02/16 22:07:44     1.1.2.21
  +++ AbstractSitemap.java      2001/02/17 19:55:41     1.1.2.22
  @@ -42,7 +42,7 @@
    * Base class for generated <code>Sitemap</code> classes
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
  - * @version CVS $Revision: 1.1.2.21 $ $Date: 2001/02/16 22:07:44 $
  + * @version CVS $Revision: 1.1.2.22 $ $Date: 2001/02/17 19:55:41 $
    */
   public abstract class AbstractSitemap extends AbstractCompiledComponent 
implements Sitemap {
       private Context context;
  @@ -72,7 +72,7 @@
           this.sitemapComponentManager = new SitemapComponentManager 
(parentSitemapComponentManager);
           this.sitemapComponentManager.contextualize(this.context);
           this.sitemapComponentManager.setLogger(getLogger());
  -        this.sitemapComponentManager.addComponentInstance(Roles.URL_FACTORY, 
this.urlFactory);
  +        this.sitemapComponentManager.compose(this.manager);
       }
   
       /**
  @@ -140,6 +140,7 @@
               this.sitemapComponentManager = new SitemapComponentManager();
               this.sitemapComponentManager.contextualize(this.context);
               this.sitemapComponentManager.setLogger(getLogger());
  +            this.sitemapComponentManager.compose(this.manager);
           }
   
           this.sitemapComponentManager.addSitemapComponent(type, clazz, 
configuration, mime_type);
  
  
  
  1.1.2.3   +37 -10    
xml-cocoon/src/org/apache/cocoon/sitemap/Attic/SitemapComponentManager.java
  
  Index: SitemapComponentManager.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon/src/org/apache/cocoon/sitemap/Attic/SitemapComponentManager.java,v
  retrieving revision 1.1.2.2
  retrieving revision 1.1.2.3
  diff -u -r1.1.2.2 -r1.1.2.3
  --- SitemapComponentManager.java      2001/02/16 22:07:48     1.1.2.2
  +++ SitemapComponentManager.java      2001/02/17 19:55:42     1.1.2.3
  @@ -10,22 +10,25 @@
   
   import java.util.HashMap;
   
  +import org.apache.avalon.Composer;
   import org.apache.avalon.ComponentManager;
   import org.apache.avalon.Configuration;
   import org.apache.avalon.ConfigurationException;
   import org.apache.avalon.Component;
   import org.apache.avalon.ComponentManagerException;
  +import org.apache.avalon.ComponentNotFoundException;
   import org.apache.cocoon.DefaultComponentManager;
   
   import org.apache.cocoon.components.url.URLFactory;
   
   /** Default component manager for Cocoon's sitemap components.
    * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a>
  - * @version CVS $Id: SitemapComponentManager.java,v 1.1.2.2 2001/02/16 
22:07:48 bloritsch Exp $
  + * @version CVS $Id: SitemapComponentManager.java,v 1.1.2.3 2001/02/17 
19:55:42 bloritsch Exp $
    */
  -public class SitemapComponentManager extends DefaultComponentManager {
  +public class SitemapComponentManager extends DefaultComponentManager 
implements Composer {
       ComponentManager manager;
       HashMap mime_types;
  +    ComponentManager sideManager;
   
       /** The conctructors (same as the Avalon DefaultComponentManager)
        */
  @@ -39,18 +42,42 @@
           this.manager = parent;
       }
   
  -    public Component lookup(String role) throws ComponentManagerException {
  +    public void compose(ComponentManager manager) {
  +        this.sideManager = manager;
  +    }
  +
  +    /** Return an instance of a component.
  +     */
  +    public Component lookup( String role )
  +    throws ComponentManagerException {
  +
  +        Component component = null;
  +
  +        try {
  +            // Retrieve the instance of the requested component
  +            component = this.sideManager.lookup(role);
  +        } catch (ComponentManagerException cme) {/* ignore */}
  +
  +        if ( component != null ) {
  +            return component;
  +        }
  +
           try {
  -            Component comp = super.lookup(role);
  -            return comp;
  -        } catch (ComponentManagerException cme) {
  -            if (this.manager != null) {
  -                return this.manager.lookup(role);
  -            }
  +            // Retrieve the instance of the requested component
  +            component = super.lookup(role);
  +        } catch (ComponentManagerException cme) {/* ignore */}
   
  -            throw cme;
  +        if ( component != null ) {
  +            return component;
           }
  +
  +        if (this.manager != null) {
  +            return this.manager.lookup(role);
  +        } else {
  +            throw new ComponentNotFoundException("I could not locate the 
component for role " + role);
  +        }
       }
  +
   
       protected String getMimeTypeForRole(String role) {
           return (String) this.mime_types.get(role);
  
  
  

Reply via email to