Package org.apache.wiki.api.engine

# Interface EngineLifecycleExtension

public interface EngineLifecycleExtension

SPI used to notify JSPWiki extensions about `Engine`'s initialization & shutdown, without having to deep dive on `Engine`'s internals.

Examples of `EngineLifecycleExtension`'s use cases:

- Appending a plugin's classpath to `jspwiki.plugin.searchPath`, so it can be used as a drop-in, without further configuration.
- Providing default parameters for a custom extension.
- Setting up that expensive singleton, or disposing resources, without having to use or register a `WikiEventListener`.

As a concrete example, the markdown module uses an `EngineLifecycleExtension` to set up all the required properties if `jspwiki.syntax=markdown` is provided on the `jspwiki[-custom].properties file`.

All methods are provided with a `default`, do-nothing implementation, so specific EngineLifecycleExtensions only have to provide implementations for the methods they're really interested in.

## Method Summary

Modifier and Type
Method
Description
`default void`
`onInit(Properties properties)`
Called before `Engine` initialization, after the wiki properties have been sought out.
`default void`
`onShutdown(Engine e, Properties properties)`
Called before `Engine` shutdown.
`default void`
`onStart(Engine e, Properties properties)`
Called after `Engine` initialization.

## Method Details

### onInit

default void onInit(Properties properties)
Called before `Engine` initialization, after the wiki properties have been sought out.

Parameters:
  `properties` - wiki configuration properties.

### onStart

default void onStart(Engine e, Properties properties)
Called after `Engine` initialization.

Parameters:
  `properties` - wiki configuration properties.
  `e` - JSPWiki's ready to be used `Engine`.

### onShutdown

default void onShutdown(Engine e, Properties properties)
Called before `Engine` shutdown.

Parameters:
  `e` - JSPWiki's running `Engine`.
  `properties` - wiki configuration properties.