All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.jena.fuseki.main.sys.JettyLib Maven / Gradle / Ivy

There is a newer version: 5.2.0
Show newest version
/*
 * 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.
 */

package org.apache.jena.fuseki.main.sys;

import java.util.ArrayList;
import java.util.List;

import org.apache.jena.riot.WebContent;
import org.eclipse.jetty.ee10.servlet.ServletContextHandler;
import org.eclipse.jetty.http.MimeTypes;
import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.HttpConfiguration;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.util.resource.Resource;
import org.eclipse.jetty.util.resource.ResourceFactory;

/** Helpers for working with Jetty.
 * 

SecurityHandler

*
 *     UserStore userStore = JettyLib.makeUserStore(...);
 *     SecurityHandler securityHandler = JettyLib.makeSecurityHandler(String pathSpec, String realm, UserStore userStore);
 *  
*/ public class JettyLib { /** Add or append a {@link Handler} to a Jetty {@link Server}. */ public static void addHandler(Server server, Handler handler) { final Handler currentHandler = server.getHandler(); if (currentHandler == null) { server.setHandler(handler); } else { List handlerList = new ArrayList<>(); if (currentHandler instanceof Handler.Container hContainer) handlerList.addAll(hContainer.getHandlers()); handlerList.add(handler); Handler.Container container = new Handler.Sequence(handlerList); server.setHandler(container); } } /** Add the RDF MIME Type mappings */ public static void setMimeTypes(ServletContextHandler context) { MimeTypes.Mutable mimeTypes = context.getMimeTypes(); //new MimeTypes.Mutable(); // RDF syntax mimeTypes.addMimeMapping("nt", WebContent.contentTypeNTriples); mimeTypes.addMimeMapping("nq", WebContent.contentTypeNQuads); mimeTypes.addMimeMapping("ttl", WebContent.contentTypeTurtle+";charset=utf-8"); mimeTypes.addMimeMapping("trig", WebContent.contentTypeTriG+";charset=utf-8"); mimeTypes.addMimeMapping("rdf", WebContent.contentTypeRDFXML); mimeTypes.addMimeMapping("jsonld", WebContent.contentTypeJSONLD); mimeTypes.addMimeMapping("rj", WebContent.contentTypeRDFJSON); mimeTypes.addMimeMapping("rt", WebContent.contentTypeRDFThrift); mimeTypes.addMimeMapping("trdf", WebContent.contentTypeRDFThrift); // SPARQL syntax mimeTypes.addMimeMapping("rq", WebContent.contentTypeSPARQLQuery); mimeTypes.addMimeMapping("ru", WebContent.contentTypeSPARQLUpdate); // SPARQL Result set mimeTypes.addMimeMapping("rsj", WebContent.contentTypeResultsJSON); mimeTypes.addMimeMapping("rsx", WebContent.contentTypeResultsXML); mimeTypes.addMimeMapping("srt", WebContent.contentTypeResultsThrift); mimeTypes.addMimeMapping("srt", WebContent.contentTypeResultsProtobuf); // Other mimeTypes.addMimeMapping("txt", WebContent.contentTypeTextPlain); mimeTypes.addMimeMapping("csv", WebContent.contentTypeTextCSV); mimeTypes.addMimeMapping("tsv", WebContent.contentTypeTextTSV); } /** HTTP configuration with setting for Fuseki workload. No "secure" settings. */ public static HttpConfiguration httpConfiguration() { HttpConfiguration http_config = new HttpConfiguration(); // Some people do try very large operations ... really, should use POST. http_config.setRequestHeaderSize(512 * 1024); http_config.setOutputBufferSize(1024 * 1024); // http_config.setResponseHeaderSize(8192); http_config.setSendServerVersion(false); return http_config; } /** Create a resource for a filename */ public static Resource newResource(String filename) { return ResourceFactory.root().newResource(filename); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy