In previous work, we developed an object-to-component transformation wherein every class in the OO API becomes an event type, and every method becomes a JavaBeans component. A bean can be a transmitter of an event, a receiver of an event, or both. Most beans both receive and transmit and are hence called transceivers. There are several kinds of transceiver beans. A bean is considered a conduit if it produces only side effects. A complete classification appears elsewhere [22].
We have also prototyped a component generator that performs this transformation automatically [21]. The generator uses reflection to analyze class interfaces (i.e., relying on method signatures only) and then produces a set of components. Later, we wanted to let clients use the generator as a web service [32]. Unfortunately, Java's reflection lacks interfaces, and retargeting required code modifications. Pluggability would let us disconnect a component generator that was designed to work with reflection and plug it into a metadata repository.