# Reflection Model

WARNING: The reflection model is subject to change without notice. It is currently under developement as issues with AOP integration and using the Microcontainer in more constrained environments are investigated.

The reflection model provides an abstraction over java.lang.reflect. It exists in the container module in package org.jboss.reflect.

## Aims

### Cache

Reflection can be a bottleneck unless the information is cached. This package provides a single stop cache for reflection data rather than repeating this behaviour throughout JBoss.

### Abstraction

It is anticapted that the reflection model can be improved in different circumstances or environments. This module aims to be the one place where those issues are resolved.

### Hide implementation

Under AOP, classes can change their characteristics usually through some sort of bytecode manipulation. This module aims to "hide" some of these details from routines that "don't care" about these implementation details.

## Issues

### Java5

Complete the support for annotations and generics.

### Lazy Cache

Improve the lazy cache implementation. Details should only be retrieved when accessed.

### AOP

It is still an open issue whether this implementation can be used by AOP or whether the ClassAdapter is a better place.

### Javassist

The current implementation just uses simple reflection. Javassist can proably provide a better implementation including supporting annotations before java5?