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 041800cacf GH-3668: Put back full start-up logging in Fuseki Server
041800cacf is described below
commit 041800cacf7aba2df6209ae8efecd461c2afc7a0
Author: Andy Seaborne <[email protected]>
AuthorDate: Sun Dec 21 22:06:08 2025 +0000
GH-3668: Put back full start-up logging in Fuseki Server
---
.../apache/jena/fuseki/server/FusekiCoreInfo.java | 8 ++-
.../apache/jena/fuseki/server/PlatformInfo.java | 6 +--
.../apache/jena/fuseki/main/FusekiMainRunner.java | 16 +++++-
.../org/apache/jena/fuseki/main/FusekiRunner.java | 60 ++++++++++++++++++++++
.../org/apache/jena/fuseki/main/FusekiServer.java | 16 ++----
.../jena/fuseki/main/cmds/FusekiMainCmd.java | 5 +-
.../jena/fuseki/main/cmds/FusekiServerCmd.java | 2 +-
.../jena/fuseki/server/FusekiServerRunner.java | 17 +++++-
8 files changed, 108 insertions(+), 22 deletions(-)
diff --git
a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiCoreInfo.java
b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiCoreInfo.java
index e143ec9d8d..eb8f472e27 100644
---
a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiCoreInfo.java
+++
b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiCoreInfo.java
@@ -36,6 +36,11 @@ public class FusekiCoreInfo {
FmtLog.info(log, "%s %s", serverName, version);
}
+ /** Details of the system runtime configuration. */
+ public static void logSystemDetails(Logger log) {
+ PlatformInfo.logSystemDetails(log);
+ }
+
/** Log details - this function is about command line details */
public static void logServerCmdSetup(Logger log, boolean verbose,
DataAccessPointRegistry dapRegistry,
String datasetPath, String
datasetDescription, String serverConfigFile, String staticFiles) {
@@ -47,7 +52,7 @@ public class FusekiCoreInfo {
FusekiCoreInfo.logDataAccessPointRegistry(log, dapRegistry, verbose);
if ( staticFiles != null )
FmtLog.info(log, "Static files: %s", staticFiles);
- PlatformInfo.logDetailsSystem(log);
+ PlatformInfo.logSystemDetails(log);
if ( verbose )
PlatformInfo.logDetailsJVM(log);
}
@@ -129,5 +134,4 @@ public class FusekiCoreInfo {
others.stream().sorted(order).forEach(nice::add);
return nice;
}
-
}
diff --git
a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/PlatformInfo.java
b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/PlatformInfo.java
index 98414a1668..8b87d487a3 100644
---
a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/PlatformInfo.java
+++
b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/PlatformInfo.java
@@ -24,7 +24,7 @@ import java.util.function.Function;
import org.apache.jena.atlas.logging.FmtLog;
import org.slf4j.Logger;
-/** Platform inforamtion - OS and JVM */
+/** Platform information - OS and JVM */
/*package*/ class PlatformInfo {
public static void main(String ...args) throws IOException {
@@ -37,7 +37,7 @@ import org.slf4j.Logger;
}
/** System details */
- /*package*/ static void logDetailsSystem(Logger log) {
+ /*package*/ static void logSystemDetails(Logger log) {
String prefix = " ";
long maxMem = Runtime.getRuntime().maxMemory();
long totalMem = Runtime.getRuntime().totalMemory();
@@ -56,7 +56,7 @@ import org.slf4j.Logger;
/** JVM details section. */
/*package*/ static void logDetailsJVM(Logger log) {
- String prefix = " ";
+ String prefix = " ";
logOne(log, prefix, "java.vendor");
logOne(log, prefix, "java.home");
logOne(log, prefix, "java.runtime.version");
diff --git
a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/FusekiMainRunner.java
b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/FusekiMainRunner.java
index b121a03b8a..db66b1c4f9 100644
---
a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/FusekiMainRunner.java
+++
b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/FusekiMainRunner.java
@@ -25,6 +25,8 @@ import org.apache.jena.fuseki.FusekiException;
import org.apache.jena.fuseki.main.cmds.FusekiMain;
import org.apache.jena.fuseki.main.sys.FusekiModules;
import org.apache.jena.fuseki.server.FusekiServerRunner;
+import org.apache.jena.sys.JenaSystem;
+import org.slf4j.Logger;
/**
* Functions for building and runner a {@link FusekiServer} configured from
command line arguments.
@@ -33,6 +35,8 @@ import org.apache.jena.fuseki.server.FusekiServerRunner;
*/
public class FusekiMainRunner {
+ static { JenaSystem.init(); }
+
/**
* Run a plain {@link FusekiServer}.
* @param args line arguments.
@@ -40,6 +44,11 @@ public class FusekiMainRunner {
*/
public static FusekiServer runAsync(String... args) {
FusekiServer server = construct(args);
+ startAsync(server);
+ return server;
+ }
+
+ private static FusekiServer startAsync(FusekiServer server) {
try {
return server.start();
} catch (FusekiException ex) {
@@ -58,7 +67,12 @@ public class FusekiMainRunner {
* This function does not return.
*/
public static void run(String... args) {
- FusekiServer server = runAsync(args);
+ Logger log = Fuseki.fusekiLog;
+ FusekiRunner.logCode(log);
+ FusekiServer server = construct(args);
+ FusekiRunner.logServerSetup(log, server);
+ startAsync(server);
+ FusekiRunner.logServerStart(log, server);
server.join();
}
diff --git
a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/FusekiRunner.java
b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/FusekiRunner.java
new file mode 100644
index 0000000000..d01a3d7cd0
--- /dev/null
+++
b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/FusekiRunner.java
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package org.apache.jena.fuseki.main;
+
+import org.apache.jena.fuseki.Fuseki;
+import org.apache.jena.fuseki.FusekiException;
+import org.apache.jena.fuseki.server.FusekiCoreInfo;
+import org.slf4j.Logger;
+
+public class FusekiRunner {
+
+ // ---- Logging fragments
+
+ public static void logCode(Logger log) {
+ FusekiCoreInfo.logCode(log);
+ }
+
+ public static void logServerSetup(Logger log, FusekiServer server) {
+ boolean verbose = Fuseki.getVerbose(server.getServletContext());
+ FusekiCoreInfo.logDataAccessPointRegistry(log,
server.getDataAccessPointRegistry(), verbose);
+ FusekiCoreInfo.logSystemDetails(log);
+ }
+
+ public static void logServerStart(Logger log, FusekiServer server) {
+ if ( ! server.getJettyServer().isStarted() )
+ throw new FusekiException("FusekiServer not ready");
+ int httpPort = server.getHttpPort();
+ int httpsPort = server.getHttpsPort();
+ if ( httpsPort > 0 && httpPort > 0 )
+ Fuseki.serverLog.info("Start Fuseki (http="+httpPort+"
https="+httpsPort+")");
+ else if ( httpsPort > 0 )
+ Fuseki.serverLog.info("Start Fuseki (https="+httpsPort+")");
+ else if ( httpPort > 0 )
+ Fuseki.serverLog.info("Start Fuseki (http="+httpPort+")");
+ else
+ Fuseki.serverLog.info("Start Fuseki");
+ }
+
+ public static void logServerStop(Logger log, FusekiServer server) {
+ log.info("Stopping Fuseki");
+ }
+}
diff --git
a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/FusekiServer.java
b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/FusekiServer.java
index 3672084eae..847628a599 100644
---
a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/FusekiServer.java
+++
b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/FusekiServer.java
@@ -339,6 +339,9 @@ public class FusekiServer {
* To synchronise with the server stopping, call {@link #join}.
*/
public FusekiServer start() {
+ if ( server.isRunning() )
+ return this;
+
try {
FusekiModuleStep.serverBeforeStarting(this);
server.start();
@@ -373,18 +376,7 @@ public class FusekiServer {
FusekiModuleStep.serverAfterStarting(this);
- if ( httpsPort > 0 && httpPort > 0 )
- Fuseki.serverLog.info("Start Fuseki (http="+httpPort+"
https="+httpsPort+")");
- else if ( httpsPort > 0 )
- Fuseki.serverLog.info("Start Fuseki (https="+httpsPort+")");
- else if ( httpPort > 0 )
- Fuseki.serverLog.info("Start Fuseki (http="+httpPort+")");
- else
- Fuseki.serverLog.info("Start Fuseki");
-
// Any post-startup configuration here.
- // --
- // Done!
return this;
}
@@ -418,7 +410,7 @@ public class FusekiServer {
public void join() {
try {
if ( ! server.isStarted() && ! server.isStarting() )
- server.start();
+ start();
server.join(); }
catch (FusekiException e) { throw e; }
catch (Exception e) { throw new FusekiException(e); }
diff --git
a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/cmds/FusekiMainCmd.java
b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/cmds/FusekiMainCmd.java
index c7847ef713..a6d2339279 100644
---
a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/cmds/FusekiMainCmd.java
+++
b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/cmds/FusekiMainCmd.java
@@ -18,6 +18,7 @@
package org.apache.jena.fuseki.main.cmds;
+import org.apache.jena.fuseki.main.FusekiMainRunner;
import org.apache.jena.fuseki.system.FusekiLogging;
/** Fuseki command that runs a Fuseki server without the admin UI, just SPARQL
services.
@@ -43,7 +44,7 @@ public class FusekiMainCmd {
* return. See {@link FusekiMain#build} to build a server using command
line
* syntax but not start it.
*/
- static public void main(String... argv) {
- FusekiMain.run(argv);
+ static public void main(String... args) {
+ FusekiMainRunner.run(args);
}
}
diff --git
a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/cmds/FusekiServerCmd.java
b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/cmds/FusekiServerCmd.java
index a5a305099c..9b9dde7759 100644
---
a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/cmds/FusekiServerCmd.java
+++
b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/cmds/FusekiServerCmd.java
@@ -47,7 +47,7 @@ public class FusekiServerCmd {
* syntax but not start it.
*/
static public void main(String... args) {
- FusekiServerRunner.construct(args).join();
+ FusekiServerRunner.run(args);
}
}
diff --git
a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/server/FusekiServerRunner.java
b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/server/FusekiServerRunner.java
index 36911b1bb8..4bade4f016 100644
---
a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/server/FusekiServerRunner.java
+++
b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/server/FusekiServerRunner.java
@@ -26,6 +26,7 @@ import org.apache.jena.cmd.CmdGeneral;
import org.apache.jena.fuseki.Fuseki;
import org.apache.jena.fuseki.FusekiException;
import org.apache.jena.fuseki.main.FusekiMainRunner;
+import org.apache.jena.fuseki.main.FusekiRunner;
import org.apache.jena.fuseki.main.FusekiServer;
import org.apache.jena.fuseki.main.cmds.FusekiMain;
import org.apache.jena.fuseki.main.cmds.ServerArgs;
@@ -33,6 +34,8 @@ import org.apache.jena.fuseki.main.sys.FusekiModules;
import org.apache.jena.fuseki.main.sys.FusekiServerArgsCustomiser;
import org.apache.jena.fuseki.mgt.FusekiServerCtl;
import org.apache.jena.fuseki.mod.FusekiServerModules;
+import org.apache.jena.sys.JenaSystem;
+import org.slf4j.Logger;
/**
* Functions for building and runner a {@link FusekiServer} configured from
command line arguments
@@ -42,6 +45,8 @@ import org.apache.jena.fuseki.mod.FusekiServerModules;
*/
public class FusekiServerRunner {
+ static { JenaSystem.init(); }
+
/**
* Run {@link FusekiServer} with {@link FusekiModules} as given by {@link
FusekiServerModules#serverModules()}.
* @param args Command line arguments.
@@ -49,6 +54,11 @@ public class FusekiServerRunner {
*/
public static FusekiServer runAsync(String... args) {
FusekiServer server = construct(args);
+ startAsync(server);
+ return server;
+ }
+
+ private static FusekiServer startAsync(FusekiServer server) {
try {
return server.start();
} catch (FusekiException ex) {
@@ -67,7 +77,12 @@ public class FusekiServerRunner {
* This function does not return.
*/
public static void run(String... args) {
- FusekiServer server = runAsync(args);
+ Logger log = Fuseki.fusekiLog;
+ FusekiRunner.logCode(log);
+ FusekiServer server = construct(args);
+ FusekiRunner.logServerSetup(log, server);
+ startAsync(server);
+ FusekiRunner.logServerStart(log, server);
server.join();
}