OSGi is a pragmatic wrapper above the Java Virtual Machine that embraces two concepts: the component approach and service-oriented programming. The component approach enables a Java run-time to host many concurrent applications, while the service-oriented programming paradigm allows the decomposition of applications into independent units that are dynamically bound at runtime. Combining component and service-oriented programming greatly simplifies the implementation of highly-adaptive, constantly-evolving applications. OSGi particularly fits ambient requirements and constraints by absorbing and adapting to changes associated with context evolution. This paper summarizes our INRIA Amazones 1 team work on extending OSGi specifications and implementations to cope with ambient concerns. This paper references our OSGi extension publications divided by three main concerns: management, isolation and security.