Date: 2004-01-27T19:02:51
Editor: NiclasHedhman <[EMAIL PROTECTED]>
Wiki: Apache Avalon Wiki
Page: AvalonFiveLifecycleProposal
URL: http://wiki.apache.org/avalon/AvalonFiveLifecycleProposal
no comment
Change Log:
------------------------------------------------------------------------------
@@ -4,19 +4,19 @@
{{{
-{{{ potential }}}
-{{{ | }}}
-{{{ | candidate }}}
-{{{ | | }}}
-{{{ | | }}}
-{{{ |-- establishment -->| component }}}
-{{{ | | | }}}
-{{{ | |--- deployment ----->| }}}
-{{{ | | | }}}
-{{{ | |<-- decommissioning -| }}}
-{{{ | | }}}
-{{{ |<-- termination ----| }}}
-{{{ | }}}
+ potential
+ |
+ | candidate
+ | |
+ | |
+ |-- establishment -->| component
+ | | |
+ | |--- deployment ----->|
+ | | |
+ | |<-- decommissioning -|
+ | |
+ |<-- termination ----|
+ |
}}}
@@ -74,17 +74,17 @@
Consider the following context meta declaration of a final (by default) context entry:
{{{
-{{{ <context> }}}
-{{{ <context key="urn:avalon:name"/> }}}
-{{{ </context> }}}
+ <context>
+ <context key="urn:avalon:name"/>
+ </context>
}}}
As opposed to the following:
{{{
-{{{ <context> }}}
-{{{ <context key="urn:avalon:name" final="false"/> }}}
-{{{ </context> }}}
+ <context>
+ <context key="urn:avalon:name" final="false"/>
+ </context>
}}}
The above statement can be interpreted as a statement by a component type that the
context value for the entry "urn:avalon:name" is volatile - i.e. it can be changed at
some point in the component lifecycle. Effectively, the component is declaring to the
container that it is capable of handling re-deployment during which it will look for a
new name value.
@@ -92,9 +92,9 @@
An alternative variation on the same theme is the declaration of a context
application phase as non-final. In this case we are saying that the container has the
responsibility of reapplying a context object to a component during redeployment.
{{{
-{{{ <context final="false"> }}}
-{{{ <context key="urn:avalon:name"/> }}}
-{{{ </context> }}}
+ <context final="false">
+ <context key="urn:avalon:name"/>
+ </context>
}}}
==== Applicability ====
@@ -112,19 +112,19 @@
The following example declaration is basically a context declaration that captures
dependency information (e.g. a Widget service with version of 2.4).
{{{
-{{{ <context final="false"> }}}
-{{{ <context key="urn:avalon:widget" }}}
-{{{ type="org.apache.avalon.playground.Widget:2.4"/> }}}
-{{{ </context> }}}
+ <context final="false">
+ <context key="urn:avalon:widget"
+ type="org.apache.avalon.playground.Widget:2.4"/>
+ </context>
}}}
However, there is a problem with the above when dealing with an A4 strategy
implementation. The problem is that the container does not have information enabling
the separation of context and service information. This could be handled with a
supplementary stage attribute (under a Framework 4.1 DTD) along the lines of the
following example.
{{{
-{{{ <context final="false"> }}}
-{{{ <context key="urn:avalon:widget" stage="SERVICE" }}}
-{{{ type="org.apache.avalon.playground.Widget:2.4"/> }}}
-{{{ </context> }}}
+ <context final="false">
+ <context key="urn:avalon:widget" stage="SERVICE"
+ type="org.apache.avalon.playground.Widget:2.4"/>
+ </context>
}}}
=== Impact ===
@@ -184,4 +184,3 @@
I think any component should be given access to its meta-info structure. Locator
doesn't seem to be the right place to get it (because that meta-info is not visible to
the other clients). So I would suggest to leave Contextualizable as it is.
Krage T.
-
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]