You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2002/06/07 12:22:44 UTC

cvs commit: xml-cocoon2/src/java/org/apache/cocoon/components/treeprocessor/sitemap SitemapLanguage.java

cziegeler    2002/06/07 03:22:43

  Modified:    src/java/org/apache/cocoon/components Tag:
                        cocoon_2_0_3_branch CocoonComponentManager.java
               src/java/org/apache/cocoon/components/treeprocessor Tag:
                        cocoon_2_0_3_branch DefaultTreeBuilder.java
                        TreeProcessor.java
               src/java/org/apache/cocoon/components/treeprocessor/sitemap
                        Tag: cocoon_2_0_3_branch SitemapLanguage.java
  Log:
  Fixing doc build
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.13.2.2  +12 -9     xml-cocoon2/src/java/org/apache/cocoon/components/CocoonComponentManager.java
  
  Index: CocoonComponentManager.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/CocoonComponentManager.java,v
  retrieving revision 1.13.2.1
  retrieving revision 1.13.2.2
  diff -u -r1.13.2.1 -r1.13.2.2
  --- CocoonComponentManager.java	7 Jun 2002 09:34:23 -0000	1.13.2.1
  +++ CocoonComponentManager.java	7 Jun 2002 10:22:42 -0000	1.13.2.2
  @@ -72,7 +72,7 @@
    * by a special lifecycle handling for a RequestLifecycleComponent
    *
    * @author <a href="mailto:cziegeler@org.com">Carsten Ziegeler</a>
  - * @version CVS $Id: CocoonComponentManager.java,v 1.13.2.1 2002/06/07 09:34:23 cziegeler Exp $
  + * @version CVS $Id: CocoonComponentManager.java,v 1.13.2.2 2002/06/07 10:22:42 cziegeler Exp $
    */
   public final class CocoonComponentManager
   extends ExcaliburComponentManager
  @@ -171,16 +171,19 @@
               }
               final Object[] objects = (Object[]) stack.peek();
               final Map components = (Map)objects[2];
  -            try {
  -                if (component instanceof Recomposable) {
  -                    ((Recomposable) component).recompose(this);
  -                }
  -                ((RequestLifecycleComponent) component).setup((org.apache.cocoon.environment.SourceResolver)objects[0],
  +            // first test if the parent CM has already initialized this component
  +            if (components.containsKey( role ) == false) {
  +                try {
  +                    if (component instanceof Recomposable) {
  +                       ((Recomposable) component).recompose(this);
  +                    }
  +                    ((RequestLifecycleComponent) component).setup((org.apache.cocoon.environment.SourceResolver)objects[0],
                                                                 (Map)objects[1]);
  -            } catch (Exception local) {
  -                throw new ComponentException("Exception during setup of RequestLifecycleComponent with role '"+role+"'", local);
  +                } catch (Exception local) {
  +                    throw new ComponentException("Exception during setup of RequestLifecycleComponent with role '"+role+"'", local);
  +                }
  +                components.put(role, new Object[] {component, this});
               }
  -            components.put(role, new Object[] {component, this});
           }
           return component;
       }
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.3.2.3   +27 -26    xml-cocoon2/src/java/org/apache/cocoon/components/treeprocessor/DefaultTreeBuilder.java
  
  Index: DefaultTreeBuilder.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/treeprocessor/DefaultTreeBuilder.java,v
  retrieving revision 1.3.2.2
  retrieving revision 1.3.2.3
  diff -u -r1.3.2.2 -r1.3.2.3
  --- DefaultTreeBuilder.java	21 Apr 2002 17:38:47 -0000	1.3.2.2
  +++ DefaultTreeBuilder.java	7 Jun 2002 10:22:43 -0000	1.3.2.3
  @@ -93,7 +93,7 @@
   /**
    *
    * @author <a href="mailto:sylvain@apache.org">Sylvain Wallez</a>
  - * @version CVS $Id: DefaultTreeBuilder.java,v 1.3.2.2 2002/04/21 17:38:47 vgritsenko Exp $
  + * @version CVS $Id: DefaultTreeBuilder.java,v 1.3.2.3 2002/06/07 10:22:43 cziegeler Exp $
    */
   
   public class DefaultTreeBuilder extends AbstractLoggable implements TreeBuilder,
  @@ -525,37 +525,38 @@
   
           String type = statement.getAttribute("type", null);
   
  -        ComponentSelector selector;
  +        ComponentSelector selector = null;
   
           try {
  -            selector = (ComponentSelector)this.manager.lookup(role);
  -        } catch(ComponentException ce) {
  -            String msg = "Cannot get component selector for '" + statement.getName() + "' at " +
  -                statement.getLocation();
  -            getLogger().error(msg, ce);
  -            throw new ConfigurationException(msg, ce);
  -        }
  +            try {
  +                selector = (ComponentSelector)this.manager.lookup(role);
  +            } catch(ComponentException ce) {
  +                String msg = "Cannot get component selector for '" + statement.getName() + "' at " +
  +                   statement.getLocation();
  +                getLogger().error(msg, ce);
  +                throw new ConfigurationException(msg, ce);
  +            }
   
  -        if (type == null && selector instanceof ExtendedComponentSelector) {
  -            type = ((ExtendedComponentSelector)selector).getDefaultHint();
  -        }
  +            if (type == null && selector instanceof ExtendedComponentSelector) {
  +                type = ((ExtendedComponentSelector)selector).getDefaultHint();
  +            }
   
  -        if (type == null) {
  -            String msg = "No default type exists for '" + statement.getName() + "' at " +
  -                statement.getLocation();
  -            getLogger().error(msg);
  -            throw new ConfigurationException(msg);
  -        }
  +            if (type == null) {
  +                String msg = "No default type exists for '" + statement.getName() + "' at " +
  +                    statement.getLocation();
  +                getLogger().error(msg);
  +               throw new ConfigurationException(msg);
  +            }
   
  -        if (!selector.hasComponent(type)) {
  -            String msg = "Type '" + type + "' is not defined for '" + statement.getName() + "' at " +
  -                statement.getLocation();
  -            getLogger().error(msg);
  -            throw new ConfigurationException(msg);
  +            if (!selector.hasComponent(type)) {
  +                String msg = "Type '" + type + "' is not defined for '" + statement.getName() + "' at " +
  +                    statement.getLocation();
  +                getLogger().error(msg);
  +                throw new ConfigurationException(msg);
  +            }
  +        } finally {
  +            this.manager.release(selector);
           }
  -
  -        this.manager.release(selector);
  -
           return type;
       }
   
  
  
  
  1.4.2.1   +13 -8     xml-cocoon2/src/java/org/apache/cocoon/components/treeprocessor/TreeProcessor.java
  
  Index: TreeProcessor.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/treeprocessor/TreeProcessor.java,v
  retrieving revision 1.4
  retrieving revision 1.4.2.1
  diff -u -r1.4 -r1.4.2.1
  --- TreeProcessor.java	31 Mar 2002 21:48:15 -0000	1.4
  +++ TreeProcessor.java	7 Jun 2002 10:22:43 -0000	1.4.2.1
  @@ -99,14 +99,14 @@
    * Interpreted tree-traversal implementation of a pipeline assembly language.
    *
    * @author <a href="mailto:sylvain@apache.org">Sylvain Wallez</a>
  - * @version CVS $Id: TreeProcessor.java,v 1.4 2002/03/31 21:48:15 sylvain Exp $
  + * @version CVS $Id: TreeProcessor.java,v 1.4.2.1 2002/06/07 10:22:43 cziegeler Exp $
    */
   
   public class TreeProcessor extends AbstractLoggable implements ThreadSafe, Processor,
     Composable, Configurable, LogKitManageable, RoleManageable, Initializable, Contextualizable, Disposable {
   
       private static final String XCONF_URL =
  -    	"resource://org/apache/cocoon/components/treeprocessor/treeprocessor-builtins.xml";
  +        "resource://org/apache/cocoon/components/treeprocessor/treeprocessor-builtins.xml";
   
       /** The parent TreeProcessor, if any */
       protected TreeProcessor parent;
  @@ -187,7 +187,7 @@
           String language,
           Source source)
         throws Exception {
  -        
  +
           TreeProcessor child = new TreeProcessor(this, manager, language);
           child.setLogger(getLogger());
           child.initialize();
  @@ -255,7 +255,7 @@
               getLogger().error(msg, e);
               throw new ConfigurationException(msg, e);
           }
  -        
  +
           // Create a selector for tree builders of all languages
           this.builderSelector = new ExtendedComponentSelector(Thread.currentThread().getContextClassLoader());
           try {
  @@ -302,9 +302,14 @@
   
           context.setLogger(getLogger());
   
  +        SourceHandler oldSourceHandler = environment.getSourceHandler();
  +        CocoonComponentManager.enterEnvironment(environment, environment.getObjectModel());
           try {
  +            environment.setSourceHandler(this.sourceHandler);
               return process(environment, context);
           } finally {
  +            CocoonComponentManager.leaveEnvironment();
  +            environment.setSourceHandler(oldSourceHandler);
               context.dispose();
           }
       }
  @@ -340,7 +345,7 @@
   
           // Dispose the previous tree, if any
           disposeTree();
  -        
  +
           // Get a builder
           TreeBuilder builder = (TreeBuilder)this.builderSelector.select(this.language);
           ProcessingNode root;
  @@ -349,7 +354,7 @@
                   ((Recomposable)builder).recompose(this.manager);
               }
               builder.setProcessor(this);
  -            
  +
               if (this.source == null) {
                   // FIXME : make the delay configurable
                   this.source = new DelayedRefreshSourceWrapper(env.resolve(builder.getFileName()), 1000L);
  @@ -357,8 +362,8 @@
               root = builder.build(this.source);
   
               this.disposableNodes = builder.getDisposableNodes();
  -            
  -        } finally {        
  +
  +        } finally {
               this.builderSelector.release(builder);
           }
   
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.4.2.1   +11 -4     xml-cocoon2/src/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java
  
  Index: SitemapLanguage.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/treeprocessor/sitemap/SitemapLanguage.java,v
  retrieving revision 1.4
  retrieving revision 1.4.2.1
  diff -u -r1.4 -r1.4.2.1
  --- SitemapLanguage.java	26 Mar 2002 10:57:02 -0000	1.4
  +++ SitemapLanguage.java	7 Jun 2002 10:22:43 -0000	1.4.2.1
  @@ -82,7 +82,7 @@
    * The tree builder for the sitemap language.
    *
    * @author <a href="mailto:sylvain@apache.org">Sylvain Wallez</a>
  - * @version CVS $Id: SitemapLanguage.java,v 1.4 2002/03/26 10:57:02 sylvain Exp $
  + * @version CVS $Id: SitemapLanguage.java,v 1.4.2.1 2002/06/07 10:22:43 cziegeler Exp $
    */
   
   public class SitemapLanguage extends DefaultTreeBuilder {
  @@ -201,8 +201,8 @@
        * Add a view for a label. This is used to register all views that start from
        * a given label.
        *
  -     * @parameter label the label (or pseudo-label) for the view
  -     * @parameter view the view name
  +     * @param label the label (or pseudo-label) for the view
  +     * @param view the view name
        */
       public void addViewForLabel(String label, String view) {
           getLogger().debug("views:addViewForLabel(" + label + ", " + view + ")");
  @@ -226,6 +226,10 @@
        */
       public Collection getViewsForStatement(String role, String hint, Configuration statement) throws Exception {
   
  +        if ( role == null || role.trim().equals("") ) {
  +            // FIXME !!
  +            return null;
  +        }
           String statementLabels = statement.getAttribute("label", null);
   
           if (this.isBuildingView) {
  @@ -247,8 +251,9 @@
           Set labels = new HashSet();
   
           // 1 - labels defined on the component
  +        SitemapComponentSelector selector = null;
           try {
  -            SitemapComponentSelector selector = (SitemapComponentSelector)this.manager.lookup(role + "Selector");
  +            selector = (SitemapComponentSelector)this.manager.lookup(role + "Selector");
               String[] compLabels = selector.getLabels(hint);
               if (compLabels != null) {
                   for (int i = 0; i < compLabels.length; i++) {
  @@ -258,6 +263,8 @@
           } catch(Exception e) {
               // Ignore (no selector for this role)
               getLogger().debug("No selector for role " + role);
  +        } finally {
  +            this.manager.release( selector );
           }
   
           // 2 - labels defined on this statement
  
  
  

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