bloritsch    2003/02/20 06:49:32

  Modified:    site/framework guide-patterns-soii.html index.html
                        reference-containers.html
  Added:       site/framework changes.html
  Log:
  update the framework docs
  
  Revision  Changes    Path
  1.3       +383 -1    avalon-site/site/framework/guide-patterns-soii.html
  
  Index: guide-patterns-soii.html
  ===================================================================
  RCS file: /home/cvs/avalon-site/site/framework/guide-patterns-soii.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- guide-patterns-soii.html  20 Feb 2003 14:26:08 -0000      1.2
  +++ guide-patterns-soii.html  20 Feb 2003 14:49:32 -0000      1.3
  @@ -1 +1,383 @@
  -<html><head><title>Resource not Found</title><STYLE><!--H1{font-family : 
sans-serif,Arial,Tahoma;color : white;background-color : #0086b2;} 
BODY{font-family : sans-serif,Arial,Tahoma;color : black;background-color : 
white;} B{color : white;background-color : #0086b2;} HR{color : #0086b2;} 
--></STYLE> </head><body><h1>Cocoon 2 - Resource not Found</h1><hr size="1" 
noshade="noshade"/><p><b>type</b> resource-not-found</p><p><b>message</b> 
<u>Page Not Available.</u></p><p><b>description</b> <u>The requested resource 
couldn't be found.</u></p><p><b>sender</b> 
org.apache.cocoon.Main</p><p><b>source</b> Cocoon commandline 
(Main.java)</p><p><b>request-uri</b><pre>framework/guide-patterns-soii.html</pre></p><p><b>missing-file</b><pre>site\framework\guide-patterns-soii.html</pre></p><hr
 size="1" noshade="true"/></body></html>
  \ No newline at end of file
  +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
  +<html>
  +<head>
  +<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  +<!--*** This is a generated file.  Do not edit.  ***-->
  +<link rel="stylesheet" href="skin/tigris.css" type="text/css">
  +<link rel="stylesheet" href="skin/mysite.css" type="text/css">
  +<link rel="stylesheet" href="skin/site.css" type="text/css">
  +<link media="print" rel="stylesheet" href="skin/print.css" type="text/css">
  +<title>Avalon Framework - Guide - Separation of Interface and 
Implementation</title>
  +</head>
  +<body bgcolor="white" class="composite">
  +<!--================= start Banner ==================-->
  +<div id="banner">
  +<table width="100%" cellpadding="8" cellspacing="0" summary="banner" 
border="0">
  +<tbody>
  +<tr>
  +<!--================= start Group Logo ==================-->
  +<td align="left">
  +<div class="groupLogo">
  +<a href="http://www.apache.org/";><img border="0" class="logoImage" 
alt="Apache" src="images/group-logo.gif"></a>
  +</div>
  +</td>
  +<!--================= end Group Logo ==================-->
  +<!--================= start Project Logo ==================--><td 
align="right">
  +<div class="projectLogo">
  +<a href="http://avalon.apache.org/";><img border="0" class="logoImage" 
alt="Apache Avalon" src="images/project-logo.gif"></a>
  +</div>
  +</td>
  +<!--================= end Project Logo ==================-->
  +</tr>
  +</tbody>
  +</table>
  +</div>
  +<!--================= end Banner ==================-->
  +<!--================= start Main ==================-->
  +<table width="100%" cellpadding="0" cellspacing="0" border="0" summary="nav" 
id="breadcrumbs">
  +<tbody>
  +<!--================= start Status ==================-->
  +<tr class="status">
  +<td>
  +<!--================= start BreadCrumb ==================--><a 
href=""></a><a href=""></a><a href=""></a>
  +<!--================= end BreadCrumb ==================--></td><td id="tabs">
  +<!--================= start Tabs ==================-->
  +<div class="tab">
  +<span class="unselectedTab"><a href="http://avalon.apache.org/";>Avalon 
Home</a></span> | <span class="selectedTab"><a href="index.html"><font 
color="#000000">Framework</font></a></span> | <span class="unselectedTab"><a 
href="http://avalon.apache.org/components/";>Components</a></span> | <span 
class="unselectedTab"><a 
href="http://avalon.apache.org/phoenix/";>Phoenix</a></span> | <span 
class="unselectedTab"><a href="http://avalon.apache.org/seca/";>SECA</a></span> 
| <span class="unselectedTab"><a 
href="http://avalon.apache.org/apps/";>Apps</a></span>
  +</div>
  +<!--================= end Tabs ==================-->
  +</td>
  +</tr>
  +</tbody>
  +</table>
  +<!--================= end Status ==================-->
  +<table id="main" width="100%" cellpadding="8" cellspacing="0" summary="" 
border="0">
  +<tbody>
  +<tr valign="top">
  +<!--================= start Menu ==================-->
  +<td id="leftcol">
  +<div id="navcolumn">
  +<div class="menuBar">
  +<div class="menu">
  +<span class="menuLabel">Essentials</span>
  +        
  +<div class="menuItem">
  +<a href="index.html">Overview</a>
  +</div>
  +        
  +<div class="menuItem">
  +<a href="getting-started.html">Getting Started</a>
  +</div>
  +     
  +<div class="menuItem">
  +<a 
href="http://jakarta.apache.org/builds/avalon/release/framework";>Download</a>
  +</div>
  +    
  +</div>
  +<div class="menu">
  +<span class="menuLabel">Guide</span>
  +        
  +<div class="menuItem">
  +<a href="guide-oop-best-practices.html">OOP best Practices</a>
  +</div>
  +        
  +<div class="menuItem">
  +<a href="guide-patterns-what-are.html">What are Patterns?</a>
  +</div>
  +        
  +<div class="menuItem">
  +<a href="guide-patterns-in-avalon.html">Patterns in Avalon</a>
  +</div>
  +        
  +<div class="menuItem">
  +<a href="guide-cop-what-is.html">What is COP?</a>
  +</div>
  +        
  +<div class="menuItem">
  +<a href="guide-cop-in-avalon.html">COP in Avalon</a>
  +</div>
  +        
  +<div class="menuItem">
  +<a href="guide-where-to-go-from-here.html">Where to Go from here</a>
  +</div>
  +    
  +</div>
  +<div class="menu">
  +<span class="menuLabel">Reference</span>
  +        
  +<div class="menuItem">
  +<a href="changes.html">Changes</a>
  +</div>
  +        
  +<div class="menuItem">
  +<a href="http://avalon.apache.org/api/index.html";>API Docs</a>
  +</div>
  +        
  +<div class="menuItem">
  +<a href="reference-the-lifecycle.html">The Lifecycle</a>
  +</div>
  +        
  +<div class="menuItem">
  +<a href="reference-containers.html">Containers</a>
  +</div>
  +    
  +</div>
  +</div>
  +</div>
  +</td>
  +<!--================= end Menu ==================-->
  +<!--================= start Content ==================--><td>
  +<div id="bodycol">
  +<div class="app">
  +<div align="center">
  +<h1>Avalon Framework - Guide - Separation of Interface and 
Implementation</h1>
  +</div>
  +<div class="h3">
  +  
  +  
  +    
  +<div class="h3">
  +<h3>Introduction</h3>
  +</div>
  +
  +      
  +<p>
  +        The core concept of interface and implementation separation is built 
into
  +        Java itself in that it has interfaces and classes.  Many toolkits 
have
  +        been developed along the lines of an API / implementation separation.
  +        One such toolkit is the SAX API and the multiple XML parsers that 
implement
  +        it. Developers are quite happy using Apache's Xerces via the SAX API 
and
  +        understand that SAX represents the interface and Xerces an 
implementation.
  +        We notice that a lot of developers are happy to use interface/impl
  +        separated tools, but not to make them.  We will try to justify in 
this
  +        document why we think people making applications should define
  +        interface/impl boundaries early in the design cycle.
  +      </p>
  +      
  +<div class="h4">
  +<h4>Justification</h4>
  +</div>
  +
  +        
  +<p>
  +          The main reason we do it is because:
  +        </p>
  +          
  +<ol>
  +              
  +<li>it forces you to decouple different modules/components/objects</li>
  +              
  +<li>if specified correctly allows you to easily change the implementation of
  +                  the interface/contract in the future</li>
  +              
  +<li>makes it possible for a user to read documentation about the interface
  +                  without having the implementation details clutter up their 
perception</li>
  +              
  +<li>increases the possibility of reuse in a larger application</li>
  +          
  +</ol>
  +        
  +<p>
  +          If you are building objects with the aim of reuse then [3] is 
important but
  +          most people don't build for reuse (and most XP advocates say you 
should just
  +          plan to use not reuse) and thus [1] and [2] are more important. If 
you feel
  +          like documenting that and expanding this then feel free to.
  +        </p>
  +      
  +      
  +<div class="h4">
  +<h4>Example</h4>
  +</div>
  +
  +        
  +<p>
  +          Let us hope this is not necessary:
  +        </p>
  +
  +<pre class="code">
  +package helloworld;
  +public interface HelloWorld {
  +    void sayHello(String greeting);
  +}
  +
  +package helloworld.impl.default;
  +public class DefaultHelloWorld implements HelloWorld {
  +    void sayHello(String greeting) {
  +        System.out.println("HelloWorld Greeting: " + greeting);
  +    }
  +}
  +
  +package helloworld.impl.remote;
  +public class RemoteHelloWorld implements HelloWorld {
  +    private RemoteMessager mRemoteMessager;
  +    public RemoteHelloWorld(RemoteMessager rm) {
  +        RemoteMessager = rm;
  +    }
  +    void sayHello(String greeting) {
  +        rm.sendMessage("HelloWorld Greeting: " + greeting);
  +    }
  +}
  +</pre>
  +
  +      
  +      
  +<div class="h4">
  +<h4>History</h4>
  +</div>
  +
  +        
  +<p>
  +          We are referring to this pattern as <strong>interface/impl 
separation</strong>.
  +          Wiley's Patterns in Java book refers to it simply as 'Interface', 
but we feel
  +          that the word interface is overloaded enough in English and 
computing.
  +        </p>
  +        
  +<p>
  +          It might be true to say that this is 'API/implementation 
separation', but
  +          this too could be confusing as the aforementioned SAX is not quite 
a
  +          pure set of interfaces. It has a static factory that thunks in an
  +          implementation that all subsequent calls to the factory method 
will be
  +          forced to use. See Anti-Patterns below.
  +        </p>
  +        
  +<p>
  +          Better might be 'separation of implementation and the 
interface/contract' as
  +          that is quite correct, but a tad unwieldy.
  +        </p>
  +      
  +    
  +    
  +<div class="h3">
  +<h3>Related Topics</h3>
  +</div>
  +
  +      
  +<div class="h4">
  +<h4>Implementation Hiding</h4>
  +</div>
  +
  +        
  +<p>
  +          Once a tool is split into interface and impl, it is possible for a 
container
  +          to hide the implementation.  Most containers already use dynamic 
proxys
  +          (available in the JDK since 1.3), but we are talking about having 
the classes
  +          of the implementation hidden from classes using the interface.
  +        </p>
  +        
  +<p>
  +          To do this, it is easiest to mount the impl classes in a separate 
classloader
  +          to the classloader that the interface-using classes are mounted 
in.  The
  +          interfaces being mounted in a classloader that is visible to both.
  +        </p>
  +        
  +<p>
  +          This is not a new proposition.  Sun defined the servlet spec, and 
included
  +          rules about implementation hiding for hosted servlets.  
Essentially,
  +          instantiated servlets are only allowed to 'see' classes from the 
JDK, their
  +          own WAR file and those of the Servlet API itself.  Tomcat 
correctly hides
  +          the implementation of the Servlet API from the hosted servlets.
  +        </p>
  +        
  +<p>
  +          To actually achieve this separation, many containers (including 
those from
  +          the Avalon project) require that the interface and impl are in 
separate jars.
  +          Or to put it another way, there is no point separating your 
interface and impl
  +          classes if you are going to distribute them in the same jar.
  +        </p>
  +      
  +      
  +<div class="h4">
  +<h4>Kernel, Client API, Hosted Components</h4>
  +</div>
  +
  +        
  +<p>
  +          This is building on the previous section, and in short is referred 
to as K/CAPI/HC.
  +          Basically the kernel mounts hosted components and satisfies their 
need for a
  +          client API. However the kernel wants to hide its implementation 
from the hosted
  +          components.
  +        </p>
  +        
  +<p>
  +          An EJB container is another good example of this.  EntityBean, 
SessionBean etc. is
  +          the client API.  The hosted components are the beans, and the 
container has a
  +          kernel.  It builds a complex tree of classloaders to separate its 
implementation,
  +          the client API, the JDK's runtime jar (that always being in the 
system or
  +          primordial classloader), and the hosted components.
  +        </p>
  +        
  +<p>
  +          The central message of this is that if you have interface/impl 
separated your
  +          tool, and are doing tricky things with more classloaders in the 
implementation,
  +          please make sure you do not assume that the parent classloader of 
any classloader
  +          is the system classloader.  If your reusable tool has been taken 
by another team
  +          and at some non root place in a classloader tree, then the tools 
will fail if
  +          you have made such assumptions.
  +        </p>
  +      
  +      
  +<div class="h4">
  +<h4>Anti-Patterns</h4>
  +</div>
  +
  +        
  +<p>
  +          SAX, mentioned in multiple contexts in this document, is also an 
example of
  +          where the design can go wrong.  The Factory is static (that in 
itself is an
  +          anti-pattern to IoC).  Despite giving the appearance of having the 
ability
  +          to generate a parser based on the implementation's class name, 
only the first
  +          caller of that method will register a parser for the whole 
environment to use.
  +        </p>
  +        
  +<p>
  +          Given that the SAX API is now in the JDK, the environment we 
allude to above
  +          is the whole JVM.  This is a problem because in a very complex 
application
  +          with differing concurrent needs for implementation of parsers, not 
all can be
  +          met if the SAX API is used for making parsers.
  +        </p>
  +      
  +    
  +  
  +
  +<div id="authors" align="right">by&nbsp;Paul Hammant,&nbsp;Peter Donald</div>
  +</div>
  +</div>
  +</div>
  +</td>
  +<!--================= end Content ==================-->
  +</tr>
  +</tbody>
  +</table>
  +<!--================= end Main ==================-->
  +<!--================= start Footer ==================-->
  +<div id="footer">
  +<table summary="footer" cellspacing="0" cellpadding="4" width="100%" 
