com.vladium.emma.rt
Class AppRunner

java.lang.Object
  extended bycom.vladium.emma.Processor
      extended bycom.vladium.emma.rt.AppRunner
All Implemented Interfaces:
IAppErrorCodes

public final class AppRunner
extends Processor
implements IAppErrorCodes

Author:
Vlad Roubtsov, (C) 2003

Nested Class Summary
private static class AppRunner.AppRunnerExitHook
           
private static class AppRunner.Invoker
           
 
Field Summary
protected static java.lang.String COMMA_DELIMITERS
           
private static java.lang.Class[] EXPECTED_FAILURES
           
private static java.lang.String[] FORCED_DELEGATION_FILTER_SPECS
           
private static boolean INIT_AT_LOAD_TIME
           
private static int INIT_CACHE_CAPACITY
           
private  java.lang.String[] m_appArgs
           
private  java.lang.String m_appClassName
           
private  boolean m_canonical
           
private  IInclExclFilter m_coverageFilter
           
private  java.io.File[] m_coveragePath
           
private  java.lang.ClassLoader m_delegate
           
private  boolean m_dumpSessionData
           
private  IReportGenerator[] m_reportGenerators
           
private  boolean m_scanCoveragePath
           
private  java.io.File m_sdataOutFile
           
private  java.lang.Boolean m_sdataOutMerge
           
private  java.io.File[] m_sourcePath
           
private static java.lang.Class[] MAIN_TYPE
           
protected static java.lang.String PATH_DELIMITERS
           
private static boolean SET_CURRENT_CONTEXT_LOADER
           
private static int SOFT_CACHE_READ_CHK_FREQUENCY
           
private static int SOFT_CACHE_WRITE_CHK_FREQUENCY
           
private static boolean USE_SOFT_CACHE
           
 
Fields inherited from class com.vladium.emma.Processor
m_appName, m_log, m_propertyOverrides
 
Fields inherited from interface com.vladium.emma.IAppErrorCodes
ARGS_IO_FAILURE, CLASS_STAMP_MISMATCH, INSTR_IO_FAILURE, INVALID_COLUMN_NAME, INVALID_PARAMETER_VALUE, MAIN_CLASS_BAD_DELEGATION, MAIN_CLASS_LOAD_FAILURE, MAIN_CLASS_NOT_FOUND, MAIN_METHOD_FAILURE, MAIN_METHOD_NOT_FOUND, OUT_IO_FAILURE, OUT_MKDIR_FAILURE, REPORT_GEN_FAILURE, REPORT_IO_FAILURE, REQUIRED_PARAMETER_MISSING, SECURITY_RESTRICTION, UNEXPECTED_FAILURE
 
Constructor Summary
private AppRunner(java.lang.ClassLoader delegate)
           
 
Method Summary
protected  void _run(IProperties toolProperties)
           
static AppRunner create(java.lang.ClassLoader delegate)
           
private static void joinNonDeamonThreads(java.lang.ThreadGroup group)
           
 void run()
           
 void setAppClass(java.lang.String className, java.lang.String[] args)
           
 void setCoveragePath(java.lang.String[] path, boolean canonical)
           
 void setDumpSessionData(boolean dump)
           
 void setInclExclFilter(java.lang.String[] specs)
           
 void setReportTypes(java.lang.String[] types)
           
 void setScanCoveragePath(boolean scan)
           
 void setSessionOutFile(java.lang.String fileName)
           
 void setSessionOutMerge(java.lang.Boolean merge)
           
 void setSourcePath(java.lang.String[] path)
           
protected  void validateState()
           
private static java.lang.RuntimeException wrapFailure(java.lang.Throwable t)
           
 
Methods inherited from class com.vladium.emma.Processor
setAppName, setPropertyOverrides, setPropertyOverrides
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_delegate

private final java.lang.ClassLoader m_delegate

m_appClassName

private java.lang.String m_appClassName

m_appArgs

private java.lang.String[] m_appArgs

m_coveragePath

private java.io.File[] m_coveragePath

m_canonical

private boolean m_canonical

m_scanCoveragePath

private boolean m_scanCoveragePath

m_coverageFilter

private IInclExclFilter m_coverageFilter

m_dumpSessionData

private boolean m_dumpSessionData

m_sdataOutFile

private java.io.File m_sdataOutFile

m_sdataOutMerge

private java.lang.Boolean m_sdataOutMerge

m_reportGenerators

private IReportGenerator[] m_reportGenerators

m_sourcePath

private java.io.File[] m_sourcePath

INIT_AT_LOAD_TIME

private static final boolean INIT_AT_LOAD_TIME
See Also:
Constant Field Values

SET_CURRENT_CONTEXT_LOADER

private static final boolean SET_CURRENT_CONTEXT_LOADER
See Also:
Constant Field Values

USE_SOFT_CACHE

private static final boolean USE_SOFT_CACHE
See Also:
Constant Field Values

INIT_CACHE_CAPACITY

private static final int INIT_CACHE_CAPACITY
See Also:
Constant Field Values

SOFT_CACHE_READ_CHK_FREQUENCY

private static final int SOFT_CACHE_READ_CHK_FREQUENCY
See Also:
Constant Field Values

SOFT_CACHE_WRITE_CHK_FREQUENCY

private static final int SOFT_CACHE_WRITE_CHK_FREQUENCY
See Also:
Constant Field Values

FORCED_DELEGATION_FILTER_SPECS

private static final java.lang.String[] FORCED_DELEGATION_FILTER_SPECS

MAIN_TYPE

private static final java.lang.Class[] MAIN_TYPE

EXPECTED_FAILURES

private static final java.lang.Class[] EXPECTED_FAILURES

COMMA_DELIMITERS

protected static final java.lang.String COMMA_DELIMITERS
See Also:
Constant Field Values

PATH_DELIMITERS

protected static final java.lang.String PATH_DELIMITERS
Constructor Detail

AppRunner

private AppRunner(java.lang.ClassLoader delegate)
Method Detail

create

public static AppRunner create(java.lang.ClassLoader delegate)

run

public void run()
Overrides:
run in class Processor

setCoveragePath

public void setCoveragePath(java.lang.String[] path,
                            boolean canonical)
Parameters:
path - [null is equivalent to empty array]
canonical -

setScanCoveragePath

public void setScanCoveragePath(boolean scan)

setSourcePath

public void setSourcePath(java.lang.String[] path)
Parameters:
path - [null is equivalent to no source path]

setInclExclFilter

public final void setInclExclFilter(java.lang.String[] specs)
Parameters:
specs - [null is equivalent to no filtering (everything is included)]

setAppClass

public void setAppClass(java.lang.String className,
                        java.lang.String[] args)
Parameters:
className - [may not be null or empty]
args - [null is equivalent to an empty array]

setDumpSessionData

public void setDumpSessionData(boolean dump)

setSessionOutFile

public final void setSessionOutFile(java.lang.String fileName)
Parameters:
fileName - [null unsets the previous override setting]

setSessionOutMerge

public final void setSessionOutMerge(java.lang.Boolean merge)
Parameters:
merge - [null unsets the previous override setting]

setReportTypes

public void setReportTypes(java.lang.String[] types)
Parameters:
types - [may not be null]

validateState

protected void validateState()
Overrides:
validateState in class Processor

_run

protected void _run(IProperties toolProperties)
Specified by:
_run in class Processor

joinNonDeamonThreads

private static void joinNonDeamonThreads(java.lang.ThreadGroup group)

wrapFailure

private static java.lang.RuntimeException wrapFailure(java.lang.Throwable t)