You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by ni...@apache.org on 2004/03/13 19:05:48 UTC

cvs commit: avalon-site/xdocs/product/containers index.xml

niclas      2004/03/13 10:05:48

  Modified:    xdocs    index.xml
               xdocs/developing authors.xml introduction.xml
               xdocs/product/containers index.xml
  Log:
  Continuing the effort to bring all the documentation up-to-date.
  
  Revision  Changes    Path
  1.8       +4 -6      avalon-site/xdocs/index.xml
  
  Index: index.xml
  ===================================================================
  RCS file: /home/cvs/avalon-site/xdocs/index.xml,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- index.xml	13 Mar 2004 05:11:21 -0000	1.7
  +++ index.xml	13 Mar 2004 18:05:48 -0000	1.8
  @@ -102,13 +102,11 @@
         </subsection>
         <subsection name="Component Developers">
          <p>
  -       If you're new to Avalon, be certain to check out the <a
  +       If you're new to Avalon, be certain to check out the <a 
          href="doc/index.html">Articles</a> section, specifically, the
  -       <a href="developing/index.html">Developing With Avalon</a>
  -       white paper and the Getting Started
  -       Tutorial.  You may also want to look at the Excalibur and
  -       Cornerstone documentation to examine existing utilities and
  -       components.
  +       <a href="developing/index.html">Developing With Avalon</a> white paper
  +       and the Getting Started Tutorial.  You may also want to look at the 
  +       Cornerstone documentation to examine existing utilities and components.
          </p>
         </subsection>
         <subsection name="Avalon Developers">
  
  
  
  1.3       +15 -2     avalon-site/xdocs/developing/authors.xml
  
  Index: authors.xml
  ===================================================================
  RCS file: /home/cvs/avalon-site/xdocs/developing/authors.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- authors.xml	2 Nov 2003 17:06:08 -0000	1.2
  +++ authors.xml	13 Mar 2004 18:05:48 -0000	1.3
  @@ -34,13 +34,26 @@
          the authors to rebase to Phoenix or make their apps phoenix compatible.
       </p>
       <p>
  -       Paul wrote some of blocks for Cornerstone and some of the apps in Avalon apps.
  -       He also started <a href="http://avalon.apache.org/apps/apps/db/index.html">AvalonDB</a>,
  +       Paul wrote some of blocks for Cornerstone and some of the apps in Avalon
  +       apps. He also started AvalonDB, <!-- removed the ref since it is no longer valid -->
          <a href="http://www.jesktop.com">Jesktop</a>,
          <a href="http://incubator.apache.org/projects/altrmi/">AltRMI</a>,
          <a href="http://www.enterpriseobjectbroker.org">Enterprise Object Broker</a>, and
          <a href="http://www.picocontainer.org">Picocontainer</a>.
       </p>
  +   </subsection>
  +   <subsection name="Niclas Hedhman">
  +     <p>
  +       After the departure of Paul and Berin, Niclas have taken up to be the
  +       standard bearer of Avalon's Mission and the vanguard of the Component
  +       Author.
  +     </p>
  +     <p>
  +       When Niclas is not working on Apache Avalon, he is busy as a
  +       consultant and developer in technically difficult projects. He also
  +       developing an Avalon-based Process Control &amp; Industrial Automation 
  +       framework, where component re-use can be heavily leveraged.
  +     </p>
      </subsection>
     </section>
    </body>
  
  
  
  1.3       +109 -93   avalon-site/xdocs/developing/introduction.xml
  
  Index: introduction.xml
  ===================================================================
  RCS file: /home/cvs/avalon-site/xdocs/developing/introduction.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- introduction.xml	2 Nov 2003 17:06:08 -0000	1.2
  +++ introduction.xml	13 Mar 2004 18:05:48 -0000	1.3
  @@ -4,6 +4,7 @@
     <properties>
       <author email="hammant@apache.org">Paul Hammant</author>
       <author email="bloritsch@apache.org">Berin Loritsch</author>
  +    <author email="niclas@apache.org">Niclas Hedhman</author>
       <title>Introduction and Overview</title>
     </properties>
   
  @@ -24,10 +25,10 @@
     <p>
       Stefano Mazzocchi, Federico Barbieri, and Pierpaolo Fumagalli
       created the initial version.  Later in 2000, Berin Loritsch and
  -    Peter Donald joined the project.  By that time, Pierpaolo and
  +    Peter Donald joined the project. By that time, Pierpaolo and
       Stefano had moved on to other projects and Java Apache Server
  -    Framework started to use the name Avalon.  Those five developers
  -    are the main people responsible for the current design and
  +    Framework started to use the name Avalon. Those five developers
  +    are the main people responsible for the original design and
       concepts used by the framework.  The current version is very
       similar to the version that was released in June 2000.  In fact,
       the major difference is the reorganization of the packages, and
  @@ -36,9 +37,21 @@
     </p>
     <section name="What is Avalon?">
       <p>
  -      Avalon is a parent project for five sub-projects: Framework,
  -      Excalibur, LogKit, Phoenix, and Cornerstone.  Most
  -      people think of the Framework when they hear the name Avalon,
  +      Avalon is a parent project for three sub-projects: Framework,
  +      Merlin, and Cornerstone. Another two projects are currently
  +      being developed in the Avalon Sandbox, worth mentioning is
  +      the Eclipse plugin called MerlinDeveloper and the 
  +      AvalonNet which is a Microsoft dotNet implementation of 
  +      Avalon. Avalon also carries a lot of legacy, which was deprecated
  +      in 2004, namely 
  +      <a href="http://avalon.apache.org/excalibur">Excalibur</a>,
  +      <a href="http://avalon.apache.org/phoenix">Phoenix</a> and 
  +      <a href="http://avalon.apache.org/excalibur/fortress">Fortress</a>.
  +      These containers and utilities has been deprecated and no longer
  +      being actively worked on.
  +    </p>
  +    <p>
  +      Most people think of the Framework when they hear the name Avalon,
         but it is more than that.  Avalon began as the Java Apache
         Server Framework that had the framework, utilities, components,
         and a server's kernel implementation all in one project.
  @@ -50,46 +63,34 @@
         enables new developers to understand and learn Avalon in distinct
         chunks -- something that was almost impossible before.
       </p>
  -    <subsection name="Framework">
  +    <subsection name="Avalon Framework">
         <p>
           Avalon Framework is the basis for all the other projects under
           the Avalon umbrella.  It defines the interfaces, contracts, and
  -        default implementations for Avalon.  The Framework has the most
  +        default implementations for certain Avalon.  The Framework has the most
           work put into it, and consequently is the most mature project.
         </p>
       </subsection>
  -    <subsection name="Excalibur">
  -      <p>
  -        Avalon Excalibur is a collection of server side Components that
  -        you can use in your own projects.  It includes pooling
  -        implementations, database connection management, and Component
  -        management implementations among others.
  -      </p>
  -    </subsection>
  -    <subsection name="LogKit">
  +    <subsection name="Avalon Merlin">
         <p>
  -        Avalon LogKit is a high speed logging toolkit that can be used by Framework,
  -        Excalibur, Cornerstone, and Phoenix.  It is modeled on the same
  -        principles as the JDK 1.4 Logging package but is compatible with
  -        JDK 1.2+.
  +        Avalon Merlin is "The Avalon Container", the reference container where
  +        all contracts, framework interfaces, and other specifications are
  +        fully supported. Merlin is often also a testing ground of new ideas
  +        prior to promoting them to Avalon Framework.
         </p>
       </subsection>
  -    <subsection name="Phoenix">
  +    <subsection name="Avalon Components">
         <p>
  -        Avalon Phoenix is a server kernel that manages the deployment
  -        and execution of Services.
  +        Avalon Components is a collection of services that you
  +        can deploy in Avalon compliant containers, such as the reference 
  +        container Merlin. Avalon Components is starting in March 2004,
  +        and will gradually import the former Avalon Cornerstone components,
  +        and make and keep them compliant with the current Avalon Framework.
         </p>
       </subsection>
  -    <subsection name="Cornerstone">
  +    <subsection name="Avalon Sandbox">
         <p>
  -        Avalon Cornerstone is a collection of services that you
  -        can deploy in the Phoenix environment.  The Blocks include socket
  -        management and job scheduling among others.
  -      </p>
  -    </subsection>
  -    <subsection name="Scratchpad">
  -      <p>
  -        Scratchpad is not really an official project, but it is the
  +        Avalon Sandbox is not really an official project, but it is the
           staging area for software package that are not ready for inclusion in
           the other projects yet.  They are of varying quality, and their APIs are
           not guaranteed to remain consistent until they are promoted.
  @@ -99,7 +100,7 @@
     <section name="Focus for this Overview">
       <p>
         We are focusing on Avalon Framework in this overview, but we will
  -      cover enough of Avalon Excalibur and Avalon LogKit to get you
  +      cover enough of Avalon Merlin to get you
         started.  We will use a hypothetical business server to demonstrate
         how to practically use Avalon.  It is beyond the scope of this
         overview to define a full-blown methodology, or to cover every
  @@ -108,27 +109,27 @@
       <p>
         We decided to focus on Avalon Framework because it is the basis
         for all of the other projects.  If you can comprehend the framework,
  -      you can comprehend any Avalon based system.  You will also become
  +      you can comprehend any Avalon-based system.  You will also become
         familiar with some of the programming idioms common in Avalon.
         Another reason for focusing on the framework and touching on the
  -      Avalon Excalibur and Avalon LogKit projects is that they are
  -      officially released and supported.
  +      Avalon Merlin project is that they are officially released and 
  +      supported.
       </p>
     </section>
     <section name="What Can Avalon Be Used For?">
       <p>
  -      I have been asked on a couple of occasions to identify what Avalon
  +      We have been asked on a couple of occasions to identify what Avalon
         is good for, and what it is not good for.  Avalon's focus is server
         side programming and easing the maintainability and design of server
  -      focused projects.  Avalon can be described as a framework that
  -      includes implementations of the framework.
  +      focused projects.  Avalon can be described as a component oriented
  +      programming specification (Avalon Framework) and a robust reference
  +      implementation (Avalon Merlin).
       </p>
       <p>
         While Avalon is focused on server side solutions, many people have
         found it to be useful for regular applications.  The concepts used in
  -      Framework, Excalibur, and LogKit are general enough to be used for
  -      any project.  The two projects that are more squarely focused on
  -      the server are Cornerstone and Phoenix.
  +      Framework and Merlin are general enough to be used for
  +      any project.
       </p>
       <table>
        <tr>
  @@ -138,14 +139,10 @@
         <td>
          <ul>
           <li>
  -          <p>
  -            A supporting or enclosing structure.
  -          </p>
  +          A supporting or enclosing structure.
           </li>
           <li>
  -          <p>
  -            A basic system or arrangement as of ideas.
  -          </p>
  +          A basic system or arrangement as of ideas.
           </li>
         </ul>
         </td>
  @@ -157,42 +154,43 @@
        </tr>
       </table>
       <p>
  -      The word <em>framework</em> is broad in application.
  -      Frameworks that focus on a single industry like medical systems
  -      or communications are called vertical market frameworks.  The
  -      reason being that the same framework will not work well in other
  -      industries.  Frameworks that are generic enough to be used across
  -      multiple industries are known as horizontal market frameworks.
  +      The word <em>framework</em> is broad in software application.
  +      Frameworks that focus on a single software industry like medical 
  +      systems or communications are called vertical market frameworks.  
  +      The reason being that the same framework will not work well in 
  +      other industries.  Frameworks that are generic enough to be used 
  +      across multiple industries are known as horizontal market frameworks.
         Avalon is a horizontal market framework.  You would be able to
         build vertical market frameworks using Avalon's Framework.
       </p>
       <p>
         The most compelling example of a vertical market framework built
  -      with Avalon is the publishing framework Apache Cocoon.  Apache
  -      Cocoon version 2 is built using Avalon's Framework, Excalibur, and
  -      LogKit projects.  It makes use of the interfaces and contracts in
  -      the Framework to reduce the time it takes for a developer to learn
  -      how Cocoon works.  It also leverages the data source management and
  -      component management code in Excalibur so that it does not have to
  -      reinvent the wheel.  Lastly, it uses the LogKit to handle all the
  -      logging in the publishing framework.
  +      with Avalon is the publishing framework Apache Cocoon. Apache
  +      Cocoon version 2 is built using Avalon's Framework, Excalibur 
  +      (obsolete - replaced by Avalon Merlin), and LogKit (obsolete - 
  +      replaced by Avalon Logging) projects.  It makes use of the 
  +      interfaces and contracts in the Framework to reduce the time it 
  +      takes for a developer to learn how Cocoon works.  It also leverages 
  +      the data source management and component management code in 
  +      Excalibur so that it does not have to reinvent the wheel.  Lastly, 
  +      it uses the LogKit to handle all the logging in the publishing 
  +      framework.
       </p>
       <p>
         Once you understand the principles behind Avalon Framework, you will
         be able to comprehend any system built on Avalon.  Once you can
         comprehend the system, you will be able to catch bugs more quickly
  -      that are due to the misuse of the framework.
  +      that are due to the misuse of the framework. And finally, you will be
  +      able to re-use your (and other's) well-tested, robust components
  +      over and over again.
       </p>
       <subsection name="There is no Magic Formula">
         <p>
           It is important to state that trying to use any tool as a magic
           formula for success is begging for trouble.  Avalon is no exception
  -        to this rule.  Even though Avalon's Framework was designed to work for
  +        to this rule.  Even though Avalon Framework was designed to work for
           server solutions, it is equally at home when using it to build
  -        building a Graphical User Interface (GUI) applications.  Two examples
  -        of this are
  -        <a href="http://d-haven.org/guiapp">D-Haven.org's GUIApp</a>
  -        and <a href="http://jesktop.sourceforge.net">Jesktop</a>
  +        Graphical User Interface (GUI) applications.
         </p>
         <p>
           While you need to consider if Avalon is right for your project,
  @@ -202,20 +200,25 @@
           in a server environment, then Avalon is a good choice whether you
           are creating a Java Servlet, or creating a special purpose server.
           If the answer is it will be run on a client's machine with no
  -        interaction with a server, than chances are that Avalon might not
  -        be a good fit.  Even then, the Component model is very flexible
  -        and can help manage complexity in a large application.
  +        interaction with a server, you should evaluate if there is a strong
  +        component based model running under the hood. If so, it is likely
  +        that it can be considered to be a server in its own right, and that
  +        the GUI sitting on top is a window into the real application, which
  +        would make Avalon perfect. In either case, you should 
  +        probably investigate Eclipse and NetBeans as GUI frameworks to 
  +        build on top of.
         </p>
       </subsection>
     </section>
     <section name="Principles and Patterns">
       <p>
  -      All of Avalon is built with specific design principles.  The two
  -      most important patterns are <em>Inversion of Control</em>
  -      and <em>Separation of Concerns</em>.  Component Oriented
  -      Programming, Aspect Oriented Programming, and Service Oriented
  -      Programming also influence Avalon.  Volumes could be written about
  -      each of the programming principles, however they are design mindsets.
  +      All of Avalon is built with specific design principles.  The two 
  +      most important patterns are <em>Inversion of Control</em> and
  +      <em>Separation of Concerns</em>.
  +      Component Oriented Programming, Aspect Oriented Programming, and 
  +      Service Oriented Programming also influence Avalon.  Volumes could 
  +      be written about each of the programming principles, however they 
  +      are design mindsets.
       </p>
       <subsection name="Inversion of Control">
         <p>
  @@ -265,15 +268,15 @@
           couldn't be addressed at class or even method granularity.  Those
           concerns are called aspects.  Examples of aspects include managing
           the lifecycle of objects, logging, handling exceptions and cleaning
  -        up resources.  With the absence of a stable AOP implementation, the
  -        Avalon team chose to implement Aspects or concerns by providing
  -        small interfaces that a Component implements.
  +        up resources.  With the absence of a widely accepted and stable AOP 
  +        implementation, the Avalon team chose to implement Aspects or 
  +        concerns by providing small interfaces that a Component implements.
         </p>
       </subsection>
       <subsection name="Component Oriented Programming">
         <p>
           Component Oriented Programming (COP) is the idea of breaking a
  -        system down into components, or facilities within a system.  Each
  +        system down into components.  Each
           facility has a work interface and contracts surrounding that
           interface.  This approach allows easy replacement of Component
           instances without affecting code in other parts of the systems.
  @@ -318,23 +321,36 @@
          <tr><td><em>Webster's II New Riverside Dictionary</em></td></tr>
         </table>
         <p>
  -        Avalon's Phoenix identifies a service as the interface and
  -        contracts for a facility that Phoenix will provide.  The
  -        implementation of the service is called a Block.  It is
  -        important to realize that a server is made up of multiple
  -        services.  To take the example of a Mail server, there are
  -        the protocol handling services, the authentication and
  -        authorization services, the administration service, and the
  -        core mail handling service.
  -      </p>
  +        Avalon Merlin is very Service oriented, and not only can a
  +        component provide a Service, but an aggregation of components
  +        can expose Services to be re-used.
  +        It is important to realize that a server is made up of multiple 
  +        Services.  To take the example of a mail server, there are the 
  +        protocol handling services, the authentication and authorization 
  +        services, the administration service, and the core mail handling 
  +        service. And it is possible to expose a single simple Service 
  +        from the mail server, which can be used by others, without knowing 
  +        the details of how to assemble a complete mail server, and not to
  +        be confused by all the details, a simple include is all that is 
  +        needed.
  +      </p>
  +<source>
  +  <container>
  +    <include id="james:james" version="3.0"/>
  +  </container>
  +</source>
         <p>
  -        Avalon's Cornerstone provides a number of low-level services
  +        Avalon Components provides a number of low-level services
           that you can leverage for your own systems.  The services
           provided are connection management, socket management,
           principal/role management, and scheduling.  We touch on
           services here because it is relevant to the process of
           decomposing our hypothetical system down into the different
  -        facilities.
  +        facilities. Avalon Components are being imported from the
  +        obsolete Avalon Cornerstone, and in the process bringing the
  +        components up-to-date with the latest specifications, as well
  +        as creation of unittests and documentation. This process may
  +        take a while to complete, and is starting in March 2004.
         </p>
       </subsection>
     </section>
  
  
  
  1.5       +2 -2      avalon-site/xdocs/product/containers/index.xml
  
  Index: index.xml
  ===================================================================
  RCS file: /home/cvs/avalon-site/xdocs/product/containers/index.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- index.xml	13 Mar 2004 13:16:21 -0000	1.4
  +++ index.xml	13 Mar 2004 18:05:48 -0000	1.5
  @@ -66,7 +66,7 @@
         <subsection name="Dependencies" >
           <p>
             There are many ways on how to resolve dependencies between components.
  -          Avalon uses a method called <emp>Lookup Injection</emp>, which means 
  +          Avalon uses a method called <em>Lookup Injection</em>, which means 
             that the container will hand over a ServiceManager to the component,
             if the component implements the Serviceable interface.
           </p>
  @@ -133,7 +133,7 @@
         
         <subsection name="Repository" >
           <p>
  -          We have all been in <emp>JAR Hell</emp>, which means that it is hard
  +          We have all been in <em>JAR Hell</em>, which means that it is hard
             to keep track of which Jars are required, and more importantly which
             version of each. And that is only for your build system. When you
             start deploying the applications, this grows into a nightmare.
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@avalon.apache.org
For additional commands, e-mail: cvs-help@avalon.apache.org