Class Boot


  • public final class Boot
    extends java.lang.Object
    Main class to get JPF based application running in different modes. Application mode may be specified as jpf.boot.mode configuration parameter or System property (via -Djpf.boot.mode= command line argument). Supported values are:
    start
    Runs application in "background" ("service") mode.
    stop
    Stops application, running in "background" mode.
    restart
    Restarts application, running in "background" mode. If it is not started, the action is the same as just starting application.
    shell
    Runs application in "shell" (or "interactive") mode. It is possible to control "service" style application from command line. Note, that already running application will be stopped first.
    load
    Only loads application but not starts it as in other modes. This mode is useful when doing application unit testing or when you only need to get initialized and ready to be started JPF environment.
    The "shell" mode is default. Application will be started in this mode if no jpf.boot.mode configuration parameter can be found.

    Application configuration is expected to be in Java properties format file. File look-up procedure is the following:

    • Check jpf.boot.config System property, if present, load configuration from that location
    • Look for boot.properties file in the current folder.
    • Look for boot.properties resource in classpath (using Boot.class.getClassLoader().getResource("boot.properties") and Boot.class.getResource("boot.properties") methods).

    If configuration could not be found, a warning will be printed to console. It is generally not an error to not use configuration file, you may provide JPF configuration parameters as System properties. They are always used as defaults for configuration properties.

    Note that configuration properties will be loaded using specially extended version of Properties class, which supports parameters substitution. If there is no applicationRoot property available in the given configuration, the current folder will be published as default value.

    Standard configuration parameters are (all are optional when application is running in "shell" mode):

    jpf.boot.mode
    Application boot mode. Always available as System property also. Default value is shell.
    org.java.plugin.boot.appInitializer
    Application initializer class, for details see ApplicationInitializer. Default is DefaultApplicationInitializer.
    org.java.plugin.boot.errorHandler
    Error handler class, for details see BootErrorHandler. Default is BootErrorHandlerConsole for "service" style applications and BootErrorHandlerGui for "interactive" applications.
    org.java.plugin.boot.controlHost
    Host to be used by background control service, no default values.
    org.java.plugin.boot.controlPort
    Port number to be used by background control service, no default values.
    org.java.plugin.boot.splashHandler
    Splash screen handler class, for details see SplashHandler. Default is simple splash handler that can only display an image.
    org.java.plugin.boot.splashImage
    Path to an image file to be shown as splash screen. This may be any valid URL. If no file and no handler given, the splash screen will not be shown.
    org.java.plugin.boot.splashLeaveVisible
    If set to true, the Boot class will not hide splash screen at the end of boot procedure but delegate this function to application code. Default value is false.
    org.java.plugin.boot.splashDisposeOnHide
    If set to false, the Boot class will not dispose splash screen handler when hiding it. This allows you to reuse handler and show splash screen back after it was hidden. Default value is true.
    Version:
    $Id$
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String BOOT_ERROR_FILE_NAME
      Name of the file, where to put boot error details.
      static java.lang.String BOOT_MODE_LOAD
      "load" mode boot command value.
      static java.lang.String BOOT_MODE_RESTART
      "restart" mode boot command value.
      static java.lang.String BOOT_MODE_SHELL
      "shell" mode boot command value.
      static java.lang.String BOOT_MODE_START
      "start" mode boot command value.
      static java.lang.String BOOT_MODE_STOP
      "stop" mode boot command value.
      static java.lang.String PROP_BOOT_CONFIG
      Boot configuration file location System property name.
      static java.lang.String PROP_BOOT_MODE
      Boot mode System property name.
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static Application boot​(ExtendedProperties config, boolean useControlService, java.lang.String mode, BootErrorHandler errorHandler, java.lang.String[] args)
      Boots application according to given configuration data.
      static SplashHandler getSplashHandler()
      Returns current instance of splash screen handler if it is available or null.
      static void main​(java.lang.String[] args)
      Call this method to start/stop application.
      static void setSplashHandler​(SplashHandler handler)  
      static void stopApplication​(Application application)
      Stops the application, shuts down plug-in manager and disposes log service.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • BOOT_ERROR_FILE_NAME

        public static final java.lang.String BOOT_ERROR_FILE_NAME
        Name of the file, where to put boot error details.
        See Also:
        Constant Field Values
      • PROP_BOOT_CONFIG

        public static final java.lang.String PROP_BOOT_CONFIG
        Boot configuration file location System property name.
        See Also:
        Constant Field Values
      • PROP_BOOT_MODE

        public static final java.lang.String PROP_BOOT_MODE
        Boot mode System property name.
        See Also:
        Constant Field Values
      • BOOT_MODE_SHELL

        public static final java.lang.String BOOT_MODE_SHELL
        "shell" mode boot command value.
        See Also:
        Constant Field Values
      • BOOT_MODE_START

        public static final java.lang.String BOOT_MODE_START
        "start" mode boot command value.
        See Also:
        Constant Field Values
      • BOOT_MODE_STOP

        public static final java.lang.String BOOT_MODE_STOP
        "stop" mode boot command value.
        See Also:
        Constant Field Values
      • BOOT_MODE_RESTART

        public static final java.lang.String BOOT_MODE_RESTART
        "restart" mode boot command value.
        See Also:
        Constant Field Values
      • BOOT_MODE_LOAD

        public static final java.lang.String BOOT_MODE_LOAD
        "load" mode boot command value.
        See Also:
        Constant Field Values
    • Method Detail

      • boot

        public static Application boot​(ExtendedProperties config,
                                       boolean useControlService,
                                       java.lang.String mode,
                                       BootErrorHandler errorHandler,
                                       java.lang.String[] args)
                                throws java.lang.Exception
        Boots application according to given configuration data.
        Parameters:
        config - boot configuration data
        useControlService - if true, the control service will started to allow handling application instance from another process
        mode - application run mode
        errorHandler - boot errors handler instance
        args - command line arguments, not interpreted by this method but passed to ApplicationPlugin.initApplication(ExtendedProperties, String[]) method
        Returns:
        initialized application instance or null
        Throws:
        java.lang.Exception - if any un-handled error has occurred
      • stopApplication

        public static void stopApplication​(Application application)
                                    throws java.lang.Exception
        Stops the application, shuts down plug-in manager and disposes log service. Call this method before exiting interactive application. For service applications this method will be called automatically by control service or from shell.
        Parameters:
        application - application instance being stopped
        Throws:
        java.lang.Exception - if any error has occurred during application stopping
      • getSplashHandler

        public static SplashHandler getSplashHandler()
        Returns current instance of splash screen handler if it is available or null.
        Returns:
        instance of splash handler or null if no active instance available
      • setSplashHandler

        public static void setSplashHandler​(SplashHandler handler)
        Parameters:
        handler - the new splash handler instance to set or null to dispose current handler directly