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