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.