avalon-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From blorit...@apache.org
Subject cvs commit: avalon-site/site/framework changes.html guide-patterns-soii.html index.html reference-containers.html
Date Thu, 20 Feb 2003 14:49:32 GMT
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="fede@apache.org">
  <a name="FB"></a>
  </person>
      
  <person name="Berin Loritsch" email="bloritsch@apache.org">
  <a name="BL"></a>
  </person>
      
  <person name="Peter Donald" email="peter@apache.org">
  <a name="PD"></a>
  </person>
      
  <person name="Jeff Turner" email="jefft@apache.org">
  <a name="JT"></a>
  </person>
      
  <person name="Paul Hammant" email="hammant@apache.org">
  <a name="PH"></a>
  </person>
      
  <person name="Leif Mortenson" email="leif@apache.org">
  <a name="LM"></a>
  </person>
      
  <person name="Carston Ziegeler" email="cziegeler@apache.org">
  <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: cvs-unsubscribe@avalon.apache.org
For additional commands, e-mail: cvs-help@avalon.apache.org


Mime
View raw message