You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by re...@apache.org on 2008/11/09 22:50:46 UTC

svn commit: r712563 - /cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/AbstractPipeline.java

Author: reinhard
Date: Sun Nov  9 13:50:46 2008
New Revision: 712563

URL: http://svn.apache.org/viewvc?rev=712563&view=rev
Log:
throw exceptions if a pipeline isn't used correctly

Modified:
    cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/AbstractPipeline.java

Modified: cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/AbstractPipeline.java
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/AbstractPipeline.java?rev=712563&r1=712562&r2=712563&view=diff
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/AbstractPipeline.java (original)
+++ cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/AbstractPipeline.java Sun Nov  9 13:50:46 2008
@@ -41,15 +41,23 @@
 
     private final LinkedList<PipelineComponent> components = new LinkedList<PipelineComponent>();
 
+    private boolean setupDone;
+
     /**
      * {@inheritDoc}
      * 
      * @see org.apache.cocoon.pipeline.Pipeline#addComponent(org.apache.cocoon.pipeline.component.PipelineComponent)
      */
     public void addComponent(PipelineComponent pipelineComponent) {
+        if (this.setupDone) {
+            throw new SetupException(new IllegalStateException(
+                    "Pass all pipeline components to the pipeline before calling this method."));
+        }
+
         if (this.logger.isDebugEnabled()) {
             this.logger.debug("Adding component " + pipelineComponent + " to pipeline [" + this + "].");
         }
+
         this.components.add(pipelineComponent);
     }
 
@@ -59,7 +67,7 @@
      * @see org.apache.cocoon.pipeline.Pipeline#setup(java.io.OutputStream, java.util.Map)
      */
     public void setup(OutputStream outputStream) {
-        this.setupComponents(outputStream, null);
+        this.setup(outputStream, null);
     }
 
     /**
@@ -68,7 +76,12 @@
      * @see org.apache.cocoon.pipeline.Pipeline#setup(java.io.OutputStream, java.util.Map)
      */
     public void setup(OutputStream outputStream, Map<String, Object> parameters) {
+        if (outputStream == null) {
+            throw new SetupException("An output stream must be passed.");
+        }
+
         this.setupComponents(outputStream, parameters);
+        this.setupDone = true;
     }
 
     /**
@@ -77,6 +90,11 @@
      * @see org.apache.cocoon.pipeline.Pipeline#execute()
      */
     public void execute() throws Exception {
+        if (!this.setupDone) {
+            throw new ProcessingException(new IllegalStateException(
+                    "The pipeline wasn't setup correctly. Call #setup() first."));
+        }
+
         this.invokeStarter();
     }