Interface EngineLifecycleExtension

All Known Implementing Classes:
MarkdownSetupEngineLifecycleExtension

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 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.