cziegeler    02/05/27 04:12:13

  Modified:    src/java/org/apache/cocoon/components/treeprocessor
                        InvokeContext.java
               src/java/org/apache/cocoon/components/treeprocessor/sitemap
                        ComponentsSelector.java
  Log:
  One step further...
  
  Revision  Changes    Path
  1.4       +13 -3     
xml-cocoon2/src/java/org/apache/cocoon/components/treeprocessor/InvokeContext.java
  
  Index: InvokeContext.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/treeprocessor/InvokeContext.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- InvokeContext.java        27 May 2002 10:52:08 -0000      1.3
  +++ InvokeContext.java        27 May 2002 11:12:13 -0000      1.4
  @@ -54,6 +54,7 @@
   import org.apache.avalon.framework.component.Recomposable;
   import org.apache.avalon.framework.component.ComponentManager;
   import org.apache.avalon.framework.component.ComponentException;
  +import org.apache.avalon.framework.component.ComponentSelector;
   import org.apache.avalon.framework.thread.ThreadSafe;
   import org.apache.avalon.framework.logger.Loggable;
   
  @@ -77,7 +78,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Sylvain Wallez</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Carsten Ziegeler</a>
  - * @version CVS $Id: InvokeContext.java,v 1.3 2002/05/27 10:52:08 cziegeler Exp $
  + * @version CVS $Id: InvokeContext.java,v 1.4 2002/05/27 11:12:13 cziegeler Exp $
    */
   
   public class InvokeContext implements Recomposable, Disposable, Loggable {
  @@ -108,6 +109,9 @@
       /** The ProcessingPipeline used */
       protected ProcessingPipeline processingPipeline;
   
  +    /** The Selector for the processing pipeline */
  +    protected ComponentSelector pipelineSelector;
  +
       /**
        * Create an <code>InvokeContext</code> without existing pipelines. This also 
means
        * the current request is external.
  @@ -191,7 +195,8 @@
       public ProcessingPipeline getProcessingPipeline()
       throws Exception {
           if (this.processingPipeline == null) {
  -            this.processingPipeline = 
(ProcessingPipeline)this.pipelinesManager.lookup(ProcessingPipeline.ROLE);
  +            this.pipelineSelector = 
(ComponentSelector)this.pipelinesManager.lookup(ProcessingPipeline.ROLE+"Selector");
  +            this.processingPipeline = 
(ProcessingPipeline)this.pipelineSelector.select(this.processingPipelineName);
               // FIXME - Setup pipeline
               this.processingPipeline.recompose( this.pipelinesManager );
           }
  @@ -284,7 +289,12 @@
   
               this.pipelinesManager.release(this.eventPipeline);
               this.pipelinesManager.release(this.streamPipeline);
  -            this.pipelinesManager.release(this.processingPipeline);
  +            if ( this.pipelineSelector != null) {
  +                this.pipelineSelector.release(this.processingPipeline);
  +                this.processingPipeline = null;
  +                this.pipelinesManager.release( this.pipelineSelector );
  +                this.pipelineSelector = null;
  +            }
               this.pipelinesManager = null;
           }
       }
  
  
  
  1.2       +34 -29    
xml-cocoon2/src/java/org/apache/cocoon/components/treeprocessor/sitemap/ComponentsSelector.java
  
  Index: ComponentsSelector.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/treeprocessor/sitemap/ComponentsSelector.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ComponentsSelector.java   5 Mar 2002 08:26:23 -0000       1.1
  +++ ComponentsSelector.java   27 May 2002 11:12:13 -0000      1.2
  @@ -58,6 +58,7 @@
   import org.apache.avalon.framework.configuration.DefaultConfiguration;
   
   import org.apache.cocoon.components.pipeline.OutputComponentSelector;
  +import org.apache.cocoon.components.pipeline.ProcessingPipeline;
   import org.apache.cocoon.components.ExtendedComponentSelector;
   
   import org.apache.cocoon.acting.Action;
  @@ -75,10 +76,11 @@
    * Component selector for sitemap components.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Sylvain Wallez</a>
  - * @version CVS $Id: ComponentsSelector.java,v 1.1 2002/03/05 08:26:23 sylvain Exp $
  + * @version CVS $Id: ComponentsSelector.java,v 1.2 2002/05/27 11:12:13 cziegeler 
Exp $
    */
   
  -public class ComponentsSelector extends ExtendedComponentSelector implements 
OutputComponentSelector, SitemapComponentSelector {
  +public class ComponentsSelector extends ExtendedComponentSelector
  +implements OutputComponentSelector, SitemapComponentSelector {
   
       public static final int UNKNOWN     = -1;
       public static final int GENERATOR   = 0;
  @@ -88,6 +90,7 @@
       public static final int MATCHER     = 4;
       public static final int SELECTOR    = 5;
       public static final int ACTION      = 6;
  +    public static final int PIPELINE    = 7;
   
       public static final String[] SELECTOR_ROLES = {
           Generator.ROLE   + "Selector",
  @@ -96,7 +99,8 @@
           Reader.ROLE      + "Selector",
           Matcher.ROLE     + "Selector",
           Selector.ROLE    + "Selector",
  -        Action.ROLE      + "Selector"
  +        Action.ROLE      + "Selector",
  +        ProcessingPipeline.ROLE + "Selector"
       };
   
       public static final String[] COMPONENT_NAMES = {
  @@ -106,7 +110,8 @@
           "reader",
           "matcher",
           "selector",
  -        "action"
  +        "action",
  +        "pipeline"
       };
   
       /** The role as an integer */
  @@ -170,7 +175,7 @@
           if (this.roleId == SERIALIZER || this.roleId == READER) {
               this.hintMimeTypes = new HashMap();
           }
  -        
  +
           this.hintLabels = new HashMap();
   
           super.configure(config);
  @@ -193,7 +198,7 @@
                   this.hintMimeTypes.put(hint, mimeType);
               }
           }
  -        
  +
           String label = config.getAttribute("label", null);
           if (label != null) {
               // Empty '' attribute will result in empty array,
  @@ -213,36 +218,36 @@
        */
       public void initialize() /*throws Exception*/ {
   
  -    // FIXME : need to catch exceptions since ECS doesn't propagate the throws 
clause of Initializable
  -    try {
  +        // FIXME : need to catch exceptions since ECS doesn't propagate the throws 
clause of Initializable
  +        try {
   
  -        Configuration emptyConfig = new DefaultConfiguration("", "");
  +            Configuration emptyConfig = new DefaultConfiguration("", "");
   
  -        // Ensure all system-defined hints exist.
  -        // NOTE : checking this here means they can be user-defined in the sitemap
  -        switch(this.roleId) {
  -            case GENERATOR :
  -                ensureExists("!notifying-generator!",
  -                    org.apache.cocoon.sitemap.NotifyingGenerator.class, 
emptyConfig);
  +            // Ensure all system-defined hints exist.
  +            // NOTE : checking this here means they can be user-defined in the 
sitemap
  +            switch(this.roleId) {
  +                case GENERATOR :
  +                    ensureExists("!notifying-generator!",
  +                        org.apache.cocoon.sitemap.NotifyingGenerator.class, 
emptyConfig);
   
  -                ensureExists("!content-aggregator!",
  -                    org.apache.cocoon.sitemap.ContentAggregator.class, emptyConfig);
  -            break;
  +                    ensureExists("!content-aggregator!",
  +                        org.apache.cocoon.sitemap.ContentAggregator.class, 
emptyConfig);
  +                break;
   
  -            case TRANSFORMER :
  -                ensureExists("!link-translator!",
  -                    org.apache.cocoon.sitemap.LinkTranslator.class, emptyConfig);
  -            break;
  -        }
  +                case TRANSFORMER :
  +                    ensureExists("!link-translator!",
  +                        org.apache.cocoon.sitemap.LinkTranslator.class, 
emptyConfig);
  +                break;
  +            }
   
  -        super.initialize();
  +            super.initialize();
   
  -        // Don't keep known hints (they're no more needed)
  -        this.knownHints = null;
  +            // Don't keep known hints (they're no more needed)
  +            this.knownHints = null;
   
  -    } catch(Exception e) {
  -        throw new CascadingRuntimeException("Cannot setup default components", e);
  -    }
  +        } catch(Exception e) {
  +            throw new CascadingRuntimeException("Cannot setup default components", 
e);
  +        }
   
       }
   
  
  
  

----------------------------------------------------------------------
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