--- a/themeinstaller/source/src/com/nokia/tools/themeinstaller/ui/ThemeInstaller.java Thu Aug 19 09:43:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,313 +0,0 @@
-/*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Standalone UI
- *
-*/
-
-
-package com.nokia.tools.themeinstaller.ui;
-
-import java.io.File;
-import java.io.IOException;
-import com.nokia.tools.themeinstaller.installationmanager.IInstallationListener;
-import com.nokia.tools.themeinstaller.installationmanager.InstallationManager;
-import com.nokia.tools.themeinstaller.installationmanager.InstallationParameters;
-import com.nokia.tools.themeinstaller.installationmanager.Lock;
-import com.nokia.tools.themeinstaller.installationmanager.ProgressEvent;
-import com.nokia.tools.themeinstaller.logger.LogWriter;
-
-public class ThemeInstaller
- {
-
- // CONSTANTS
- // Error message prefix
- private final static String ERROR_PREFIX = "*** ERROR: ";
-
- // Usage instructions
- private final static String USAGE =
- "\nUSAGE: ThemeInstaller manifest_file [destination_dir] [-option_1] [-option_n]\n" +
- "\nOptions:" +
- "\n -loc:<loc_settings_filename.xml> Enable localisation enhancements" +
- "\n -prop:<properties_filename.prop> Use external properties file instead of the default one" +
- "\n -log:<path> Path for log file" +
- "\n -log If no path given, the log is printed to console\n";
- //"\n -fixDTD Use if tool should attempt to fix errors in dtd\n";
-
-
- // Command line options
- private final static String OPTION_PREFIX = "-";
- private final static String LOC_OPTION = "loc:";
- private final static String PROP_OPTION = "prop:";
- private final static String LOG_PATH_OPTION = "log:";
- private final static String LOG_PATH_OPTION_NO_PATH = "log";
- private final static String FIX_INVALID_DTD_PARAMS = "fixDTD";
-
- // Lock object for waiting the install to complete
- private Lock iLock;
-
- // Manifest file
- protected String iManifest;
-
- // Destination directory
- protected String iDestination;
-
- // Localisation settings file
- protected String iLocSettings;
-
- // External properties file
- protected String iPropertiesFile;
-
- // Logging directory
- protected String iLogDir;
-
- /**
- * Application entry point
- * @param aArgs application arguments
- */
- public static void main( String[] aArgs )
- {
- ThemeInstaller instance = new ThemeInstaller();
- instance.install( aArgs );
- }
-
- /**
- * Constructor.
- */
- protected ThemeInstaller()
- {
- iLock = new Lock();
- }
-
- /**
- * Starts the installation process. Parses the arguments before
- * staring the installation.
- * @param aArgs Application arguments
- */
- protected void install( String[] aArgs )
- {
- try
- {
- parseArgs( aArgs );
- }
- catch( IllegalArgumentException iae )
- {
- //System.out.println( ERROR_PREFIX + iae.getMessage() );
- System.out.println("ThemeInstaller version 2.0.0");
- System.out.println("Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved");
- System.out.println("");
- System.out.println( USAGE );
- return;
- }
- catch ( IOException e )
- {
- System.out.println( ERROR_PREFIX + e.getMessage() );
- }
-
- try
- {
- doInstall();
- }
- catch ( Exception e )
- {
- String error = ERROR_PREFIX + "Installation failed: "
- + e.getMessage();
- if ( !LogWriter.getInstance().inConsoleMode() )
- {
- System.out.println( error );
- }
- LogWriter.getInstance().logSevere( error );
- }
- finally
- {
- LogWriter.closeInstance();
- }
- }
-
- /**
- * Execute the installation
- * @param aManifest theme manifest file name
- * @param aDestination destination directory
- * @throws Exception if installation fails
- */
- protected void doInstall() throws Exception
- {
- InstallationParameters params = new InstallationParameters(
- new File( iManifest ), new File( iDestination ) );
-
- LogWriter.getInstance().logInfo( "Starting Installer" );
- LogWriter.getInstance().logInfo( "Manifest file : " + iManifest );
- LogWriter.getInstance().logInfo( "Destination directory : " + iDestination );
-
- if( iLocSettings != null )
- {
- params.setLocSettings( new File( iLocSettings ) );
- LogWriter.getInstance().logInfo( "Settings file : " + params.getLocSettings().getPath() );
- }
- if( iPropertiesFile != null )
- {
- params.setPropFile( new File ( iPropertiesFile ) );
- LogWriter.getInstance().logInfo( "Properties file : " + params.getPropFile().getPath() );
- }
-
- IInstallationListener listener = new IInstallationListener()
- {
- public void installationCompleted( ProgressEvent aEvent )
- {
- if( aEvent.getError() == IInstallationListener.NO_ERROR )
- {
- if ( !LogWriter.getInstance().inConsoleMode() )
- {
- System.out.println( "Installation done." );
- }
- LogWriter.getInstance().logInfo( "Installation done" );
- }
- else
- {
- String error = ERROR_PREFIX
- + "Installation failed, error: "
- + aEvent.getError() + ", "
- + aEvent.getMessage();
- if ( !LogWriter.getInstance().inConsoleMode() )
- {
- System.out.println( error );
- }
- LogWriter.getInstance().logSevere( error );
- }
-
- // release lock
- iLock.unLock();
- }
-
- public void installationProgress( ProgressEvent aEvent )
- {
- if( aEvent.getState() == IInstallationListener.STATE_PARSED )
- {
- String message = "Resource files parsing done,";
- if( aEvent.getError() != IInstallationListener.NO_ERROR ) {
- message += " error: " + aEvent.getError() + ",";
- }
- message += " theme: "
- + aEvent.getName() + ", language: "
- + aEvent.getLanguage();
-
-
- if ( !LogWriter.getInstance().inConsoleMode() )
- {
- System.out.println( message );
- }
- LogWriter.getInstance().logInfo( message );
- }
- else if ( aEvent.getState() == IInstallationListener.STATE_WRITED )
- {
- String message = "Installed ODT: "
- + aEvent.getFileName();
- if ( !LogWriter.getInstance().inConsoleMode() )
- {
- System.out.println( message );
- }
- LogWriter.getInstance().logInfo( message );
- }
- }
- };
-
- InstallationManager i = new InstallationManager( params, listener );
- i.startInstallation();
-
- // wait for finalization
- iLock.lock();
- }
-
- /**
- * Parse command line arguments.
- * @param aArgs Command line arguments
- * @throws IllegalArgumentException if mandatory command line parameters
- * are not defined
- * @throws IOException Signals that an I/O exception has occurred.
- */
- protected void parseArgs( String[] aArgs ) throws IllegalArgumentException,
- IOException
- {
- // Print usage information if mandatory arguments were not specified
- if( aArgs.length == 0 )
- {
- throw new IllegalArgumentException( "No command line arguments" );
- }
-
- // Resolve manifest file name and destination directory
- iManifest = aArgs[ 0 ];
- if( aArgs.length > 1 &&
- !aArgs[ 1 ].startsWith( OPTION_PREFIX ) )
- {
- iDestination = aArgs[ 1 ];
- }
- else
- {
- // If no destination directory is specified, use the current dir
- iDestination = System.getProperty( "user.dir" );
- }
-
- // Parse the options
- for( int i = 1; i < aArgs.length; i++ )
- {
- //fix DTD
- String opt = OPTION_PREFIX + FIX_INVALID_DTD_PARAMS;
- if ( aArgs[ i ].toLowerCase().startsWith( opt.toLowerCase() )) {
- InstallationManager.setFixDTD(true);
- }
-
- // Localisation settings
- opt = OPTION_PREFIX + LOC_OPTION;
- if( aArgs[ i ].startsWith( opt ) )
- {
- iLocSettings = aArgs[ i ].substring( opt.length() );
- if( iLocSettings.length() == 0 )
- {
- throw new IllegalArgumentException( "No localisation settings file defined with the option" );
- }
- }
- // External properties file
- opt = OPTION_PREFIX + PROP_OPTION;
- if( aArgs[ i ].startsWith( opt ) )
- {
- iPropertiesFile = aArgs[ i ].substring( opt.length() );
- if( iPropertiesFile.length() == 0 )
- {
- throw new IllegalArgumentException( "No external properties file name defined with the option" );
- }
- }
- // Logging without path (option "-log")
- opt = OPTION_PREFIX + LOG_PATH_OPTION_NO_PATH;
- if ( aArgs[ i ].equals( opt ) )
- {
- // No logging file defined
- LogWriter.initialize( null );
- }
- // Logging with path or with option "-log:"
- opt = OPTION_PREFIX + LOG_PATH_OPTION;
- if ( aArgs[ i ].startsWith( opt ) )
- {
- iLogDir = aArgs[ i ].substring( opt.length() );
- if ( iLogDir.length() == 0 )
- {
- // No logging file defined
- LogWriter.initialize( null );
- }
- else
- {
- LogWriter.initialize( new File( iLogDir ) );
- }
- }
- }
- }
- }