The Java Reflection Framework provides an API for accessing and calling classes, methods and fields dynamically at runtime. It is widely used by Jakarta applications. Unfortunately it has various bugs, including operating differently on each JDK version.
There is a need for a consistent and accurate reflection implementation. Reflect will achieve this, following the Java specification properly. It will also include optional caching, which is essential on pre JDK1.4 JVMs. Some added-value functionality, like C# style delegates is also in-scope for discussion for inclusion in Reflect.
The Reflect package shall create and maintain a package that provides an accurate and thorough reflection implementation for all JDK1.2+ versions. The package shall exclude bean-level reflection.
Reflect relies only on standard JDK 1.2 (or later) APIs for production deployment. It utilizes the JUnit unit testing framework for developing and executing unit tests, but this is of interest only to developers of the component.
No external configuration files are utilized.
Coding was started in the Lang project, but is unsuited to remaining there. Code will be moved to Reflect.
The proposed package name for the new component is
org.apache.commons.reflect
.
reflect
in the
jakarta-commons
SVN repository.The initial committers on the Reflect component shall be: