You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by si...@apache.org on 2011/11/01 16:35:27 UTC

svn commit: r1196061 - /cocoon/cocoon3/trunk/cocoon-cli/src/main/java/org/apache/cocoon/cli/Main.java

Author: simonetripodi
Date: Tue Nov  1 15:35:26 2011
New Revision: 1196061

URL: http://svn.apache.org/viewvc?rev=1196061&view=rev
Log:
first draft of program execution

Modified:
    cocoon/cocoon3/trunk/cocoon-cli/src/main/java/org/apache/cocoon/cli/Main.java

Modified: cocoon/cocoon3/trunk/cocoon-cli/src/main/java/org/apache/cocoon/cli/Main.java
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-cli/src/main/java/org/apache/cocoon/cli/Main.java?rev=1196061&r1=1196060&r2=1196061&view=diff
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-cli/src/main/java/org/apache/cocoon/cli/Main.java (original)
+++ cocoon/cocoon3/trunk/cocoon-cli/src/main/java/org/apache/cocoon/cli/Main.java Tue Nov  1 15:35:26 2011
@@ -18,11 +18,16 @@
  */
 package org.apache.cocoon.cli;
 
+import static java.lang.String.format;
+
+import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.Date;
 import java.util.Properties;
 
+import org.apache.cocoon.pipeline.Pipeline;
+import org.apache.cocoon.sax.SAXPipelineComponent;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -131,6 +136,15 @@ public final class Main
             // StatusPrinter should handle this
         }
 
+        File pipelineDescriptor = options.getPipelineDescriptor();
+        if ( pipelineDescriptor == null
+                        || !pipelineDescriptor.exists()
+                        || pipelineDescriptor.isDirectory() )
+        {
+            System.err.println( "'c3p.xml' file does not exist!" );
+            System.exit( -1 );
+        }
+
         logger.info( "" );
         logger.info( "------------------------------------------------------------------------" );
         logger.info( "Apache Cocoon 3" );
@@ -143,7 +157,52 @@ public final class Main
         Throwable error = null;
         try
         {
-            // FIXME add program execution
+            PipelinesRegistry registry = new PipelineDescriptorParser( options.isPipesHelp() ).parse( pipelineDescriptor );
+
+            if ( !options.isPipesHelp() )
+            {
+                if ( !options.getPipelineIDs().isEmpty() )
+                {
+                    for ( String id : options.getPipelineIDs() )
+                    {
+                        logger.info( "Executing pipeline '{}'...", id );
+
+                        Pipeline<SAXPipelineComponent> pipeline = registry.getPipeline( id );
+
+                        if ( pipeline == null )
+                        {
+                            throw new NullPointerException( format( "Pipeline '%s' not found!", id ) );
+                        }
+
+                        pipeline.setup( System.out );
+                        pipeline.execute();
+
+                        logger.info( "Pipeline '{}' executed", id );
+                    }
+                }
+                else
+                {
+                    if ( registry.getDefaultId() == null )
+                    {
+                        throw new NullPointerException( "Default pipeline not specified, no pipeline executed!" );
+                    }
+
+                    logger.info( "Executing default Pipeline '{}'", registry.getDefaultId() );
+
+                    Pipeline<SAXPipelineComponent> pipeline = registry.getDefaultPipeline();
+
+                    if ( pipeline == null )
+                    {
+                        throw new NullPointerException( format( "Default pipeline '%s' not found!", registry.getDefaultId() ) );
+                    }
+
+                    pipeline.setup( System.out );
+                    pipeline.execute();
+
+                    logger.info( "Default pipeline '{}' executed", registry.getDefaultId() );
+                }
+            }
+
         }
         catch ( Throwable t )
         {