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/09/16 16:03:30 UTC

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

Author: simonetripodi
Date: Fri Sep 16 14:03:29 2011
New Revision: 1171568

URL: http://svn.apache.org/viewvc?rev=1171568&view=rev
Log:
first checkin of main executor class with output printed a la maven style

Added:
    cocoon/cocoon3/trunk/cocoon-cli/src/main/java/org/apache/cocoon/cli/Main.java   (with props)

Added: 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=1171568&view=auto
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-cli/src/main/java/org/apache/cocoon/cli/Main.java (added)
+++ cocoon/cocoon3/trunk/cocoon-cli/src/main/java/org/apache/cocoon/cli/Main.java Fri Sep 16 14:03:29 2011
@@ -0,0 +1,235 @@
+/*
+ * Project:       GeoTIFF Uploader
+ * Author:        $Author$ (Terradue Srl)
+ * Last update:   $Date$
+ * Element:       ify web portal
+ * Context:       services/gtu
+ * Name:          service.js
+ * Description:   Specific Javascript for gtu. It makes the _size optional 
+ *
+ * This document is the property of Terradue and contains information directly
+ * resulting from knowledge and experience of Terradue.
+ * Any changes to this code is forbidden without written consent from Terradue Srl
+ *
+ * Contact: info@terradue.com
+ */
+package org.apache.cocoon.cli;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Date;
+import java.util.Properties;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import ch.qos.logback.classic.LoggerContext;
+import ch.qos.logback.classic.joran.JoranConfigurator;
+import ch.qos.logback.core.joran.spi.JoranException;
+
+import com.beust.jcommander.JCommander;
+
+public final class Main
+{
+
+    /**
+     * Hidden constructor, this class cannot be instantiated.
+     */
+    private Main()
+    {
+        // do nothing
+    }
+
+    public static void main( String[] args )
+    {
+        CliOptions options = new CliOptions();
+
+        JCommander jCommander = new JCommander( options );
+        jCommander.setProgramName( "gtu" );
+        jCommander.parseWithoutValidation( args );
+
+        if ( options.isPrintHelp() )
+        {
+            jCommander.usage();
+            System.exit( -1 );
+        }
+
+        if ( options.isPrintVersion() )
+        {
+            Properties properties = new Properties();
+            InputStream input =
+                Main.class.getClassLoader().getResourceAsStream( "META-INF/maven/org.apache.cocoon/cocoon-cli/pom.properties" );
+
+            if ( input != null )
+            {
+                try
+                {
+                    properties.load( input );
+                }
+                catch ( IOException e )
+                {
+                    // ignore, just don't load the properties
+                }
+                finally
+                {
+                    try
+                    {
+                        input.close();
+                    }
+                    catch ( IOException e )
+                    {
+                        // close quietly
+                    }
+                }
+            }
+
+            System.out.printf( "Apache Cocoon 3 %s (%s)%n",
+                    properties.getProperty( "version" ),
+                    properties.getProperty( "build" ));
+            System.out.printf( "Java version: %s, vendor: %s%n",
+                    System.getProperty( "java.version" ),
+                    System.getProperty( "java.vendor" ) );
+            System.out.printf( "Java home: %s%n", System.getProperty( "java.home" ) );
+            System.out.printf( "Default locale: %s_%s, platform encoding: %s%n",
+                    System.getProperty( "user.language" ),
+                    System.getProperty( "user.country" ),
+                    System.getProperty( "sun.jnu.encoding" ) );
+            System.out.printf( "OS name: \"%s\", version: \"%s\", arch: \"%s\", family: \"%s\"%n",
+                    System.getProperty( "os.name" ),
+                    System.getProperty( "os.version" ),
+                    System.getProperty( "os.arch" ),
+                    getOsFamily() );
+
+            System.exit( -1 );
+        }
+
+        System.out.println( "  _                         _                      _" );
+        System.out.println( " /_) _   _   _ ( _   _     / ` _   _  _   _   _    _)" );
+        System.out.println( "/ / )_) (_( (_  ) ) )_)   (_. (_) (_ (_) (_) ) )   _)" );
+        System.out.println( "    (               (_ " );
+
+        // logging stuff
+        final Logger logger = LoggerFactory.getLogger( Main.class );
+
+        // assume SLF4J is bound to logback in the current environment
+        final LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
+
+        try
+        {
+            JoranConfigurator configurator = new JoranConfigurator();
+            configurator.setContext( lc );
+            // the context was probably already configured by default configuration
+            // rules
+            lc.reset();
+            configurator.doConfigure( Main.class.getClassLoader().getResourceAsStream( "logback-config.xml" ) );
+        }
+        catch ( JoranException je )
+        {
+            // StatusPrinter should handle this
+        }
+
+        logger.info( "" );
+        logger.info( "------------------------------------------------------------------------" );
+        logger.info( "Apache Cocoon 3" );
+        logger.info( "------------------------------------------------------------------------" );
+        logger.info( "" );
+
+        long start = System.currentTimeMillis();
+        int exit = 0;
+
+        Throwable error = null;
+        try
+        {
+            // FIXME add program execution
+        }
+        catch ( Throwable t )
+        {
+            exit = -1;
+            error = t;
+        }
+        finally
+        {
+            logger.info( "" );
+            logger.info( "------------------------------------------------------------------------" );
+            logger.info( "Apache Cocoon 3 {}", ( exit < 0 ) ? "FAILURE" : "SUCCESS" );
+
+            if ( exit < 0 )
+            {
+                logger.info( "" );
+
+                if ( options.isDebug() )
+                {
+                    logger.error( "Apache Cocoon 3 terminated with errors", error );
+                }
+                else
+                {
+                    logger.error( "Apache Cocoon 3 terminated with errors: {}", error.getMessage() );
+                }
+
+                logger.info( "" );
+            }
+
+            logger.info( "Total time: {}s", ( ( System.currentTimeMillis() - start ) / 1000 ) );
+            logger.info( "Finished at: {}", new Date() );
+
+            final Runtime runtime = Runtime.getRuntime();
+            final int megaUnit = 1024 * 1024;
+            logger.info( "Final Memory: {}M/{}M", ( runtime.totalMemory() - runtime.freeMemory() ) / megaUnit,
+                         runtime.totalMemory() / megaUnit );
+
+            logger.info( "------------------------------------------------------------------------" );
+
+            System.exit( exit );
+        }
+    }
+
+    private static final String getOsFamily()
+    {
+        String osName = System.getProperty( "os.name" ).toLowerCase();
+        String pathSep = System.getProperty( "path.separator" );
+
+        if ( osName.indexOf( "windows" ) != -1 )
+        {
+            return "windows";
+        }
+        else if ( osName.indexOf( "os/2" ) != -1 )
+        {
+            return "os/2";
+        }
+        else if ( osName.indexOf( "z/os" ) != -1 || osName.indexOf( "os/390" ) != -1 )
+        {
+            return "z/os";
+        }
+        else if ( osName.indexOf( "os/400" ) != -1 )
+        {
+            return "os/400";
+        }
+        else if ( pathSep.equals( ";" ) )
+        {
+            return "dos";
+        }
+        else if ( osName.indexOf( "mac" ) != -1 )
+        {
+            if ( osName.endsWith( "x" ) )
+            {
+                return "mac"; // MACOSX
+            }
+            return "unix";
+        }
+        else if ( osName.indexOf( "nonstop_kernel" ) != -1 )
+        {
+            return "tandem";
+        }
+        else if ( osName.indexOf( "openvms" ) != -1 )
+        {
+            return "openvms";
+        }
+        else if ( pathSep.equals( ":" ) )
+        {
+            return "unix";
+        }
+
+        return "undefined";
+    }
+
+}

Propchange: cocoon/cocoon3/trunk/cocoon-cli/src/main/java/org/apache/cocoon/cli/Main.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cocoon/cocoon3/trunk/cocoon-cli/src/main/java/org/apache/cocoon/cli/Main.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: cocoon/cocoon3/trunk/cocoon-cli/src/main/java/org/apache/cocoon/cli/Main.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain