net.yagga.miniinstaller
Class MiniInstaller

java.lang.Object
  |
  +--net.yagga.miniinstaller.MiniInstaller
All Implemented Interfaces:
FinalExecuter

public class MiniInstaller
extends java.lang.Object
implements FinalExecuter

Title: MiniInstaller

Description:

Copyright: Copyright (c) 2002

Company: Yagga Soft

Main class of the MiniInstaller software. It is the engine of everything. Reads config file and execute step by step the installer. If installation is graphical, uses classes in package net.yagga.miniinstaller.gui

Author:
Walter Gamba
See Also:
InstallFrame

Inner Class Summary
private  class MiniInstaller.Copier
          Inner class thath handles copying of a file in a separate thread, notifying main class (or user) of its progresses.
private  class MiniInstaller.MiniFileFilter
          Class that defines a simple filename filter, it is only for files and discards automatically directories.
private  class MiniInstaller.Unzipper
          Simple class that handles unsipping in a separate thread.
 
Field Summary
private  boolean console
          global flags etc..
(package private)  MiniInstaller.Copier copier
           
private  int currCommand
           
private  boolean debug
           
private  java.util.Vector dirsCreated
           
private  java.util.Vector filesWritten
           
(package private)  InstallFrame frame
           
private  boolean inputting
           
private  java.lang.String inVarName
           
private  int maxCmds
           
private  java.lang.String shellCommand
           
(package private)  ScriptReader sr
           
private  boolean stripLastNewLine
           
static int UNZIP_DONE
           
(package private)  MiniInstaller.Unzipper unzipper
           
(package private)  java.util.HashMap vars
          variables
private  boolean wait
           
 
Constructor Summary
MiniInstaller(java.lang.String scriptFile)
          Main entry point in the installer.
MiniInstaller(java.lang.String command, java.lang.String[] args)
          Deprecated. use it only to debug MiniInstaller
 
Method Summary
 void back()
           
private  void cleanup()
           
private  void close()
          methods of flux control
private  void doAlert(java.lang.String msg)
           
private  void doAlert(java.lang.String msg, boolean block)
          display an alert message, blocking or not
private  void doAlertConsole(java.lang.String msg)
           
private  void doChangeLookAndFeel(java.lang.String laf)
           
private  void doCopy(java.lang.String src, java.lang.String filter, java.lang.String dest)
          Does copy of files from srcdir to dest dir givena a simple filename filter.
private  void doDisplay(java.lang.String msgFile)
           
private  void doDisplayConsole(java.lang.String msgFile)
           
private  void doExecJar(java.lang.String jarFile, java.lang.String[] params)
          Execute a JAr file and displays any Standard output generated by the jar file.
private  void doExecJarMethod(java.lang.String jarFile, java.lang.String className, java.lang.String method, java.lang.String[] params)
           
private  void doExecJava(java.lang.String className, java.lang.String method, java.lang.String[] params)
           
private  void doFinal(java.lang.String msg, java.lang.String title, java.lang.String shellCommand, java.lang.String shellCaption)
          call final state..
private  void doHide()
           
private  void doInput(java.lang.String title, java.lang.String msg, java.lang.String varName, java.lang.String defValue)
           
private  void doInputConsole(java.lang.String title, java.lang.String msg, java.lang.String varName)
           
private  void doInputDir(java.lang.String title, java.lang.String msg, java.lang.String varName, java.lang.String defValue)
           
private  void doInputFile(java.lang.String title, java.lang.String msg, java.lang.String varName, java.lang.String defValue)
           
private  void doSet(java.lang.String varName, java.lang.String value)
           
private  void doSetCol(java.lang.String what, java.lang.String r, java.lang.String g, java.lang.String b)
           
private  void doSetDims(java.lang.String x, java.lang.String y)
          meta command for the isntaller found in install.conf
private  void doSetFont(java.lang.String font, java.lang.String face, java.lang.String style, java.lang.String size)
           
private  void doSetName(java.lang.String n)
           
 void doSetTitle(java.lang.String title)
           
private  void doShow()
           
private  void doShow(java.lang.String imgFile)
           
private  void doStart(java.lang.String title, java.lang.String msgOrImg, boolean isImage)
           
private  void doStep()
          utils
private  void doStepVisible(boolean show)
           
private  void doUnzip(java.lang.String descr, java.lang.String zipFile, java.lang.String destDir)
           
private  java.lang.String doVarSubst(java.lang.String strWithVar)
           
private  void doWrite(java.lang.String title, java.lang.String msg)
           
private  void doWrite(java.lang.String title, java.lang.String msg, boolean go)
           
private  void doWriteConsole(java.lang.String msg)
           
private  java.lang.String execJar(java.lang.String jarFile, java.lang.String[] args)
           
private  java.lang.String execJarMethod(java.lang.String jarFile, java.lang.String className, java.lang.String method, java.lang.String[] args)
          Execute a static jar Method inside a Jar.
private  void execJavaMain(java.lang.String className, java.lang.String[] args)
           
private  java.lang.String execJavaMethod(java.lang.String className, java.lang.String method, java.lang.String[] args)
           
private  boolean execute(ScriptCommand cmd)
          Executes a SCriptCommand and tells if engine should execute immediately again or wait. returns continue or not continue: call again or not??
private  void executeShellCommand(java.lang.String shellCommand)
          Executes a shell command.
 void executeShellOnExit(boolean execute)
           
 void exit()
          Called as last step.
 Step[] getSteps()
           
private  java.lang.String getVar(java.lang.String varName)
           
 void goOn()
           
private  void importVector(java.util.Vector container, java.util.Vector imported)
          Adds elements of a vector toanother vector
 void initExecute()
           
private  void initPredefinedVars()
           
 boolean isLastStep()
           
static void main(java.lang.String[] argv)
          Entry point in the program.
private  java.lang.String returnValueToString(java.lang.Object ret)
          Transform a return value, be it array or arrays or simple value, to a String
private  void setDims(int x, int y)
           
private  void setVar(java.lang.String varName, java.lang.String value)
           
private  void stepBackExecute(ScriptReader sr)
           
private  void stepExecute(ScriptReader sr)
           
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

console

private boolean console
global flags etc..

debug

private boolean debug

stripLastNewLine

private boolean stripLastNewLine

vars

java.util.HashMap vars
variables

UNZIP_DONE

public static final int UNZIP_DONE

filesWritten

private java.util.Vector filesWritten

dirsCreated

private java.util.Vector dirsCreated

copier

MiniInstaller.Copier copier

unzipper

MiniInstaller.Unzipper unzipper

shellCommand

private java.lang.String shellCommand

sr

ScriptReader sr

frame

InstallFrame frame

wait

private boolean wait

inputting

private boolean inputting

inVarName

private java.lang.String inVarName

currCommand

private int currCommand

maxCmds

private int maxCmds
Constructor Detail

MiniInstaller

public MiniInstaller(java.lang.String command,
                     java.lang.String[] args)
Deprecated. use it only to debug MiniInstaller

Dirty entry point in miniInstaller Use it to test specific commands. It is console only, and debug On.
Parameters:
command - a command (as it is written in the script file)
args - command arguments. An array of Strings

MiniInstaller

public MiniInstaller(java.lang.String scriptFile)
Main entry point in the installer.
Parameters:
scriptFile - a script file containig Commands to display the Installer
Method Detail

main

public static void main(java.lang.String[] argv)
Entry point in the program. It reads commands from a configuration file, or it can be used as a debug (console) tool. To use it as debug pass 2 or more parameters:
1) Command name, as it appear in a script file (COPY, EXEC_JAVA..) 2...n) command parameters
Parameters:
argv -  

initPredefinedVars

private void initPredefinedVars()

initExecute

public void initExecute()

stepExecute

private void stepExecute(ScriptReader sr)

stepBackExecute

private void stepBackExecute(ScriptReader sr)

execute

private boolean execute(ScriptCommand cmd)
Executes a SCriptCommand and tells if engine should execute immediately again or wait. returns continue or not continue: call again or not?? default =false (halt);
Parameters:
cmd - the ScriptCommand we want to execute
Returns:
true or false if the engin should continue or wait user input. Atn the moment it returns true for Meta commands, false otherwise.

getSteps

public Step[] getSteps()

doStep

private void doStep()
utils

doVarSubst

private java.lang.String doVarSubst(java.lang.String strWithVar)

setVar

private void setVar(java.lang.String varName,
                    java.lang.String value)

getVar

private java.lang.String getVar(java.lang.String varName)

doSetName

private void doSetName(java.lang.String n)

doSetCol

private void doSetCol(java.lang.String what,
                      java.lang.String r,
                      java.lang.String g,
                      java.lang.String b)

doSetFont

private void doSetFont(java.lang.String font,
                       java.lang.String face,
                       java.lang.String style,
                       java.lang.String size)
Parameters:
font -  
face -  
style - as per Font.BOLD, Font.ITALIC or PLAIN: Bold is 1, Italic 2, Plain is 0
size -  

doFinal

private void doFinal(java.lang.String msg,
                     java.lang.String title,
                     java.lang.String shellCommand,
                     java.lang.String shellCaption)
call final state..
Parameters:
msg -  
title -  
shellCommand -  
shellCaption -  

doWrite

private void doWrite(java.lang.String title,
                     java.lang.String msg)

doWrite

private void doWrite(java.lang.String title,
                     java.lang.String msg,
                     boolean go)

doStart

private void doStart(java.lang.String title,
                     java.lang.String msgOrImg,
                     boolean isImage)

doWriteConsole

private void doWriteConsole(java.lang.String msg)

doAlert

private void doAlert(java.lang.String msg)

doAlert

private void doAlert(java.lang.String msg,
                     boolean block)
display an alert message, blocking or not

doAlertConsole

private void doAlertConsole(java.lang.String msg)

doDisplay

private void doDisplay(java.lang.String msgFile)

doDisplayConsole

private void doDisplayConsole(java.lang.String msgFile)

doChangeLookAndFeel

private void doChangeLookAndFeel(java.lang.String laf)

doShow

private void doShow(java.lang.String imgFile)

doSet

private void doSet(java.lang.String varName,
                   java.lang.String value)

doUnzip

private void doUnzip(java.lang.String descr,
                     java.lang.String zipFile,
                     java.lang.String destDir)

doInput

private void doInput(java.lang.String title,
                     java.lang.String msg,
                     java.lang.String varName,
                     java.lang.String defValue)

doInputFile

private void doInputFile(java.lang.String title,
                         java.lang.String msg,
                         java.lang.String varName,
                         java.lang.String defValue)

doInputDir

private void doInputDir(java.lang.String title,
                        java.lang.String msg,
                        java.lang.String varName,
                        java.lang.String defValue)

doInputConsole

private void doInputConsole(java.lang.String title,
                            java.lang.String msg,
                            java.lang.String varName)

doExecJarMethod

private void doExecJarMethod(java.lang.String jarFile,
                             java.lang.String className,
                             java.lang.String method,
                             java.lang.String[] params)

doExecJava

private void doExecJava(java.lang.String className,
                        java.lang.String method,
                        java.lang.String[] params)

doExecJar

private void doExecJar(java.lang.String jarFile,
                       java.lang.String[] params)
Execute a JAr file and displays any Standard output generated by the jar file. The value containig all the standard output generated by the application contained in the jar file is displayed.
Parameters:
jarFile - the name of the jar file. A path relative to MiniInstaller base dir
params - an array of strings as it is to be passed to the "main" mehtod of the "Main-Class" of the jar file. The main class is the main class as specified in the manifest file.

execJavaMethod

private java.lang.String execJavaMethod(java.lang.String className,
                                        java.lang.String method,
                                        java.lang.String[] args)

execJavaMain

private void execJavaMain(java.lang.String className,
                          java.lang.String[] args)

execJar

private java.lang.String execJar(java.lang.String jarFile,
                                 java.lang.String[] args)

execJarMethod

private java.lang.String execJarMethod(java.lang.String jarFile,
                                       java.lang.String className,
                                       java.lang.String method,
                                       java.lang.String[] args)
Execute a static jar Method inside a Jar.
Parameters:
jarFile - the name of the jar file
className - the class name. If it is null, it retrieves mainclass as stored in the manifest file
method - method name. Cannot be null.
args -  
Returns:
a String containing the return value of he method, as a String

returnValueToString

private java.lang.String returnValueToString(java.lang.Object ret)
Transform a return value, be it array or arrays or simple value, to a String
Parameters:
ret - an Object, this can be an array or not.

doCopy

private void doCopy(java.lang.String src,
                    java.lang.String filter,
                    java.lang.String dest)
Does copy of files from srcdir to dest dir givena a simple filename filter. It simply starts a Copier thread
Parameters:
src - the src directory
filter - a msimple filter. FIlters are very simple.. just one single "*" in the filter. For further details see @see Copier
dest - the destination directory
See Also:
MiniInstaller.Copier

close

private void close()
methods of flux control

cleanup

private void cleanup()

exit

public void exit()
Called as last step. Does cleaning, if necessary, via close() && cleanup() and calls any external shell commands..

back

public void back()

isLastStep

public boolean isLastStep()

goOn

public void goOn()

executeShellCommand

private void executeShellCommand(java.lang.String shellCommand)
Executes a shell command.
Parameters:
shellCommand - a shell commands.. a string containig the name of the command (process) to invoke, and any further parameters. It does not wait for the spawned process to exit.. Callback from InstallFrame

doSetDims

private void doSetDims(java.lang.String x,
                       java.lang.String y)
meta command for the isntaller found in install.conf

doStepVisible

private void doStepVisible(boolean show)

doHide

private void doHide()

doShow

private void doShow()

setDims

private void setDims(int x,
                     int y)

doSetTitle

public void doSetTitle(java.lang.String title)

importVector

private void importVector(java.util.Vector container,
                          java.util.Vector imported)
Adds elements of a vector toanother vector
Parameters:
container - the container vector
imported - the Vector to import into the container

executeShellOnExit

public void executeShellOnExit(boolean execute)
Specified by:
executeShellOnExit in interface FinalExecuter