<!DOCTYPE html>
<html lang="en">
<head>
    

    <title>Apache Jena - Fuseki Modules</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <link href="/css/bootstrap.min.css" rel="stylesheet" media="screen">
    <link href="/css/bootstrap-icons.css" rel="stylesheet" media="screen"><link rel="stylesheet" type="text/css" href="https://jena.apache.org/sass/jena.1b17c39a117e22b46db4c66f6395dc27c134a60377d87d2d5745b8600eb69722.css" integrity="sha256-GxfDmhF&#43;IrRttMZvY5XcJ8E0pgN32H0tV0W4YA62lyI=">
    <link rel="shortcut icon" href="/images/favicon.ico" />
    
</head>

<body>

<nav class="navbar navbar-expand-lg bg-body-tertiary" role="navigation">
    <div class="container">
        <div class="navbar-header">
            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>
            <a class="navbar-brand" href="/index.html">
                <img class="logo-menu" src="/images/jena-logo/jena-logo-notext-small.png" alt="jena logo">Apache Jena</a>
        </div>

        <div class="collapse navbar-collapse" id="navbarNav">
            <ul class="navbar-nav me-auto mb-2 mb-lg-0">
                <li id="homepage" class="nav-item"><a class="nav-link" href="/index.html"><span class="bi-house"></span> Home</a></li>
                <li id="download" class="nav-item"><a class="nav-link" href="/download/index.cgi"><span class="bi-download"></span> Download</a></li>
                <li class="nav-item dropdown">
                    <a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-journal"></span> Learn <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li class="dropdown-header">Tutorials</li>
                        <li><a class="dropdown-item" href="/tutorials/index.html">Overview</a></li>
                        <li><a class="dropdown-item"  href="/documentation/fuseki2/index.html">Fuseki Triplestore</a></li>
                        <li><a class="dropdown-item"  href="/documentation/notes/index.html">How-To's</a></li>
                        <li><a class="dropdown-item"  href="/documentation/query/manipulating_sparql_using_arq.html">Manipulating SPARQL using ARQ</a></li>
                        <li><a class="dropdown-item"  href="/tutorials/rdf_api.html">RDF core API tutorial</a></li>
                        <li><a class="dropdown-item"  href="/tutorials/sparql.html">SPARQL tutorial</a></li>
                        <li><a class="dropdown-item"  href="/tutorials/using_jena_with_eclipse.html">Using Jena with Eclipse</a></li>
                        <li class="dropdown-divider"></li>
                        <li class="dropdown-header">References</li>
                        <li><a class="dropdown-item"  href="/documentation/index.html">Overview</a></li>
                        <li><a class="dropdown-item"  href="/documentation/query/index.html">ARQ (SPARQL)</a></li>
                        <li><a class="dropdown-item"  href="/documentation/io/">RDF I/O</a></li>
                        <li><a class="dropdown-item"  href="/documentation/assembler/index.html">Assembler</a></li>
                        <li><a class="dropdown-item"  href="/documentation/tools/index.html">Command-line tools</a></li>
                        <li><a class="dropdown-item"  href="/documentation/rdfs/">Data with RDFS Inferencing</a></li>
                        <li><a class="dropdown-item"  href="/documentation/geosparql/index.html">GeoSPARQL</a></li>
                        <li><a class="dropdown-item"  href="/documentation/inference/index.html">Inference API</a></li>
                        <li><a class="dropdown-item"  href="/documentation/ontology/">Ontology API</a></li>
                        <li><a class="dropdown-item"  href="/documentation/permissions/index.html">Permissions</a></li>
                        <li><a class="dropdown-item"  href="/documentation/extras/querybuilder/index.html">Query Builder</a></li>
                        <li><a class="dropdown-item"  href="/documentation/rdf/index.html">RDF API</a></li>
                        <li><a class="dropdown-item"  href="/documentation/rdfconnection/">RDF Connection - SPARQL API</a></li>
                        <li><a class="dropdown-item"  href="/documentation/rdfstar/index.html">RDF-star</a></li>
                        <li><a class="dropdown-item"  href="/documentation/shacl/index.html">SHACL</a></li>
                        <li><a class="dropdown-item"  href="/documentation/shex/index.html">ShEx</a></li>
                        <li><a class="dropdown-item"  href="/documentation/tdb/index.html">TDB</a></li>
                        <li><a class="dropdown-item"  href="/documentation/tdb2/index.html">TDB2</a></li>
                        <li><a class="dropdown-item"  href="/documentation/query/text-query.html">Text Search</a></li>
                    </ul>
                </li>

                <li class="nav-item dropdown">
                    <a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-journal-code"></span> Javadoc <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a class="dropdown-item" href="/documentation/javadoc.html">All Javadoc</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/arq/">ARQ</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/fuseki2/">Fuseki</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/geosparql/">GeoSPARQL</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/jena/">Jena Core</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/permissions/">Permissions</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/extras/querybuilder/">Query Builder</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/shacl/">SHACL</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/tdb/">TDB</a></li>
                        <li><a class="dropdown-item" href="/documentation/javadoc/text/">Text Search</a></li>
                    </ul>
                </li>
            </ul>
            <form class="d-flex" role="search" action="/search" method="GET">
                <div class="input-group">
                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search" style="width: 10rem;">
                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
                        <i class="bi-search"></i>
                    </button>
                </div>
            </form>
            <ul class="navbar-nav">
                <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html" title="Ask"><span class="bi-patch-question"></span><span class="text-body d-none d-xxl-inline"> Ask</span></a></li>

                <li class="nav-item dropdown">
                    <a href="#" title="Get involved" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-megaphone"></span><span class="text-body d-none d-xxl-inline"> Get involved </span><b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a class="dropdown-item" href="/getting_involved/index.html">Contribute</a></li>
                        <li><a class="dropdown-item" href="/help_and_support/bugs_and_suggestions.html">Report a bug</a></li>
                        <li class="dropdown-divider"></li>
                        <li class="dropdown-header">Project</li>
                        <li><a class="dropdown-item" href="/about_jena/about.html">About Jena</a></li>
                        <li><a class="dropdown-item" href="/about_jena/architecture.html">Architecture</a></li>
                        <li><a class="dropdown-item" href="/about_jena/citing.html">Citing</a></li>
                        <li><a class="dropdown-item" href="/about_jena/team.html">Project team</a></li>
                        <li><a class="dropdown-item" href="/about_jena/contributions.html">Related projects</a></li>
                        <li><a class="dropdown-item" href="/about_jena/roadmap.html">Roadmap</a></li>
                        <li><a class="dropdown-item" href="/about_jena/security-advisories.html">Security Advisories</a></li>
                        <li class="dropdown-divider"></li>
                        <li class="dropdown-header">ASF</li>
                        <li><a class="dropdown-item" href="https://www.apache.org/">Apache Software Foundation</a></li>
                        <li><a class="dropdown-item" href="https://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
                        <li><a class="dropdown-item" href="https://www.apache.org/licenses/LICENSE-2.0">License</a></li>
                        <li><a class="dropdown-item" href="https://www.apache.org/security/">Security</a></li>
                        <li><a class="dropdown-item" href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
                    </ul>
                </li>
                
                
                
                
                <li class="nav-item" id="edit"><a class="nav-link" href="https://github.com/apache/jena-site/edit/main/source/documentation/fuseki2/fuseki-modules.md" title="Edit this page on GitHub"><span class="bi-pencil-square"></span><span class="text-body d-none d-xxl-inline"> Edit this page</span></a></li>
            </ul>
        </div>
    </div>
</nav>

<div class="container">
    <div class="row">
        <div class="col-md-12">
            
            <div id="breadcrumbs">
                





<ol class="breadcrumb mt-4 p-2 bg-body-tertiary">
    
    
        
        
    
        
        
            
                <li class="breadcrumb-item"><a href='/documentation'>DOCUMENTATION</a></li>
            
            
        
    
        
        
            
                <li class="breadcrumb-item"><a href='/documentation/fuseki2'>FUSEKI2</a></li>
            
            
        
    
        
        
            
                <li class="breadcrumb-item active">FUSEKI MODULES</li>
            
            
        
    
</ol>




            </div>
            <h1 class="title">Fuseki Modules</h1>
            
            
<main class="d-flex flex-xl-row flex-column">
  
  <aside class="text-muted align-self-start mb-3 p-0 d-xl-none d-block">
    <h2 class="h6 sticky-top m-0 p-2 bg-body-tertiary">On this page</h2>
    <nav id="TableOfContents">
  <ul>
    <li>
      <ul>
        <li><a href="#automatically-loaded">Automatically loaded</a></li>
        <li><a href="#programmaticaly-configuring-a-server">Programmaticaly configuring a server</a></li>
        <li><a href="#fuseki-module-operations">Fuseki Module operations</a></li>
        <li><a href="#fusekimodule-interface"><code>FusekiModule</code> interface</a></li>
      </ul>
    </li>
  </ul>
</nav>
  </aside>
  <article class="flex-column me-lg-4">
    <p><em>Fuseki modules</em> are a mechanism to include extension code into a Fuseki
server. Modules are invoked during the process of building a <a href="./fuseki-main.html">Fuseki
Main</a> server. A module can modify the server
configuration, add new functionality, or react to a server being built and
started.</p>
<p>This feature was added in Jena version 4.3.0. It is an experimental feature
that will evolve based on feedback and use cases.</p>
<p>The interface for modules is <code>FusekiModule</code>; if automatcally loaded, the
interface is <code>FusekiAutoModule</code> which extends <code>FusekiModule</code>.</p>
<p>Fuseki modules can be provided in two ways:</p>
<ul>
<li>Loaded from additional jars on the classpath</li>
<li>Programmatically controlling the setup of the <code>FusekiServer</code> server.</li>
</ul>
<h3 id="automatically-loaded">Automatically loaded</h3>
<p>Fuseki Modules can be loaded using the JDK
<a href="https://www.baeldung.com/java-spi">ServiceLoader</a> by being placing
a jar file on the classpath,
together with any additional dependencies. These provide interface
<code>FusekiAutoModule</code>.
The service loader is controlled by file resources
<code>META-INF/services/org.apache.jena.fuseki.main.sys.FusekiAutoModule</code> in the jar
file.
The module class must have a no-argument constructor.</p>
<p>This is often done by placing the file in the development code in
<code>src/main/resources/META-INF/services/</code>).
The file containing a line with the implementation full class name. If
<a href="../notes/jena-repack.html">repacking</a> Fuseki with the maven-shade-plugin, make
sure the <code>ServicesResourceTransformer</code> is used.</p>
<p>The method <code>start</code> is called when the module is loaded. Custom operations can
be globally registered at this point (see the <a href="https://github.com/apache/jena/tree/main/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/examples">Fuseki
examples</a> directory).</p>
<p>A <code>FusekiAutoModule</code> can provide a level, an integer, to control the order in which
modules are invoked during server building. Lower numbers are invoked before larger
numbers at each step.</p>
<h3 id="programmaticaly-configuring-a-server">Programmaticaly configuring a server</h3>
<p>If creating a Fuseki server from Java, the modules can be autoloaded as described above,
or explicitly added to the server builder.</p>
<p>A <code>FusekiModules</code> object is collection of modules, called at each point in the order
given when creating the object.</p>
<pre tabindex="0"><code>    FusekiModule myModule = new MyModule();
    FusekiModules fmods = FusekiModules.create(myModule);
    FusekiServer server = FusekiServer.create()
        ...
        .fusekiModules(fmods)
        ...
        .build();  
</code></pre><h3 id="fuseki-module-operations">Fuseki Module operations</h3>
<p>The module lifecycle during creating a Fuseki server is:</p>
<ul>
<li><code>prepare</code> - called at the start of the server
build steps before setting up the datasets.</li>
<li><code>configured</code> - access and modify the setup.
This is called after the server has been configured, before the server is built.
It defaults to calls to <code>configDataAccessPoint</code> for dataset being hosted by the server.</li>
<li><code>server</code> - called after the built, before the return of <code>FusekiServerBuilder.build()</code></li>
</ul>
<p>There are also operations notified when a server is reloaded while running.</p>
<ul>
<li><code>serverConfirmReload</code></li>
<li><code>serveReload</code></li>
</ul>
<p>As of Jena 4.9.0, eeload is not yet supported.</p>
<p>The Fuseki start up sequence is:</p>
<ul>
<li><code>serverBeforeStarting</code> - called at the start of <code>server.start()</code></li>
<li><code>serverAfterStarting</code> - called at the end of <code>server.start()</code></li>
<li><code>serverStopped</code> - called as just after the server
has stopped in the <code>server.stop()</code> call.
(note, this is not always called because a server can simply exit the JVM).</li>
</ul>
<p>A Fuseki module does not need to implement all these steps. The default for all
steps is &ldquo;do nothing&rdquo;.  Usually, an extension will only be interested in
certain steps, such as <code>prepare</code>, or the registry information of
<code>configuration</code>.</p>
<p>During the configuration step, the Fuseki configuration file for the server is
available. If the server is built programmatically without a configuration file,
this is null.</p>
<p>The configuration file can contain RDF information to build resources (e.g.
it can contain additional assembler descriptions not directly linked to the server).</p>
<p>There is an <a href="https://github.com/apache/jena/blob/main/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/examples/ExFusekiMain_3_FusekiModule.java">example Fuseki
Module</a>
in the Fuseki examples directory.</p>
<h3 id="fusekimodule-interface"><code>FusekiModule</code> interface</h3>
<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#080;font-style:italic">/**
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic"> * Module interface for Fuseki.
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic"> * &lt;p&gt;
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic"> * A module is additional code, usually in a separate jar, 
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic"> * but can also be part of the application code.
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic"> */</span>
</span></span><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">interface</span> <span style="color:#00f">FusekiModule</span> <span style="color:#a2f;font-weight:bold">extends</span> SubsystemLifecycle <span style="color:#666">{</span>
</span></span><span style="display:flex;"><span>    <span style="color:#080;font-style:italic">/**
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     * Display name to identify this module.
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     */</span>
</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">public</span> String <span style="color:#00a000">name</span><span style="color:#666">();</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    <span style="color:#080;font-style:italic">// -- Build cycle.
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic"></span>
</span></span><span style="display:flex;"><span>    <span style="color:#080;font-style:italic">/**
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     * Called at the start of &#34;build&#34; step. The builder has been set according to the
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     * configuration of API calls and parsing configuration files. No build actions have been carried out yet.
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     * The module can make further FusekiServer.{@link Builder} calls.
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     * The &#34;configModel&#34; parameter is set if a configuration file was used otherwise it is null.
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     */</span>
</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">default</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">prepare</span><span style="color:#666">(</span>FusekiServer<span style="color:#666">.</span><span style="color:#b44">Builder</span> serverBuilder<span style="color:#666">,</span> Set<span style="color:#666">&lt;</span>String<span style="color:#666">&gt;</span> datasetNames<span style="color:#666">,</span> Model configModel<span style="color:#666">)</span> <span style="color:#666">;</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>     <span style="color:#080;font-style:italic">/**
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">      * Called after the DataAccessPointRegistry has been built.
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">      * &lt;p&gt;
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">      * The default implementation is to call {@link #configDataAccessPoint(DataAccessPoint, Model)}
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">      * for each {@link DataAccessPoint}.
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">      * &lt;pre&gt;
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">      *    dapRegistry.accessPoints().forEach(accessPoint{@literal -&gt;}configDataAccessPoint(accessPoint, configModel));
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">      * &lt;/pre&gt;
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">      */</span>
</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">default</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">configured</span><span style="color:#666">(</span>FusekiServer<span style="color:#666">.</span><span style="color:#b44">Builder</span> serverBuilder<span style="color:#666">,</span> DataAccessPointRegistry dapRegistry<span style="color:#666">,</span> Model configModel<span style="color:#666">)</span> <span style="color:#666">{</span>
</span></span><span style="display:flex;"><span>        dapRegistry<span style="color:#666">.</span><span style="color:#b44">accessPoints</span><span style="color:#666">().</span><span style="color:#b44">forEach</span><span style="color:#666">(</span>accessPoint<span style="color:#666">-&gt;</span>configDataAccessPoint<span style="color:#666">(</span>accessPoint<span style="color:#666">,</span> configModel<span style="color:#666">));</span>
</span></span><span style="display:flex;"><span>    <span style="color:#666">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    <span style="color:#080;font-style:italic">/**
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     * This method is called for each {@link DataAccessPoint} by the default
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     * implementation of {@link #configured} after the new servers
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     * DataAccessPointRegistry has been built.
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     */</span>
</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">default</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">configDataAccessPoint</span><span style="color:#666">(</span>DataAccessPoint dap<span style="color:#666">,</span> Model configModel<span style="color:#666">)</span> <span style="color:#666">{}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    <span style="color:#080;font-style:italic">/**
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     * Built, not started, about to be returned to the builder caller.
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     */</span>
</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">default</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">server</span><span style="color:#666">(</span>FusekiServer server<span style="color:#666">)</span> <span style="color:#666">{</span> <span style="color:#666">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    <span style="color:#080;font-style:italic">/**
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     * Confirm or reject a request to reload.
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     */</span>
</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">default</span> <span style="color:#0b0;font-weight:bold">boolean</span> <span style="color:#00a000">serverConfirmReload</span><span style="color:#666">(</span>FusekiServer server<span style="color:#666">)</span> <span style="color:#666">{</span> <span style="color:#a2f;font-weight:bold">return</span> <span style="color:#a2f;font-weight:bold">true</span><span style="color:#666">;</span> <span style="color:#666">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    <span style="color:#080;font-style:italic">/**
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     * Perform any operations necessary for a reload.
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     */</span>
</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">default</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">serverReload</span><span style="color:#666">(</span>FusekiServer server<span style="color:#666">)</span> <span style="color:#666">{</span> <span style="color:#666">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    <span style="color:#080;font-style:italic">// -- Server start up
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic"></span>
</span></span><span style="display:flex;"><span>    <span style="color:#080;font-style:italic">/**
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     * Server starting - called just before server.start happens.
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     */</span>
</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">default</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">serverBeforeStarting</span><span style="color:#666">(</span>FusekiServer server<span style="color:#666">)</span> <span style="color:#666">{</span> <span style="color:#666">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    <span style="color:#080;font-style:italic">/**
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     * Server started - called just after server.start happens, and before server
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     * .start() returns to the application.
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     */</span>
</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">default</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">serverAfterStarting</span><span style="color:#666">(</span>FusekiServer server<span style="color:#666">)</span> <span style="color:#666">{</span> <span style="color:#666">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    <span style="color:#080;font-style:italic">/** Server stopping.
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     * Do not rely on this to clear up external resources.
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     * Usually there is no stop phase and the JVM just exits or is killed externally.
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     *
</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     */</span>
</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">default</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">serverStopped</span><span style="color:#666">(</span>FusekiServer server<span style="color:#666">)</span> <span style="color:#666">{</span> <span style="color:#666">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    <span style="color:#080;font-style:italic">/** Module unloaded : do not rely on this happening. */</span>
</span></span><span style="display:flex;"><span>    <span style="color:#a2f">@Override</span>
</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">default</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">stop</span><span style="color:#666">()</span> <span style="color:#666">{}</span>
</span></span><span style="display:flex;"><span><span style="color:#666">}</span>
</span></span></code></pre></div><p><code>FusekiAutoModules</code> also provide the
<a href="https://jena.apache.org/documentation/javadoc/jena/org.apache.jena.core/org/apache/jena/sys/JenaSubsystemLifecycle.html"><code>org.apache.jena.base.module.SubsystemLifecycle</code></a>
interface.</p>

  </article>
  
  <aside class="text-muted align-self-start mb-3 mb-xl-5 p-0 d-none d-xl-flex flex-column sticky-top">
    <h2 class="h6 sticky-top m-0 p-2 bg-body-tertiary">On this page</h2>
    <nav id="TableOfContents">
  <ul>
    <li>
      <ul>
        <li><a href="#automatically-loaded">Automatically loaded</a></li>
        <li><a href="#programmaticaly-configuring-a-server">Programmaticaly configuring a server</a></li>
        <li><a href="#fuseki-module-operations">Fuseki Module operations</a></li>
        <li><a href="#fusekimodule-interface"><code>FusekiModule</code> interface</a></li>
      </ul>
    </li>
  </ul>
</nav>
  </aside>
</main>

        </div>
    </div>
</div>

<footer class="bd-footer py-4 py-md-5 mt-4 mt-lg-5 bg-body-tertiary">
    <div class="container" style="font-size:80%" >
        <p>
            Copyright &copy; 2011&ndash;2024 The Apache Software Foundation, Licensed under the
            <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
        </p>
        <p>
            Apache Jena, Jena, the Apache Jena project logo, Apache and the Apache feather logos are trademarks of
            The Apache Software Foundation.
            <br/>
          <a href="https://privacy.apache.org/policies/privacy-policy-public.html"
             >Apache Software Foundation Privacy Policy</a>.
        </p>
    </div>
</footer>

<script src="/js/popper.min.js.js" type="text/javascript"></script>
<script src="/js/bootstrap.min.js" type="text/javascript"></script>
<script src="/js/improve.js" type="text/javascript"></script>

<script type="text/javascript">
(function() {
    'use strict'
    
    

    const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
    if (links !== undefined && links !== null) {
        for (const link of links) {
            
            link.classList.add('active')
            let parentElement = link.parentElement
            let count = 0
            const levelsLimit = 4
            
            
            
            
            
            while (['UL', 'LI'].includes(parentElement.tagName) && count <= levelsLimit) {
                if (parentElement.tagName === 'LI') {
                    
                    
                    
                    parentElement.querySelector('a:first-child').classList.add('active')
                }
                parentElement = parentElement.parentElement
                count++
            }
        }
    }
})()
</script>

</body>
</html>
