Return-Path:
-Just as objects are instantiated, the equivalent process from a component is "incarnation". Incarnation involves instantiation, a series of optional artifact delivery stages, and an optional execution phase. Component incarnation is managed exclusively by a container. Occurances of component icarnation are controlled by as associated component implementation lifestyle characteristic. -
- -instantiation |
+ Incarnation |
- -A component may declare either a null constructor, or, a single constructor with any lifecycle artifact as a parameter argument where arguments may be in any combination or order. Recognized lifecycle artificats include -Logger, -Context, -Parameters, -ServiceManager, and/or -Configuration. In addition, the Context object may be substituted with a custom context interface and implementation. - --NOTE: A component implementation may not duplicate constructor injection of lifecycle artifacts with the equivalent lifecycle stage. - -Example: - - |
-
logging |
-
- Optional Logger delivery strategy. A component implementation may implement the LogEnabled interface. The container will supply the component root logger via the enableLogging operation. -Example: - - |
- |
contextualization |
-
- Optional context delivery strategy. A component implementation may implement the Contextualizable interface. The container will supply a component context via the contextualize operation. The context instance will be pre-populated by the container will all requested entries. -Example: - - |
- |
service |
-
- Optional service manager delivery strategy. A component implementation may implement the Serviceable interface. The container will supply a service manager supporting all declared service dependencies. -Example: - -Note: the usage of the key attribute on a service dependency tag is optional. If not supplied, an implementation my request the service using the type argument (i.e. the service classname). The recommended practice is to declare a local key. - |
- |
configuration |
-
- Optional configuration delivery strategy. A component implementation may implement the Configurable interface. The container will supply a component configuration via the configure operation. -Example: - - |
- |
parameterization |
-
- Optional parameters delivery strategy. A component may implement the Parameterizable interface. The container will supply a parameters instance via the parameterize operation. -Example: - - |
- |
custom stage |
-
- Optional custom lifecycle stage. A component may implement zero or more custom lifecycle stages. Stages will be applied to the component in the order of avalon.stage declarations. -Example: - - |
- |
initialization |
-
- Optional initialization stage. A component may implement the Initializable interface. The container will invoke initialization following completion of the delivery of lifecycle artifacts and any custom lifecycle stages. -Example: - +Just as objects are instantiated, the equivalent process from a component is "incarnation". Incarnation involves instantiation, a series of optional artifact delivery stages, and an optional execution phase. Component incarnation is managed exclusively by a container. Occurances of component icarnation are controlled by as associated component implementation lifestyle characteristic. |
|
execution |
+ Runtime Management |
- Optional execution stage. A component may implement either the Startable or Executable interfaces. If the component implements Executable the execute method will be invoked before the component instance is exposed to any other component. If the component implements the Startable interface the container will invoke the start operation. An implementation is responsible for establishing a working thread and returned from the start operation promptly. -Executable Example: - - -Startable Example: - - - - |
-
Runtime management deals with interaction with a component between the incarnation and etherialization stages. The Avalon framework defines the notion of a suspendable component. The framework also defines a number of delivery interfaces dealing with reintroduction of lifecycle artificats. None of the framework reintroduction interfaces are supported - instead, runtime management is approached as a management concern wherein any existing artifact delivery interface may be reused by a container while a component is under a suspended state. The action of resumption is equivalent to the notion of re-initialization. -
- -suspension |
-
- -A component implementing the the Suspendable lifecycle may be suspended by a container management system. Following suspension a container may re-apply lifecycle artifact delivery stages (logging, contextualization, service, parameterization). - -Suspendable Example: - |
|
suspension |
+ Etherialization |
- -A component implementing the the Suspendable lifecycle may be placed back into operation following suspension by a container management system. - -Suspendable Example: - - |
-
The etherialization stage is the component equivalent of an object finalization. Etherialization covers the stopping of a running component and subsequent disposal. Initiation of the etherialization phase on a component instance is exclusively controlled by it's container. -
- -execution |
-
- -A component implementing the the Startable lifecycle interface will be shutdown by the container. - -Startable Example: - - - |
-
disposal |
-
- -A component may participate in end-of-life processing by implementing the -Disposable lifecycle interface. An implementation will typically released references during this stage. - -Example: - - |
The etherialization stage is the component equivalent of an object finalization. Etherialization covers the stopping of a running component and subsequent disposal. Initiation of the etherialization phase on a component instance is exclusively controlled by it's container.
execution |
A component implementing the the Startable lifecycle interface will be shutdown by the container. Startable Example: |
disposal |
A component may participate in end-of-life processing by implementing the Disposable lifecycle interface. An implementation will typically released references during this stage. Example: |
Just as objects are instantiated, the equivalent process from a component is "incarnation". Incarnation involves instantiation, a series of optional artifact delivery stages, and an optional execution phase. Component incarnation is managed exclusively by a container. Occurances of component icarnation are controlled by as associated component implementation lifestyle characteristic.
instantiation |
A component may declare either a null constructor, or, a single constructor with any lifecycle artifact as a parameter argument where arguments may be in any combination or order. Recognized lifecycle artificats include Logger, Context, Parameters, ServiceManager, and/or Configuration. In addition, the Context object may be substituted with a custom context interface and implementation. NOTE: A component implementation may not duplicate constructor injection of lifecycle artifacts with the equivalent lifecycle stage. Example: |
logging |
Optional Logger delivery strategy. A component implementation may implement the LogEnabled interface. The container will supply the component root logger via the enableLogging operation. Example: |
contextualization |
Optional context delivery strategy. A component implementation may implement the Contextualizable interface. The container will supply a component context via the contextualize operation. The context instance will be pre-populated by the container will all requested entries. Example: |
service |
Optional service manager delivery strategy. A component implementation may implement the Serviceable interface. The container will supply a service manager supporting all declared service dependencies. Example: Note: the usage of the key attribute on a service dependency tag is optional. If not supplied, an implementation my request the service using the type argument (i.e. the service classname). The recommended practice is to declare a local key. |
configuration |
Optional configuration delivery strategy. A component implementation may implement the Configurable interface. The container will supply a component configuration via the configure operation. Example: |
parameterization |
Optional parameters delivery strategy. A component may implement the Parameterizable interface. The container will supply a parameters instance via the parameterize operation. Example: |
custom stage |
Optional custom lifecycle stage. A component may implement zero or more custom lifecycle stages. Stages will be applied to the component in the order of avalon.stage declarations. Example: |
initialization |
Optional initialization stage. A component may implement the Initializable interface. The container will invoke initialization following completion of the delivery of lifecycle artifacts and any custom lifecycle stages. Example: |
execution |
Optional execution stage. A component may implement either the Startable or Executable interfaces. If the component implements Executable the execute method will be invoked before the component instance is exposed to any other component. If the component implements the Startable interface the container will invoke the start operation. An implementation is responsible for establishing a working thread and returned from the start operation promptly. Executable Example: Startable Example: |
Runtime management deals with interaction with a component between the incarnation and etherialization stages. The Avalon framework defines the notion of a suspendable component. The framework also defines a number of delivery interfaces dealing with reintroduction of lifecycle artificats. None of the framework reintroduction interfaces are supported - instead, runtime management is approached as a management concern wherein any existing artifact delivery interface may be reused by a container while a component is under a suspended state. The action of resumption is equivalent to the notion of re-initialization.
suspension |
A component implementing the the Suspendable lifecycle may be suspended by a container management system. Following suspension a container may re-apply lifecycle artifact delivery stages (logging, contextualization, service, parameterization). Suspendable Example: |
suspension |
A component implementing the the Suspendable lifecycle may be placed back into operation following suspension by a container management system. Suspendable Example: |