This is an automated email from the ASF dual-hosted git repository.

afs 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 7cdf5059b0 GH-4097: Support "fuseki --version"
7cdf5059b0 is described below

commit 7cdf5059b0bbedfa566006c5da4936abd3a7dc00
Author: Andy Seaborne <[email protected]>
AuthorDate: Tue Jul 28 21:03:37 2026 +0100

    GH-4097: Support "fuseki --version"
---
 jena-cmds/src/main/java/org/apache/jena/cmd/CmdGeneral.java    | 10 +---------
 jena-cmds/src/main/java/org/apache/jena/cmd/CmdMain.java       |  9 +++++++++
 .../main/java/org/apache/jena/fuseki/main/cmds/RunFuseki.java  | 10 ++++++++++
 .../java/org/apache/jena/fuseki/main/runner/FusekiArgs.java    |  2 +-
 4 files changed, 21 insertions(+), 10 deletions(-)

diff --git a/jena-cmds/src/main/java/org/apache/jena/cmd/CmdGeneral.java 
b/jena-cmds/src/main/java/org/apache/jena/cmd/CmdGeneral.java
index 07c8e5b2d5..c061b6ff00 100644
--- a/jena-cmds/src/main/java/org/apache/jena/cmd/CmdGeneral.java
+++ b/jena-cmds/src/main/java/org/apache/jena/cmd/CmdGeneral.java
@@ -29,12 +29,10 @@ import org.apache.jena.atlas.io.IndentedWriter;
 public abstract class CmdGeneral extends CmdArgModule
 {
     protected ModGeneral modGeneral = new ModGeneral(this::printHelp);
-    protected ModVersion modVersion = new ModVersion(true);
 
     protected CmdGeneral(String[] argv) {
         super(argv);
         addModule(modGeneral);
-        addModule(modVersion);
     }
 
     @Override
@@ -46,19 +44,13 @@ public abstract class CmdGeneral extends CmdArgModule
     public boolean isVerbose() { return modGeneral.verbose; }
     public boolean isQuiet()   { return modGeneral.quiet; }
     public boolean isDebug()   { return modGeneral.debug; }
-    protected boolean help()      { return modGeneral.help; }
+    protected boolean help()   { return modGeneral.help; }
 
     final public void printHelp() {
         usage();
         throw new TerminationException(0);
     }
 
-    @Override
-    protected void processModulesAndArgs() {
-        if ( modVersion.getVersionFlag() )
-            modVersion.printVersionAndExit();
-    }
-
     public void add(ArgDecl argDecl, String argName, String msg) {
         add(argDecl);
         getUsage().addUsage(argName, msg);
diff --git a/jena-cmds/src/main/java/org/apache/jena/cmd/CmdMain.java 
b/jena-cmds/src/main/java/org/apache/jena/cmd/CmdMain.java
index 23f01b35d8..3457a15050 100644
--- a/jena-cmds/src/main/java/org/apache/jena/cmd/CmdMain.java
+++ b/jena-cmds/src/main/java/org/apache/jena/cmd/CmdMain.java
@@ -43,8 +43,17 @@ public abstract class CmdMain extends CmdGeneral
     // gets a chance to create a logger.
     static { LogCtl.setLogging(); }
 
+    protected ModVersion modVersion = new ModVersion(true);
+
     protected CmdMain(String[] args) {
         super(args);
+        addModule(modVersion);
+    }
+
+    @Override
+    protected void processModulesAndArgs() {
+        if ( modVersion.getVersionFlag() )
+            modVersion.printVersionAndExit();
     }
 
     /** Run command - exit on failure */
diff --git 
a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/cmds/RunFuseki.java
 
b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/cmds/RunFuseki.java
index 2a3785b0b1..580850ff5d 100644
--- 
a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/cmds/RunFuseki.java
+++ 
b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/cmds/RunFuseki.java
@@ -23,6 +23,7 @@ package org.apache.jena.fuseki.main.cmds;
 
 import java.util.function.Consumer;
 
+import org.apache.jena.atlas.lib.Version;
 import org.apache.jena.cmd.CmdException;
 import org.apache.jena.fuseki.Fuseki;
 import org.apache.jena.fuseki.main.FusekiAbortException;
@@ -32,6 +33,7 @@ class RunFuseki {
     // This class wraps an entry point so that it can take control of logging 
setup.
     // This class does not depend via inheritance on any Jena code
     // and does not trigger Jena initialization.
+    //
     // FusekiLogging runs before any Jena code can trigger logging setup.
     //
     // Inheritance causes initialization in the super class first, before class
@@ -40,6 +42,14 @@ class RunFuseki {
     static { FusekiLogging.setLogging(); }
 
     public static void run(String[] args, Consumer<String[]> action) {
+        if ( args.length == 1) {
+            String arg = args[0];
+            if ( "--version".equals(arg) || "-version".equals(arg) ) {
+                Version.printVersion(System.out, "Fuseki", 
Version.versionForClass(Fuseki.class));
+                System.exit(0);
+            }
+        }
+
         try {
             action.accept(args);
         } catch (IllegalArgumentException | CmdException ex ) {
diff --git 
a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/runner/FusekiArgs.java
 
b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/runner/FusekiArgs.java
index 5ee7b2a722..651d3d08a4 100644
--- 
a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/runner/FusekiArgs.java
+++ 
b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/runner/FusekiArgs.java
@@ -195,7 +195,7 @@ public class FusekiArgs extends CmdGeneral {
     // Execute a step for the argument handlers.
     private static void runArgsHandlers( List<? extends 
FusekiServerArgsHandler> argsHandlers, Consumer<FusekiServerArgsHandler> 
action) {
         for (FusekiServerArgsHandler argsHandler : argsHandlers) {
-            action.accept( argsHandler);
+            action.accept(argsHandler);
         }
     }
     // -- Argument handling

Reply via email to