leosimons 2002/08/27 12:15:47
Modified: assembly/src/xdocs containers.xml container.xml
deployment.xml dictionary.xml index.xml install.xml
kernel.xml
Log:
some doc improvements. Mainly grammatical, also link fixing and simplyfing some of
Steve's famously complex sentences.
Revision Changes Path
1.5 +15 -5 jakarta-avalon-excalibur/assembly/src/xdocs/containers.xml
Index: containers.xml
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/assembly/src/xdocs/containers.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- containers.xml 21 Aug 2002 21:26:55 -0000 1.4
+++ containers.xml 27 Aug 2002 19:15:47 -0000 1.5
@@ -5,22 +5,32 @@
<title>Containers</title>
<authors>
<person name="Stephen McConnell" email="[EMAIL PROTECTED]"/>
+ <person name="Leo Simons" email="[EMAIL PROTECTED]"/>
</authors>
</header>
<body>
<s1 title="Container">
- <p>The Merlin system provides support for a cascading containers. This model
enables component assemblers to associate jar files under a protected container scope
where each container is associated with its own classloader.</p>
- <p>Merlin will handle resolution of service dependencies for components
contained in containers by looking for explicitly declared components commencing
within the local container, and working progressively up the container hierarchy. If
no explicit solutions are resolved, Merlin will attempt to build an implicit solution
based on components declared in the respective container classpath declarations.</p>
+ <p>The Merlin system provides support for <strong>cascading
containers</strong>. This model
+ enables component assemblers to (among other things) associate jar files
under a protected
+ container scope where each container is associated with its own
classloader.</p>
+
+ <p>Merlin will handle resolution of service dependencies for components
contained in
+ containers by looking for explicitly declared components commencing within
the local
+ container, and working progressively up the container hierarchy. If no
explicit solutions
+ are resolved, Merlin will attempt to build an implicit solution based on
components declared
+ in the respective container classpath declarations.</p>
</s1>
<s1 title="Container Model">
- <p>A new container is created using a container model. The model is the
defintion of the container, its classpath, and the profiles of the components it is
responsible for managing. Container models are declared programmatically or via an
XML description.</p>
+ <p>A new container is created using a container model. The model is the
definition of the
+ container, its classpath, and the profiles of the components it is
responsible for managing.
+ Container models are declared programmatically or via an XML description.</p>
- <p><i>Minimilist container definition.</i></p>
+ <p><em>Minimilist container definition:</em></p>
<source>
<container name="<font color="darkred">root</font>">
<classpath>
1.5 +15 -5 jakarta-avalon-excalibur/assembly/src/xdocs/container.xml
Index: container.xml
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/assembly/src/xdocs/container.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- container.xml 21 Aug 2002 17:14:06 -0000 1.4
+++ container.xml 27 Aug 2002 19:15:47 -0000 1.5
@@ -5,22 +5,32 @@
<title>Containers</title>
<authors>
<person name="Stephen McConnell" email="[EMAIL PROTECTED]"/>
+ <person name="Leo Simons" email="[EMAIL PROTECTED]"/>
</authors>
</header>
<body>
<s1 title="Container">
- <p>The Merlin system provides support for a cascading containers. This model
enables component assemblers to associate jar files under a protected container scope
where each container is associated with its own classloader.</p>
- <p>Merlin will handle resolution of service dependencies for components
contained in containers by looking for explicitly declared components commencing
within the local container, and working progressively up the container hierarchy. If
no explicit solutions are resolved, Merlin will attempt to build an implicit solution
based on components declared in the respective container classpath declarations.</p>
+ <p>The Merlin system provides support for <strong>cascading
containers</strong>. This model
+ enables component assemblers to (among other things) associate jar files
under a protected
+ container scope where each container is associated with its own
classloader.</p>
+
+ <p>Merlin will handle resolution of service dependencies for components
contained in
+ containers by looking for explicitly declared components commencing within
the local
+ container, and working progressively up the container hierarchy. If no
explicit solutions
+ are resolved, Merlin will attempt to build an implicit solution based on
components declared
+ in the respective container classpath declarations.</p>
</s1>
<s1 title="Container Model">
- <p>A new container is created using a container model. The model is the
definition of the container, its classpath, and the profiles of the components it is
responsible for managing. Container models are declared programmatically or via an
XML description.</p>
+ <p>A new container is created using a container model. The model is the
definition of the
+ container, its classpath, and the profiles of the components it is
responsible for managing.
+ Container models are declared programmatically or via an XML description.</p>
- <p><i>Minimilist container definition.</i></p>
+ <p><em>Minimilist container definition:</em></p>
<source>
<container name="<font color="darkred">root</font>">
<classpath>
1.5 +17 -10 jakarta-avalon-excalibur/assembly/src/xdocs/deployment.xml
Index: deployment.xml
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/assembly/src/xdocs/deployment.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- deployment.xml 21 Aug 2002 17:00:52 -0000 1.4
+++ deployment.xml 27 Aug 2002 19:15:47 -0000 1.5
@@ -10,26 +10,30 @@
<body>
<s1 title="Deployment">
-<p>Components types deployed under this framework must be declared as formal
component types using a <classname>.xinfo descriptor as defined by the <a
href="api/meta/index.html">Avalon Meta Model,</a>. Components types may also deployed
with default profile criteria and configuration information.</p>
+<p>Components types deployed under Merlin must be declared as formal component
types using a
+<classname>.xinfo descriptor as defined by the
+<link
href="http://jakarta.apache.org/avalon/excalibur/merlin/api/meta/index.html">Merlin
Meta Model</link> (Merlin fully supports the .xinfo files
+as used by Phoenix). Components types may also deployed with default profile
criteria and
+configuration information.</p>
<ul>
<li><classname>.xinfo
<ul>
- <li>General component type information.</li>
- <li>Context constraints.</li>
- <li>Service dependencies.</li>
- <li>Service declarations.</li>
- <li>Logging constraints.</li>
+ <li>General component type information</li>
+ <li>Context constraints</li>
+ <li>Service dependencies</li>
+ <li>Service declarations</li>
+ <li>Logging constraints</li>
</ul>
</li>
<li><classname>.xprofile
<ul>
- <li>Packaged profile containing type instantiation criteria.</li>
+ <li>Packaged profile containing type instantiation criteria</li>
</ul>
</li>
<li><classname>.xconfig
<ul>
- <li>Default configuration.</li>
+ <li>Default configuration</li>
</ul>
</li>
</ul>
@@ -38,7 +42,10 @@
<s1 title="Kernel Definition">
- <p>Components assembly requires the declaration of at least one component
with the kernel configuration profile. The profile enables the declaration of a
hierarchy of containers and component profiles within containers. The containers
within a hierarchy collaborate to resolve service dependencies for the components they
respectively manage.</p>
+ <p>Component assembly requires the declaration of at least one component with
the kernel
+ configuration profile. The profile enables the declaration of a hierarchy of
containers and
+ component profiles within containers. The containers within a hierarchy
collaborate to
+ resolve service dependencies for the components they respectively manage.</p>
<p>Example components and a kernel.xml profile are included in the
distribution.</p>
1.5 +8 -8 jakarta-avalon-excalibur/assembly/src/xdocs/dictionary.xml
Index: dictionary.xml
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/assembly/src/xdocs/dictionary.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- dictionary.xml 24 Aug 2002 16:01:15 -0000 1.4
+++ dictionary.xml 27 Aug 2002 19:15:47 -0000 1.5
@@ -12,39 +12,39 @@
<table>
<tr>
- <td><p>Term</p></td>
- <td><p>Definition</p></td>
+ <td><p><strong>Term</strong></p></td>
+ <td><p><strong>Definition</strong></p></td>
</tr>
<tr>
- <td><a href="assembly"/><p>Assembly</p></td>
+ <td><a href="assembly"/><p><em>Assembly</em></p></td>
<td>
<p>The recursive process of the resolution of dependencies declared by a component
with services provided by other components.</p>
<p>Merlin provides substantial support for the automation of component assembly.
Under a kernel configuration a user can declare explicit components to be assembled.
Merlin will attempt to put together solutions for component dependencies (service
dependencies and lifecycle extension dependencies) based on the availability of other
explicit component declarations together with implicit and packaged component
declarations. Implicit components are derived from the manifest declarations within
the jar files containing Packaged components are based on a <classname>.xprofile
resource packaged with a component type.</p>
</td>
</tr>
<tr>
- <td><p>Container</p></td>
+ <td><p><em>Container</em></p></td>
<td>
<p>A <a
href="api/assembly/org/apache/excalibur/merlin/contasiner/Container.html">Container</a>
is an object used within the Merlin system to manage the assembly and deployment of a
set of components.</p>
<p>The Merlin <a
href="api/assembly/org/apache/excalibur/merlin/container/DefaultContainer.html">DefaultContainer</a>
implementation provides support for the asynchronous execution of a container
hierarchy where each container represents a degree of system isolation. Isolation is
provided in terms of class management, failure, and logging. Containers isolate
failure of components to the container the component is embedded within. Failure of a
container does not imply failure of a parent container. Each container in a container
hierarchy is associated with its own classloader. In practice the classloader is the
basic framework on which container hierarchies are arranged. Containers are further
isolated in terms of logging management. Each container is assigned its own logger
based on the container path. Component container within a container log to the
container logging category path. This enables clear identification of component
logging information and minimisation of component naming restrictions within a
container hierarchy.</p>
</td>
</tr>
<tr>
- <td><p>Kernel</p></td>
+ <td><p><em>Kernel</em></p></td>
<td>
<p>A <a
href="api/assembly/org/apache/excalibur/merlin/kernel/Kernel.html">Kernel</a> is an
object that manages a set of components.</p>
<p>A kernel is responsible for the establishment of set of services that may be
exported by the kernel and used by other systems. The Merlin <a
href="api/assembly/org/apache/excalibur/merlin/kernel/DefaultKernel.html">DefaultKernel</a>
implementation achieves this objective though the management of a container
hierarchy.</p>
</td>
</tr>
<tr>
- <td><a href="profile"/><p>Profile</p></td>
+ <td><a href="profile"/><p><em>Profile</em></p></td>
<td>
<p>A <a
href="api/assembly/org/apache/excalibur/merlin/model/Profile.html">Profile</a> is a
description of a component <a
href="api/meta/org/apache/excalibur/meta/info/Type.html">Type</a> instantiation
criteria.</p>
<p>A type may have many different instantiation criteria - different in terms of
the context, parameters, or configuration to be applied. Profiles within Merlin may
be qualified in terms of the startup policy and enabled status. Startup policy
indicates that a component shall be started on startup of the container or if
activation of the component can be deferred until it is required. Profile ennoblement
policy simply declares if a profile is enabled or not - non enabled component profiles
will not be included as assembly candidates.</p>
</td>
</tr>
<tr>
- <td><a href="stage"/><p>Stage</p></td>
+ <td><a href="stage"/><p><em>Stage</em></p></td>
<td>
<p>A stage is defined as one of the well-know lifecycle step that a component
passed though during deployment.</p>
<p>These stages include creation, access, relase, and destruction. The creation and
destruction stages are referred to within the Merlin environment as outer-stages
whereas access and release are referred to as inner-stages. Stages represent the
points at which lifecycle extensions can be applied to the core component model. The
meta-info model used within Merlin allows for a component to declare itself as a
provider of a lifecycle <a href="#stage">stage</a> extension.</p>
1.7 +73 -29 jakarta-avalon-excalibur/assembly/src/xdocs/index.xml
Index: index.xml
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/assembly/src/xdocs/index.xml,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- index.xml 27 Aug 2002 11:08:27 -0000 1.6
+++ index.xml 27 Aug 2002 19:15:47 -0000 1.7
@@ -6,6 +6,7 @@
<title>Merlin Overview</title>
<authors>
<person name="Stephen McConnell" email="[EMAIL PROTECTED]"/>
+ <person name="Leo Simons" email="[EMAIL PROTECTED]"/>
</authors>
</header>
@@ -14,52 +15,95 @@
<s1 title="Introduction">
<p>Merlin 2 is a container including a set of services dealing with the
definition
- of a system kernel, container hierarchies, component assembly, component
deployment, and
- decommissioning.</p>
-
- <p>Main components of the framework include:
+ of:
<ul>
- <li>Application Kernel.</li>
- <li>Heirachical container model.</li>
- <li>Automated assembly system.</li>
- <li>Component defaults management.</li>
- <li>Candidate resolution.</li>
+ <li>a system kernel</li>
+ <li>container hierarchies</li>
+ <li>component assembly, deployment and decommissioning</li>
+ </ul>
+ </p>
+
+ <p>Main components of the merlin framework include:
+ <ul>
+ <li>Application Kernel</li>
+ <li>Heirachical container model</li>
+ <li>Automated assembly system</li>
+ <li>Component defaults management</li>
+ <li>Candidate resolution</li>
</ul>
</p>
<p>The function of the kernel is to provide a set of bootstrap services and
context
- entries to the container it is managing, and subsequently publish establish
entries
+ entries to the container it is managing, and subsequently publish established
entries
and services (derived from container deployment) towards kernel clients.</p>
</s1>
+ <s1 title="Status">
+ <p>Merlin 2.0 is under active ALPHA development. APIs are subject to
change.</p>
+ </s1>
+
+ <s1 title="Prerequisites">
+ <p>As Merlin 2 is still in development, documentation and usage is not
optimized for
+ end users yet. A good understanding of avalon is currently required in order
to get up
+ and running. Questions are welcome on the avalon user mailing list though!</p>
+
+ <p>As Merlin matures, it should become possible for anyone with knowledge of
the
+ Avalon Framework lifecycle and patterns to use it.</p>
+ </s1>
+
<s1 title="Excalibur Dependencies">
<p>The Merlin 2 container makes extensive use of many of the existing Excalibur
utilities,
- and builds above the Avalon component model.</p>
+ and builds upon the Avalon Framework component model.</p>
- <p>A summary of the main facilities and relationship to Merlin is described in
the following table.</p>
+ <p>A summary of the main facilities and their relationship to Merlin is
described in the
+ following table:</p>
<table>
<tr>
- <td><p>Facility</p></td>
- <td><p>Role</p></td>
+ <td><p><strong>Facility</strong></p></td>
+ <td><p><strong>Role</strong></p></td>
</tr>
<tr>
<td><p><link
href="http://jakarta.apache.org/avalon/excalibur/container/index.html">Container</link></p></td>
- <td><p>A set of container independnent utilities defining interfaces and
abstract classes that enable enhanced consistency in component management across
different container. Merlin uses the lifecycle extension interfaces defined in this
package in its internal component deployment engine. In addition, Merlin complies
with all of the proposed context key and meta-info attributes presented under the
<link
href="http://jakarta.apache.org/avalon/excalibur/container/attributes.html">attributes
documentation</link>.</p></td>
+ <td><p>A set of container-independent utilities defining interfaces and
abstract classes
+ that enable enhanced consistency in component management across different
containers.
+ Merlin uses the lifecycle extension interfaces defined in this package in its
internal
+ component deployment engine.
+ In addition, Merlin complies with all of the context key and meta-info
attributes
+ proposed in the
+ <link
href="http://jakarta.apache.org/avalon/excalibur/container/attributes.html">attributes
documentation</link>.</p></td>
</tr>
<tr>
<td><p><link
href="http://jakarta.apache.org/avalon/excalibur/meta/index.html">Meta</link></p></td>
- <td><p>The Excalibur Meta package contains a container independent meta
model that describes an Avalon component type. The model serves as the foundation on
which Merlin's data-data model is based. Using resources from the Excalibur Meta
package, Merlin is able interoperate with components declared using the Phoenix
blockinfo specification (restriction apply). The model provides complete support for
the declaration of lifecycle extension usage independently of an implementation or
service availability. All meta-info structures (type, logging criteria, proiduced
services, service dependencies, extension provsion, and extension depedencies are
fully supported by the Merlin system.</p></td>
+ <td><p>The Excalibur Meta package contains a container independent meta
model that
+ describes an Avalon component type. The model serves as the foundation on
which
+ Merlins data-data model is based. Using resources from the Excalibur Meta
package,
+ Merlin is able to interoperate with components declared using the
+ <link
href="http://jakarta.apache.org/avalon/phoenix/bdg/blockinfo-specification.html">Phoenix
BlockInfo specification</link>
+ (though certain restrictions apply).
+ The model provides support for declaring the lifecycle extension usage
+ independently of the actual availabilty of an extension implementation
+ or service availability. All meta-info structures (type, logging criteria,
produced
+ services, service dependencies, extension provision, and extension
depedencies) are
+ fully supported by the Merlin system.</p></td>
</tr>
<tr>
<td><p><link
href="http://jakarta.apache.org/avalon/excalibur/configuration/index.html">Configuration</link></p></td>
- <td><p>Used in conjuction with configuration management. Provides
supporting classes through which Merlin enables the association of default
confiurations with component types.</p></td>
+ <td><p>Used in conjuction with configuration management. Provides
supporting classes
+ through which Merlin enables the association of default confiurations with
component types.</p></td>
</tr>
<tr>
<td><p><link
href="http://jakarta.apache.org/avalon/excalibur/extension/api/index.html">Extensions</link></p></td>
- <td><p>Merlin uses the extensions package as part of its is type management
system, enabling greater flexibility and management over jar file versions and their
respective dependencies.</p></td>
+ <td><p>Merlin uses the extensions package as part of its is type management
system,
+ enabling greater flexibility and management over jar file versions and their
respective
+ dependencies.</p></td>
+ </tr>
+ <tr>
+ <td><p><link
href="http://jakarta.apache.org/avalon/excalibur/fortress">Fortress</link></p></td>
+ <td><p>Work and discussion is underway to allow the fortress container
project to be
+ used within merlin. It is likely the two projects will eventually merge
completely.</p></td>
</tr>
</table>
</s1>
@@ -68,22 +112,22 @@
<p>The Merlin project includes a number of demonstration components. One of
these
components declares several dependencies, which in turn refer to other
components
- with dependencies. A sample kernel.xml file included in this distribution
references
- this component as a target. Merlin handles the resolution of all
dependencies, activation
- ordering, and the lifecycle processing automatically.</p>
+ with dependencies. A sample kernel.xml file included in this distribution
+ references this component as a target. Merlin handles the resolution of all
+ dependencies, the activation ordering, and the lifecycle processing
automatically.</p>
<p>To build and execute the demo, invoke the following commands:</p>
<source>
$ ant
- $ kernel
+ $ kernel (windows)
+ $ ./kernel.sh (UNIX)
</source>
- <p>For a description of the demo see the Javadoc document for the <a
href="api/assembly/org/apache/excalibur/merlin/Main.html">org.apache.excalibur.merlin.Main</a>
class.</p>
-
+ <p>Note you need a properly configured JDK and
+ <a href="http://jakart.apache.org/ant">Ant</a> installed for this to work
properly.
+ For a description of the demo see the Javadoc document for the
+ <a
href="api/assembly/org/apache/excalibur/merlin/Main.html">org.apache.excalibur.merlin.Main</a>
+ class.</p>
- </s1>
-
- <s1 title="Status">
- <p>Merlin 2.0 is under active ALPHA development. APIs are subject to
change.</p>
</s1>
</body>
1.6 +45 -9 jakarta-avalon-excalibur/assembly/src/xdocs/install.xml
Index: install.xml
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/assembly/src/xdocs/install.xml,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- install.xml 21 Aug 2002 17:14:06 -0000 1.5
+++ install.xml 27 Aug 2002 19:15:47 -0000 1.6
@@ -12,32 +12,60 @@
<s2 title="Dependencies">
<p>
-Installation of Merlin assumes you have Ant 1.4 or later installed on you machine.
+Installation of Merlin assumes you have
+<link href="http://jakarta.apache.org/ant/index.html">Ant 1.4</link> or later
+properly installed on you machine.
+</p>
+
+<p>
+Merlin also depends on several other avalon projects, including Avalon Framework,
+some parts of Avalon Excalibur and Avalon Logkit; the instructions walk you
+through downloading and compiling these as well.
</p>
-<p><a href="http://jakarta.apache.org/ant/index.html">Ant Home Page</a></p>
</s2>
<s2 title="CVS Repository">
<p>
-The Merlin distribution is available via the Apache CVS server. To access the
server, simply use the following commands (if you are using a GUI CVS client,
configure it appropriately):
+The Merlin distribution is currently only available via the Apache CVS server.
+To access the server, simply use the following commands (if you are using a GUI
+CVS client, configure it appropriately):
</p>
<source>
cvs -d :pserver:[EMAIL PROTECTED]:/home/cvspublic login
password: anoncvs
- cvs -d :pserver:[EMAIL PROTECTED]:/home/cvspublic checkout
- jakarta-avalon-excalibur/assembly
+ cvs -d :pserver:[EMAIL PROTECTED]:/home/cvspublic checkout \
+ jakarta-avalon jakarta-avalon-excalibur jakarta-avalon-logkit \
+ jakarta-site
</source>
</s2>
<s2 title="Build Procedure">
<p>
-To build the Merlin installation, cd to the location of the Merlin project (e.g.
C:\jakarta-avalon-excalibur\merlin ) and invoke ant.
+To build the Merlin installation, you first have to build all
+dependencies (using ant), and then build Merlin itself. In the
+scripts below $BASE refers to the directory where you entered
+the cvs commands.
</p>
+<p><em>Windows:</em></p>
+<source>
+ > cd $BASE\jakarta-avalon
+ > ant
+ > cd $BASE\jakarta-avalon-logkit
+ > ant
+ > cd $BASE\jakarta-avalon-excalibur\assembly
+ > ant
+</source>
+<p><em>UNIX (eg linux):</em></p>
<source>
+ $ cd $BASE/jakarta-avalon
+ $ ant
+ $ cd $BASE/jakarta-avalon-logkit
+ $ ant
+ $ cd $BASE/jakarta-avalon-excalibur/assembly
$ ant
</source>
@@ -46,11 +74,19 @@
<s1 title="Demo">
<p>
-To run a demonstration of Merlin run the kernel command file.
+To run a demonstration of Merlin and verify your installation,
+run the kernel command file.
</p>
+<p><em>Windows:</em></p>
+<source>
+ > cd $BASE\jakarta-avalon-excalibur\assembly
+ > kernel
+</source>
+<p><em>UNIX (eg linux):</em></p>
<source>
- $ kernel
+ $ cd $BASE/jakarta-avalon-excalibur/assembly
+ $ ./kernel.sh
</source>
</s1>
1.6 +24 -7 jakarta-avalon-excalibur/assembly/src/xdocs/kernel.xml
Index: kernel.xml
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/assembly/src/xdocs/kernel.xml,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- kernel.xml 21 Aug 2002 17:14:06 -0000 1.5
+++ kernel.xml 27 Aug 2002 19:15:47 -0000 1.6
@@ -6,6 +6,7 @@
<title>Kernel</title>
<authors>
<person name="Stephen McConnell" email="[EMAIL PROTECTED]"/>
+ <person name="Leo Simons" email="[EMAIL PROTECTED]"/>
</authors>
</header>
@@ -13,11 +14,24 @@
<s1 title="Kernel">
- <p>Merlin separates the notion of a kernel from a container. A kernel manages
resources (Objects) whereas a container manages services. The Merlin implementation
provides a default kernel that manages a container hierarchy. The <a
href="api/assembly/org/apache/excalibur/merlin/kernel/DefaultKernel.html">DefaultKernel</a>
implementation provides the framework for overall management including startup,
shutting down, extensions management, and other system wide facilities. The Merlin
implementation provides a utility class (<a
href="api/assembly/org/apache/excalibur/merlin/Main.html">Main</a>) that handles
establish of a kernel based on a single command line argument.</p>
+ <p>Merlin separates the concepts of <strong>Kernel</strong> and
<strong>Container</strong>.
+ A kernel manages <em>resources</em> (Objects) whereas a container manages
<em>services</em>.
+ Merlin provides a default kernel that manages a container hierarchy:
+ <link
href="http://jakarta.apache.org/avalon/excalibur/merlin/api/assembly/org/apache/excalibur/merlin/kernel/DefaultKernel.html">DefaultKernel</link>.
+ It handles overall management, including startup, shutdown, extension
management, and other
+ system-wide tasks.
+ Merlin provides a utility class
+ (<link
href="http://jakarta.apache.org/avalon/excalibur/merlin/api/assembly/org/apache/excalibur/merlin/Main.html">Main</link>)
that handles
+ establishment of a kernel based on a single command line argument (the location
of
+ the configuration file). It is also possible to embed the kernel in other
+ environments, like within a servlet engine or another avalon container.</p>
+
+ <p>The kernel provides a set of bootstrap services (like a logging
+ service) and context entries to the (root) container it is managing. It
subsequently
+ publishes established entries and services
+ (derived from container deployment) towards kernel clients.</p>
- <p>The function of the kernel is to provide a set of bootstrap services and
context entries to the container it is managing, and subsequently publish establish
entries and services (derived from container deployment) towards kernel clients.</p>
-
- <p><i>Kernel to Container conceptual relationship.</i></p>
+ <p><em>Kernel to Container conceptual relationship:</em></p>
<img src="images/overview.gif" />
@@ -25,9 +39,12 @@
<s1 title="Kernel Model">
- <p>A Merlin kernel is created using a kernel model (<a
href="api/assembly/org/apache/excalibur/merlin/model/KernelDescriptor.html">KernelDescriptor</a>).
The model may be defined programmatically or through an XML file. A kernel XML file
contains the definition of kernel execution parameters and a root container.</p>
+ <p>A Merlin kernel is created using a kernel model
+ (<link
href="http://jakarta.apache.org/avalon/excalibur/merlin/api/assembly/org/apache/excalibur/merlin/model/KernelDescriptor.html">KernelDescriptor</link>).
+ The model may be defined programmatically or through an XML file. A kernel XML
file contains
+ the definitions of kernel execution parameters and of the root container.</p>
- <p><i>Minimilist kernel definition.</i></p>
+ <p><em>Minimilist kernel definition:</em></p>
<source>
<kernel>
<classpath>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>