Why Avalon
Home PlanetProductsCentral
Avalon Explained

Avalon is a framework for component and container applications built on key design patterns such as Inversion of Control and Separation of Concerns and is available for the Java platform. You can use Avalon to build any number of other applications from desktop centric Swing apps to complicated servers. The Avalon framework is often used as the "underpinning" of a larger application or platform. Such Avalon based applications include Apache Cocoon, Apache James, the Apache Directory Project, OpenIM and the Keel Framework.

What Avalon Isn't

Avalon is not part of the J2EE stack. While Avalon can be used in developing J2EE applications and even used to build a J2EE server, the Avalon platform is not part of J2EE or a J2EE application server. Avalon is much simpler and does not include these advanced features out of the box. That said, you might write a J2EE application which embeds Avalon (such as in a servlet) or you may embed a J2EE server in a larger Avalon-based container.

What Avalon Is

The Avalon platform provides the following:

  • A core framework for component programming
  • A container system known as Merlin
  • A set of container extensions called Facilities
  • A component library

When working with Avalon you may use one or all of these. For more information on makeup of Avalon, see our overview page.

Who Uses Avalon?

Avalon users generally find themselves in one or more of the following roles:

  • Avalon User: You are using another application which uses Avalon "under the hood." Perhaps you are extending this application or are simply a user who wants to better understand the inner workings.
  • Component Author: You are developing a component to be run in an Avalon container. You may be assembling a set of components into a larger application block and then deploying that block and the Avalon container as a final complete application.
  • Container Developer: You are extending an existing Avalon container or developing a new Avalon compliant container.

Regardless of your role, there are certain technologies and concepts which are essentially prerequisites to Avalon development and use. If you are not familar with these terms, please read the corresponding documentation:

  • Java Platform
  • Inversion of Control
  • Separation of Concerns
  • Component Oriented Programming