THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
- Wait for all required dependencies to be available. When all required dependencies are available:
- Instantiate the component.
- Inject all required dependencies (on class fields using reflection, or by invoking callback methods).
- Inject all optional dependencies defined on class fields, possibly with a NullObject if the dependency is not available.
- Call the component init method (annotated with @Init). In the Init method, you are yet allowed to add some additional dependencies (but using the API). Alternatively, you can also configure some dependencies dynamically (explained later, in #Dynamic Dependency Configuration).
- Wait for extra dependencies eventually configured from the init() method.
- If the component is not using the @LifecycleController annotation (detailed in the #Controlling the Lifecycle section), then:
- Invoke the component start method (annotated with @Start).
- Publish eventual OSGi services (if the component provides some services).
- Start tracking optional dependencies applied on method callbacks (useful for the whiteboard pattern).
- Else do nothing because the component will trigger itself the startup using the lifecycle controller.
...