You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by rv...@apache.org on 2015/03/17 12:21:24 UTC
[12/52] [abbrv] jena git commit: Rename folder jena-fuseki to
jena-fuseki1
http://git-wip-us.apache.org/repos/asf/jena/blob/662cf71d/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/ServletBase.java
----------------------------------------------------------------------
diff --git a/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/ServletBase.java b/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/ServletBase.java
deleted file mode 100644
index 7a74fa9..0000000
--- a/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/ServletBase.java
+++ /dev/null
@@ -1,242 +0,0 @@
-/*
- * 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.servlets;
-
-import java.io.IOException ;
-import java.io.PrintWriter ;
-import java.util.concurrent.atomic.AtomicLong ;
-
-import javax.servlet.http.HttpServlet ;
-import javax.servlet.http.HttpServletRequest ;
-import javax.servlet.http.HttpServletResponse ;
-
-import org.apache.jena.atlas.lib.StrUtils ;
-import org.apache.jena.fuseki.Fuseki ;
-import org.apache.jena.fuseki.HttpNames ;
-import org.apache.jena.web.HttpSC ;
-import org.slf4j.Logger ;
-
-/**
- * An abstract HTTP Servlet. Contains implementation methods for setting the request status in a HTTP Action,
- * and a mechanism to allocate unique ID's to new requests.
- */
-public abstract class ServletBase extends HttpServlet
-{
- protected static final Logger log = Fuseki.requestLog ;
- public final boolean verboseLogging = Fuseki.verboseLogging ;
- private static AtomicLong requestIdAlloc = new AtomicLong(0) ;
-
- protected ServletBase() { }
-
- /**
- * Helper method which gets a unique request ID and appends it as a header to the response
- * @param request HTTP Request
- * @param response HTTP Response
- * @return Request ID
- */
- protected long allocRequestId(HttpServletRequest request, HttpServletResponse response) {
- long id = requestIdAlloc.incrementAndGet();
- addRequestId(response, id);
- return id;
- }
-
- /**
- * Helper method for attaching a request ID to a response as a header
- * @param response Response
- * @param id Request ID
- */
- protected void addRequestId(HttpServletResponse response, long id) {
- response.addHeader("Fuseki-Request-ID", Long.toString(id));
- }
-
- protected void responseSendError(HttpServletResponse response, int statusCode, String message)
- {
- try { response.sendError(statusCode, message) ; }
- catch (IOException ex) { errorOccurred(ex) ; }
- catch (IllegalStateException ex) { }
- }
-
- protected void responseSendError(HttpServletResponse response, int statusCode)
- {
- try { response.sendError(statusCode) ; }
- catch (IOException ex) { errorOccurred(ex) ; }
- }
-
- /**
- * Returns the HTTP request URL, appended with any additional URL parameters used.
- *
- * @param request HTTP request
- * @return complete request URL
- */
- protected static String wholeRequestURL(HttpServletRequest request)
- {
- StringBuffer sb = request.getRequestURL() ;
- String queryString = request.getQueryString() ;
- if ( queryString != null )
- {
- sb.append("?") ;
- sb.append(queryString) ;
- }
- return sb.toString() ;
- }
-
- protected static void successNoContent(HttpAction action)
- {
- success(action, HttpSC.NO_CONTENT_204);
- }
-
- protected static void success(HttpAction action)
- {
- success(action, HttpSC.OK_200);
- }
-
- protected static void successCreated(HttpAction action)
- {
- success(action, HttpSC.CREATED_201);
- }
-
- // When 404 is no big deal e.g. HEAD
- protected static void successNotFound(HttpAction action)
- {
- success(action, HttpSC.NOT_FOUND_404) ;
- }
-
- //
- protected static void success(HttpAction action, int httpStatusCode)
- {
- action.response.setStatus(httpStatusCode);
- }
-
- protected static void successPage(HttpAction action, String message)
- {
- try {
- action.response.setContentType("text/html");
- action.response.setStatus(HttpSC.OK_200);
- PrintWriter out = action.response.getWriter() ;
- out.println("<html>") ;
- out.println("<head>") ;
- out.println("</head>") ;
- out.println("<body>") ;
- out.println("<h1>Success</h1>");
- if ( message != null )
- {
- out.println("<p>") ;
- out.println(message) ;
- out.println("</p>") ;
- }
- out.println("</body>") ;
- out.println("</html>") ;
- out.flush() ;
- } catch (IOException ex) { errorOccurred(ex) ; }
- }
-
- protected static void warning(String string)
- {
- log.warn(string) ;
- }
-
- protected static void warning(String string, Throwable thorwable)
- {
- log.warn(string, thorwable) ;
- }
-
- protected static void errorBadRequest(String string)
- {
- error(HttpSC.BAD_REQUEST_400, string) ;
- }
-
- protected static void errorNotFound(String string)
- {
- error(HttpSC.NOT_FOUND_404, string) ;
- }
-
- protected static void errorNotImplemented(String msg)
- {
- error(HttpSC.NOT_IMPLEMENTED_501, msg) ;
- }
-
- protected static void errorMethodNotAllowed(String method)
- {
- error(HttpSC.METHOD_NOT_ALLOWED_405, "HTTP method not allowed: "+method) ;
- }
-
- protected static void errorForbidden(String msg)
- {
- if ( msg != null )
- error(HttpSC.FORBIDDEN_403, msg) ;
- else
- error(HttpSC.FORBIDDEN_403, "Forbidden") ;
- }
-
- protected static void error(int statusCode)
- {
- throw new ActionErrorException(null, null, statusCode) ;
- }
-
-
- protected static void error(int statusCode, String string)
- {
- throw new ActionErrorException(null, string, statusCode) ;
- }
-
- protected static void errorOccurred(String message)
- {
- errorOccurred(message, null) ;
- }
-
- protected static void errorOccurred(Throwable ex)
- {
- errorOccurred(null, ex) ;
- }
-
- protected static void errorOccurred(String message, Throwable ex)
- {
- throw new ActionErrorException(ex, message, HttpSC.INTERNAL_SERVER_ERROR_500) ;
- }
-
- protected static String formatForLog(String string)
- {
- string = string.replace('\n', ' ') ;
- string = string.replace('\r', ' ') ;
- return string ;
- }
-
- static String varyHeaderSetting =
- StrUtils.strjoin(",",
- HttpNames.hAccept,
- HttpNames.hAcceptEncoding,
- HttpNames.hAcceptCharset ) ;
-
- public static void setVaryHeader(HttpServletResponse httpResponse)
- {
- httpResponse.setHeader(HttpNames.hVary, varyHeaderSetting) ;
- }
-
- public static void setCommonHeadersForOptions(HttpServletResponse httpResponse)
- {
- httpResponse.setHeader(HttpNames.hAccessControlAllowHeaders, "X-Requested-With, Content-Type, Authorization") ;
- setCommonHeaders(httpResponse) ;
- }
-
- public static void setCommonHeaders(HttpServletResponse httpResponse)
- {
- httpResponse.setHeader(HttpNames.hAccessControlAllowOrigin, "*") ;
- httpResponse.setHeader(HttpNames.hServer, Fuseki.serverHttpName) ;
- }
-}
http://git-wip-us.apache.org/repos/asf/jena/blob/662cf71d/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SimpleVelocity.java
----------------------------------------------------------------------
diff --git a/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SimpleVelocity.java b/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SimpleVelocity.java
deleted file mode 100644
index 7f5cad9..0000000
--- a/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SimpleVelocity.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
- * 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.servlets;
-
-import java.io.IOException ;
-import java.io.Writer ;
-import java.util.Map ;
-
-import org.apache.velocity.Template ;
-import org.apache.velocity.VelocityContext ;
-import org.apache.velocity.app.VelocityEngine ;
-import org.apache.velocity.exception.MethodInvocationException ;
-import org.apache.velocity.exception.ParseErrorException ;
-import org.apache.velocity.exception.ResourceNotFoundException ;
-import org.apache.velocity.runtime.RuntimeConstants ;
-import org.apache.velocity.runtime.log.LogChute ;
-import org.apache.velocity.runtime.log.NullLogChute ;
-import org.slf4j.Logger ;
-import org.slf4j.LoggerFactory ;
-
-public class SimpleVelocity
-{
- private static LogChute velocityLogChute = new NullLogChute() ;
- private static Logger velocityLog = LoggerFactory.getLogger("Velocity");
-
- /** Process a template */
- public static void process(String base, String path, Writer out, Map<String, Object> params)
- {
- process(base, path, out, createContext(params)) ;
- }
-
- /** Process a template */
- public static void process(String base, String path, Writer out, VelocityContext context)
- {
- VelocityEngine velocity = new VelocityEngine() ;
- // Turn off logging - catch exceptions and log ourselves
- velocity.setProperty(RuntimeConstants.RUNTIME_LOG_LOGSYSTEM, velocityLogChute) ;
- velocity.setProperty(RuntimeConstants.INPUT_ENCODING, "UTF-8") ;
- velocity.setProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, base) ;
- velocity.init() ;
- try {
- Template temp = velocity.getTemplate(path) ;
- temp.merge(context, out) ;
- out.flush();
- }
- catch (ResourceNotFoundException ex) { velocityLog.error("Resource not found: "+ex.getMessage()) ; }
- catch (ParseErrorException ex) { velocityLog.error("Parse error ("+path+") : "+ex.getMessage()) ; }
- catch (MethodInvocationException ex) { velocityLog.error("Method invocation exception ("+path+") : "+ex.getMessage()) ; }
- catch (IOException ex) { velocityLog.warn("IOException", ex) ; }
- }
-
- public static VelocityContext createContext(Map<String, Object> params)
- {
- // Velocity requires a mutable map.
- // Scala leads to immutable maps ... be safe and copy.
- VelocityContext context = new VelocityContext() ;
- for ( Map.Entry<String, Object> e : params.entrySet() )
- context.put(e.getKey(), e.getValue()) ;
- return context ;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jena/blob/662cf71d/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SimpleVelocityServlet.java
----------------------------------------------------------------------
diff --git a/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SimpleVelocityServlet.java b/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SimpleVelocityServlet.java
deleted file mode 100644
index 8773eba..0000000
--- a/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SimpleVelocityServlet.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/**
- * 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.servlets;
-
-import java.io.IOException ;
-import java.io.Writer ;
-import java.util.Map ;
-
-import javax.servlet.http.HttpServlet ;
-import javax.servlet.http.HttpServletRequest ;
-import javax.servlet.http.HttpServletResponse ;
-
-import org.apache.velocity.VelocityContext ;
-import org.apache.velocity.app.VelocityEngine ;
-import org.apache.velocity.runtime.RuntimeConstants ;
-import org.apache.velocity.runtime.RuntimeServices ;
-import org.apache.velocity.runtime.log.LogChute ;
-import org.apache.velocity.runtime.log.NullLogChute ;
-import org.slf4j.Logger ;
-import org.slf4j.LoggerFactory ;
-
-
-/** Simple servlet that uses <a href="http://velocity.apache.org/">Velocity</a>
- * to format pages. It isolates the use of velocity by taking a configuration map.
- * Use with a servlet mapping of "*.vm" or some such extension.
- */
-public class SimpleVelocityServlet extends HttpServlet
-{
- //private static Logger log = LoggerFactory.getLogger(SimpleVelocityServlet.class) ;
- /* Velocity logging
- * Instead of internal velocity logging, we catch the exceptions,
- * log the message ourselves. This gives a celaner log file without
- * loosing information that the application could use.
- */
-
- private static Logger vlog = LoggerFactory.getLogger("Velocity") ;
- private static LogChute velocityLog = new NullLogChute() ;
- //private static LogChute velocityLog = new SimpleSLF4JLogChute(vlog) ;
-
- private String docbase ;
- private VelocityEngine velocity ;
- private String functionsName = null ;
- private final Map<String, Object> datamodel ;
-
- public SimpleVelocityServlet(String base, Map<String, Object> datamodel)
- {
- this.docbase = base ;
- this.datamodel = datamodel ;
- velocity = new VelocityEngine();
- // Turn off logging - catch exceptions and log ourselves
- velocity.setProperty( RuntimeConstants.RUNTIME_LOG_LOGSYSTEM, velocityLog) ;
- velocity.setProperty( RuntimeConstants.INPUT_ENCODING, "UTF-8" ) ;
- velocity.setProperty( RuntimeConstants.FILE_RESOURCE_LOADER_PATH, base) ;
- velocity.init();
- }
-
- // See also
- @Override
- public void doGet(HttpServletRequest req, HttpServletResponse resp)
- {
- process(req, resp) ;
- }
-
- @Override
- public void doPost(HttpServletRequest req, HttpServletResponse resp)
- {
- process(req, resp) ;
- }
-
- private void process(HttpServletRequest req, HttpServletResponse resp)
- {
- try
- {
- resp.setContentType("text/html") ;
- resp.setCharacterEncoding("UTF-8") ;
- Writer out = resp.getWriter() ;
- String path = path(req) ;
- VelocityContext vc = SimpleVelocity.createContext(datamodel) ;
- vc.put("request", req) ;
- SimpleVelocity.process(docbase, path, out, vc) ;
- } catch (IOException ex)
- {
- vlog.warn("IOException", ex) ;
- }
- }
-
- private String path(HttpServletRequest request)
- {
- String path = request.getPathInfo();
- if (path != null) return path;
- path = request.getServletPath();
- if (path != null) return path;
- return null ;
- }
-
- @Override
- public String getServletInfo()
- {
- return "Lightweight Velocity Servlet";
- }
-
- /** Velocity logger to SLF4J */
- static class SimpleSLF4JLogChute implements LogChute
- {
- // Uusally for debugging only.
- private Logger logger ;
-
- SimpleSLF4JLogChute( Logger log )
- {
- this.logger = log ;
- }
-
- @Override
- public void init(RuntimeServices rs) throws Exception
- { }
-
- @Override
- public void log(int level, String message)
- {
- if ( logger == null ) return ;
- switch(level)
- {
- case LogChute.TRACE_ID : logger.trace(message) ; return ;
- case LogChute.DEBUG_ID : logger.debug(message) ; return ;
- case LogChute.INFO_ID : logger.info(message) ; return ;
- case LogChute.WARN_ID : logger.warn(message) ; return ;
- case LogChute.ERROR_ID : logger.error(message) ; return ;
- }
- }
-
- @Override
- public void log(int level, String message, Throwable t)
- {
- if ( logger == null ) return ;
- // Forget the stack trace - velcoity internal - long - unhelpful to application.
- t = null ;
- switch (level)
- {
- case LogChute.TRACE_ID : logger.trace(message, t) ; return ;
- case LogChute.DEBUG_ID : logger.debug(message, t) ; return ;
- case LogChute.INFO_ID : logger.info(message, t) ; return ;
- case LogChute.WARN_ID : logger.warn(message, t) ; return ;
- case LogChute.ERROR_ID : logger.error(message, t) ; return ;
- }
- }
-
- @Override
- public boolean isLevelEnabled(int level)
- {
- switch(level)
- {
- case LogChute.TRACE_ID: return logger.isTraceEnabled() ;
- case LogChute.DEBUG_ID: return logger.isDebugEnabled() ;
- case LogChute.INFO_ID: return logger.isInfoEnabled() ;
- case LogChute.WARN_ID: return logger.isWarnEnabled() ;
- case LogChute.ERROR_ID: return logger.isErrorEnabled() ;
- }
- return true ;
- }
- }
-}
-
http://git-wip-us.apache.org/repos/asf/jena/blob/662cf71d/jena-fuseki/src/main/java/org/apache/jena/fuseki/validation/DataValidator.java
----------------------------------------------------------------------
diff --git a/jena-fuseki/src/main/java/org/apache/jena/fuseki/validation/DataValidator.java b/jena-fuseki/src/main/java/org/apache/jena/fuseki/validation/DataValidator.java
deleted file mode 100644
index 6105562..0000000
--- a/jena-fuseki/src/main/java/org/apache/jena/fuseki/validation/DataValidator.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/*
- * 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.validation;
-
-import static org.apache.jena.riot.SysRIOT.fmtMessage ;
-
-import java.io.IOException ;
-import java.io.PrintStream ;
-import java.io.Reader ;
-import java.io.StringReader ;
-
-import javax.servlet.ServletOutputStream ;
-import javax.servlet.http.HttpServletRequest ;
-import javax.servlet.http.HttpServletResponse ;
-
-import org.apache.jena.atlas.io.IO ;
-import org.apache.jena.atlas.lib.Sink ;
-import org.apache.jena.fuseki.FusekiLib ;
-import org.apache.jena.riot.Lang ;
-import org.apache.jena.riot.RDFLanguages ;
-import org.apache.jena.riot.RiotException ;
-import org.apache.jena.riot.RiotReader ;
-import org.apache.jena.riot.lang.LangRIOT ;
-import org.apache.jena.riot.system.ErrorHandler ;
-import org.apache.jena.riot.system.RiotLib ;
-import org.apache.jena.riot.system.StreamRDF ;
-import org.apache.jena.riot.system.StreamRDFLib ;
-import org.apache.jena.riot.tokens.Tokenizer ;
-import org.apache.jena.riot.tokens.TokenizerFactory ;
-
-import com.hp.hpl.jena.graph.Node ;
-import com.hp.hpl.jena.sparql.core.Quad ;
-import com.hp.hpl.jena.sparql.serializer.SerializationContext ;
-import com.hp.hpl.jena.sparql.util.FmtUtils ;
-
-public class DataValidator extends ValidatorBase
-{
- public DataValidator()
- { }
-
- static final String paramLineNumbers = "linenumbers" ;
- static final String paramFormat = "outputFormat" ;
- static final String paramIndirection = "url" ;
- static final String paramData = "data" ;
- static final String paramSyntax = "languageSyntax" ;
- //static final String paramSyntaxExtended = "extendedSyntax" ;
-
- @Override
- protected void execute(HttpServletRequest httpRequest, HttpServletResponse httpResponse)
- {
- try {
-// if ( log.isInfoEnabled() )
-// log.info("data validation request") ;
-
- Tokenizer tokenizer = createTokenizer(httpRequest, httpResponse) ;
- if ( tokenizer == null )
- return ;
-
- String syntax = FusekiLib.safeParameter(httpRequest, paramSyntax) ;
- if ( syntax == null || syntax.equals("") )
- syntax = RDFLanguages.NQUADS.getName() ;
-
- Lang language = RDFLanguages.shortnameToLang(syntax) ;
- if ( language == null )
- {
- httpResponse.sendError(HttpServletResponse.SC_BAD_REQUEST, "Unknown syntax: "+syntax) ;
- return ;
- }
-
- ServletOutputStream outStream = httpResponse.getOutputStream() ;
- ErrorHandlerMsg errorHandler = new ErrorHandlerMsg(outStream) ;
-
- PrintStream stdout = System.out ;
- PrintStream stderr = System.err ;
- System.setOut(new PrintStream(outStream)) ;
- System.setErr(new PrintStream(outStream)) ;
-
- // Headers
- setHeaders(httpResponse) ;
-
- outStream.println("<html>") ;
- printHead(outStream, "Jena Data Validator Report") ;
- outStream.println("<body>") ;
-
- outStream.println("<h1>RIOT Parser Report</h1>") ;
- outStream.println("<p>Line and column numbers refer to original input</p>") ;
- outStream.println("<p> </p>") ;
- try {
- LangRIOT parser = setupParser(tokenizer, language, errorHandler, outStream) ;
- startFixed(outStream) ;
- RiotException exception = null ;
- try {
- parser.parse() ;
- System.out.flush() ;
- System.err.flush() ;
- } catch (RiotException ex) { exception = ex ; }
- } finally
- {
- finishFixed(outStream) ;
- System.out.flush() ;
- System.err.flush() ;
- System.setOut(stdout) ;
- System.setErr(stdout) ;
- }
-
- outStream.println("</body>") ;
- outStream.println("</html>") ;
- } catch (Exception ex)
- {
- serviceLog.warn("Exception in validationRequest",ex) ;
- }
- }
-
- static final long LIMIT = 50000 ;
-
-
- private LangRIOT setupParser(Tokenizer tokenizer, Lang language, ErrorHandler errorHandler, final ServletOutputStream outStream)
- {
- Sink<Quad> sink = new Sink<Quad>()
- {
- SerializationContext sCxt = new SerializationContext() ;
- @Override
- public void send(Quad quad)
- {
- // Clean up!
- StringBuilder sb = new StringBuilder() ;
-
- sb.append(formatNode(quad.getSubject())) ;
- sb.append(" ") ;
- sb.append(formatNode(quad.getPredicate())) ;
- sb.append(" ") ;
- sb.append(formatNode(quad.getObject())) ;
-
- if ( ! quad.isTriple() )
- {
- sb.append(" ") ;
- sb.append(formatNode(quad.getGraph())) ;
- }
-
- String $ = htmlQuote(sb.toString()) ;
- try {
- outStream.print($) ;
- outStream.println(" .") ;
- } catch (IOException ex) { IO.exception(ex) ; }
- }
- @Override
- public void close() {}
- @Override
- public void flush() {}
- String formatNode(Node n) { return FmtUtils.stringForNode(n, sCxt) ; }
- } ;
-
- StreamRDF dest = StreamRDFLib.sinkQuads(sink) ;
- @SuppressWarnings("deprecation")
- LangRIOT parser = RiotReader.createParser(tokenizer, language, null, dest) ;
- // Don't resolve IRIs. Do checking.
- parser.setProfile(RiotLib.profile(null, false, true, errorHandler)) ;
- return parser ;
- }
-
- // Error handler that records messages
- private static class ErrorHandlerMsg implements ErrorHandler
- {
- private ServletOutputStream out ;
-
- ErrorHandlerMsg(ServletOutputStream out) { this.out = out ; }
-
- @Override
- public void warning(String message, long line, long col)
- { output(message, line, col, "Warning", "warning") ; }
-
- // Attempt to continue.
- @Override
- public void error(String message, long line, long col)
- { output(message, line, col, "Error", "error") ; }
-
- @Override
- public void fatal(String message, long line, long col)
- { output(message, line, col, "Fatal", "error") ; throw new RiotException(fmtMessage(message, line, col)) ; }
-
- private void output(String message, long line, long col, String typeName, String className)
- {
- try {
- String str = fmtMessage(message, line, col) ;
- //String str = typeName+": "+message ;
- str = htmlQuote(str) ;
- out.print("<div class=\""+className+"\">") ;
- out.print(str) ;
- out.print("</div>") ;
- } catch (IOException ex) { IO.exception(ex) ; }
- }
- }
-
- private Tokenizer createTokenizer(HttpServletRequest httpRequest, HttpServletResponse httpResponse) throws Exception
- {
- Reader reader = null ;
- String[] args = httpRequest.getParameterValues(paramData) ;
- if ( args == null || args.length == 0 )
- {
- // Not a form?
- reader = httpRequest.getReader() ;
- }
- else if ( args.length > 1 )
- {
- httpResponse.sendError(HttpServletResponse.SC_BAD_REQUEST, "Too many parameters for '"+paramData+"='") ;
- return null ;
- }
- else
- {
- reader = new StringReader(args[0]) ;
- }
-
- if ( reader == null )
- {
- httpResponse.sendError(HttpServletResponse.SC_BAD_REQUEST, "Can't find data to validate") ;
- return null ;
- }
-
- return TokenizerFactory.makeTokenizer(reader) ;
- }
-}
http://git-wip-us.apache.org/repos/asf/jena/blob/662cf71d/jena-fuseki/src/main/java/org/apache/jena/fuseki/validation/IRIValidator.java
----------------------------------------------------------------------
diff --git a/jena-fuseki/src/main/java/org/apache/jena/fuseki/validation/IRIValidator.java b/jena-fuseki/src/main/java/org/apache/jena/fuseki/validation/IRIValidator.java
deleted file mode 100644
index 2972b49..0000000
--- a/jena-fuseki/src/main/java/org/apache/jena/fuseki/validation/IRIValidator.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * 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.validation;
-
-import java.io.IOException ;
-import java.io.PrintStream ;
-import java.util.Iterator ;
-
-import javax.servlet.ServletOutputStream ;
-import javax.servlet.http.HttpServletRequest ;
-import javax.servlet.http.HttpServletResponse ;
-
-import org.apache.jena.iri.IRI ;
-import org.apache.jena.iri.IRIFactory ;
-import org.apache.jena.iri.Violation ;
-import org.apache.jena.riot.system.IRIResolver ;
-
-public class IRIValidator extends ValidatorBase
-{
- public IRIValidator()
- { }
-
- static final String paramIRI = "iri" ;
- //static IRIFactory iriFactory = IRIFactory.iriImplementation() ;
- static IRIFactory iriFactory = IRIResolver.iriFactory ;
-
- @Override
- protected void execute(HttpServletRequest httpRequest, HttpServletResponse httpResponse)
- {
- try {
- String[] args = httpRequest.getParameterValues(paramIRI) ;
- ServletOutputStream outStream = httpResponse.getOutputStream() ;
- PrintStream stdout = System.out ;
- PrintStream stderr = System.err ;
- System.setOut(new PrintStream(outStream)) ;
- System.setErr(new PrintStream(outStream)) ;
-
- setHeaders(httpResponse) ;
-
- outStream.println("<html>") ;
- printHead(outStream, "Jena IRI Validator Report") ;
- outStream.println("<body>") ;
-
- outStream.println("<h1>IRI Report</h1>") ;
-
- startFixed(outStream) ;
-
- try {
- boolean first = true ;
- for ( String iriStr : args )
- {
- if ( ! first )
- System.out.println() ;
- first = false ;
-
- IRI iri = iriFactory.create(iriStr) ;
- System.out.println(iriStr + " ==> "+iri) ;
- if ( iri.isRelative() )
- System.out.println("Relative IRI: "+iriStr) ;
-
- Iterator<Violation> vIter = iri.violations(true) ;
- for ( ; vIter.hasNext() ; )
- {
- String str = vIter.next().getShortMessage() ;
- str = htmlQuote(str) ;
-
- System.out.println(str) ;
- }
- }
- } finally
- {
- finishFixed(outStream) ;
- System.out.flush() ;
- System.err.flush() ;
- System.setOut(stdout) ;
- System.setErr(stdout) ;
- }
-
- outStream.println("</body>") ;
- outStream.println("</html>") ;
- } catch (IOException ex) {}
- }
-}
http://git-wip-us.apache.org/repos/asf/jena/blob/662cf71d/jena-fuseki/src/main/java/org/apache/jena/fuseki/validation/QueryValidator.java
----------------------------------------------------------------------
diff --git a/jena-fuseki/src/main/java/org/apache/jena/fuseki/validation/QueryValidator.java b/jena-fuseki/src/main/java/org/apache/jena/fuseki/validation/QueryValidator.java
deleted file mode 100644
index 75ad901..0000000
--- a/jena-fuseki/src/main/java/org/apache/jena/fuseki/validation/QueryValidator.java
+++ /dev/null
@@ -1,269 +0,0 @@
-/*
- * 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.validation;
-
-import java.io.IOException ;
-
-import javax.servlet.ServletOutputStream ;
-import javax.servlet.http.HttpServletRequest ;
-import javax.servlet.http.HttpServletResponse ;
-
-import org.apache.jena.atlas.io.IndentedLineBuffer ;
-import org.apache.jena.atlas.io.IndentedWriter ;
-
-import com.hp.hpl.jena.query.Query ;
-import com.hp.hpl.jena.query.QueryFactory ;
-import com.hp.hpl.jena.query.Syntax ;
-import com.hp.hpl.jena.sparql.ARQException ;
-import com.hp.hpl.jena.sparql.algebra.Algebra ;
-import com.hp.hpl.jena.sparql.algebra.Op ;
-import com.hp.hpl.jena.sparql.serializer.SerializationContext ;
-
-public class QueryValidator extends ValidatorBase
-{
- public QueryValidator()
- { }
-
- static final String paramLineNumbers = "linenumbers" ;
- static final String paramFormat = "outputFormat" ;
- static final String paramQuery = "query" ;
- static final String paramSyntax = "languageSyntax" ;
- //static final String paramSyntaxExtended = "extendedSyntax" ;
-
- @Override
- protected void execute(HttpServletRequest httpRequest, HttpServletResponse httpResponse)
- {
- try {
-// if ( log.isInfoEnabled() )
-// log.info("validation request") ;
-
- String[] args = httpRequest.getParameterValues(paramQuery) ;
-
- if ( args == null || args.length == 0 )
- {
- httpResponse.sendError(HttpServletResponse.SC_BAD_REQUEST, "No query parameter to validator") ;
- return ;
- }
-
- if ( args.length > 1 )
- {
- httpResponse.sendError(HttpServletResponse.SC_BAD_REQUEST, "Too many query parameters") ;
- return ;
- }
-
- final String queryString = httpRequest.getParameter(paramQuery).replaceAll("(\r|\n| )*$", "") ;
-// queryString = queryString.replace("\r\n", "\n") ;
-// queryString.replaceAll("(\r|\n| )*$", "") ;
-
- String querySyntax = httpRequest.getParameter(paramSyntax) ;
- if ( querySyntax == null || querySyntax.equals("") )
- querySyntax = "SPARQL" ;
-
- Syntax language = Syntax.lookup(querySyntax) ;
- if ( language == null )
- {
- httpResponse.sendError(HttpServletResponse.SC_BAD_REQUEST, "Unknown syntax: "+querySyntax) ;
- return ;
- }
-
- String lineNumbersArg = httpRequest.getParameter(paramLineNumbers) ;
-
- String a[] = httpRequest.getParameterValues(paramFormat) ;
-
- boolean outputSPARQL = false ;
- boolean outputPrefix = false ;
- boolean outputAlgebra = false ;
- boolean outputQuads = false ;
- boolean outputOptimized = false ;
- boolean outputOptimizedQuads = false ;
-
- if ( a != null )
- {
- for ( String anA : a )
- {
- if ( anA.equals( "sparql" ) )
- {
- outputSPARQL = true;
- }
- if ( anA.equals( "prefix" ) )
- {
- outputPrefix = true;
- }
- if ( anA.equals( "algebra" ) )
- {
- outputAlgebra = true;
- }
- if ( anA.equals( "quads" ) )
- {
- outputQuads = true;
- }
- if ( anA.equals( "opt" ) )
- {
- outputOptimized = true;
- }
- if ( anA.equals( "optquads" ) )
- {
- outputOptimizedQuads = true;
- }
- }
- }
-
-// if ( ! outputSPARQL && ! outputPrefix )
-// outputSPARQL = true ;
-
- boolean lineNumbers = true ;
-
- if ( lineNumbersArg != null )
- lineNumbers = lineNumbersArg.equalsIgnoreCase("true") || lineNumbersArg.equalsIgnoreCase("yes") ;
-
- // Headers
- setHeaders(httpResponse) ;
-
- ServletOutputStream outStream = httpResponse.getOutputStream() ;
-
- outStream.println("<html>") ;
-
- printHead(outStream, "SPARQL Query Validation Report") ;
-
- outStream.println("<body>") ;
- outStream.println("<h1>SPARQL Query Validator</h1>") ;
- // Print query as received
- {
- outStream.println("<p>Input:</p>") ;
- // Not Java's finest hour.
- Content c = new Content(){
- @Override
- public void print(IndentedWriter out)
- { out.print(queryString) ; }
- } ;
- output(outStream, c, lineNumbers) ;
- }
-
- // Attempt to parse it.
- Query query = null ;
- try {
- query = QueryFactory.create(queryString, "http://example/base/", language) ;
- } catch (ARQException ex)
- {
- // Over generous exception (should be QueryException)
- // but this makes the code robust.
- outStream.println("<p>Syntax error:</p>") ;
- startFixed(outStream) ;
- outStream.println(ex.getMessage()) ;
- finishFixed(outStream) ;
- }
- catch (RuntimeException ex)
- {
- outStream.println("<p>Internal error:</p>") ;
- startFixed(outStream) ;
- outStream.println(ex.getMessage()) ;
- finishFixed(outStream) ;
- }
-
- if ( query != null )
- {
- if ( outputSPARQL )
- outputSyntax(outStream, query, lineNumbers) ;
-
- if ( outputAlgebra )
- outputAlgebra(outStream, query, lineNumbers) ;
-
- if ( outputQuads )
- outputAlgebraQuads(outStream, query, lineNumbers) ;
-
- if ( outputOptimized )
- outputAlgebraOpt(outStream, query, lineNumbers) ;
-
- if ( outputOptimizedQuads )
- outputAlgebraOptQuads(outStream, query, lineNumbers) ;
- }
-
- outStream.println("</body>") ;
- outStream.println("</html>") ;
-
- } catch (Exception ex)
- {
- serviceLog.warn("Exception in doGet",ex) ;
- }
- }
-
- interface Content { void print(IndentedWriter out) ; }
-
- private void outputSyntax(ServletOutputStream outStream, final Query query, boolean lineNumbers) throws IOException
- {
- outStream.println("<p>Formatted, parsed query:</p>") ;
- Content c = new Content(){
- @Override
- public void print(IndentedWriter out)
- { query.serialize(out) ; }
- } ;
- output(outStream, c, lineNumbers) ;
- }
-
- private void outputAlgebra(ServletOutputStream outStream, final Query query, boolean lineNumbers) throws IOException
- {
- outStream.println("<p>Algebra structure:</p>") ;
- final Op op = Algebra.compile(query) ; // No optimization
- output(outStream, query, op, lineNumbers) ;
- }
-
- private void outputAlgebraOpt(ServletOutputStream outStream, final Query query, boolean lineNumbers) throws IOException
- {
- outStream.println("<p>Alebgra, with general triple optimizations:</p>") ;
- final Op op = Algebra.optimize(Algebra.compile(query)) ;
- output(outStream, query, op, lineNumbers) ;
- }
-
- private void outputAlgebraQuads(ServletOutputStream outStream, final Query query, boolean lineNumbers) throws IOException
- {
- outStream.println("<p>Quad structure:</p>") ;
- final Op op = Algebra.toQuadForm(Algebra.compile(query)) ;
- output(outStream, query, op, lineNumbers) ;
- }
-
- private void outputAlgebraOptQuads(ServletOutputStream outStream, final Query query, boolean lineNumbers) throws IOException
- {
- outStream.println("<p>Alebgra, with general quads optimizations:</p>") ;
- final Op op = Algebra.optimize(Algebra.toQuadForm(Algebra.compile(query))) ;
- output(outStream, query, op, lineNumbers) ;
- }
-
- private void output(ServletOutputStream outStream, Query query, final Op op, boolean lineNumbers) throws IOException
- {
- final SerializationContext sCxt = new SerializationContext(query) ;
- Content c = new Content(){
- @Override
- public void print(IndentedWriter out)
- { op.output(out, sCxt) ; }
- } ;
- output(outStream, c , lineNumbers) ;
- }
-
- private void output(ServletOutputStream outStream, Content content, boolean lineNumbers) throws IOException
- {
- startFixed(outStream) ;
- IndentedLineBuffer out = new IndentedLineBuffer(lineNumbers) ;
- content.print(out) ;
- out.flush() ;
- String x = htmlQuote(out.asString()) ;
- byte b[] = x.getBytes("UTF-8") ;
- outStream.write(b) ;
- finishFixed(outStream) ;
- }
-}
http://git-wip-us.apache.org/repos/asf/jena/blob/662cf71d/jena-fuseki/src/main/java/org/apache/jena/fuseki/validation/UpdateValidator.java
----------------------------------------------------------------------
diff --git a/jena-fuseki/src/main/java/org/apache/jena/fuseki/validation/UpdateValidator.java b/jena-fuseki/src/main/java/org/apache/jena/fuseki/validation/UpdateValidator.java
deleted file mode 100644
index dd63de8..0000000
--- a/jena-fuseki/src/main/java/org/apache/jena/fuseki/validation/UpdateValidator.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * 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.validation;
-
-import java.io.IOException ;
-
-import javax.servlet.ServletOutputStream ;
-import javax.servlet.http.HttpServletRequest ;
-import javax.servlet.http.HttpServletResponse ;
-
-import org.apache.jena.atlas.io.IndentedLineBuffer ;
-import org.apache.jena.atlas.io.IndentedWriter ;
-
-import com.hp.hpl.jena.query.Syntax ;
-import com.hp.hpl.jena.sparql.ARQException ;
-import com.hp.hpl.jena.update.UpdateFactory ;
-import com.hp.hpl.jena.update.UpdateRequest ;
-
-public class UpdateValidator extends ValidatorBase
-{
- public UpdateValidator()
- { }
-
- static final String paramLineNumbers = "linenumbers" ;
- static final String paramFormat = "outputFormat" ;
- static final String paramUpdate = "update" ;
- static final String paramSyntax = "languageSyntax" ;
- //static final String paramSyntaxExtended = "extendedSyntax" ;
-
- @Override
- protected void execute(HttpServletRequest httpRequest, HttpServletResponse httpResponse)
- {
- try {
-// if ( log.isInfoEnabled() )
-// log.info("validation request") ;
-
- String[] args = httpRequest.getParameterValues(paramUpdate) ;
-
- if ( args == null || args.length == 0 )
- {
- httpResponse.sendError(HttpServletResponse.SC_BAD_REQUEST, "No update parameter to validator") ;
- return ;
- }
-
- if ( args.length > 1 )
- {
- httpResponse.sendError(HttpServletResponse.SC_BAD_REQUEST, "Too many update parameters") ;
- return ;
- }
-
- final String updateString = httpRequest.getParameter(paramUpdate).replaceAll("(\r|\n| )*$", "") ;
-
- String updateSyntax = httpRequest.getParameter(paramSyntax) ;
- if ( updateSyntax == null || updateSyntax.equals("") )
- updateSyntax = "SPARQL" ;
-
- Syntax language = Syntax.lookup(updateSyntax) ;
- if ( language == null )
- {
- httpResponse.sendError(HttpServletResponse.SC_BAD_REQUEST, "Unknown syntax: "+updateSyntax) ;
- return ;
- }
-
- String lineNumbersArg = httpRequest.getParameter(paramLineNumbers) ;
- String a[] = httpRequest.getParameterValues(paramFormat) ;
-
- // Currently default.
- boolean outputSPARQL = true ;
- boolean lineNumbers = true ;
-
- if ( lineNumbersArg != null )
- lineNumbers = lineNumbersArg.equalsIgnoreCase("true") || lineNumbersArg.equalsIgnoreCase("yes") ;
-
- // Headers
- setHeaders(httpResponse) ;
-
- ServletOutputStream outStream = httpResponse.getOutputStream() ;
-
- outStream.println("<html>") ;
-
- printHead(outStream, "SPARQL Update Validation Report") ;
-
- outStream.println("<body>") ;
- outStream.println("<h1>SPARQL Update Validator</h1>") ;
-
- // Print as received
- {
- outStream.println("<p>Input:</p>") ;
- // Not Java's finest hour.
- Content c = new Content(){
- @Override
- public void print(IndentedWriter out)
- { out.print(updateString) ; }
- } ;
- output(outStream, c, lineNumbers) ;
- }
-
- // Attempt to parse it.
- UpdateRequest request= null ;
- try {
- request = UpdateFactory.create(updateString, "http://example/base/", language) ;
- } catch (ARQException ex)
- {
- // Over generous exception (should be QueryException)
- // but this makes the code robust.
- outStream.println("<p>Syntax error:</p>") ;
- startFixed(outStream) ;
- outStream.println(ex.getMessage()) ;
- finishFixed(outStream) ;
- }
- catch (RuntimeException ex)
- {
- outStream.println("<p>Internal error:</p>") ;
- startFixed(outStream) ;
- outStream.println(ex.getMessage()) ;
- finishFixed(outStream) ;
- }
-
- // Because we pass into anon inner classes
- final UpdateRequest updateRequest = request ;
-
- // OK? Pretty print
- if ( updateRequest != null && outputSPARQL )
- {
- outStream.println("<p>Formatted, parsed update request:</p>") ;
- Content c = new Content(){
- @Override
- public void print(IndentedWriter out)
- {
- updateRequest.output(out) ;
- }
-
- } ;
- output(outStream, c, lineNumbers) ;
- }
- outStream.println("</body>") ;
- outStream.println("</html>") ;
-
- } catch (Exception ex)
- {
- serviceLog.warn("Exception in doGet",ex) ;
- }
- }
-
- interface Content { void print(IndentedWriter out) ; }
-
- private void output(ServletOutputStream outStream, Content content, boolean lineNumbers) throws IOException
- {
- startFixed(outStream) ;
- IndentedLineBuffer out = new IndentedLineBuffer(lineNumbers) ;
- content.print(out) ;
- out.flush() ;
- String x = htmlQuote(out.asString()) ;
- byte b[] = x.getBytes("UTF-8") ;
- outStream.write(b) ;
- finishFixed(outStream) ;
- }
-}
http://git-wip-us.apache.org/repos/asf/jena/blob/662cf71d/jena-fuseki/src/main/java/org/apache/jena/fuseki/validation/ValidatorBase.java
----------------------------------------------------------------------
diff --git a/jena-fuseki/src/main/java/org/apache/jena/fuseki/validation/ValidatorBase.java b/jena-fuseki/src/main/java/org/apache/jena/fuseki/validation/ValidatorBase.java
deleted file mode 100644
index 61820f4..0000000
--- a/jena-fuseki/src/main/java/org/apache/jena/fuseki/validation/ValidatorBase.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * 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.validation;
-
-import java.io.IOException ;
-
-import javax.servlet.ServletConfig ;
-import javax.servlet.ServletException ;
-import javax.servlet.ServletOutputStream ;
-import javax.servlet.http.HttpServlet ;
-import javax.servlet.http.HttpServletRequest ;
-import javax.servlet.http.HttpServletResponse ;
-
-import org.apache.jena.fuseki.Fuseki ;
-import org.apache.jena.fuseki.servlets.ServletBase ;
-import org.slf4j.Logger ;
-
-public abstract class ValidatorBase extends HttpServlet
-{
- protected static Logger serviceLog = Fuseki.requestLog ;
-
- public static final String cssFile = "/fuseki.css" ;
- public static final String respService = "X-Service" ;
-
-
- @Override
- public void init() throws ServletException
- { super.init() ; }
-
- @Override
- public void init(ServletConfig config) throws ServletException
- { super.init(config) ; }
-
- @Override
- public void destroy()
- { }
-
- @Override
- public void doGet(HttpServletRequest httpRequest, HttpServletResponse httpResponse)
- { execute(httpRequest, httpResponse) ; }
-
- @Override
- public void doPost(HttpServletRequest httpRequest, HttpServletResponse httpResponse)
- { execute(httpRequest, httpResponse) ; }
-
- protected abstract void execute(HttpServletRequest httpRequest, HttpServletResponse httpResponse) ;
-
- protected static void setHeaders(HttpServletResponse httpResponse)
- {
- ServletBase.setCommonHeaders(httpResponse) ;
- httpResponse.setCharacterEncoding("UTF-8") ;
- httpResponse.setContentType("text/html") ;
- httpResponse.setHeader(respService, "Fuseki/ARQ SPARQL Query Validator: http://jena.apache.org/") ;
- }
-
- protected static String htmlQuote(String str)
- {
- StringBuilder sBuff = new StringBuilder() ;
- for ( int i = 0 ; i < str.length() ; i++ )
- {
- char ch = str.charAt(i) ;
- switch (ch)
- {
- case '<': sBuff.append("<") ; break ;
- case '>': sBuff.append(">") ; break ;
- case '&': sBuff.append("&") ; break ;
- default:
- // Work around Eclipe bug with StringBuffer.append(char)
- //try { sBuff.append(ch) ; } catch (Exception ex) {}
- sBuff.append(ch) ;
- break ;
- }
- }
- return sBuff.toString() ;
- }
-
- protected static void startFixed(ServletOutputStream outStream) throws IOException
- {
- outStream.println("<pre class=\"box\">") ;
- }
-
- protected static void columns(String prefix, ServletOutputStream outStream) throws IOException
- {
- outStream.print(prefix) ;
- outStream.println(" 1 2 3 4 5 6 7") ;
- outStream.print(prefix) ;
- outStream.println("12345678901234567890123456789012345678901234567890123456789012345678901234567890") ;
- }
-
- protected static void finishFixed(ServletOutputStream outStream) throws IOException
- {
- outStream.println("</pre>") ;
- }
-
- protected static void printHead(ServletOutputStream outStream, String title) throws IOException
- {
- outStream.println("<head>") ;
- outStream.println(" <title>"+title+"</title>") ;
- outStream.println(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">") ;
- outStream.println(" <link rel=\"stylesheet\" type=\"text/css\" href=\""+cssFile+"\" />") ;
- //outStream.println() ;
- outStream.println("</head>") ;
- }
-}
http://git-wip-us.apache.org/repos/asf/jena/blob/662cf71d/jena-fuseki/src/main/resources/META-INF/DEPENDENCIES
----------------------------------------------------------------------
diff --git a/jena-fuseki/src/main/resources/META-INF/DEPENDENCIES b/jena-fuseki/src/main/resources/META-INF/DEPENDENCIES
deleted file mode 100644
index 910b788..0000000
--- a/jena-fuseki/src/main/resources/META-INF/DEPENDENCIES
+++ /dev/null
@@ -1,24 +0,0 @@
-This file lists the dependences for Apache Jena Fuseki.
- Version numbers are given in the POM file for a particular distribution.
-
-Apache Projects: Apache Software License
- Apache Jena, including the Jena IRI library
- Apache Xerces-J
- Apache log4j
- Apache HttpComponents (HTTP Client)
- Apache Commons Codec
- Apache Common FileUpload
-
-ICU4J : http://icu-project.org/
- IBM X License (to version ICU4J 3.4.4)
-
-SLF4J : http://www.slf4j.org/
- Copyright (c) 2004-2008 QOS.ch
- MIT License
-
-JUnit : http://junit.org/
- Common Public License - v 1.0
-
-Jetty: http://www.eclipse.org/jetty/
- Apache License 2.0
- (also avilable under Eclipse Public License 1.0)
http://git-wip-us.apache.org/repos/asf/jena/blob/662cf71d/jena-fuseki/src/main/resources/META-INF/LICENSE
----------------------------------------------------------------------
diff --git a/jena-fuseki/src/main/resources/META-INF/LICENSE b/jena-fuseki/src/main/resources/META-INF/LICENSE
deleted file mode 100644
index d645695..0000000
--- a/jena-fuseki/src/main/resources/META-INF/LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed 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.
http://git-wip-us.apache.org/repos/asf/jena/blob/662cf71d/jena-fuseki/src/main/resources/META-INF/NOTICE
----------------------------------------------------------------------
diff --git a/jena-fuseki/src/main/resources/META-INF/NOTICE b/jena-fuseki/src/main/resources/META-INF/NOTICE
deleted file mode 100644
index 1bf7fa8..0000000
--- a/jena-fuseki/src/main/resources/META-INF/NOTICE
+++ /dev/null
@@ -1,16 +0,0 @@
-Apache Jena - module Fuseki
-Copyright 2011, 2012, 2013, 2014, 2015 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-
-Portions of this software were originally based on the following:
- - Copyright 2005, 2006, 2007, 2008, 2009 Hewlett-Packard Development Company, LP
- - Copyright 2010, 2011 Epimorphics Ltd.
- - Copyright 2010, 2011 Talis Systems Ltd.
-These have been licensed to the Apache Software Foundation under a software grant.
-
-- - - - - - - - - - - - - - - - - - - - - - -
-
-Portions of this software include software from Mort Bay Consulting Pty. Ltd.
- - Copyright (c) 2004-2009 Mort Bay Consulting Pty. Ltd.
http://git-wip-us.apache.org/repos/asf/jena/blob/662cf71d/jena-fuseki/src/main/resources/org/apache/jena/fuseki/fuseki-properties.xml
----------------------------------------------------------------------
diff --git a/jena-fuseki/src/main/resources/org/apache/jena/fuseki/fuseki-properties.xml b/jena-fuseki/src/main/resources/org/apache/jena/fuseki/fuseki-properties.xml
deleted file mode 100644
index 34082eb..0000000
--- a/jena-fuseki/src/main/resources/org/apache/jena/fuseki/fuseki-properties.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
-<!-- Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0" -->
-<properties version="1.0">
- <comment>Fuseki System Properties</comment>
- <entry key="org.apache.jena.fuseki.version">${project.version}</entry>
- <entry key="org.apache.jena.fuseki.build.datetime">${build.time.xsd}</entry>
-</properties>
http://git-wip-us.apache.org/repos/asf/jena/blob/662cf71d/jena-fuseki/src/test/java/org/apache/jena/fuseki/ServerTest.java
----------------------------------------------------------------------
diff --git a/jena-fuseki/src/test/java/org/apache/jena/fuseki/ServerTest.java b/jena-fuseki/src/test/java/org/apache/jena/fuseki/ServerTest.java
deleted file mode 100644
index 18150b1..0000000
--- a/jena-fuseki/src/test/java/org/apache/jena/fuseki/ServerTest.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * 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;
-
-import com.hp.hpl.jena.graph.Graph ;
-import com.hp.hpl.jena.graph.Node ;
-import com.hp.hpl.jena.graph.NodeFactory ;
-import com.hp.hpl.jena.rdf.model.Model ;
-import com.hp.hpl.jena.rdf.model.ModelFactory ;
-import com.hp.hpl.jena.sparql.core.DatasetGraph ;
-import com.hp.hpl.jena.sparql.core.DatasetGraphFactory ;
-import com.hp.hpl.jena.sparql.modify.request.Target ;
-import com.hp.hpl.jena.sparql.modify.request.UpdateDrop ;
-import com.hp.hpl.jena.sparql.sse.SSE ;
-import com.hp.hpl.jena.update.Update ;
-import com.hp.hpl.jena.update.UpdateExecutionFactory ;
-import com.hp.hpl.jena.update.UpdateProcessor ;
-
-/** Manage a server for testing.
- * Example for one server per test suite:
- * <pre>
- \@BeforeClass public static void beforeClass() { ServerTest.allocServer() ; }
- \@AfterClass public static void afterClass() { ServerTest.freeServer() ; }
- \@Before public void beforeTest() { ServerTest.resetServer() ; }
- </pre>
- */
-public class ServerTest
-{
- // Abstraction that runs a SPARQL server for tests.
-
- public static final int port = 3635 ; // Different to the Fuseki2 test port.
- public static final String urlRoot = "http://localhost:"+port+"/" ;
- public static final String datasetPath = "/dataset" ;
- public static final String serviceUpdate = "http://localhost:"+port+datasetPath+"/update" ;
- public static final String serviceQuery = "http://localhost:"+port+datasetPath+"/query" ;
- public static final String serviceREST = "http://localhost:"+port+datasetPath+"/data" ; // ??????
-
- public static final String gn1 = "http://graph/1" ;
- public static final String gn2 = "http://graph/2" ;
- public static final String gn99 = "http://graph/99" ;
-
- public static final Node n1 = NodeFactory.createURI("http://graph/1") ;
- public static final Node n2 = NodeFactory.createURI("http://graph/2") ;
- public static final Node n99 = NodeFactory.createURI("http://graph/99") ;
-
- public static final Graph graph1 = SSE.parseGraph("(base <http://example/> (graph (<x> <p> 1)))") ;
- public static final Graph graph2 = SSE.parseGraph("(base <http://example/> (graph (<x> <p> 2)))") ;
-
- public static final Model model1 = ModelFactory.createModelForGraph(graph1) ;
- public static final Model model2 = ModelFactory.createModelForGraph(graph2) ;
-
- private static EmbeddedFusekiServer server = null ;
-
- // reference count of start/stop server
- private static int countServer = 0 ;
-
- // This will cause there to be one server over all tests.
- // Must be after initialization of counters
- //static { allocServer() ; }
-
- static public void allocServer()
- {
- if ( countServer == 0 )
- setupServer() ;
- countServer++ ;
- }
-
- static public void freeServer()
- {
- if ( countServer >= 0 ) {
- countServer -- ;
- if ( countServer == 0 )
- teardownServer() ;
- }
- }
-
- protected static void setupServer()
- {
- DatasetGraph dsg = DatasetGraphFactory.createMem() ;
- server = EmbeddedFusekiServer.create(port, dsg, datasetPath) ;
- server.start() ;
- }
-
- protected static void teardownServer() {
- if ( server != null )
- server.stop() ;
- server = null ;
- }
- public static void resetServer()
- {
- Update clearRequest = new UpdateDrop(Target.ALL) ;
- UpdateProcessor proc = UpdateExecutionFactory.createRemote(clearRequest, ServerTest.serviceUpdate) ;
- proc.execute() ;
- }
-}
http://git-wip-us.apache.org/repos/asf/jena/blob/662cf71d/jena-fuseki/src/test/java/org/apache/jena/fuseki/TS_Fuseki.java
----------------------------------------------------------------------
diff --git a/jena-fuseki/src/test/java/org/apache/jena/fuseki/TS_Fuseki.java b/jena-fuseki/src/test/java/org/apache/jena/fuseki/TS_Fuseki.java
deleted file mode 100644
index 693217f..0000000
--- a/jena-fuseki/src/test/java/org/apache/jena/fuseki/TS_Fuseki.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * 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;
-
-import org.apache.http.client.HttpClient ;
-import org.apache.jena.atlas.logging.LogCtl ;
-import org.apache.jena.fuseki.http.TestDatasetAccessorHTTP ;
-import org.apache.jena.fuseki.http.TestDatasetGraphAccessorHTTP ;
-import org.apache.jena.fuseki.http.TestHttpOp ;
-import org.apache.jena.riot.web.HttpOp ;
-import org.junit.AfterClass ;
-import org.junit.BeforeClass ;
-import org.junit.runner.RunWith ;
-import org.junit.runners.Suite ;
-
-@RunWith(Suite.class)
-@Suite.SuiteClasses( {
- TestHttpOp.class
- , TestSPARQLProtocol.class
- , TestDatasetGraphAccessorHTTP.class
- , TestDatasetAccessorHTTP.class
- , TestQuery.class
- , TestAuth.class
-})
-public class TS_Fuseki extends ServerTest
-{
- // Use HttpOp caching of connections during testing to stop
- // swamping kernel socket management (seems to be most
- // acute on Java 1.6)
-
- static HttpClient defaultHttpClient = HttpOp.getDefaultHttpClient() ;
- // Used for all tests except auth tests.
- static HttpClient globalCachingClient = HttpOp.createCachingHttpClient() ;
-
- @BeforeClass public static void beforeClassAbstract1() {
- HttpOp.setDefaultHttpClient(globalCachingClient) ;
- }
-
- @AfterClass public static void afterClassAbstract1() {
- HttpOp.setDefaultHttpClient(defaultHttpClient) ;
- }
-
- @BeforeClass static public void beforeClass() { LogCtl.disable(Fuseki.requestLogName) ; }
- @AfterClass static public void afterClass() { LogCtl.setInfo(Fuseki.requestLogName) ;}
-}