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 07c8e5b2d53..c061b6ff00d 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 @@ 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 void addModule(ArgModuleGeneral argModule) { 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 23f01b35d82..3457a15050d 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 2a3785b0b11..580850ff5d0 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 @@ 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 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 5ee7b2a7225..651d3d08a4d 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 static FusekiArgs args(FusekiModules fusekiModules, String... args) { // Execute a step for the argument handlers. private static void runArgsHandlers( List argsHandlers, Consumer action) { for (FusekiServerArgsHandler argsHandler : argsHandlers) { - action.accept( argsHandler); + action.accept(argsHandler); } } // -- Argument handling