Interface FusekiAutoModule

All Superinterfaces:
FusekiActionCycle, FusekiBuildCycle, FusekiLifecycle, FusekiModule, FusekiServerArgsCustomiser, FusekiStartStop, org.apache.jena.base.module.SubsystemLifecycle
All Known Implementing Classes:
FMod_BLANK

public interface FusekiAutoModule extends FusekiModule, FusekiLifecycle
Module interface for Fuseki with loading via ServiceLoader from mixin jars.

A module is additional code, usually in a separate jar, but it can be part of the application code. Calls are made to each module at certain points in the lifecycle of a Fuseki server.

A module must provide a no-argument constructor if it is to be loaded automatically.

Automatically loaded Fuseki modules:

  • start() -- called when the module is loaded and instantiated.
  • stop() -- modules finishes. This is unlikely to be called in practice and there is no guarantee of a clean shutdown.
When a server is being built: * At server start-up:
  • Method Details

    • name

      String name()
      A display name to identify this module.

      This defaults to the Java simple class name of module.

      Specified by:
      name in interface FusekiBuildCycle
      Specified by:
      name in interface FusekiModule
    • start

      default void start()
      Specified by:
      start in interface org.apache.jena.base.module.SubsystemLifecycle
    • stop

      default void stop()
      Specified by:
      stop in interface org.apache.jena.base.module.SubsystemLifecycle
    • level

      default int level()
      Level for ordering calling all loaded FusekiAutoModule. Levels 0-999 are reserved and should not be used except by system FusekiAutoModule
      Specified by:
      level in interface org.apache.jena.base.module.SubsystemLifecycle
    • prepare

      default void prepare(FusekiServer.Builder serverBuilder, Set<String> datasetNames, org.apache.jena.rdf.model.Model configModel)
      Called at the start of "build" step. The builder has been set according to the configuration of API calls and parsing configuration files. No build actions have been carried out yet. The module can make further FusekiServer.FusekiServer.Builder calls. The "configModel" parameter is set if a configuration file was used otherwise it is null.

      This is the main point for customization of server.

      It can add and modify the data services being built, and also add servlets and servlet filters.

      Specified by:
      prepare in interface FusekiBuildCycle
      Specified by:
      prepare in interface FusekiModule
      Parameters:
      serverBuilder - The FusekiServer.Builder
      datasetNames - The names of DataServices configured by API calls and configuration file.
    • configured

      default void configured(FusekiServer.Builder serverBuilder, org.apache.jena.fuseki.server.DataAccessPointRegistry dapRegistry, org.apache.jena.rdf.model.Model configModel)
      Called after the DataAccessPointRegistry has been built.

      The default implementation is to call FusekiBuildCycle.configDataAccessPoint(DataAccessPoint, Model) for each DataAccessPoint.

          dapRegistry.accessPoints().forEach(accessPoint->configDataAccessPoint(accessPoint, configModel));
       
      Specified by:
      configured in interface FusekiBuildCycle
      Specified by:
      configured in interface FusekiModule
    • configDataAccessPoint

      default void configDataAccessPoint(org.apache.jena.fuseki.server.DataAccessPoint dap, org.apache.jena.rdf.model.Model configModel)
      This method is called for each DataAccessPoint by the default implementation of FusekiBuildCycle.configured(org.apache.jena.fuseki.main.FusekiServer.Builder, org.apache.jena.fuseki.server.DataAccessPointRegistry, org.apache.jena.rdf.model.Model) after the new server's DataAccessPointRegistry has been built.
      Specified by:
      configDataAccessPoint in interface FusekiBuildCycle
      Specified by:
      configDataAccessPoint in interface FusekiModule
    • server

      default void server(FusekiServer server)
      Called when the server is built at the point where it is returned from the Fuseki server builder. The server has not yet been started.
      Specified by:
      server in interface FusekiBuildCycle
      Specified by:
      server in interface FusekiModule
    • serverBeforeStarting

      default void serverBeforeStarting(FusekiServer server)
      Server starting - called just before server.start happens.
      Specified by:
      serverBeforeStarting in interface FusekiModule
      Specified by:
      serverBeforeStarting in interface FusekiStartStop
    • serverAfterStarting

      default void serverAfterStarting(FusekiServer server)
      Server started - called just after server.start happens, and before server .start() returns to the application.
      Specified by:
      serverAfterStarting in interface FusekiModule
      Specified by:
      serverAfterStarting in interface FusekiStartStop
    • serverStopped

      default void serverStopped(FusekiServer server)
      Server stopping. Do not rely on this called; do not rely on this to clear up external resources. Usually there is no stop phase and the JVM just exits or is killed externally.
      Specified by:
      serverStopped in interface FusekiModule
      Specified by:
      serverStopped in interface FusekiStartStop