Class ApplicationMain
- java.lang.Object
-
- ch.supertomcat.supertomcatutils.application.ApplicationMain
-
public abstract class ApplicationMain extends Object
Class for starting application
-
-
Field Summary
Fields Modifier and Type Field Description protected Set<String>additionalPathsAdditional Pathsprotected ImageapplicationIconApplication Iconprotected StringapplicationShortNameApplication Short Nameprotected booleanguiGUI Flagprotected Class<?>mainClassMain Classprotected Set<String>overwritablePathsPaths which can be overridden by directories.propertiesprotected List<Thread>shutdownHookThreadsShutdown Hook Threadsprotected booleansingleInstanceSingle Instance Flag
-
Constructor Summary
Constructors Constructor Description ApplicationMain(String applicationShortName, Image applicationIcon, boolean gui, boolean singleInstance, Class<?> mainClass)ConstructorApplicationMain(String applicationShortName, Image applicationIcon, boolean gui, boolean singleInstance, Class<?> mainClass, List<String> additionalPaths)ConstructorApplicationMain(String applicationShortName, Image applicationIcon, boolean gui, boolean singleInstance, Class<?> mainClass, List<String> additionalPaths, List<String> overwritablePaths)Constructor
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected voidaddDefaultShutdownHook()Add Default Shutdown Hook, which will call theshutdownHookExit()method.protected voidaddShutdownHook(Thread shutdownHookThread)Add Shutdown Hookprotected booleanchangeLookAndFeel(String lookAndFeelClassName)Change Look and Feelprotected voiddeleteOldLogFiles()Delete old log filesprotected voiddisplayStartupError(String message)Display Startup Errorprotected voidensureSingleInstance(String lockFileDirectory, String lockFilename)Ensure single instance by locking lock filevoidexit()Exit Application with exit code 0voidexit(boolean restart)Exit Application with exit code 0voidexit(int exitCode)Exit Applicationvoidexit(int exitCode, boolean restart)Exit Applicationprotected voidexitNow(int exitCode)Actually Exit Application nowprotected voidinitializeAdditionalPathProperties(String programUserDir)Initialize additional path propertiesprotected voidinitializeApplicationProperties()Initialize Application Properties from Application_Config.propertiesprotected voidinitializeJarFilenameAndApplicationPathProperties()Initialize JarFilename and ApplicationPath propertiesprotected voidinitializeLogging()Initialize Loggingprotected voidinitializeProfileAndLogsPathProperties(String programUserDir)Initialize ProfilePath and LogsPath propertiesprotected voidlogStartupError(String message, Throwable t)Log Startup Error to Basic Log Fileprotected abstract voidmain(String[] args)Start Application implemented by sub classprotected voidoverrideDirectoryProperties()Read the directories.txt from program folder if exists and override paths when definded in the fileprotected voidparseDefaultCommandLine(String[] args)Parse default command lineprotected PropertiesreadDirectoriesFile()The user can override the path of some directories.voidreleaseSingleInstanceLockFile()Release Single Instance Lock Fileprotected voidremoveAllShutdownHooks()Remove All Shutdown Hooks (which were previously added withaddShutdownHook(Thread)protected voidremoveShutdownHook(Thread shutdownHookThread)Remove Shutdown Hookprotected booleanrestartApplication()Restart Applicationprotected booleansetSystemLookAndFeel()Change Look and Feel to System LookAndFeelprotected voidshutdownHookExit()Method which is called when default shutdown hook was added withaddDefaultShutdownHook().voidstart(String[] args)Start Application
-
-
-
Field Detail
-
applicationShortName
protected final String applicationShortName
Application Short Name
-
applicationIcon
protected final Image applicationIcon
Application Icon
-
gui
protected final boolean gui
GUI Flag
-
singleInstance
protected final boolean singleInstance
Single Instance Flag
-
mainClass
protected final Class<?> mainClass
Main Class
-
overwritablePaths
protected final Set<String> overwritablePaths
Paths which can be overridden by directories.properties
-
-
Constructor Detail
-
ApplicationMain
public ApplicationMain(String applicationShortName, Image applicationIcon, boolean gui, boolean singleInstance, Class<?> mainClass)
Constructor- Parameters:
applicationShortName- Application Short Name (Only used for displaying or logging errors during startup)applicationIcon- Application Icon (Only used for displaying errors during startup) or nullgui- True if application is a GUI application, false otherwisesingleInstance- True if there should be only a single instance of the program running, false otherwisemainClass- Main Class (Used for loading resources and finding jar file)
-
ApplicationMain
public ApplicationMain(String applicationShortName, Image applicationIcon, boolean gui, boolean singleInstance, Class<?> mainClass, List<String> additionalPaths)
Constructor- Parameters:
applicationShortName- Application Short Name (Only used for displaying or logging errors during startup)applicationIcon- Application Icon (Only used for displaying errors during startup) or nullgui- True if application is a GUI application, false otherwisesingleInstance- True if there should be only a single instance of the program running, false otherwisemainClass- Main Class (Used for loading resources and finding jar file)additionalPaths- Additional Paths
-
ApplicationMain
public ApplicationMain(String applicationShortName, Image applicationIcon, boolean gui, boolean singleInstance, Class<?> mainClass, List<String> additionalPaths, List<String> overwritablePaths)
Constructor- Parameters:
applicationShortName- Application Short Name (Only used for displaying or logging errors during startup)applicationIcon- Application Icon (Only used for displaying errors during startup) or nullgui- True if application is a GUI application, false otherwisesingleInstance- True if there should be only a single instance of the program running, false otherwisemainClass- Main Class (Used for loading resources and finding jar file)additionalPaths- Additional PathsoverwritablePaths- Paths which can be overridden by directories.properties
-
-
Method Detail
-
start
public void start(String[] args)
Start Application- Parameters:
args- Arguments
-
exit
public void exit()
Exit Application with exit code 0
-
exit
public void exit(boolean restart)
Exit Application with exit code 0- Parameters:
restart- Restart Application
-
exit
public void exit(int exitCode)
Exit Application- Parameters:
exitCode- Exit Code
-
exit
public void exit(int exitCode, boolean restart)Exit Application- Parameters:
exitCode- Exit Coderestart- Restart Application
-
restartApplication
protected boolean restartApplication()
Restart Application- Returns:
- True if application could be restarted, false otherwise
-
exitNow
protected void exitNow(int exitCode)
Actually Exit Application now- Parameters:
exitCode- Exit Code
-
initializeApplicationProperties
protected void initializeApplicationProperties()
Initialize Application Properties from Application_Config.properties
-
initializeJarFilenameAndApplicationPathProperties
protected void initializeJarFilenameAndApplicationPathProperties()
Initialize JarFilename and ApplicationPath properties
-
initializeProfileAndLogsPathProperties
protected void initializeProfileAndLogsPathProperties(String programUserDir)
Initialize ProfilePath and LogsPath properties- Parameters:
programUserDir- Program User Directory
-
initializeAdditionalPathProperties
protected void initializeAdditionalPathProperties(String programUserDir)
Initialize additional path properties- Parameters:
programUserDir- Program User Directory
-
overrideDirectoryProperties
protected void overrideDirectoryProperties()
Read the directories.txt from program folder if exists and override paths when definded in the file
-
readDirectoriesFile
protected Properties readDirectoriesFile() throws IOException
The user can override the path of some directories. There must only be a textfile called directories.txt in the programm folder. A line in the file must look like this Name Path Name and Path must be seperated by a tab.- Returns:
- Properties or null if no file exists
- Throws:
IOException
-
initializeLogging
protected void initializeLogging()
Initialize Logging
-
parseDefaultCommandLine
protected void parseDefaultCommandLine(String[] args)
Parse default command line- Parameters:
args- Arguments
-
ensureSingleInstance
protected void ensureSingleInstance(String lockFileDirectory, String lockFilename)
Ensure single instance by locking lock file- Parameters:
lockFileDirectory- Lock File DirectorylockFilename- Lock Filename
-
releaseSingleInstanceLockFile
public void releaseSingleInstanceLockFile()
Release Single Instance Lock File
-
logStartupError
protected void logStartupError(String message, Throwable t)
Log Startup Error to Basic Log File- Parameters:
message- Messaget- Throwable
-
displayStartupError
protected void displayStartupError(String message)
Display Startup Error- Parameters:
message- Message
-
deleteOldLogFiles
protected void deleteOldLogFiles()
Delete old log files
-
setSystemLookAndFeel
protected boolean setSystemLookAndFeel()
Change Look and Feel to System LookAndFeel- Returns:
- True if successfull, false otherwise
-
changeLookAndFeel
protected boolean changeLookAndFeel(String lookAndFeelClassName)
Change Look and Feel- Parameters:
lookAndFeelClassName- LookAndFeel Class Name- Returns:
- True if successfull, false otherwise
-
addDefaultShutdownHook
protected void addDefaultShutdownHook()
Add Default Shutdown Hook, which will call theshutdownHookExit()method.
-
shutdownHookExit
protected void shutdownHookExit()
Method which is called when default shutdown hook was added withaddDefaultShutdownHook(). By default this method calls theexit()method.
-
addShutdownHook
protected void addShutdownHook(Thread shutdownHookThread)
Add Shutdown Hook- Parameters:
shutdownHookThread- Shutdown Hook Thread
-
removeShutdownHook
protected void removeShutdownHook(Thread shutdownHookThread)
Remove Shutdown Hook- Parameters:
shutdownHookThread- Shutdown Hook Thread
-
removeAllShutdownHooks
protected void removeAllShutdownHooks()
Remove All Shutdown Hooks (which were previously added withaddShutdownHook(Thread)
-
main
protected abstract void main(String[] args)
Start Application implemented by sub class- Parameters:
args- Arguments
-
-