This paper describes a Java-based framework for the development of componentbased software systems supporting the specification of the logic of component interactions as a first-class aspect. Java is used as the reference development language. On the one side, the framework makes it possible to specify the logic of interaction at the component-level, in terms of input and output interfaces, the events generated and observed by a component, and related information about the management of the control flow. On the other side, it is possible to specify the logic of interaction at the inter-component level, providing a modelling and linguistic support for designing and (dynamically) programming the glue among the components, enabling general forms of observation, control and construction of the interaction space. As a result, the framework supports the coordination of components at different levels: from interoperability among heterogeneous and unknown components, to the