Since version 1.1 of the Java Development Kit, the Java reflective facilities have been successively extended. However, they
still prove to be limited. A number of systems (e.g. MetaXa, Guaraná, Kava, Javassist) have addressed this limitation by providing
reflective extensions of Java with richer MetaObject Protocols (MOPs). All these extensions provide a particular, monolithic,
infrastructure that reflects the commitment of the designer to particular trade-offs between efficiency, portability, expressiveness
and flexibility. Unfortunately, these trade-offs are not satisfactory for all applications, since different applications may
have different needs. This calls for breaking down the building of a reflective extension into different components that can
be specialized in order to fit specific needs. We qualify such a reflective extension as open. In this paper, we present Reflex,
a prototype open reflective extension of Java. Reflex can be seen both as a reflective extension of Java and as a first step towards a framework for building such extensions.