This is an automated email from the ASF dual-hosted git repository.
andy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/jena.git
The following commit(s) were added to refs/heads/main by this push:
new 9d939fc2b7 GH-3046: Fix for loading custom auto modules on Fuseki
startup.
9d939fc2b7 is described below
commit 9d939fc2b76fce7a123f1f258dea8841c10dfd39
Author: Claus Stadler <[email protected]>
AuthorDate: Fri Mar 7 15:07:18 2025 +0100
GH-3046: Fix for loading custom auto modules on Fuseki startup.
---
.../apache/jena/fuseki/main/cmds/FusekiMain.java | 30 ++++++++++++++++------
1 file changed, 22 insertions(+), 8 deletions(-)
diff --git
a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/cmds/FusekiMain.java
b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/cmds/FusekiMain.java
index 8eb126c5cf..9d89b82a12 100644
---
a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/cmds/FusekiMain.java
+++
b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/cmds/FusekiMain.java
@@ -26,9 +26,8 @@ import java.nio.file.Path;
import java.util.List;
import java.util.Objects;
import java.util.function.Consumer;
+import java.util.stream.Stream;
-import arq.cmdline.CmdARQ;
-import arq.cmdline.ModDatasetAssembler;
import org.apache.jena.assembler.exceptions.AssemblerException;
import org.apache.jena.atlas.io.IOX;
import org.apache.jena.atlas.lib.FileOps;
@@ -37,6 +36,7 @@ import org.apache.jena.cmd.*;
import org.apache.jena.fuseki.Fuseki;
import org.apache.jena.fuseki.FusekiException;
import org.apache.jena.fuseki.main.FusekiServer;
+import org.apache.jena.fuseki.main.sys.FusekiModule;
import org.apache.jena.fuseki.main.sys.FusekiModules;
import org.apache.jena.fuseki.main.sys.FusekiServerArgsCustomiser;
import org.apache.jena.fuseki.main.sys.InitFusekiMain;
@@ -54,6 +54,9 @@ import org.apache.jena.riot.RDFParser;
import org.apache.jena.sys.JenaSystem;
import org.slf4j.Logger;
+import arq.cmdline.CmdARQ;
+import arq.cmdline.ModDatasetAssembler;
+
public class FusekiMain extends CmdARQ {
/** Default HTTP port when running from the command line. */
@@ -580,12 +583,23 @@ public class FusekiMain extends CmdARQ {
serverArgs.jettyConfigFile = jettyConfigFile;
}
- // Allows for external setting of serverArgs.fusekiModules
- if ( serverArgs.fusekiModules == null ) {
- // Get modules from system-wide setup.
- boolean withModules = hasValueOfTrue(argEnableModules);
- if ( withModules )
- serverArgs.fusekiModules = FusekiModules.getSystemModules();
+ boolean withModules = hasValueOfTrue(argEnableModules);
+ if ( withModules ) {
+ FusekiModules presetModules = serverArgs.fusekiModules;
+ // Get auto modules from system-wide setup.
+ FusekiModules autoModules = FusekiModules.getSystemModules();
+
+ // Merge preset and auto-loaded modules into one FusekiModules
instance.
+ if ( presetModules == null ) {
+ serverArgs.fusekiModules = autoModules;
+ } else {
+ List<FusekiModule> allModules = Stream.concat(
+ presetModules.asList().stream(),
+ autoModules.asList().stream())
+ .distinct()
+ .toList();
+ serverArgs.fusekiModules = FusekiModules.create(allModules);
+ }
}
if ( contains(argCORS) ) {