A pojo metadata model with a loader abstraction that isolates the source of the metadata from the pojo model. The loader needs a notion of scope.
A metadata resolution service that supports a hierarchical linking of the pojo metadata model from the various scopes (thread, request, session, app/deployment, server, cluster/domain). Aspects should be able to interact with thread/request level metadata to introduce/override this.
A mapping to the profile service abstraction that allows for management tools, installers to introduce metdata via deployment level and higher loader abstractions.