Jiazzi [24] extends Java with package types as a means for implementing units [11]. One could thus use Jiazzi to define a ``blueprint'' for the Java reflection package. As with AspectJ, the difficulty in using reflection with Jiazzi stems from its being a language extension.
ArchJava [1,2] addresses the decoupling of implementation code from architecture. New constructs for ports and connections are introduced to enforce, for example, architectural communication-integrity. We aspire to push reflection up to the architectural level, while maintaining ``reflective-integrity.'' Aldrich, et al., mention an archjavadoc tool as future work.