1 package com.atlassian.sal.api.lifecycle;
2
3 /**
4 * Triggers lifecycle events on {@link LifecycleAware} components.
5 * <p>
6 * <strong>Implementation note:</strong> Invoking the {@link #start()} method on startup and restore satisfies the two of the
7 * lifecycle requirements outlined on the {@link LifecycleAware} javadoc. The third (starting components that are enabled sometime
8 * after the host application starts up) can be done using an OSGi {@code ServiceListener}.
9 * <p>
10 * See {@code com.atlassian.sal.core.lifecycle.DefaultLifecycleManager.LifecycleAwareServiceListener} in {@code sal-core} for an
11 * example.
12 *
13 * @since 2.0
14 */
15 public interface LifecycleManager {
16 /**
17 * Triggers {@link LifecycleAware#onStart()} on all enabled {@link LifecycleAware} components. This method can be called
18 * multiple times but will only start components once and only once the plugin framework has started.
19 */
20 void start();
21
22 /**
23 * @return {@code true} if application is set up and ready to run, {@code false} otherwise.
24 */
25 boolean isApplicationSetUp();
26 }