What is it?

Apache Avalon provides a complete platform for component programming including a core framework, utilities, tools, components and containers. By using key design patterns such as Inversion of Control (IoC) and Seperation of Concerns (SoC), Avalon achieves a number of advantages over traditional object oriented programming frameworks:

  • No implementation lock
  • Low coupling between components
  • Component lifecycle management
  • Configuration management and easy to use API
  • Component meta-data framework and tools
  • Service dependecy management
  • Embeddable containers for standalone, J2EE and web environments

In Component Oriented Programming (COP), reusable and replaceable components can be assembled in a container to provide application blocks. Blocks in turn can be used to build anything from a client desktop application to an FTP server to a web service. Avalon provides a variety of basic components and default application blocks in order to help you quickly build your own application solution.

Given this, the Avalon team aims to:

  • Provide a stable COP development platform (currently in JAVA)
  • Create a rich set of client components API's and default implementations
  • Develop complete container solutions
  • Explore and extend COP development practices

Avalon Products and Sub-Projects

  • Containers : several complete container implementations used to host components.
  • Framework : provides a specification of design patterns and rules in the form of interfaces.
  • Components : contains container related utilities and simple core components.

What Next

If you're new to Avalon or COP in general, "Welcome!" You may be now wondering where to start. The following should help you find what you're looking for.

Container Users

Avalon provides a number of containers such as Merlin and Fortress. For information about containers in general, see the containers section. For other Avalon-based or Avalon-related container solutions, see the related projects section. Avalon is used in several external projects, such as Cocoon, OpenIM, and others.

Component Developers

If you're new to Avalon, be certain to check out the Articles section, specifically, the Developing With Avalon 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.

Avalon Developers

Whether you're a contributor or a committer, you'll should familiarize yourself with the Coding Standards document. The Community section also reviews various standards, policies, and practices within the Avalon community.

About Component Oriented Programming

If you're interested in learning more about component oriented programming, then in addition to the Articles section, look at the Framework documentation. The Framework project contains sections of COP practices and is itself a good COP reference implementation.

General Resources

Don't forget to wade through the wealth of material on our Wiki site. The mailing lists are also an excellent resource for support and more information.