Supporting self-management behaviour by means of component-based architectural solutions has been the focus of many current research projects. In such a context, handling unanticipated changes with no impacts in applicationspecific software artefacts is a challenging problem. In this paper, we present a component-based solution for the specification and execution of self-management behaviour that decouples application-specific from autonomic-specific software artefacts (non-intrusive approach) and supports unanticipated changes in distributed heterogeneous environments. We describe the designed components for environment monitoring, adaptation policies specification, and changes redeployment and present a reference implementation built on top of CIAO middleware - a Lightweight CORBA Component Model implementation that supports dynamic reconfiguration of components and connectors. We also present two evaluation experiments, which provide selfoptimization and self-healing behaviour in a...