You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by Paul Hammant <Pa...@yahoo.com> on 2002/09/07 10:54:20 UTC

Re: cvs commit: jakarta-avalon/src/xdocs/framework reference-the-lifecycle.xml

Is everyone happy with this change?

I have..

1) dropped the case of most usages of Component.
2) Refered to Serviceable where Composable was used solely.

It looks like Reserviceable is missing.  There is a Recomposable.  Thoughts?

Regards,

- Paul

>hammant     2002/09/07 01:49:26
>
>  Modified:    src/xdocs/framework reference-the-lifecycle.xml
>  Log:
>  Words on Serviceable
>  
>  Revision  Changes    Path
>  1.4       +25 -25    jakarta-avalon/src/xdocs/framework/reference-the-lifecycle.xml
>  
>  Index: reference-the-lifecycle.xml
>  ===================================================================
>  RCS file: /home/cvs/jakarta-avalon/src/xdocs/framework/reference-the-lifecycle.xml,v
>  retrieving revision 1.3
>  retrieving revision 1.4
>  diff -u -r1.3 -r1.4
>  --- reference-the-lifecycle.xml	5 Aug 2002 13:23:59 -0000	1.3
>  +++ reference-the-lifecycle.xml	7 Sep 2002 08:49:26 -0000	1.4
>  @@ -14,9 +14,9 @@
>     <body>
>
>       <s1 title="Introduction">
>
>         <p>
>
>  -        A Component lives within something called a container. The contract between a 
>
>  -        container and a contained Component is simple: the container is required to 
>
>  -        take a Component through what is called its <strong>lifecycle</strong>.
>
>  +        A component lives within something called a container. The contract between a 
>
>  +        container and a contained component is simple: the container is required to 
>
>  +        take a component through what is called its <strong>lifecycle</strong>.
>
>         </p>
>
>         <p>
>
>           The Avalon project provides an
>
>  @@ -37,9 +37,9 @@
>       </s1>
>
>       <s1 title="The Lifecycle">
>
>         <p>
>
>  -        The lifecycle of a Component specifies the methods that can be called on it,
>
>  +        The lifecycle of a component specifies the methods that can be called on it,
>
>           and the order in which this may happen. Some methods can be called only once
>
>  -        in a specific <code>Phase</code> of a Component its lifecycle, others may
>
>  +        in a specific <code>Phase</code> of a component its lifecycle, others may
>
>           be called multiple times. These methods are called the lifecycle methods.
>
>         </p>
>
>         <p>
>
>  @@ -51,14 +51,14 @@
>       </s1>
>
>       <s1 title="The Lifecycle interfaces">
>
>         <p>
>
>  -        A Component exposes its lifecycle methods by implementing the lifecycle
>
>  +        A component exposes its lifecycle methods by implementing the lifecycle
>
>           interfaces. Each of these defines one or more methods that represent a
>
>  -        specific Phase in a Component's lifecycle. The defined interfaces are:
>
>  +        specific phase in a component's lifecycle. The defined interfaces are:
>
>         </p>
>
>         <ol>
>
>           <li>LogEnabled</li>
>
>           <li>Contextualizable</li>
>
>  -        <li>Composable</li>
>
>  +        <li>Serviceable (replacement for Composable)</li>
>
>           <li>Configurable</li>
>
>           <li>Parameterizable</li>
>
>           <li>Initializable</li>
>
>  @@ -74,37 +74,37 @@
>         <note>
>
>           <strong>Note:</strong>java.lang.Runnable has also been in use as a lifecycle
>
>           interface. This is not recommended and is not supported by Avalon. Instead,
>
>  -        the run() method is the responsibility of the Component itself. If you wish
>
>  +        the run() method is the responsibility of the component itself. If you wish
>
>           to use it, call it from within start() or another method.  
>
>         </note>
>
>       </s1>
>
>       <s1 title="Phase order">
>
>         <p>
>
>           The order in which the various lifecycle methods are called is very specific.
>
>  -        While none are required (it is possible to have a Component implementing
>
>  +        While none are required (it is possible to have a component implementing
>
>           none of the lifecycle methods, although the use of that would be limited),
>
>           some can only be used when others are as well. This is best explained using
>
>           a few examples.
>
>         </p>
>
>         <s2 title="simple examples">
>
>  -        <p>The lifecycle of a <code>Component</code> implementing only Configurable for
>
>  +        <p>The lifecycle of a component implementing only Configurable for
>
>           example will be:</p>
>
>           <ol>
>
>             <li>constructor</li>
>
>             <li>configure</li>
>
>             <li>finalize</li>
>
>           </ol>
>
>  -        <p>The lifecycle of a <code>Component</code> implementing only Composable will be:</p>
>
>  +        <p>The lifecycle of a component implementing only Serviceable will be:</p>
>
>           <ol>
>
>             <li>constructor</li>
>
>  -          <li>compose</li>
>
>  +          <li>service</li>
>
>             <li>finalize</li>
>
>           </ol>
>
>         </s2>
>
>         <s2 title="complete">
>
>           <p>
>
>  -          If a <code>Component</code> implements more than one interface the order of
>
>  -          the events (compose, configure etc.) follow a specific order. A Component
>
>  +          If a component implements more than one interface the order of
>
>  +          the events (service, configure etc.) follow a specific order. A component
>
>             implementing all above interfaces (including Runnable) will follow these
>
>             specific paths.
>
>           </p>
>
>  @@ -114,7 +114,7 @@
>           <ol>
>
>             <li>constructor <strong>as a consequence of instantiation</strong></li>
>
>             <li>contextualize</li>
>
>  -          <li>compose</li>
>
>  +          <li>service or compose</li>
>
>             <li>configure</li>
>
>             <li>parameterize</li>
>
>             <li>initialize</li>
>
>  @@ -143,11 +143,11 @@
>         <s2 title="Phases executed once">
>
>           <p>
>
>             These lifecycle methods are only called once in the entire life of a
>
>  -          Component:
>
>  +          component:
>
>           </p>
>
>           <ul>
>
>             <li>contextualize</li>
>
>  -          <li>compose</li>
>
>  +          <li>service</li>
>
>             <li>configure</li>
>
>             <li>parameterize</li>
>
>             <li>initialize</li>
>
>  @@ -169,9 +169,9 @@
>             The methods suspend() and resume() are not guaranteed to be called at all,
>
>             even when implemented. They can be called more than once, but only after
>
>             one another and between start() and stop(). The reason they exist is so 
>
>  -          the container can notify the Component it needs to come to temporary stop 
>
>  +          the container can notify the component it needs to come to temporary stop 
>
>             any operations. The container may need to perform some synchronized operation 
>
>  -          on one of the Components used by this Component, or it may wish to call any 
>
>  +          on one of the components used by this component, or it may wish to call any 
>
>             of the following methods, which can also be called zero or more times, and 
>
>             only between a suspend() and a resume().
>
>           </p>
>
>  @@ -186,12 +186,12 @@
>         <s2 title="The Command Pattern">
>
>           <p>
>
>             The most advanced, most complicated and most flexible option is to use
>
>  -          the Command pattern by having your Component implement the Commandable
>
>  +          the Command pattern by having your component implement the Commandable
>
>             interface. This is experimental; you'll find the Commandable and its
>
>             related classes in the excalibur package.
>
>           </p>
>
>           <p>
>
>  -          It is recommended that if your Component implements Commandable, it should
>
>  +          It is recommended that if your component implements Commandable, it should
>
>             not implement Executable or Interruptable. When you do choose to combine the
>
>             two, the order in which the different steps must happen is very specific:
>
>             <code>
>
>  @@ -218,8 +218,8 @@
>           </p>
>
>           <p>
>
>             The advantage of using Commands is that you can have multiple processes running
>
>  -          outside your Component that can manipulate it. These will run until completion
>
>  -          even if you Component has already been disposed of.
>
>  +          outside your component that can manipulate it. These will run until completion
>
>  +          even if you component has already been disposed of.
>
>           </p>
>
>           <p>
>
>             You should note that the Command interface we use extends Runnable, which means
>
>  
>  
>  
>
>--
>To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
>For additional commands, e-mail: <ma...@jakarta.apache.org>
>
>
>
>  
>




--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: cvs commit: jakarta-avalon/src/xdocs/framework reference-the-lifecycle.xml

Posted by Peter Donald <pe...@apache.org>.
On Sat, 7 Sep 2002 18:54, Paul Hammant wrote:
> Is everyone happy with this change?
>
> I have..
>
> 1) dropped the case of most usages of Component.
> 2) Refered to Serviceable where Composable was used solely.

