Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Section
Column

Each framework may have it's own Java interface for starting and stopping the Java service. Regardless of what method is called to start or stop the Java service the Bootstrapper translates these calls into calls against the DaemonApplication interface. Each framework's bootstrapper will have it's own bootstrapper class which extends Bootstrapper. The Bootstrapper base class has some reusable methods for instantiating and invoking methods on the DaemonApplication. Most Bootstrapper extending classes can reuse these methods instead of implementing their own.

The bootstrapper is usually instantiated by the daemon process for the framework after starting up a JVM. Also most bootstrappers will in addition to calling start() will invoke init() first even if the framework does not have init() in it's life cycle. Sometimes the subclass of Bootstrapper will implement framework specific interfaces to work with the framework. In the top picture to the right you can see the steps in this invocation process which occurs on start requests to the framework.

When stopping the service a new process is created with a new JVM. When the bootstrapper is instantiated it is not the same bootstrapper object that was used to start the server. This is what messes most with peoples heads. Then how do we properly invoke a stop on the original server that was started?

The base Bootstrapper class contains

Column