I'm trying to write the features document. I'd like input from
everyone. Here's what I have so far:

The Avalon project provides the following features:

- Component Oriented Programming framework to easily
  use and enforce COP in all your applications.
- best-of-practice patterns so you're application will
  use a solid, proven design.
- reusable Components already available for Avalon
  decrease your time-to-market because you don't have
  to reinvent the wheel.
- instant JMX-like manageability for all your applications.
- several open source applications built on Avalon to
  use as inspiration for your own applications (Cocoon,
  JAMES, Jesktop, EAS, XCommander).
- relatively small footprint for the core framework
  makes Avalon usable on almost every platform.
- programmed for scalability and stability making it
  suitable for the Enterprise.
- common tasks like thread, socket, class and configuration
  management are handled for you.
- the closest thing to Rapid Enterprise Application
  Development yet
- pluggable functionality allows for high customization


And In response to Berin's
"Also, so that we know how to position this project as a whole,
could all the committers post their difinition of what the
Avalon project is?"
...here's mine:

You come pretty close to mine =)

I just wrote the following:

        <s1 title="Sub-Projects">
          <p>
            There are several distinct sub-projects that together form the Avalon
project:
          </p>
                <ul>
                <li>First up is the <link href="framework/index.html">Server
Framework</link>.
                This provides a specification of design patterns and rules in the form 
of
                interfaces. Also provided are default implementations of those
interfaces.</li>
                <li>Secondly, there is <link 
href="excalibur/index.html">Excalibur</link>,
a
                collection of often-needed reusable components. It includes tools for
threading,
                pooling, datasources, proxies and more.</li>
                <li>Then there is <link 
href="@PHOENIX_BASE@/index.html">Phoenix</link>, a
                (server-oriented) Kernel within which applications that conform to the
framework
                rules can be executed. It supports standard java security, custom
classloaders,
                and more. It also provides a JMX-based management facility.</li>
                <li><link href="@CORNERSTONE_BASE@/index.html">Cornerstone</link> is a
repository
                for what we call <link
href="@PHOENIX_BASE@/what-is-a-block.html">blocks</link>,
                which provide services vital to server applications, like scheduling 
and
socket
                utilities. It also has some demo applications that demonstrate the 
proper
use
                of the avalon framework and can be used as a starting point for your 
own
servers.</li>
                <li>the <link href="@TESTLET_BASE@/index.html">Testlet</link> code 
still
needs a
                lot of work; it is a unit testing framework used by the other
sub-projects.</li>
                <li>finally, <link href="@LOGKIT_BASE@/index.html">LogKit</link> is the
lightweight
                logging engine used by Phoenix.</li>
                </ul>
        </s1>

> Berin Loritsch's definition:
>
> Avalon:
>     Avalon is the framework and implementation for a server side
>     component architecture, allowing for easy re-use of software
>     components.  It focuses on stable and scalable solutions to
>     ease collaborative development.  Avalon is composed of the
>     Framework, Excalibur, Cornerstone, Phoenix, LogKit, and the
>     test framework.

I see Avalon more as an _application_ server framework than just
a server framework - jesktop is a fine example of a project using
the framework that is not a server. Thus:

     Avalon is the framework and implementation for an application
     component architecture, allowing for easy re-use of software
     components.  It focuses on stable and scalable solutions to
     ease collaborative development.  Avalon is composed of the
     Framework, Excalibur, Cornerstone, Phoenix, LogKit, and the
     test framework.

> LogKit:
>     The Avalon LogKit is the logging framework used throughout
>     the Avalon project.  Excalibur, Cornerstone, and Phoenix
>     all assume the use of this project.

yep

> Framework (avalon.jar):
>     The Avalon Framework is composed of the interfaces and reference
>     implementations of those interfaces that declare the contracts
>     and development model imposed by Avalon.

yep

> Excalibur (excalibur.jar):
>     Avalon Excalibur is composed of reusable components that are
>     well tested and scalable.  It's purpose is to speed up
>     development so that common components are not reinvented.

I'd rephrase:

Avalon Excalibur is composed of reusable Avalon Components hat are
well-tested and scalable. It's purpose is to be a repository for
common Components so that they do not have to be reinvented, thus
speeding up development.

> Cornerstone (cornerstone.bar):
>     Avalon Cornerstone is composed of reusable services (blocks)
>     that are well tested and scalable.  It's purpose is to speed
>     up development so that common services are not reinvented.

similarly:

Avalon Cornerstone is composed of reusable Avalon Blocks (Services)
that are well-tested and scalable. It's purpose is to be a repository
for common Services so that they do not have to be reinvented, thus
speeding up development.

> Phoenix (phoenix.jar):
>     Avalon Phoenix is the reference implementation of the Avalon
>     Framework that makes use of all the afforementioned packages.
>     It is a scalable server, that makes use of reloadable and
>     manageable services that the user defines.

it isn't the RI...wish it were =)

Avalon Phoenix is a powerful scalable program that uses all of the
aforementioned packages. It acts as a Container for applications
built on top of the Avalon Framework, allowing dynamic loading
and unloading and exposing a jmx-style management interface for those
applications.
By using a similar setup to load and unload its functionality as it
does for applications, it is easy to customise its features.

(almost there, anyway =)

> Test Framework (testkit.jar):
>     The Avalon Test Framework is the prefered method of self testing
>     all Avalon components.  Results are pass/fail.

<grin> I'd add that it is unit testing. But I think I personally
prefer jUnit...I'm guessing this test framework was created before
jUnit became so popular =)

cheers,

LSD


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

Reply via email to