+1

> It looks like Reserviceable is missing.  There is a Recomposable. 

I think it was deliberate. We have never really defined what the re* methods 
do or how they are supposed to act. If you look in our CVS I don't think you 
will find any instances where any re* is ever used. I suspect it would be 
good to elide until there is a clear and present need for it and multiple 
containers implement it.

> Thoughts?
>
> Regards,
>
> - Paul
>
> >hammant     2002/09/07 01:49:26
> >
> >  Modified:    src/xdocs/framework reference-the-lifecycle.xml
> >  Log:
> >  Words on Serviceable
> >
> >  Revision  Changes    Path
> >  1.4       +25 -25   
> > jakarta-avalon/src/xdocs/framework/reference-the-lifecycle.xml
> >
> >  Index: reference-the-lifecycle.xml
> >  ===================================================================
> >  RCS file:
> > /home/cvs/jakarta-avalon/src/xdocs/framework/reference-the-lifecycle.xml,
> >v retrieving revision 1.3
> >  retrieving revision 1.4
> >  diff -u -r1.3 -r1.4
> >  --- reference-the-lifecycle.xml	5 Aug 2002 13:23:59 -0000	1.3
> >  +++ reference-the-lifecycle.xml	7 Sep 2002 08:49:26 -0000	1.4
> >  @@ -14,9 +14,9 @@
> >     <body>
> >
> >       <s1 title="Introduction">
> >
> >         <p>
> >
> >  -        A Component lives within something called a container. The
> > contract between a
> >
> >  -        container and a contained Component is simple: the container is
> > required to
> >
> >  -        take a Component through what is called its
> > <strong>lifecycle</strong>.
> >
> >  +        A component lives within something called a container. The
> > contract between a
> >
> >  +        container and a contained component is simple: the container is
> > required to
> >
> >  +        take a component through what is called its
> > <strong>lifecycle</strong>.
> >
> >         </p>
> >
> >         <p>
> >
> >           The Avalon project provides an
> >
> >  @@ -37,9 +37,9 @@
> >       </s1>
> >
> >       <s1 title="The Lifecycle">
> >
> >         <p>
> >
> >  -        The lifecycle of a Component specifies the methods that can be
> > called on it,
> >
> >  +        The lifecycle of a component specifies the methods that can be
> > called on it,
> >
> >           and the order in which this may happen. Some methods can be
> > called only once
> >
> >  -        in a specific <code>Phase</code> of a Component its lifecycle,
> > others may
> >
> >  +        in a specific <code>Phase</code> of a component its lifecycle,
> > others may
> >
> >           be called multiple times. These methods are called the
> > lifecycle methods.
> >
> >         </p>
> >
> >         <p>
> >
> >  @@ -51,14 +51,14 @@
> >       </s1>
> >
> >       <s1 title="The Lifecycle interfaces">
> >
> >         <p>
> >
> >  -        A Component exposes its lifecycle methods by implementing the
> > lifecycle
> >
> >  +        A component exposes its lifecycle methods by implementing the
> > lifecycle
> >
> >           interfaces. Each of these defines one or more methods that
> > represent a
> >
> >  -        specific Phase in a Component's lifecycle. The defined
> > interfaces are:
> >
> >  +        specific phase in a component's lifecycle. The defined
> > interfaces are:
> >
> >         </p>
> >
> >         <ol>
> >
> >           <li>LogEnabled</li>
> >
> >           <li>Contextualizable</li>
> >
> >  -        <li>Composable</li>
> >
> >  +        <li>Serviceable (replacement for Composable)</li>
> >
> >           <li>Configurable</li>
> >
> >           <li>Parameterizable</li>
> >
> >           <li>Initializable</li>
> >
> >  @@ -74,37 +74,37 @@
> >         <note>
> >
> >           <strong>Note:</strong>java.lang.Runnable has also been in use
> > as a lifecycle
> >
> >           interface. This is not recommended and is not supported by
> > Avalon. Instead,
> >
> >  -        the run() method is the responsibility of the Component itself.
> > If you wish
> >
> >  +        the run() method is the responsibility of the component itself.
> > If you wish
> >
> >           to use it, call it from within start() or another method.
> >
> >         </note>
> >
> >       </s1>
> >
> >       <s1 title="Phase order">
> >
> >         <p>
> >
> >           The order in which the various lifecycle methods are called is
> > very specific.
> >
> >  -        While none are required (it is possible to have a Component
> > implementing
> >
> >  +        While none are required (it is possible to have a component
> > implementing
> >
> >           none of the lifecycle methods, although the use of that would
> > be limited),
> >
> >           some can only be used when others are as well. This is best
> > explained using
> >
> >           a few examples.
> >
> >         </p>
> >
> >         <s2 title="simple examples">
> >
> >  -        <p>The lifecycle of a <code>Component</code> implementing only
> > Configurable for
> >
> >  +        <p>The lifecycle of a component implementing only Configurable
> > for
> >
> >           example will be:</p>
> >
> >           <ol>
> >
> >             <li>constructor</li>
> >
> >             <li>configure</li>
> >
> >             <li>finalize</li>
> >
> >           </ol>
> >
> >  -        <p>The lifecycle of a <code>Component</code> implementing only
> > Composable will be:</p>
> >
> >  +        <p>The lifecycle of a component implementing only Serviceable
> > will be:</p>
> >
> >           <ol>
> >
> >             <li>constructor</li>
> >
> >  -          <li>compose</li>
> >
> >  +          <li>service</li>
> >
> >             <li>finalize</li>
> >
> >           </ol>
> >
> >         </s2>
> >
> >         <s2 title="complete">
> >
> >           <p>
> >
> >  -          If a <code>Component</code> implements more than one
> > interface the order of
> >
> >  -          the events (compose, configure etc.) follow a specific order.
> > A Component
> >
> >  +          If a component implements more than one interface the order
> > of
> >
> >  +          the events (service, configure etc.) follow a specific order.
> > A component
> >
> >             implementing all above interfaces (including Runnable) will
> > follow these
> >
> >             specific paths.
> >
> >           </p>
> >
> >  @@ -114,7 +114,7 @@
> >           <ol>
> >
> >             <li>constructor <strong>as a consequence of
> > instantiation</strong></li>
> >
> >             <li>contextualize</li>
> >
> >  -          <li>compose</li>
> >
> >  +          <li>service or compose</li>
> >
> >             <li>configure</li>
> >
> >             <li>parameterize</li>
> >
> >             <li>initialize</li>
> >
> >  @@ -143,11 +143,11 @@
> >         <s2 title="Phases executed once">
> >
> >           <p>
> >
> >             These lifecycle methods are only called once in the entire
> > life of a
> >
> >  -          Component:
> >
> >  +          component:
> >
> >           </p>
> >
> >           <ul>
> >
> >             <li>contextualize</li>
> >
> >  -          <li>compose</li>
> >
> >  +          <li>service</li>
> >
> >             <li>configure</li>
> >
> >             <li>parameterize</li>
> >
> >             <li>initialize</li>
> >
> >  @@ -169,9 +169,9 @@
> >             The methods suspend() and resume() are not guaranteed to be
> > called at all,
> >
> >             even when implemented. They can be called more than once, but
> > only after
> >
> >             one another and between start() and stop(). The reason they
> > exist is so
> >
> >  -          the container can notify the Component it needs to come to
> > temporary stop
> >
> >  +          the container can notify the component it needs to come to
> > temporary stop
> >
> >             any operations. The container may need to perform some
> > synchronized operation
> >
> >  -          on one of the Components used by this Component, or it may
> > wish to call any
> >
> >  +          on one of the components used by this component, or it may
> > wish to call any
> >
> >             of the following methods, which can also be called zero or
> > more times, and
> >
> >             only between a suspend() and a resume().
> >
> >           </p>
> >
> >  @@ -186,12 +186,12 @@
> >         <s2 title="The Command Pattern">
> >
> >           <p>
> >
> >             The most advanced, most complicated and most flexible option
> > is to use
> >
> >  -          the Command pattern by having your Component implement the
> > Commandable
> >
> >  +          the Command pattern by having your component implement the
> > Commandable
> >
> >             interface. This is experimental; you'll find the Commandable
> > and its
> >
> >             related classes in the excalibur package.
> >
> >           </p>
> >
> >           <p>
> >
> >  -          It is recommended that if your Component implements
> > Commandable, it should
> >
> >  +          It is recommended that if your component implements
> > Commandable, it should
> >
> >             not implement Executable or Interruptable. When you do choose
> > to combine the
> >
> >             two, the order in which the different steps must happen is
> > very specific:
> >
> >             <code>
> >
> >  @@ -218,8 +218,8 @@
> >           </p>
> >
> >           <p>
> >
> >             The advantage of using Commands is that you can have multiple
> > processes running
> >
> >  -          outside your Component that can manipulate it. These will run
> > until completion
> >
> >  -          even if you Component has already been disposed of.
> >
> >  +          outside your component that can manipulate it. These will run
> > until completion
> >
> >  +          even if you component has already been disposed of.
> >
> >           </p>
> >
> >           <p>
> >
> >             You should note that the Command interface we use extends
> > Runnable, which means
> >
> >
> >
> >
> >
> >--
> >To unsubscribe, e-mail:  
> > <ma...@jakarta.apache.org> For additional
> > commands, e-mail: <ma...@jakarta.apache.org>

-- 
Cheers,

Peter Donald
-----------------------------------------------------------------------
|  I thought there was a knob on the TV to turn up the intelligence.  |
|      There's a knob called "brightness", but it doesn't work.       |
----------------------------------------------------------------------- 


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: cvs commit: jakarta-avalon/src/xdocs/framework reference-the-lifecycle.xml

Posted by Leo Simons <le...@apache.org>.
On Sat, 2002-09-07 at 10:54, Paul Hammant wrote:
> Is everyone happy with this change?
> 
> I have..
> 
> 1) dropped the case of most usages of Component.
> 2) Refered to Serviceable where Composable was used solely.

+1

> It looks like Reserviceable is missing.  There is a Recomposable.  Thoughts?

We should I think mention that we the Re* interfaces are conceptually
sound but lack a solid contract or any implementation that supports
them, both in xdoc and in javadoc.

Just thoughts, no commits....sorry :/

- Leo



--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>