use of org.apache.jena.atlas.io.IndentedWriter in project jena by apache.
the class UpdateValidator method execute.
//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);
}
}
use of org.apache.jena.atlas.io.IndentedWriter in project jena by apache.
the class QueryValidator method execute.
//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);
}
}
use of org.apache.jena.atlas.io.IndentedWriter in project jena by apache.
the class query method queryExec.
protected void queryExec(boolean timed, ResultsFormat fmt) {
try {
Query query = modQuery.getQuery();
if (isVerbose()) {
IndentedWriter out = new IndentedWriter(System.out, true);
query.serialize(out);
out.flush();
System.out.println();
}
if (isQuiet())
LogCtl.setError(SysRIOT.riotLoggerName);
Dataset dataset = getDataset(query);
// The default policy is to create an empty one - convenience for VALUES and BIND providing the data.
if (dataset == null && !query.hasDatasetDescription()) {
System.err.println("Dataset not specified in query nor provided on command line.");
throw new TerminationException(1);
}
Transactional transactional = (dataset != null && dataset.supportsTransactionAbort()) ? dataset : new TransactionalNull();
Txn.executeRead(transactional, () -> {
modTime.startTimer();
try (QueryExecution qe = QueryExecutionFactory.create(query, dataset)) {
try {
QueryExecUtils.executeQuery(query, qe, fmt);
} catch (QueryCancelledException ex) {
System.out.flush();
System.err.println("Query timed out");
}
long time = modTime.endTimer();
if (timed) {
totalTime += time;
System.err.println("Time: " + modTime.timeStr(time) + " sec");
}
} catch (ResultSetException ex) {
System.err.println(ex.getMessage());
ex.printStackTrace(System.err);
} catch (QueryException qEx) {
// System.err.println(qEx.getMessage()) ;
throw new CmdException("Query Exeception", qEx);
}
});
} catch (ARQInternalErrorException intEx) {
System.err.println(intEx.getMessage());
if (intEx.getCause() != null) {
System.err.println("Cause:");
intEx.getCause().printStackTrace(System.err);
System.err.println();
}
intEx.printStackTrace(System.err);
} catch (JenaException | CmdException ex) {
throw ex;
} catch (Exception ex) {
throw new CmdException("Exception", ex);
}
}
use of org.apache.jena.atlas.io.IndentedWriter in project jena by apache.
the class ResultSetFormatter method output.
/**
* Output an iterator of JSON values.
*
* @param outStream output stream
* @param jsonItems The JSON values
*/
public static void output(OutputStream outStream, Iterator<JsonObject> jsonItems) {
IndentedWriter out = new IndentedWriter(outStream);
out.println("[");
out.incIndent();
while (jsonItems.hasNext()) {
JsonObject jsonItem = jsonItems.next();
jsonItem.output(out);
if (jsonItems.hasNext())
out.println(" ,");
else
out.println();
}
out.decIndent();
out.println("]");
out.flush();
}
use of org.apache.jena.atlas.io.IndentedWriter in project jena by apache.
the class QueryOutputUtils method printQuery.
public static void printQuery(Query query) {
IndentedWriter out = IndentedWriter.stdout;
printQuery(out, query);
}
Aggregations