If you had to name a single great thing about OSGi, it would probably be its dynamics. Services come and go; other services react to those events, configuration can change and so on. Even the startup is dynamic: start levels are increased synchronously; however, configuration, Declarative Services, and Blueprint are started asynchronously after bundles turn active. Sometimes you want to exercise control over when your application is actually fully started or more importantly when it is not.
We will show you a way to monitor startup of your application and demonstrate failure scenarios for common subsystems like configuration and Blueprint. We will also demonstrate the concept of start phases. A phased start enables a higher level of security in the face of failures during startup.