What is YAAFI?
The Yet Another Avalon Framework Implementation of an Avalon container.
YAAFI is a light-weight implementation of a service framework using the Avalon service lifecycle interfaces aka Avalon container. There are a few other implementations out there such as Phoenix, Fortress, Loom, Keel and Merlin but YAAFI gives you a lot of bells and whistles with minimal baggage. The goal of the implementation is to provide a light-weight Avalon container to be embedded into existing applications and/or other containers.
What we left out
- logger manager implementation since this is done by log4j quite nicely
- run-time instrumentation to monitor application health
- service implementation versioning
- service initialization in a background thread
- no support for lifestyle other than Singleton
- classloader hierarchies for components
- service selector implementation
- no javadoc tag support for automatically creating component decriptors
What we actually implemented
- a light-weight Avalon container only depending an the Avalon Framework libraries
- a container which can run components written for ECM, Fortress, Phoenix and Merlin
- ability to be embedded in other Avalon containers such as Phoenix
- automatic reconfiguration for the whole Avalon container or individual services
- automatic shutdown of the whole Avalon container
- support for early or on-demand initialization
- support for encrypted configuration files
- dynamic proxies and service interceptors
- dynamic expansion of variables found in the component configuration file
The rest of the Avalon universe
- Fortress is another Avalon container under the Apache umbrella. It is also targeted to be embedded into existing applications.
- Loom is another Avalon based micro-kernel derived from Phoenix
- Metro was meant as unification of Avalon containers but moved away from Apache.
- Plexus another light-weight being able to run Avalon components.
- Xingu is a Avalon-based component repository.