h1. Introduction
{section}
{column}
Several concurrent life-cycles exist in Petals ESB:
* [the Petals ESB life-cycle|#petals-esb-lifecycle],
* [the shared-library life-cycle|#sharedlibrary-lifecycle],
* [the component life-cycle|#component-lifecycle],
* [the service-assembly life-cycle|#service-assembly-lifecycle],
* [the service-unit life-cyle|#service-unit-lifecycle].
{column}
{column:width=35%}
{panel:title=Table of contents}{toc:outline=true}{panel}
{panel:title=Contributors}{contributors:order=name|mode=list|showAnonymous=true|showCount=true|showLastTime=true}{panel}
{column}
{section}
{anchor:petals-esb-lifecycle}
h1. The Petals ESB life-cyle
The Petals ESB life-cycle is very simple.
{gliffy:name=Petals ESB lifecyle|version=2}
It contains only one state: STARTED. The implicit state 'STOPPED' does not really exist because in such state no Petals ESB process is running.
The transition from state 'STOPPED' to 'STARTED' is realized using the Petals ESB startup script '{{petals-esb}}'. The return to the state 'STOPPED' is realized using {{^C}} or the command '{{petals-esb stop}}'. See [Starting and stopping Petals ESB].
{anchor:sharedlibrary-lifecycle}
h1. The shared-library life-cyle
h2. The life-cycle
The shared-library life-cycle is simple.
{gliffy:name=Shared-Library lifecyle|version=3}
It contains only one state: INSTALLED. The implicit state 'UNINSTALLED' does not really exist because the shared-library is not instantiated or loaded.
The transition from state 'UNINSTALLED' to 'INSTALLED' is realized installing the shared library, and the return to the state 'UNINSTALLED' is realized uninstalling the shared-library. A shared library can be (un)installed using [Petals CLI|petalsesb:Command Line Interface], [the Petals Autoloader|Petals ESB "Autoloader"], Petals Ant Tasks or the JMX API.
{anchor:sharedlibrary-lifecycle-constraints}
h2. Constraints
The shared library life-cycle is linked to the component life-cycle:
* a shared library required by a component must be installed before to load the component
* a shared library can not be uninstalled until a component requiring it is installed.
|| Component state || installSharedLibrary || uninstallSharedLibrary ||
| UNLOADED | !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! |
| LOADED/UNINSTALLED | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! |
| INSTALLED/SHUTDOWN | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! |
| STOPPED | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! |
| STARTED | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! |
{anchor:component-lifecycle}
h1. The component life-cycle
h2. The life-cycle
The component life-cycle is the more complex life-cycle of Petals ESB life-cycles. It is composed of two correlated sub life-cycles:
* the component installer life-cycle that drives the installation of the component,
* the component life-cycle itself.
{gliffy:name=Component lifecyle|version=5}
h2. Constraints
The component life-cycle is linked to:
* [the shared life-cycle|#sharedlibrary-lifecycle-constraints],
* [the service-assembly lifecycle|#serviceassembly-lifecycle-constraints],
* the service-unit life-cycle,
* and have following constraint against the service-unit life-cyle:
|| Service unit state || loadNewInstaller || install || start || stop || shutdown || uninstall || unloadInstaller ||
| UNDEPLOYED | !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! |
| SHUTDOWN | !checkErro.png|align=center,width=20px!| !checkErro.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! |
| STOPPED | !checkErro.png|align=center,width=20px!| !checkErro.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! |
| STARTED | !checkErro.png|align=center,width=20px!| !checkErro.png|align=center,width=20px!| !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! |
** component required by a service unit must be installed and running (ie. in state STOPPED or STARTED) before to deploy the service unit,
** if service units are deployed on, a component can only be started or stopped. All service units must be undeployed before to try any other transitions.
{anchor:service-assembly-lifecycle}
h1. The service-assembly life-cycle
h2. The life-cycle
The service assembly life-cycle can be viewed as a wrapper of its all service unit life-cycles. It propose to drive the life-cycle of its service-units in on operation.
{gliffy:name=Service-Assembly lifecyle}
The transitions from state 'UNDEPLOYED' to 'SHUTDOWN' is realized deploying the service assembly, and the return to the state 'UNDEPLOYED' is realized undeploying the service assembly. A service assembly can be (un)deployed/started/stopped/shutdown using [Petals CLI|petalsesb:Command Line Interface], [the Petals Autoloader|Petals ESB "Autoloader"], Petals Ant Tasks or the JMX API.
{anchor:serviceassembly-lifecycle-constraints}
h2. Constraints
The service assembly life-cycle is linked to the component life-cycle:
* to realize a transition on the service-assembly life-cycle, the component must be in state STARTED or STOPPED.
|| Component state || deploy || start || stop || shutdown || undeplpoy ||
| UNLOADED | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! |!checkErro.png|align=center,width=20px! |
| LOADED/UNINSTALLED | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! |!checkErro.png|align=center,width=20px! |
| INSTALLED/SHUTDOWN | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! |!checkErro.png|align=center,width=20px! |
| STOPPED | !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! |!checkOk.png|align=center,width=20px! |
| STARTED | !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! |!checkOk.png|align=center,width=20px! |
{anchor:service-unit-lifecycle}
h1. The service-unit life-cyle
The service unit life-cycle is simple:
{gliffy:name=Service-Unit lifecyle|version=2}
The implicit state 'UNDEPLOYED' does not really exist because the service unit is not deployed.
{section}
{column}
Several concurrent life-cycles exist in Petals ESB:
* [the Petals ESB life-cycle|#petals-esb-lifecycle],
* [the shared-library life-cycle|#sharedlibrary-lifecycle],
* [the component life-cycle|#component-lifecycle],
* [the service-assembly life-cycle|#service-assembly-lifecycle],
* [the service-unit life-cyle|#service-unit-lifecycle].
{column}
{column:width=35%}
{panel:title=Table of contents}{toc:outline=true}{panel}
{panel:title=Contributors}{contributors:order=name|mode=list|showAnonymous=true|showCount=true|showLastTime=true}{panel}
{column}
{section}
{anchor:petals-esb-lifecycle}
h1. The Petals ESB life-cyle
The Petals ESB life-cycle is very simple.
{gliffy:name=Petals ESB lifecyle|version=2}
It contains only one state: STARTED. The implicit state 'STOPPED' does not really exist because in such state no Petals ESB process is running.
The transition from state 'STOPPED' to 'STARTED' is realized using the Petals ESB startup script '{{petals-esb}}'. The return to the state 'STOPPED' is realized using {{^C}} or the command '{{petals-esb stop}}'. See [Starting and stopping Petals ESB].
{anchor:sharedlibrary-lifecycle}
h1. The shared-library life-cyle
h2. The life-cycle
The shared-library life-cycle is simple.
{gliffy:name=Shared-Library lifecyle|version=3}
It contains only one state: INSTALLED. The implicit state 'UNINSTALLED' does not really exist because the shared-library is not instantiated or loaded.
The transition from state 'UNINSTALLED' to 'INSTALLED' is realized installing the shared library, and the return to the state 'UNINSTALLED' is realized uninstalling the shared-library. A shared library can be (un)installed using [Petals CLI|petalsesb:Command Line Interface], [the Petals Autoloader|Petals ESB "Autoloader"], Petals Ant Tasks or the JMX API.
{anchor:sharedlibrary-lifecycle-constraints}
h2. Constraints
The shared library life-cycle is linked to the component life-cycle:
* a shared library required by a component must be installed before to load the component
* a shared library can not be uninstalled until a component requiring it is installed.
|| Component state || installSharedLibrary || uninstallSharedLibrary ||
| UNLOADED | !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! |
| LOADED/UNINSTALLED | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! |
| INSTALLED/SHUTDOWN | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! |
| STOPPED | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! |
| STARTED | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! |
{anchor:component-lifecycle}
h1. The component life-cycle
h2. The life-cycle
The component life-cycle is the more complex life-cycle of Petals ESB life-cycles. It is composed of two correlated sub life-cycles:
* the component installer life-cycle that drives the installation of the component,
* the component life-cycle itself.
{gliffy:name=Component lifecyle|version=5}
h2. Constraints
The component life-cycle is linked to:
* [the shared life-cycle|#sharedlibrary-lifecycle-constraints],
* [the service-assembly lifecycle|#serviceassembly-lifecycle-constraints],
* the service-unit life-cycle,
* and have following constraint against the service-unit life-cyle:
|| Service unit state || loadNewInstaller || install || start || stop || shutdown || uninstall || unloadInstaller ||
| UNDEPLOYED | !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! |
| SHUTDOWN | !checkErro.png|align=center,width=20px!| !checkErro.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! |
| STOPPED | !checkErro.png|align=center,width=20px!| !checkErro.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! |
| STARTED | !checkErro.png|align=center,width=20px!| !checkErro.png|align=center,width=20px!| !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! |
** component required by a service unit must be installed and running (ie. in state STOPPED or STARTED) before to deploy the service unit,
** if service units are deployed on, a component can only be started or stopped. All service units must be undeployed before to try any other transitions.
{anchor:service-assembly-lifecycle}
h1. The service-assembly life-cycle
h2. The life-cycle
The service assembly life-cycle can be viewed as a wrapper of its all service unit life-cycles. It propose to drive the life-cycle of its service-units in on operation.
{gliffy:name=Service-Assembly lifecyle}
The transitions from state 'UNDEPLOYED' to 'SHUTDOWN' is realized deploying the service assembly, and the return to the state 'UNDEPLOYED' is realized undeploying the service assembly. A service assembly can be (un)deployed/started/stopped/shutdown using [Petals CLI|petalsesb:Command Line Interface], [the Petals Autoloader|Petals ESB "Autoloader"], Petals Ant Tasks or the JMX API.
{anchor:serviceassembly-lifecycle-constraints}
h2. Constraints
The service assembly life-cycle is linked to the component life-cycle:
* to realize a transition on the service-assembly life-cycle, the component must be in state STARTED or STOPPED.
|| Component state || deploy || start || stop || shutdown || undeplpoy ||
| UNLOADED | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! |!checkErro.png|align=center,width=20px! |
| LOADED/UNINSTALLED | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! |!checkErro.png|align=center,width=20px! |
| INSTALLED/SHUTDOWN | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! | !checkErro.png|align=center,width=20px! |!checkErro.png|align=center,width=20px! |
| STOPPED | !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! |!checkOk.png|align=center,width=20px! |
| STARTED | !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! | !checkOk.png|align=center,width=20px! |!checkOk.png|align=center,width=20px! |
{anchor:service-unit-lifecycle}
h1. The service-unit life-cyle
The service unit life-cycle is simple:
{gliffy:name=Service-Unit lifecyle|version=2}
The implicit state 'UNDEPLOYED' does not really exist because the service unit is not deployed.