Meta Facility is a hierarchical, i18n ready metadata system, it provides means for java classes to retrieve internationalized meta information from bundles in a flexible hierarchy. The meta information can be in arbitrary structures, and is reloadable.
Although a metadata feature(Annotation) has been introduced in J2SE 5.0, values of java annotations are bound to java source code, thus no way other than recompiling to be changed. And annotation metadata can only be associated with class or class members, meta data in arbitrary structures is still not possible. Annotation was neither designed to be localizable.
While annotation values are looked up backward the inheritance path, other cases need more complex searching pathes.
For instance, to configure logging settings. As we all know, loggers are
orginazed in a named hierarchy, when we are using a logger
com.my.util.FastMap, we want it be able to be configured by
com.my.util or com.my or the upwards.
For another instance, the resource bundles. The classic java i18n resource
bundle mechanism is broadly used nowadays, but if you want to share a
set of messages among several components, but these components each has their
extra message set of their own, things become complex, you'll have to implement
a resource bundle hierarchy by yourself.
These situations happens to be the problems that Ableverse Message Facility was designed to solve, which was implemented on top of abilities provided by Meta Facility.