org.pentaho.reporting.libraries.base.boot
Class AbstractBoot

java.lang.Object
  extended by org.pentaho.reporting.libraries.base.boot.AbstractBoot
All Implemented Interfaces:
SubSystem
Direct Known Subclasses:
LibBaseBoot

public abstract class AbstractBoot
extends java.lang.Object
implements SubSystem

The common base for all Boot classes.

This initializes the subsystem and all dependent subsystems. Implementors of this class have to provide a public static getInstance() method which returns a singleton instance of the booter implementation.

Further creation of Boot object should be prevented using protected or private constructors in that class, or proper singleton behaviour cannot be guaranteed.

Author:
Thomas Morgner

Constructor Summary
protected AbstractBoot()
          Default constructor.
 
Method Summary
protected  Configuration createDefaultHierarchicalConfiguration(java.lang.String staticConfig, java.lang.String userConfig, boolean addSysProps, java.lang.Class source)
          Creates a default configuration setup, which loads its settings from the static configuration (defaults provided by the developers of the library) and the user configuration (settings provided by the deployer).
 java.lang.Exception getBootFailureReason()
          Returns the failure reason for the boot process.
 ExtendedConfiguration getExtendedConfig()
          Returns the global configuration as extended configuration.
 Configuration getGlobalConfig()
          Returns the global configuration.
 PackageManager getPackageManager()
          Returns the packageManager instance of the package manager.
protected abstract  ProjectInformation getProjectInfo()
          Returns the project info.
 boolean isBootDone()
          Checks, whether the booting is complete.
 boolean isBootFailed()
          Checks whether the booting failed.
 boolean isBootInProgress()
          Checks, whether the booting is in progress.
protected  AbstractBoot loadBooter(java.lang.String classname)
          Loads the specified booter implementation.
static AbstractBoot loadBooter(java.lang.String classname, java.lang.Class source)
           
protected abstract  Configuration loadConfiguration()
          Loads the configuration.
protected abstract  void performBoot()
          Performs the boot.
 void start()
          Starts the boot process.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractBoot

protected AbstractBoot()
Default constructor.

Method Detail

getPackageManager

public PackageManager getPackageManager()
Returns the packageManager instance of the package manager.

Specified by:
getPackageManager in interface SubSystem
Returns:
The package manager.

getGlobalConfig

public Configuration getGlobalConfig()
Returns the global configuration.

Specified by:
getGlobalConfig in interface SubSystem
Returns:
The global configuration.

isBootInProgress

public final boolean isBootInProgress()
Checks, whether the booting is in progress.

Returns:
true, if the booting is in progress, false otherwise.

isBootDone

public final boolean isBootDone()
Checks, whether the booting is complete.

Returns:
true, if the booting is complete, false otherwise.

loadConfiguration

protected abstract Configuration loadConfiguration()
Loads the configuration. This will be called exactly once.

Returns:
The configuration.

start

public final void start()
Starts the boot process. The boot process is synchronized and will block if parallel booting is not finished yet. Any failure in booting will set the bootFailed property to true. If booting is finished, the bootDone property is set to true.


isBootFailed

public boolean isBootFailed()
Checks whether the booting failed. If booting failed, the reason for the failure (the Exception that caused the error) is stored as property bootFailureReason.

Returns:
true, if booting failed, false otherwise.

getBootFailureReason

public java.lang.Exception getBootFailureReason()
Returns the failure reason for the boot process. This method returns null, if booting was successful.

Returns:
the failure reason.

performBoot

protected abstract void performBoot()
Performs the boot.


getProjectInfo

protected abstract ProjectInformation getProjectInfo()
Returns the project info.

Returns:
The project info.

loadBooter

protected AbstractBoot loadBooter(java.lang.String classname)
Loads the specified booter implementation.

Parameters:
classname - the class name.
Returns:
The boot class.

loadBooter

public static AbstractBoot loadBooter(java.lang.String classname,
                                      java.lang.Class source)

createDefaultHierarchicalConfiguration

protected Configuration createDefaultHierarchicalConfiguration(java.lang.String staticConfig,
                                                               java.lang.String userConfig,
                                                               boolean addSysProps,
                                                               java.lang.Class source)
Creates a default configuration setup, which loads its settings from the static configuration (defaults provided by the developers of the library) and the user configuration (settings provided by the deployer). The deployer's settings override the developer's settings.

If the parameter addSysProps is set to true, the system properties will be added as third configuration layer. The system properties configuration allows to override all other settings.

Parameters:
staticConfig - the resource name of the developers configuration
userConfig - the resource name of the deployers configuration
addSysProps - a flag defining whether to include the system properties into the configuration.
source - the classloader source to load resources from.
Returns:
the configured Configuration instance.

getExtendedConfig

public ExtendedConfiguration getExtendedConfig()
Returns the global configuration as extended configuration.

Specified by:
getExtendedConfig in interface SubSystem
Returns:
the extended configuration.