Class DefaultApplicationInitializer
- All Implemented Interfaces:
ApplicationInitializer
Supported configuration parameters:
- org.java.plugin.boot.applicationPlugin
- ID of plug-in to start. There is no default value for this parameter. In common scenario, this is the only parameter that you must provide.
- org.java.plugin.boot.integrityCheckMode
- Regulates how to check plug-ins integrity when running JPF. Possible
values:
full
,light
,off
. The default value isfull
. - org.java.plugin.boot.pluginsCollector
- Plug-ins location collector class, for details see
PluginsCollector
. Default isDefaultPluginsCollector
. - org.java.plugin.boot.pluginsWhiteList
- Location of the file with plug-in identifiers that should be only accepted by this application initializer. This is optional parameter.
- org.java.plugin.boot.pluginsBlackList
- Location of the file with plug-in identifiers that should not be accepted by this application initializer. This is optional parameter.
ObjectFactory.newInstance(ExtendedProperties)
when running JPF (see bellow). This allows you to configure JPF precisely.
Black and white lists of plug-ins
In some situations you may want to temporary exclude some of your plug-ins from the application scope. This may be achieved with help of while and black lists - simple plain text files that contain lists of plug-in identifiers to be included/excluded from the application. Each identifies should be in separate line. You may provide unique plug-in ID also.
What is application plug-in?
When application starts, the
Boot.main(String[])
method executed calling
initApplication(BootErrorHandler, String[])
to get initialized
instance of Application
(or ServiceApplication
) class. The method
initApplication(BootErrorHandler, String[])
in this implementation
scans plug-in repositories to collect all available plug-in files and folders
(using special class that can be customized),
instantiates JPF and publishes all discovered plug-ins. After that it asks
PluginManager
for an Application Plug-in with
ID provided as configuration parameter. Returned class instance is expected
to be of type ApplicationPlugin
and it's method
ApplicationPlugin.initApplication(ExtendedProperties, String[])
called.
To the mentioned initApplication
method passed a subset of
configuration properties whose names start with application plug-in ID
followed with dot character '.'
(see
ExtendedProperties.getSubset(String)
for
details).
As a result of the described procedure, the Boot
get instance of
Application
interface, so it can start
application calling
Application.startApplication()
method.
- Version:
- $Id$
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
configure
(ExtendedProperties configuration) Configures this instance and application environment.protected Collection
<PluginManager.PluginLocation> filterPluginLocations
(PluginRegistry registry, Collection<PluginManager.PluginLocation> pluginLocations) This method may remove unwanted plug-in locations from the given list.initApplication
(BootErrorHandler errorHandler, String[] args) Initializes application.protected String
-
Field Details
-
PARAM_APPLICATION_PLUGIN
- See Also:
-
PARAM_INTEGRITY_CHECK_MODE
- See Also:
-
PARAM_PLUGINS_COLLECTOR
- See Also:
-
PARAM_PLUGINS_WHITE_LIST
- See Also:
-
PARAM_PLUGINS_BLACK_LIST
- See Also:
-
-
Constructor Details
-
DefaultApplicationInitializer
public DefaultApplicationInitializer()
-
-
Method Details
-
configure
Configures this instance and application environment. The sequence is:- Configure logging system. There is special code for supporting
Log4j
logging system only. All other systems support come fromcommons-logging
package. - Instantiate and configure
PluginsCollector
using configuration data.
- Specified by:
configure
in interfaceApplicationInitializer
- Parameters:
configuration
- application configuration data fromboot.properties
file andSystem
properties as defaults- Throws:
Exception
- if any error has occurred during initializer configuring- See Also:
- Configure logging system. There is special code for supporting
-
initApplication
Initializes application. The sequence is:- Collect plug-ins locations using configured
PluginsCollector
. - Get
PluginManager
instance fromObjectFactory
using codeObjectFactory.newInstance(config).createManager()
. - Publish collected plug-ins using
PluginManager.publishPlugins(org.java.plugin.PluginManager.PluginLocation[])
. - Check integrity if that's configured.
- Get application plug-in and call it
JpfApplication initApplication(Properties)
method. - Return received instance of
Application
interface.
- Specified by:
initApplication
in interfaceApplicationInitializer
- Parameters:
errorHandler
- callback interface to report errors to the user, it is recommended to use this handler only for "non-fatal" errors and ask user viaBootErrorHandler.handleError(String, Exception)
orBootErrorHandler.handleError(String, org.java.plugin.registry.IntegrityCheckReport)
if he wants to abort application boot processargs
- command line arguments as they passed to programmain
method- Returns:
- initialized application instance or
null
if initializing failed - Throws:
Exception
- if any error has occurred during application initializing- See Also:
- Collect plug-ins locations using configured
-
integrityCheckReport2str
-
filterPluginLocations
protected Collection<PluginManager.PluginLocation> filterPluginLocations(PluginRegistry registry, Collection<PluginManager.PluginLocation> pluginLocations) throws ManifestProcessingException This method may remove unwanted plug-in locations from the given list. Standard implementation applies black/white lists logic.- Parameters:
registry
- plug-in registry to process manifestspluginLocations
- collected plug-in locations to be filtered- Throws:
ManifestProcessingException
-