DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
System services
- Each service should have a corresponding LifeCycle MBean registered
with an ObjectName independant of the implementation (use the interface
instead of the class name)
- Management services should always throw RuntimeException with a message
compliant with the xml description
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jbi-task version="1.0"
xmlns="http://java.sun.com/xml/ns/jbi/management-message">
<jbi-task-result>
<frmwk-task-result>
<frmwk-task-result-details>
<task-result-details>
<task-id>deploy</task-id>
<task-result>FAILED</task-result>
<message-type>ERROR</message-type>
<exception-info>
<nesting-level>1</nesting-level>
<msg-loc-info>
<loc-token>JBI1009</loc-token>
<loc-message>Unable to deploy {1}. Missing {2} section in jbi.xml
</loc-message>
<loc-param>file://d/jbi/samples/1/sampleAU.jar</loc-param>
<loc-param>service-unit</loc-param>
</msg-loc-info>
<stack-trace>....</stack-trace>
</exception-info>
<locale>en</locale>
</task-result-details>
</frmwk-task-result-details>
<is-cause-framework>YES</is-cause-framework>
</frmwk-task-result>
</jbi-task-result>
</jbi-task>
- Internationalisation
InstallationService:
loadNewInstaller
- unpack jar in a temp dir
- parse / validate the jbi descriptor
- if a component with the same name is already loaded (installed or not installed but with an installer loaded)
fail the request - create a directory for this installer
check the component name first, then patterns with (component name + "." + index)
until one non existing directory is found - create / init bootstrap
- create and register the installer mbean
loadInstaller
- check for an already loaded installer and return it if found
- check that the requested component is installed
- create / init bootstrap
- create and register the installer mbean
unloadInstaller
- if the component is installed throw an exception
- locate the installer mbean
- if found, unregister it
- delete directory if requested
if not possible to delete directory, put a ".delete" file at root
these directories should be removed when container restarts
installSharedLibrary
- TODO
uninstallSharedLibrary
- TODO
Installer
getInstallerConfigurationMBean
- query the bootstrap for the configuration bean name and return it
install
- call bootstrap onInstall / cleanUp sequence
- create the component (no lifecycle involved)
- save its state (SHUTDOWN)
uninstall
- check that the component is stopped and has no service units
- shutdown the component
- call bootstrap onUninstall / cleanUp sequence
ComponentLifeCycle
NOTE
The jbi container must ensure that valid transitions are propagated to
the component
start
- if component is running, do nothing
- if component is shutdown, call init on its lifecycle
- call start
- persist state if not system restart
- if system restart,
initialize all SUs (they become stopped)
restore previous state (started, stopped or shutdown)
stop
- if component is shutdown, throw an exception
- if component is stopped, return
- if component is running,
stop all service units
call stop on component lifecycle
persist state if not system shutdown
shutdown
- if component is running, stop it
- if component is stopped,
shutdown all service units
call shutdown on component lifecycle - persist state if not system restart