border="0">
  +<tbody>
  +<tr>
  +<!--================= start Copyright ==================-->
  +<td colspan="2">
  +<div align="center">
  +<div class="copyright">
  +              Copyright &copy; 2003&nbsp;The Apache Software Foundation.. 
All rights reserved.
  +            </div>
  +</div>
  +</td>
  +<!--================= end Copyright ==================-->
  +</tr>
  +<tr>
  +<td align="left">
  +<!--================= start Host ==================-->
  +<!--================= end Host ==================--></td><td align="right">
  +<!--================= start Credits ==================-->
  +<div align="right">
  +<div class="credit"></div>
  +</div>
  +<!--================= end Credits ==================-->
  +</td>
  +</tr>
  +</tbody>
  +</table>
  +</div>
  +<!--================= end Footer ==================-->
  +</body>
  +</html>
  
  
  
  1.4       +303 -1    avalon-site/site/framework/index.html
  
  Index: index.html
  ===================================================================
  RCS file: /home/cvs/avalon-site/site/framework/index.html,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- index.html        20 Feb 2003 14:26:08 -0000      1.3
  +++ index.html        20 Feb 2003 14:49:32 -0000      1.4
  @@ -1 +1,303 @@
  -<html><head><title>Resource not Found</title><STYLE><!--H1{font-family : 
sans-serif,Arial,Tahoma;color : white;background-color : #0086b2;} 
BODY{font-family : sans-serif,Arial,Tahoma;color : black;background-color : 
white;} B{color : white;background-color : #0086b2;} HR{color : #0086b2;} 
--></STYLE> </head><body><h1>Cocoon 2 - Resource not Found</h1><hr size="1" 
noshade="noshade"/><p><b>type</b> resource-not-found</p><p><b>message</b> 
<u>Page Not Available.</u></p><p><b>description</b> <u>The requested resource 
couldn't be found.</u></p><p><b>sender</b> 
org.apache.cocoon.Main</p><p><b>source</b> Cocoon commandline 
(Main.java)</p><p><b>request-uri</b><pre>framework/index.html</pre></p><p><b>missing-file</b><pre>site\framework\index.html</pre></p><hr
 size="1" noshade="true"/></body></html>
  \ No newline at end of file
  +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
  +<html>
  +<head>
  +<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  +<!--*** This is a generated file.  Do not edit.  ***-->
  +<link rel="stylesheet" href="skin/tigris.css" type="text/css">
  +<link rel="stylesheet" href="skin/mysite.css" type="text/css">
  +<link rel="stylesheet" href="skin/site.css" type="text/css">
  +<link media="print" rel="stylesheet" href="skin/print.css" type="text/css">
  +<title>Avalon Framework - Overview</title>
  +</head>
  +<body bgcolor="white" class="composite">
  +<!--================= start Banner ==================-->
  +<div id="banner">
  +<table width="100%" cellpadding="8" cellspacing="0" summary="banner" 
border="0">
  +<tbody>
  +<tr>
  +<!--================= start Group Logo ==================-->
  +<td align="left">
  +<div class="groupLogo">
  +<a href="http://www.apache.org/";><img border="0" class="logoImage" 
alt="Apache" src="images/group-logo.gif"></a>
  +</div>
  +</td>
  +<!--================= end Group Logo ==================-->
  +<!--================= start Project Logo ==================--><td 
align="right">
  +<div class="projectLogo">
  +<a href="http://avalon.apache.org/";><img border="0" class="logoImage" 
alt="Apache Avalon" src="images/project-logo.gif"></a>
  +</div>
  +</td>
  +<!--================= end Project Logo ==================-->
  +</tr>
  +</tbody>
  +</table>
  +</div>
  +<!--================= end Banner ==================-->
  +<!--================= start Main ==================-->
  +<table width="100%" cellpadding="0" cellspacing="0" border="0" summary="nav" 
id="breadcrumbs">
  +<tbody>
  +<!--================= start Status ==================-->
  +<tr class="status">
  +<td>
  +<!--================= start BreadCrumb ==================--><a 
href=""></a><a href=""></a><a href=""></a>
  +<!--================= end BreadCrumb ==================--></td><td id="tabs">
  +<!--================= start Tabs ==================-->
  +<div class="tab">
  +<span class="unselectedTab"><a href="http://avalon.apache.org/";>Avalon 
Home</a></span> | <span class="selectedTab"><a href="index.html"><font 
color="#000000">Framework</font></a></span> | <span class="unselectedTab"><a 
href="http://avalon.apache.org/components/";>Components</a></span> | <span 
class="unselectedTab"><a 
href="http://avalon.apache.org/phoenix/";>Phoenix</a></span> | <span 
class="unselectedTab"><a href="http://avalon.apache.org/seca/";>SECA</a></span> 
| <span class="unselectedTab"><a 
href="http://avalon.apache.org/apps/";>Apps</a></span>
  +</div>
  +<!--================= end Tabs ==================-->
  +</td>
  +</tr>
  +</tbody>
  +</table>
  +<!--================= end Status ==================-->
  +<table id="main" width="100%" cellpadding="8" cellspacing="0" summary="" 
border="0">
  +<tbody>
  +<tr valign="top">
  +<!--================= start Menu ==================-->
  +<td id="leftcol">
  +<div id="navcolumn">
  +<div class="menuBar">
  +<div class="menu">
  +<span class="menuLabel">Essentials</span>
  +        
  +<div class="menuItem">
  +<span class="menuSelected">Overview</span>
  +</div>
  +        
  +<div class="menuItem">
  +<a href="getting-started.html">Getting Started</a>
  +</div>
  +     
  +<div class="menuItem">
  +<a 
href="http://jakarta.apache.org/builds/avalon/release/framework";>Download</a>
  +</div>
  +    
  +</div>
  +<div class="menu">
  +<span class="menuLabel">Guide</span>
  +        
  +<div class="menuItem">
  +<a href="guide-oop-best-practices.html">OOP best Practices</a>
  +</div>
  +        
  +<div class="menuItem">
  +<a href="guide-patterns-what-are.html">What are Patterns?</a>
  +</div>
  +        
  +<div class="menuItem">
  +<a href="guide-patterns-in-avalon.html">Patterns in Avalon</a>
  +</div>
  +        
  +<div class="menuItem">
  +<a href="guide-cop-what-is.html">What is COP?</a>
  +</div>
  +        
  +<div class="menuItem">
  +<a href="guide-cop-in-avalon.html">COP in Avalon</a>
  +</div>
  +        
  +<div class="menuItem">
  +<a href="guide-where-to-go-from-here.html">Where to Go from here</a>
  +</div>
  +    
  +</div>
  +<div class="menu">
  +<span class="menuLabel">Reference</span>
  +        
  +<div class="menuItem">
  +<a href="changes.html">Changes</a>
  +</div>
  +        
  +<div class="menuItem">
  +<a href="http://avalon.apache.org/api/index.html";>API Docs</a>
  +</div>
  +        
  +<div class="menuItem">
  +<a href="reference-the-lifecycle.html">The Lifecycle</a>
  +</div>
  +        
  +<div class="menuItem">
  +<a href="reference-containers.html">Containers</a>
  +</div>
  +    
  +</div>
  +</div>
  +</div>
  +</td>
  +<!--================= end Menu ==================-->
  +<!--================= start Content ==================--><td>
  +<div id="bodycol">
  +<div class="app">
  +<div align="center">
  +<h1>Avalon Framework - Overview</h1>
  +</div>
  +<div class="h3">
  +  
  +  
  +    
  +<div class="h3">
  +<h3>Introduction</h3>
  +</div>
  +
  +      
  +<p>
  +        The Avalon Framework consists of interfaces
  +        that define relationships between commonly used application 
components,
  +        best-of-practice pattern enforcements, and several
  +        lightweight convenience implementations of the generic components.
  +      </p>
  +      
  +<p>
  +        If that sounds a bit abstract to you, we suggest you start by reading
  +        the guide (see below). If you want to see the code first, either
  +        <a 
href="http://jakarta.apache.org/builds/avalon/release/framework";>download</a>
  +        it or
  +        <a href="http://jakarta.apache.org/site/cvsindex.html";>get it from 
CVS</a>.
  +        The <a href="getting-started.html">Getting Started</a> document
  +        provides more pointers.
  +      </p>
  +    
  +      
  +<div class="h3">
  +<h3>Guide to Avalon Framework</h3>
  +</div>
  +
  +        
  +<p>
  +          The Avalon Framework is based on several important programming
  +          concepts (design patterns and COP) which are applied throughout
  +          Avalon. This documentation first introduces each of these, 
providing
  +          links to external sources for more elaborate documentation. Then,
  +          we look at how these concepts are used within Avalon.
  +        </p>
  +        
  +<p>
  +          This is more a theoretical introduction than a hands-on guide. If 
you
  +          prefer looking at code while learning, try our
  +          <a 
href="http://avalon.apache.org/developing/index.html";>Developing with 
Avalon</a> paper.
  +        </p>
  +        
  +<div class="h4">
  +<h4>Target Audience</h4>
  +</div>
  +
  +          
  +<p>
  +            This documentation is aimed towards developers who:
  +          </p>
  +            
  +<ul>
  +                
  +<li>are interested in the design principles of Avalon</li>
  +                
  +<li>wish to develop code that will be incorporated into Avalon</li>
  +                
  +<li>wish to reuse Avalon concepts in their own application</li>
  +            
  +</ul>
  +        
  +        
  +<div class="h4">
  +<h4>Contents</h4>
  +</div>
  +
  +          
  +<ol>
  +            
  +<li>
  +
  +<a href="guide-oop-best-practices.html">OOP best Practices</a>
  +
  +</li>
  +            
  +<li>
  +
  +<a href="guide-patterns-what-are.html">What are Design Patterns?</a>
  +
  +</li>
  +            
  +<li>
  +
  +<a href="guide-patterns-in-avalon.html">Design Patterns in Avalon</a>
  +
  +</li>
  +            
  +<li>
  +
  +<a href="guide-cop-what-is.html">What is Component-Oriented Programming?</a>
  +
  +</li>
  +            
  +<li>
  +
  +<a href="guide-cop-in-avalon.html">COP in Avalon</a>
  +
  +</li>
  +            
  +<li>
  +
  +<a href="guide-where-to-go-from-here.html">Where to Go next</a>
  +
  +</li>
  +          
  +</ol>
  +        
  +      
  +      
  +<div class="h3">
  +<h3>Avalon Framework Reference Documentation</h3>
  +</div>
  +
  +        
  +<p>
  +           Besides the
  +           <a href="http://avalon.apache.org/api/index.html";>Javadocs</a>, 
we have the
  +           <a href="reference-the-lifecycle.html">Lifecycle 
Specification</a> and the
  +           <a href="reference-containers.html">List of Containers</a>.
  +        </p>
  +      
  +  
  +
  +<div id="authors" align="right">by&nbsp;Avalon Documentation Team</div>
  +</div>
  +</div>
  +</div>
  +</td>
  +<!--================= end Content ==================-->
  +</tr>
  +</tbody>
  +</table>
  +<!--================= end Main ==================-->
  +<!--================= start Footer ==================-->
  +<div id="footer">
  +<table summary="footer" cellspacing="0" cellpadding="4" width="100%" 
border="0">
  +<tbody>
  +<tr>
  +<!--================= start Copyright ==================-->
  +<td colspan="2">
  +<div align="center">
  +<div class="copyright">
  +              Copyright &copy; 2003&nbsp;The Apache Software Foundation.. 
All rights reserved.
  +            </div>
  +</div>
  +</td>
  +<!--================= end Copyright ==================-->
  +</tr>
  +<tr>
  +<td align="left">
  +<!--================= start Host ==================-->
  +<!--================= end Host ==================--></td><td align="right">
  +<!--================= start Credits ==================-->
  +<div align="right">
  +<div class="credit"></div>
  +</div>
  +<!--================= end Credits ==================-->
  +</td>
  +</tr>
  +</tbody>
  +</table>
  +</div>
  +<!--================= end Footer ==================-->
  +</body>
  +</html>
  
  
  
  1.3       +354 -1    avalon-site/site/framework/reference-containers.html
  
  Index: reference-containers.html
  ===================================================================
  RCS file: /home/cvs/avalon-site/site/framework/reference-containers.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- reference-containers.html 20 Feb 2003 14:26:08 -0000      1.2
  +++ reference-containers.html 20 Feb 2003 14:49:32 -0000      1.3
  @@ -1 +1,354 @@
  -<html><head><title>Resource not Found</title><STYLE><!--H1{font-family : 
sans-serif,Arial,Tahoma;color : white;background-color : #0086b2;} 
BODY{font-family : sans-serif,Arial,Tahoma;color : black;background-color : 
white;} B{color : white;background-color : #0086b2;} HR{color : #0086b2;} 
--></STYLE> </head><body><h1>Cocoon 2 - Resource not Found</h1><hr size="1" 
noshade="noshade"/><p><b>type</b> resource-not-found</p><p><b>message</b> 
<u>Page Not Available.</u></p><p><b>description</b> <u>The requested resource 
couldn't be found.</u></p><p><b>sender</b> 
org.apache.cocoon.Main</p><p><b>source</b> Cocoon commandline 
(Main.java)</p><p><b>request-uri</b><pre>framework/reference-containers.html</pre></p><p><b>missing-file</b><pre>site\framework\reference-containers.html</pre></p><hr
 size="1" noshade="true"/></body></html>
  \ No newline at end of file
  +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
  +<html>
  +<head>
  +<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  +<!--*** This is a generated file.  Do not edit.  ***-->
  +<link rel="stylesheet" href="skin/tigris.css" type="text/css">
  +<link rel="stylesheet" href="skin/mysite.css" type="text/css">
  +<link rel="stylesheet" href="skin/site.css" type="text/css">
  +<link media="print" rel="stylesheet" href="skin/print.css" type="text/css">
  +<title>Avalon Framework - Containers</title>
  +</head>
  +<body bgcolor="white" class="composite">
  +<!--================= start Banner ==================-->
  +<div id="banner">
  +<table width="100%" cellpadding="8" cellspacing="0" summary="banner" 
border="0">
  +<tbody>
  +<tr>
  +<!--================= start Group Logo ==================-->
  +<td align="left">
  +<div class="groupLogo">
  +<a href="http://www.apache.org/";><img border="0" class="logoImage" 
alt="Apache" src="images/group-logo.gif"></a>
  +</div>
  +</td>
  +<!--================= end Group Logo ==================-->
  +<!--================= start Project Logo ==================--><td 
align="right">
  +<div class="projectLogo">
  +<a href="http://avalon.apache.org/";><img border="0" class="logoImage" 
alt="Apache Avalon" src="images/project-logo.gif"></a>
  +</div>
  +</td>
  +<!--================= end Project Logo ==================-->
  +</tr>
  +</tbody>
  +</table>
  +</div>
  +<!--================= end Banner ==================-->
  +<!--================= start Main ==================-->
  +<table width="100%" cellpadding="0" cellspacing="0" border="0" summary="nav" 
id="breadcrumbs">
  +<tbody>
  +<!--================= start Status ==================-->
  +<tr class="status">
  +<td>
  +<!--================= start BreadCrumb ==================--><a 
href=""></a><a href=""></a><a href=""></a>
  +<!--================= end BreadCrumb ==================--></td><td id="tabs">
  +<!--================= start Tabs ==================-->
  +<div class="tab">
  +<span class="unselectedTab"><a href="http://avalon.apache.org/";>Avalon 
Home</a></span> | <span class="selectedTab"><a href="index.html"><font 
color="#000000">Framework</font></a></span> | <span class="unselectedTab"><a 
href="http://avalon.apache.org/components/";>Components</a></span> | <span 
class="unselectedTab"><a 
href="http://avalon.apache.org/phoenix/";>Phoenix</a></span> | <span 
class="unselectedTab"><a href="http://avalon.apache.org/seca/";>SECA</a></span> 
| <span class="unselectedTab"><a 
href="http://avalon.apache.org/apps/";>Apps</a></span>
  +</div>
  +<!--================= end Tabs ==================-->
  +</td>
  +</tr>
  +</tbody>
  +</table>
  +<!--================= end Status ==================-->
  +<table id="main" width="100%" cellpadding="8" cellspacing="0" summary="" 
border="0">
  +<tbody>
  +<tr valign="top">
  +<!--================= start Menu ==================-->
  +<td id="leftcol">
  +<div id="navcolumn">
  +<div class="menuBar">
  +<div class="menu">
  +<span class="menuLabel">Essentials</span>
  +        
  +<div class="menuItem">
  +<a href="index.html">Overview</a>
  +</div>
  +        
  +<div class="menuItem">
  +<a href="getting-started.html">Getting Started</a>
  +</div>
  +     
  +<div class="menuItem">
  +<a 
href="http://jakarta.apache.org/builds/avalon/release/framework";>Download</a>
  +</div>
  +    
  +</div>
  +<div class="menu">
  +<span class="menuLabel">Guide</span>
  +        
  +<div class="menuItem">
  +<a href="guide-oop-best-practices.html">OOP best Practices</a>
  +</div>
  +        
  +<div class="menuItem">
  +<a href="guide-patterns-what-are.html">What are Patterns?</a>
  +</div>
  +        
  +<div class="menuItem">
  +<a href="guide-patterns-in-avalon.html">Patterns in Avalon</a>
  +</div>
  +        
  +<div class="menuItem">
  +<a href="guide-cop-what-is.html">What is COP?</a>
  +</div>
  +        
  +<div class="menuItem">
  +<a href="guide-cop-in-avalon.html">COP in Avalon</a>
  +</div>
  +        
  +<div class="menuItem">
  +<a href="guide-where-to-go-from-here.html">Where to Go from here</a>
  +</div>
  +    
  +</div>
  +<div class="menu">
  +<span class="menuLabel">Reference</span>
  +        
  +<div class="menuItem">
  +<a href="changes.html">Changes</a>
  +</div>
  +        
  +<div class="menuItem">
  +<a href="http://avalon.apache.org/api/index.html";>API Docs</a>
  +</div>
  +        
  +<div class="menuItem">
  +<a href="reference-the-lifecycle.html">The Lifecycle</a>
  +</div>
  +        
  +<div class="menuItem">
  +<span class="menuSelected">Containers</span>
  +</div>
  +    
  +</div>
  +</div>
  +</div>
  +</td>
  +<!--================= end Menu ==================-->
  +<!--================= start Content ==================--><td>
  +<div id="bodycol">
  +<div class="app">
  +<div align="center">
  +<h1>Avalon Framework - Containers</h1>
  +</div>
  +<div class="h3">
  +  
  +  
  +    
  +<div class="h3">
  +<h3>Introduction</h3>
  +</div>
  +
  +      
  +<p>
  +        There are various containers that are aware of the Avalon Framework 
interfaces.
  +     This is a sort-of comprehensive list.
  +      </p>
  +    
  +    
  +<div class="h3">
  +<h3>Standalone Containers</h3>
  +</div>
  +
  +      
  +<p>
  +        These typically run from the command line and are launched via a 
legacy main() method.
  +      </p>
  +      
  +<div class="h4">
  +<h4>Avalon Phoenix</h4>
  +</div>
  +
  +        
  +<p>
  +          This is a sister project to Avalon Framework.  It provides an 
environment
  +          for launching multiple, isolated, more or less unrestricted server 
applications
  +       as hosted components.  These can be applications like a web server, 
RDBMS or
  +       EJB server. It provides many advanced features like automatic 
management, at the
  +       cost of a bit of complexity.
  +          See <a 
href="http://avalon.apache.org/phoenix/index.html";>Phoenix</a>.
  +        </p>
  +
  +     
  +<p>
  +       Phoenix is the oldest of the Avalon Containers; it is probably the 
most powerful
  +       and most widely used. While still in alpha, this hints at the fact 
that we find it
  +       to be not completely future complete, rather than an infantile 
project.
  +     </p>
  +      
  +
  +     
  +<div class="h4">
  +<h4>Avalon Excalibur's Tweety</h4>
  +</div>
  +
  +     
  +<p>
  +     Tweety is almost the opposite of Phoenix. It is a recent development 
and written
  +     exclusively as a teaching tool. It has no features whatsoever besides 
basic support
  +     for the Avalon lifecycle. This results in a complete distribution the 
size of the
  +     Phoenix bootstrapper.
  +     See <a href="http://avalon.apache.org/excalibur/tweety";>Tweety</a>
  +     
  +</p>
  +     
  +
  +     
  +<div class="h4">
  +<h4>Myrmidon</h4>
  +</div>
  +
  +     
  +<p>
  +     Myrmidon is a proposal for the kernel of
  +     <a href="http://jakarta.apache.org/ant";>Apache Ant</a> 2.
  +     See <a 
href="http://cvs.apache.org/viewcvs.cgi/jakarta-ant/proposal/myrmidon/";>Myrmidon</a>
  +     
  +</p>
  +     
  +    
  +    
  +<div class="h3">
  +<h3>Embedded Containers</h3>
  +</div>
  +
  +      
  +<p>
  +        These run inside another application (like a servlet engine) and are 
controlled by it.
  +      </p>
  +      
  +<div class="h4">
  +<h4>Excalibur Component Manager</h4>
  +</div>
  +
  +        
  +<p>
  +          This is used by various applications like Cocoon. Cocoon is run 
inside the
  +          Sun specified servlet context of a web-app.  It is designed for 
such
  +          servlet-context reuse. ECM is the most stable of the containers 
(it is the
  +       only one with a stable release); it is also arguably the worst design.
  +       See <a href="http://avalon.apache.org/excalibur/component/";>ECM</a>.
  +        </p>
  +      
  +      
  +<div class="h4">
  +<h4>Fortress</h4>
  +</div>
  +
  +        
  +<p>
  +          Fortress is meant as a future replacement of ECM. It fixes several 
of ECMs flaws
  +       like a mixup of concerns. It is built to be very extensible, and it 
includes
  +       support for custom lifecycle extensions. Fortress is still pre-alpha.
  +       See <a 
href="http://avalon.apache.org/excalibur/fortress/";>Fortress</a>.
  +        </p>
  +      
  +      
  +<div class="h4">
  +<h4>Merlin</h4>
  +</div>
  +
  +        
  +<p>
  +          Another recent development is Merlin, which has a client API very 
similar to
  +       Phoenix (applications that can run within phoenix can run within 
merlin as
  +       well). Merlin is still pre-alpha.
  +     </p>
  +     
  +<p>
  +       See <a href="http://home.osm.net/doc/merlin/index.html";>Merlin</a>.
  +        </p>
  +      
  +      
  +<div class="h4">
  +<h4>Plexus</h4>
  +</div>
  +
  +        
  +<p>
  +          Plexus is a container under development that will become the basis 
of the
  +       services framework for a sister project to Avalon,
  +       <a href="http://jakarta.apache.org/turbine";>Turbine</a>.
  +        </p>
  +     
  +<p>
  +             See <a 
href="http://tambora.zenplex.org/cgi-bin/cvsweb.cgi/plexus/";>Plexus</a>.
  +     </p>
  +     
  +<div class="frame note">
  +<div class="label">Note</div>
  +<div class="content">
  +     Plexus is being developed outside of Avalon itself as an external 
project.
  +     </div>
  +</div>
  +      
  +      
  +<div class="h4">
  +<h4>Enterprise Object Broker (EOB)</h4>
  +</div>
  +
  +        
  +<p>
  +          The reference implementation of this EJB-replacement container 
runs on top of
  +          Phoenix.  EOB supports a subset of the Avalon Framework interfaces 
but allows
  +          RPC publishing of arbitary interfaces apparent in a hosted 
components object
  +          model.
  +        </p>
  +     
  +<p>
  +               See <a href="http://eob.sourceforge.net/";>EOB</a>.
  +     </p>
  +     
  +<div class="frame note">
  +<div class="label">Note</div>
  +<div class="content">
  +     EOB is an being developed outside of Avalon itself as an external 
project.
  +     </div>
  +</div>
  +      
  +     
  +  
  +
  +<div id="authors" align="right">by&nbsp;Paul Hammant,&nbsp;Leo Simons</div>
  +</div>
  +</div>
  +</div>
  +</td>
  +<!--================= end Content ==================-->
  +</tr>
  +</tbody>
  +</table>
  +<!--================= end Main ==================-->
  +<!--================= start Footer ==================-->
  +<div id="footer">
  +<table summary="footer" cellspacing="0" cellpadding="4" width="100%" 
border="0">
  +<tbody>
  +<tr>
  +<!--================= start Copyright ==================-->
  +<td colspan="2">
  +<div align="center">
  +<div class="copyright">
  +              Copyright &copy; 2003&nbsp;The Apache Software Foundation.. 
All rights reserved.
  +            </div>
  +</div>
  +</td>
  +<!--================= end Copyright ==================-->
  +</tr>
  +<tr>
  +<td align="left">
  +<!--================= start Host ==================-->
  +<!--================= end Host ==================--></td><td align="right">
  +<!--================= start Credits ==================-->
  +<div align="right">
  +<div class="credit"></div>
  +</div>
  +<!--================= end Credits ==================-->
  +</td>
  +</tr>
  +</tbody>
  +</table>
  +</div>
  +<!--================= end Footer ==================-->
  +</body>
  +</html>
  
  
  
  1.1                  avalon-site/site/framework/changes.html
  
  Index: changes.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
  <html>
  <head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <!--*** This is a generated file.  Do not edit.  ***-->
  <link rel="stylesheet" href="skin/tigris.css" type="text/css">
  <link rel="stylesheet" href="skin/mysite.css" type="text/css">
  <link rel="stylesheet" href="skin/site.css" type="text/css">
  <link media="print" rel="stylesheet" href="skin/print.css" type="text/css">
  <title>History of Changes</title>
  </head>
  <body bgcolor="white" class="composite">
  <!--================= start Banner ==================-->
  <div id="banner">
  <table width="100%" cellpadding="8" cellspacing="0" summary="banner" 
border="0">
  <tbody>
  <tr>
  <!--================= start Group Logo ==================-->
  <td align="left">
  <div class="groupLogo">
  <a href="http://www.apache.org/";><img border="0" class="logoImage" 
alt="Apache" src="images/group-logo.gif"></a>
  </div>
  </td>
  <!--================= end Group Logo ==================-->
  <!--================= start Project Logo ==================--><td 
align="right">
  <div class="projectLogo">
  <a href="http://avalon.apache.org/";><img border="0" class="logoImage" 
alt="Apache Avalon" src="images/project-logo.gif"></a>
  </div>
  </td>
  <!--================= end Project Logo ==================-->
  </tr>
  </tbody>
  </table>
  </div>
  <!--================= end Banner ==================-->
  <!--================= start Main ==================-->
  <table width="100%" cellpadding="0" cellspacing="0" border="0" summary="nav" 
id="breadcrumbs">
  <tbody>
  <!--================= start Status ==================-->
  <tr class="status">
  <td>
  <!--================= start BreadCrumb ==================--><a href=""></a><a 
href=""></a><a href=""></a>
  <!--================= end BreadCrumb ==================--></td><td id="tabs">
  <!--================= start Tabs ==================-->
  <div class="tab">
  <span class="unselectedTab"><a href="http://avalon.apache.org/";>Avalon 
Home</a></span> | <span class="selectedTab"><a href="index.html"><font 
color="#000000">Framework</font></a></span> | <span class="unselectedTab"><a 
href="http://avalon.apache.org/components/";>Components</a></span> | <span 
class="unselectedTab"><a 
href="http://avalon.apache.org/phoenix/";>Phoenix</a></span> | <span 
class="unselectedTab"><a href="http://avalon.apache.org/seca/";>SECA</a></span> 
| <span class="unselectedTab"><a 
href="http://avalon.apache.org/apps/";>Apps</a></span>
  </div>
  <!--================= end Tabs ==================-->
  </td>
  </tr>
  </tbody>
  </table>
  <!--================= end Status ==================-->
  <table id="main" width="100%" cellpadding="8" cellspacing="0" summary="" 
border="0">
  <tbody>
  <tr valign="top">
  <!--================= start Menu ==================-->
  <td id="leftcol">
  <div id="navcolumn">
  <div class="menuBar">
  <div class="menu">
  <span class="menuLabel">Essentials</span>
          
  <div class="menuItem">
  <a href="index.html">Overview</a>
  </div>
          
  <div class="menuItem">
  <a href="getting-started.html">Getting Started</a>
  </div>
        
  <div class="menuItem">
  <a 
href="http://jakarta.apache.org/builds/avalon/release/framework";>Download</a>
  </div>
      
  </div>
  <div class="menu">
  <span class="menuLabel">Guide</span>
          
  <div class="menuItem">
  <a href="guide-oop-best-practices.html">OOP best Practices</a>
  </div>
          
  <div class="menuItem">
  <a href="guide-patterns-what-are.html">What are Patterns?</a>
  </div>
          
  <div class="menuItem">
  <a href="guide-patterns-in-avalon.html">Patterns in Avalon</a>
  </div>
          
  <div class="menuItem">
  <a href="guide-cop-what-is.html">What is COP?</a>
  </div>
          
  <div class="menuItem">
  <a href="guide-cop-in-avalon.html">COP in Avalon</a>
  </div>
          
  <div class="menuItem">
  <a href="guide-where-to-go-from-here.html">Where to Go from here</a>
  </div>
      
  </div>
  <div class="menu">
  <span class="menuLabel">Reference</span>
          
  <div class="menuItem">
  <span class="menuSelected">Changes</span>
  </div>
          
  <div class="menuItem">
  <a href="http://avalon.apache.org/api/index.html";>API Docs</a>
  </div>
          
  <div class="menuItem">
  <a href="reference-the-lifecycle.html">The Lifecycle</a>
  </div>
          
  <div class="menuItem">
  <a href="reference-containers.html">Containers</a>
  </div>
      
  </div>
  </div>
  </div>
  </td>
  <!--================= end Menu ==================-->
  <!--================= start Content ==================--><td>
  <div id="bodycol">
  <div class="app">
  <div align="center">
  <h1>History of Changes</h1>
  </div>
  <div class="h3">
  <p>
  <a href="changes.rss.xml"><img alt="RSS" src="images/rss.png"></a>
  </p>
    
  <devs>
      
  <person name="Federico Barbieri" email="[EMAIL PROTECTED]">
  <a name="FB"></a>
  </person>
      
  <person name="Berin Loritsch" email="[EMAIL PROTECTED]">
  <a name="BL"></a>
  </person>
      
  <person name="Peter Donald" email="[EMAIL PROTECTED]">
  <a name="PD"></a>
  </person>
      
  <person name="Jeff Turner" email="[EMAIL PROTECTED]">
  <a name="JT"></a>
  </person>
      
  <person name="Paul Hammant" email="[EMAIL PROTECTED]">
  <a name="PH"></a>
  </person>
      
  <person name="Leif Mortenson" email="[EMAIL PROTECTED]">
  <a name="LM"></a>
  </person>
      
  <person name="Carston Ziegeler" email="[EMAIL PROTECTED]">
  <a name="CZ"></a>
  </person>
    
  </devs>
      
  <div class="h3">
  <h3>Version 4.1.4 (current)</h3>
  </div>
  <ul>
        
  <li>
  <img alt="remove" src="images/remove.jpg">
          Remove the hard deprecation on the o.a.a.f.component package.  It
          has been replaced by a softer form of deprecation (i.e. just notes
          in JavaDocs that do not affect the compile).
        (BL)</li>
        
  <li>
  <img alt="add" src="images/add.jpg">
          New ContainerUtil available to make creating components easier.
        (PD)</li>
      
  </ul>
      
  <div class="h3">
  <h3>Version 4.1.3 (July 30, 2002)</h3>
  </div>
  <ul>
        
  <li>
  <img alt="update" src="images/update.jpg">
          Undocumented release.  Not sure who, what, when, where, why or how.
        (BL)</li>
      
  </ul>
      
  <div class="h3">
  <h3>Version 4.1.2 (January 31, 2002)</h3>
  </div>
  <ul>
        
  <li>
  <img alt="update" src="images/update.jpg">
          Updated the build jars.
        (BL)</li>
        
  <li>
  <img alt="add" src="images/add.jpg">
          Add EMPTY_PARAMETERS constant object to the Parameters object.
        (CZ)</li>
        
  <li>
  <img alt="update" src="images/update.jpg">
          Made it configurable whether you print nested exceptions or not,
          and specify the depth that the AvalonFormatter will go with nested
          exceptions (defaults to 8).
        (PD)</li>
        
  <li>
  <img alt="update" src="images/update.jpg">
          Update build to have a "compress.jars" property (defaults to
          true by default).
        (LM)</li>
      
  </ul>
      
  <div class="h3">
  <h3>Version 4.1.1 (December 21, 2001)</h3>
  </div>
  <ul>
        
  <li>
  <img alt="fix" src="images/fix.jpg">
          Force build process to produce JDK 1.2 compliant class files.
          The last release had JDK 1.4 compliant class files, causing
          some classloaders to not work with the Framework.
        (BL)</li>
      
  </ul>
      
  <div class="h3">
  <h3>Version 4.1 (December 12, 2001)</h3>
  </div>
  <ul>
        
  <li>
  <img alt="update" src="images/update.jpg">
          Improve and update the configuration javadocs to reflect the new
          namespace support.
        (JT)</li>
        
  <li>
  <img alt="remove" src="images/remove.jpg">
          Deprecate the Loggable and AbstractLoggable classes, and replace
          them with LogEnabled and AbstractLogEnabled.
        (BL)</li>
        
  <li>
  <img alt="add" src="images/add.jpg">
          Add an abstraction layer to the Logging implementation.  Thanks
          to Peter Donald for supplying the interface.
        (BL)</li>
        
  <li>
  <img alt="add" src="images/add.jpg">
          Add Namespace support to Configuration files.
        (BL)</li>
        
  <li>
  <img alt="add" src="images/add.jpg">
          Add AvalonFormatter that was in LogKit's heirarchy.  This way, we
          avoid circular dependancies.
        (BL)</li>
        
  <li>
  <img alt="fix" src="images/fix.jpg">
          Previously resolve did not throw a ContextException. This made it
          difficult to indicate errors resolving objects. It now throws an
          exception thus allowing errors to be propogated and recorded.
        (PD)</li>
        
  <li>
  <img alt="add" src="images/add.jpg">
          New ConfigurationSerializer to have your configuration objects 
persist.
        (BL)</li>
        
  <li>
  <img alt="update" src="images/update.jpg">
          Upgrade DefaultConfigurationBuilder to be JAXP compliant,
          with the option to pass in your own XMLReader.
        (BL)</li>
        
  <li>
  <img alt="update" src="images/update.jpg">
          Configuration objects are now Serializable.
        (PD)</li>
        
  <li>
  <img alt="add" src="images/add.jpg">
          Add new support to ask a component manager if it has a component.
        (BL)</li>
        
  <li>
  <img alt="fix" src="images/fix.jpg">
          Bug fixes for documentation
        (PD)</li>
        
  <li>
  <img alt="update" src="images/update.jpg">
          Update developers docs to support new configuration methods.
        (BL)</li>
        
  <li>
  <img alt="add" src="images/add.jpg">
          Improved "Hello World" documentation.
        (PH)</li>
        
  <li>
  <img alt="add" src="images/add.jpg">
          Add UML diagrams supplied by Dieter Wimberger
        (PD)</li>
        
  <li>
  <img alt="update" src="images/update.jpg">
          Add new author bios.
        (BL)</li>
        
  <li>
  <img alt="update" src="images/update.jpg">
          Update build process to proposed standard.
        (BL)</li>
        
  <li>
  <img alt="add" src="images/add.jpg">
          Added a method to Version to parse a Version from a string. Added 
accessor
          methods to Version to allow access to major/minor/micro components of 
version.
        (PD)</li>
        
  <li>
  <img alt="update" src="images/update.jpg">
          Updated Version class to refer to micro version rather than revision. 
This 
          is to match the terminology for JDK versioning. This is just 
documentation 
          changes.
        (PD)</li>
        
  <li>
  <img alt="fix" src="images/fix.jpg">
          Changed access of Enum and ValuedEnum constructors from public to
          protected, to prevent Enum users from breaking type-safety by adding 
new
          Enum items. This breaks backwards-compatibility in cases where Enum
          and ValuedEnum were being incorrectly used.
        (JT)</li>
      
  </ul>
      
  <div class="h3">
  <h3>Version 4.0 (July 30, 2001)</h3>
  </div>
  <ul>
        
  <li>
  <img alt="add" src="images/add.jpg">
          Added new method to Component Manager and Selector for discovering
          if a Component exists inside or not.  Also augmented the default
          versions with the basic implementation to discover them.
        (BL)</li>
        
  <li>
  <img alt="add" src="images/add.jpg">
          Added stylesheet to convert Stylebook markup to DocBook markup.
        (BL)</li>
        
  <li>
  <img alt="update" src="images/update.jpg">
          Changed the documentation build process to use Cocoon to build
          the site.
        (BL)</li>
        
  <li>
  <img alt="add" src="images/add.jpg">
          Added new "Developing with Avalon" book in DocBook format.
        (BL)</li>
        
  <li>
  <img alt="add" src="images/add.jpg">
          Added Executable interface to activity package.
        (PD)</li>
        
  <li>
  <img alt="fix" src="images/fix.jpg">
          Updated Resolvable interface to allow a ContextException to be thrown 
          on failure. 
        (PD)</li>
        
  <li>
  <img alt="update" src="images/update.jpg">
          Add a makeReadOnly() method to the default implementations of 
Configuration, 
          Context and ComponentManager. Calling this method after the respective
          object has been filled will make the object read-only. This is a 
safety 
          precaution to stop code performing unwanted operations.
        (PD)</li>
        
  <li>
  <img alt="update" src="images/update.jpg">
          Updated the javadocs of many of the classes.
        (PD)</li>
        
  <li>
  <img alt="update" src="images/update.jpg">
          Update documentation so that it is more accurate and descriptive.
        (BL)</li>
      
  </ul>
      
  <div class="h3">
  <h3>Version 4.0b3 (June 6, 2001)</h3>
  </div>
  <ul>
        
  <li>
  <img alt="update" src="images/update.jpg">
          Release 4.0b3
        (BL)</li>
        
  <li>
  <img alt="fix" src="images/fix.jpg">
          Made DefaultComponentManager/Selector, DefaultContext, and
          DefaultConfiguration read-only to avoid bad programming
          practices by clients.
        (PD)</li>
      
  </ul>
      
  <div class="h3">
  <h3>Version 4.0b2 (June 4, 2001)</h3>
  </div>
  <ul>
        
  <li>
  <img alt="update" src="images/update.jpg">
          Release 4.0b2
        (BL)</li>
        
  <li>
  <img alt="add" src="images/add.jpg">
          Add makeReadOnly() method to default implementations to prevent
          alteration after they are set up.
        (PD)</li>
        
  <li>
  <img alt="update" src="images/update.jpg">
          Removed the "throws Exception" from Disposable interface.  That was
          inadvertently left in the previous release.
        (BL)</li>
        
  <li>
  <img alt="add" src="images/add.jpg">
          Added extra methods to Parameters to throw exceptions if the value
        does not exist.  They are the "no default value" methods.
        (BL)</li>
        
  <li>
  <img alt="update" src="images/update.jpg">
          Updated javadocs for Framework.
        (PD)</li>
      
  </ul>
      
  <div class="h3">
  <h3>Version 4.0b1 (May 11, 2001)</h3>
  </div>
  <ul>
        
  <li>
  <img alt="update" src="images/update.jpg">
          Official release
        (BL)</li>
      
  </ul>
    
  </div>
  </div>
  </div>
  </td>
  <!--================= end Content ==================-->
  </tr>
  </tbody>
  </table>
  <!--================= end Main ==================-->
  <!--================= start Footer ==================-->
  <div id="footer">
  <table summary="footer" cellspacing="0" cellpadding="4" width="100%" 
border="0">
  <tbody>
  <tr>
  <!--================= start Copyright ==================-->
  <td colspan="2">
  <div align="center">
  <div class="copyright">
                Copyright &copy; 2003&nbsp;The Apache Software Foundation.. All 
rights reserved.
              </div>
  </div>
  </td>
  <!--================= end Copyright ==================-->
  </tr>
  <tr>
  <td align="left">
  <!--================= start Host ==================-->
  <!--================= end Host ==================--></td><td align="right">
  <!--================= start Credits ==================-->
  <div align="right">
  <div class="credit"></div>
  </div>
  <!--================= end Credits ==================-->
  </td>
  </tr>
  </tbody>
  </table>
  </div>
  <!--================= end Footer ==================-->
  </body>
  </html>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to