Skip to content

Commit b24a742

Browse files
committed
Extract Servlet404
1 parent 1e516d4 commit b24a742

File tree

3 files changed

+72
-33
lines changed

3 files changed

+72
-33
lines changed

jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/FusekiServer.java

Lines changed: 4 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020

2121
import static java.util.Objects.requireNonNull;
2222
import static org.apache.jena.atlas.lib.PropertyUtils.loadFromFile;
23-
import static org.apache.jena.fuseki.Fuseki.serverLog;
2423

2524
import java.io.IOException;
2625
import java.nio.file.Path;
@@ -30,8 +29,6 @@
3029
import jakarta.servlet.Filter;
3130
import jakarta.servlet.ServletContext;
3231
import jakarta.servlet.http.HttpServlet;
33-
import jakarta.servlet.http.HttpServletRequest;
34-
import jakarta.servlet.http.HttpServletResponse;
3532
import org.apache.jena.atlas.json.JSON;
3633
import org.apache.jena.atlas.json.JsonObject;
3734
import org.apache.jena.atlas.lib.FileOps;
@@ -50,6 +47,7 @@
5047
import org.apache.jena.fuseki.build.FusekiConfig;
5148
import org.apache.jena.fuseki.ctl.*;
5249
import org.apache.jena.fuseki.main.cmds.FusekiMain;
50+
import org.apache.jena.fuseki.main.cmds.Servlet404;
5351
import org.apache.jena.fuseki.main.sys.*;
5452
import org.apache.jena.fuseki.metrics.MetricsProvider;
5553
import org.apache.jena.fuseki.mod.prometheus.PrometheusMetricsProvider;
@@ -67,7 +65,6 @@
6765
import org.apache.jena.sys.JenaSystem;
6866
import org.apache.jena.system.G;
6967
import org.apache.jena.system.RDFDataException;
70-
import org.apache.jena.web.HttpSC;
7168
import org.eclipse.jetty.ee11.servlet.DefaultServlet;
7269
import org.eclipse.jetty.ee11.servlet.FilterHolder;
7370
import org.eclipse.jetty.ee11.servlet.ServletContextHandler;
@@ -362,7 +359,7 @@ public FusekiServer start() {
362359
// Post-start completion. Find the ports.
363360
Connector[] connectors = server.getServer().getConnectors();
364361
if ( connectors.length == 0 )
365-
serverLog.warn("Start Fuseki: No connectors");
362+
Fuseki.serverLog.warn("Start Fuseki: No connectors");
366363

367364
// Extract the ports from the Connectors.
368365
Arrays.stream(connectors).forEach(c->{
@@ -1742,36 +1739,13 @@ private void servletsAndFilters(ServletContextHandler context) {
17421739
context.addServlet(staticContent, "/");
17431740
} else {
17441741
// Backstop servlet
1745-
// Jetty default is 404 on GET and 405 otherwise
1742+
// Jetty default is 404 on GET and 405 (Method not allowed) otherwise
17461743
HttpServlet staticServlet = new Servlet404();
17471744
ServletHolder staticContent = new ServletHolder(staticServlet);
17481745
context.addServlet(staticContent, "/");
17491746
}
17501747
}
17511748

1752-
/** 404 for HEAD/GET/POST/PUT */
1753-
static class Servlet404 extends HttpServlet {
1754-
1755-
public Servlet404() {}
1756-
// service()?
1757-
@Override
1758-
protected void doHead(HttpServletRequest req, HttpServletResponse resp) { err404(req, resp); }
1759-
@Override
1760-
protected void doGet(HttpServletRequest req, HttpServletResponse resp) { err404(req, resp); }
1761-
@Override
1762-
protected void doPost(HttpServletRequest req, HttpServletResponse resp) { err404(req, resp); }
1763-
@Override
1764-
protected void doPut(HttpServletRequest req, HttpServletResponse resp) { err404(req, resp); }
1765-
//protected void doDelete(HttpServletRequest req, HttpServletResponse resp)
1766-
//protected void doTrace(HttpServletRequest req, HttpServletResponse resp)
1767-
//protected void doOptions(HttpServletRequest req, HttpServletResponse resp)
1768-
private static void err404(HttpServletRequest req, HttpServletResponse response) {
1769-
try {
1770-
response.sendError(HttpSC.NOT_FOUND_404, HttpSC.getMessage(HttpSC.NOT_FOUND_404));
1771-
} catch (IOException ex) {}
1772-
}
1773-
}
1774-
17751749
private static void addServlet(ServletContextHandler context, String pathspec, HttpServlet httpServlet) {
17761750
ServletHolder sh = new ServletHolder(httpServlet);
17771751
context.addServlet(sh, pathspec);
@@ -1804,7 +1778,7 @@ private static Server jettyServer(ServletContextHandler handler, int port, int m
18041778
}
18051779

18061780
private Server jettyServer(ServletContextHandler handler, String jettyServerConfig) {
1807-
serverLog.info("Jetty server config file = " + jettyServerConfig);
1781+
Fuseki.serverLog.info("Jetty server config file = " + jettyServerConfig);
18081782
Server server = JettyServer.jettyServer(jettyServerConfig);
18091783
server.setHandler(handler);
18101784
return server;
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
/*
2+
* Licensed to the Apache Software Foundation (ASF) under one
3+
* or more contributor license agreements. See the NOTICE file
4+
* distributed with this work for additional information
5+
* regarding copyright ownership. The ASF licenses this file
6+
* to you under the Apache License, Version 2.0 (the
7+
* "License"); you may not use this file except in compliance
8+
* with the License. You may obtain a copy of the License at
9+
*
10+
* http://www.apache.org/licenses/LICENSE-2.0
11+
*
12+
* Unless required by applicable law or agreed to in writing, software
13+
* distributed under the License is distributed on an "AS IS" BASIS,
14+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
* See the License for the specific language governing permissions and
16+
* limitations under the License.
17+
*
18+
* SPDX-License-Identifier: Apache-2.0
19+
*/
20+
21+
package org.apache.jena.fuseki.main.cmds;
22+
23+
import java.io.IOException;
24+
25+
import jakarta.servlet.http.HttpServlet;
26+
import jakarta.servlet.http.HttpServletRequest;
27+
import jakarta.servlet.http.HttpServletResponse;
28+
import org.apache.jena.web.HttpSC;
29+
30+
/** 404 for HEAD/GET/POST/PUT */
31+
public class Servlet404 extends HttpServlet {
32+
public Servlet404() {}
33+
34+
// service()?
35+
@Override
36+
protected void doHead(HttpServletRequest req, HttpServletResponse resp) {
37+
err404(req, resp);
38+
}
39+
40+
@Override
41+
protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
42+
err404(req, resp);
43+
}
44+
45+
@Override
46+
protected void doPost(HttpServletRequest req, HttpServletResponse resp) {
47+
err404(req, resp);
48+
}
49+
50+
@Override
51+
protected void doPut(HttpServletRequest req, HttpServletResponse resp) {
52+
err404(req, resp);
53+
}
54+
55+
// protected void doDelete(HttpServletRequest req, HttpServletResponse resp)
56+
// protected void doTrace(HttpServletRequest req, HttpServletResponse resp)
57+
// protected void doOptions(HttpServletRequest req, HttpServletResponse resp)
58+
59+
private static void err404(HttpServletRequest req, HttpServletResponse response) {
60+
try {
61+
response.sendError(HttpSC.NOT_FOUND_404, HttpSC.getMessage(HttpSC.NOT_FOUND_404));
62+
} catch (IOException ex) {}
63+
}
64+
}

jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/sys/FusekiServerArgsCustomiser.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,14 @@
4444
* {@link FusekiAutoModule#start()} or from Java application code.
4545
* </li>
4646
* <li>
47-
* {@link #serverArgsModify} &ndash; Register or modify the argument setup to be
47+
* {@link #serverArgsModify} &ndash; Called before command line processing.
48+
* This call can register or modify the argument setup to be
4849
* used to parse the command line.
4950
* </li>
5051
* <li>
5152
* {@link #serverArgsPrepare} &ndash; Called after parsing the command line and
52-
* recoding the command line settings in {@link ServerArgs}. Customisers can record
53-
* argument values and flags.
53+
* recording the command line settings in {@link ServerArgs}.
54+
* Customisers can record argument values and flags.
5455
* </li>
5556
* <li>
5657
* {@link #serverArgsBuilder} &ndash; Called after the {@link ServerArgs} have

0 commit comments

Comments
 (0)