You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2018/12/14 12:38:24 UTC
[1/3] jena git commit: JENA-1648: First class text format for result
sets.
Repository: jena
Updated Branches:
refs/heads/master c05f1296f -> 2f224de72
JENA-1648: First class text format for result sets.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/d8939c61
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/d8939c61
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/d8939c61
Branch: refs/heads/master
Commit: d8939c6159c00caf559e749f0f661881b9a3906a
Parents: 42dc428
Author: Andy Seaborne <an...@apache.org>
Authored: Wed Dec 12 18:43:13 2018 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Wed Dec 12 20:59:15 2018 +0000
----------------------------------------------------------------------
.../apache/jena/query/ResultSetFormatter.java | 19 +----
.../jena/riot/resultset/ResultSetLang.java | 4 +
.../riot/resultset/ResultSetWriterRegistry.java | 40 +++++++---
.../jena/riot/resultset/rw/ResultsWriter.java | 2 +-
.../org/apache/jena/sparql/ARQConstants.java | 4 +
.../jena/sparql/resultset/ResultsFormat.java | 66 +++++++++++++---
.../apache/jena/sparql/util/QueryExecUtils.java | 79 +++-----------------
.../org/apache/jena/riot/lang/TestLang.java | 6 ++
8 files changed, 116 insertions(+), 104 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/d8939c61/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java b/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java
index 359de91..f628c0b 100644
--- a/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java
+++ b/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java
@@ -42,7 +42,6 @@ import org.apache.jena.shared.PrefixMapping ;
import org.apache.jena.sparql.ARQException ;
import org.apache.jena.sparql.ARQNotImplemented ;
import org.apache.jena.sparql.core.Prologue ;
-import org.apache.jena.sparql.resultset.RDFOutput;
import org.apache.jena.sparql.resultset.ResultsFormat;
import org.apache.jena.sparql.resultset.TextOutput;
import org.apache.jena.sparql.resultset.XMLOutput;
@@ -289,27 +288,15 @@ public class ResultSetFormatter {
*/
static public void output(OutputStream outStream, ResultSet resultSet, ResultsFormat rFmt) {
-
Lang lang = ResultsFormat.convert(rFmt);
if ( lang != null ) {
output(outStream, resultSet, lang);
return ;
}
- if ( rFmt.equals(ResultsFormat.FMT_RDF_XML) ) {
- RDFOutput.outputAsRDF(outStream, "RDF/XML-ABBREV", resultSet) ;
- return ;
- }
-
- if ( rFmt.equals(ResultsFormat.FMT_RDF_TTL) ) {
- RDFOutput.outputAsRDF(outStream, "TTL", resultSet) ;
- return ;
- }
-
- if ( rFmt.equals(ResultsFormat.FMT_RDF_NT) ) {
- RDFOutput.outputAsRDF(outStream, "N-TRIPLES", resultSet) ;
+ boolean b = ResultsFormat.oldWrite(outStream, rFmt, null, resultSet);
+ if ( b )
return ;
- }
throw new ARQException("Unknown ResultSet format: " + rFmt) ;
}
@@ -318,9 +305,11 @@ public class ResultSetFormatter {
public static void output(ResultSet resultSet, Lang resultFormat) {
output(System.out, resultSet, resultFormat);
}
+
public static void output(OutputStream outStream, ResultSet resultSet, Lang resultFormat) {
ResultsWriter.create().lang(resultFormat).write(outStream, resultSet);
}
+
public static void output(boolean result, Lang resultFormat) {
output(System.out, result, resultFormat);
}
http://git-wip-us.apache.org/repos/asf/jena/blob/d8939c61/jena-arq/src/main/java/org/apache/jena/riot/resultset/ResultSetLang.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/resultset/ResultSetLang.java b/jena-arq/src/main/java/org/apache/jena/riot/resultset/ResultSetLang.java
index 5ca83ae..4e4d02d 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/resultset/ResultSetLang.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/resultset/ResultSetLang.java
@@ -51,6 +51,9 @@ public class ResultSetLang {
= LangBuilder.create("SPARQL-Results-Text", WebContent.contentTypeTextPlain)
.addFileExtensions("txt")
.build() ;
+
+ public static final Lang SPARQLResultSetNone
+ = LangBuilder.create("SPARQL-Results-None", "application/sparql-results+none").build() ;
private static boolean initialized = false ;
public static void init() {
@@ -62,6 +65,7 @@ public class ResultSetLang {
RDFLanguages.register(SPARQLResultSetCSV) ;
RDFLanguages.register(SPARQLResultSetTSV) ;
RDFLanguages.register(SPARQLResultSetThrift) ;
+ RDFLanguages.register(SPARQLResultSetNone) ;
ResultSetReaderRegistry.init();
ResultSetWriterRegistry.init();
}
http://git-wip-us.apache.org/repos/asf/jena/blob/d8939c61/jena-arq/src/main/java/org/apache/jena/riot/resultset/ResultSetWriterRegistry.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/resultset/ResultSetWriterRegistry.java b/jena-arq/src/main/java/org/apache/jena/riot/resultset/ResultSetWriterRegistry.java
index 859ab79..a0ccaf8 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/resultset/ResultSetWriterRegistry.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/resultset/ResultSetWriterRegistry.java
@@ -27,12 +27,16 @@ import java.util.Map ;
import java.util.Objects ;
import org.apache.jena.atlas.lib.NotImplemented ;
+import org.apache.jena.atlas.logging.Log;
+import org.apache.jena.query.ARQ;
import org.apache.jena.query.ResultSet ;
+import org.apache.jena.rdf.model.Model;
import org.apache.jena.riot.Lang ;
import org.apache.jena.riot.RiotException ;
import org.apache.jena.riot.resultset.rw.ResultSetWriterJSON;
import org.apache.jena.riot.resultset.rw.ResultSetWriterThrift;
import org.apache.jena.riot.resultset.rw.ResultSetWriterXML;
+import org.apache.jena.sparql.ARQConstants;
import org.apache.jena.sparql.core.Prologue ;
import org.apache.jena.sparql.resultset.CSVOutput;
import org.apache.jena.sparql.resultset.TSVOutput;
@@ -72,9 +76,11 @@ public class ResultSetWriterRegistry {
register(SPARQLResultSetXML, ResultSetWriterXML.factory) ;
register(SPARQLResultSetJSON, ResultSetWriterJSON.factory) ;
register(SPARQLResultSetThrift, ResultSetWriterThrift.factory) ;
+ // Build-in std factory (below).
register(SPARQLResultSetCSV, factory) ;
register(SPARQLResultSetTSV, factory) ;
register(SPARQLResultSetText, factory) ;
+ register(SPARQLResultSetNone, factory) ;
}
private static ResultSetWriter writerCSV = new ResultSetWriter() {
@@ -101,7 +107,7 @@ public class ResultSetWriterRegistry {
}
} ;
- private static ResultSetWriter writerNo = new ResultSetWriter() {
+ private static ResultSetWriter writerNone = new ResultSetWriter() {
@Override public void write(OutputStream out, ResultSet resultSet, Context context) {}
@Override public void write(Writer out, ResultSet resultSet, Context context) {}
@Override public void write(OutputStream out, boolean result, Context context) {}
@@ -109,27 +115,41 @@ public class ResultSetWriterRegistry {
private static ResultSetWriter writerText = new ResultSetWriter() {
@Override public void write(OutputStream out, ResultSet resultSet, Context context) {
- // Prefix mapp
- TextOutput tFmt = new TextOutput(new SerializationContext((Prologue)null)) ;
+ Prologue prologue = choosePrologue(resultSet, context);
+ TextOutput tFmt = new TextOutput(new SerializationContext(prologue)) ;
tFmt.format(out, resultSet) ;
}
@Override public void write(Writer out, ResultSet resultSet, Context context) {throw new NotImplemented("Writer") ; }
@Override public void write(OutputStream out, boolean result, Context context) {
- // Prefix mapp
TextOutput tFmt = new TextOutput(new SerializationContext((Prologue)null)) ;
tFmt.format(out, result) ;
}
} ;
+ /** Establish a prologue for formatting output. Return "null" for none found. */
+ private static Prologue choosePrologue(ResultSet resultSet, Context context) {
+ try {
+ if ( context != null && context.get(ARQConstants.symPrologue) != null )
+ return context.get(ARQConstants.symPrologue);
+ Model m = resultSet.getResourceModel();
+ if ( m != null )
+ return new Prologue(m);
+ } catch (Exception ex) {
+ Log.warn(ARQ.getExecLogger(), "Failed to establish a 'Prologue' for text output: "+ex.getMessage());
+ }
+ return null;
+ }
+
private static class ResultSetWriterFactoryStd implements ResultSetWriterFactory {
@Override
public ResultSetWriter create(Lang lang) {
- lang = Objects.requireNonNull(lang, "Language must not be null") ;
-// if ( lang.equals(SPARQLResultSetXML) ) return writerXML ;
-// if ( lang.equals(SPARQLResultSetJSON) ) return writerJSON ;
- if ( lang.equals(SPARQLResultSetCSV) ) return writerCSV ;
- if ( lang.equals(SPARQLResultSetTSV) ) return writerTSV ;
- if ( lang.equals(SPARQLResultSetText) ) return writerText ;
+ lang = Objects.requireNonNull(lang, "Language must not be null");
+// if ( lang.equals(SPARQLResultSetXML) ) return writerXML;
+// if ( lang.equals(SPARQLResultSetJSON) ) return writerJSON;
+ if ( lang.equals(SPARQLResultSetCSV) ) return writerCSV;
+ if ( lang.equals(SPARQLResultSetTSV) ) return writerTSV;
+ if ( lang.equals(SPARQLResultSetText) ) return writerText;
+ if ( lang.equals(SPARQLResultSetNone) ) return writerNone;
throw new RiotException("Lang not registered (ResultSet writer)") ;
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/d8939c61/jena-arq/src/main/java/org/apache/jena/riot/resultset/rw/ResultsWriter.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/resultset/rw/ResultsWriter.java b/jena-arq/src/main/java/org/apache/jena/riot/resultset/rw/ResultsWriter.java
index 3cf6b09..05c486f 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/resultset/rw/ResultsWriter.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/resultset/rw/ResultsWriter.java
@@ -90,7 +90,7 @@ public class ResultsWriter {
} catch (IOException ex) { IO.exception(ex); }
}
- /** Write a result set, using the configurartion of the {@code ResultWriter}, to an {@code OutputStream}. */
+ /** Write a result set, using the configuration of the {@code ResultWriter}, to an {@code OutputStream}. */
public void write(OutputStream output, ResultSet resultSet) {
Objects.requireNonNull(output);
Objects.requireNonNull(resultSet);
http://git-wip-us.apache.org/repos/asf/jena/blob/d8939c61/jena-arq/src/main/java/org/apache/jena/sparql/ARQConstants.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/ARQConstants.java b/jena-arq/src/main/java/org/apache/jena/sparql/ARQConstants.java
index 28fab54..48ad69b 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/ARQConstants.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/ARQConstants.java
@@ -18,6 +18,7 @@
package org.apache.jena.sparql;
+import org.apache.jena.riot.system.Prologue;
import org.apache.jena.shared.PrefixMapping ;
import org.apache.jena.shared.impl.PrefixMappingImpl ;
import org.apache.jena.sparql.util.Symbol ;
@@ -260,6 +261,9 @@ public class ARQConstants
/** Graphs forming the named graphs (List<String>) (Dynamic dataset) */
public static final Symbol symDatasetNamedGraphs = SystemARQ.allocSymbol("datasetNamedGraphs") ;
+ /** Context symbol for a supplied {@link Prologue} (used for text out of result sets). */
+ public static final Symbol symPrologue = SystemARQ.allocSymbol("prologue");
+
/** Context key for making all SELECT queries have DISTINCT applied, whether stated ot not */
public static final Symbol autoDistinct = SystemARQ.allocSymbol("autoDistinct") ;
http://git-wip-us.apache.org/repos/asf/jena/blob/d8939c61/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultsFormat.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultsFormat.java b/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultsFormat.java
index a0ebb69..9674fae 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultsFormat.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/resultset/ResultsFormat.java
@@ -20,11 +20,17 @@ package org.apache.jena.sparql.resultset;
import static org.apache.jena.riot.WebContent.* ;
+import java.io.OutputStream;
+import java.io.PrintStream;
import java.util.HashMap ;
import java.util.Map ;
+import org.apache.jena.query.ResultSet;
+import org.apache.jena.query.ResultSetFormatter;
import org.apache.jena.riot.Lang ;
import org.apache.jena.riot.resultset.ResultSetLang ;
+import org.apache.jena.sparql.core.Prologue;
+import org.apache.jena.sparql.util.QueryExecUtils;
import org.apache.jena.sparql.util.Symbol ;
import org.apache.jena.sparql.util.TranslationTable ;
@@ -38,13 +44,11 @@ import org.apache.jena.sparql.util.TranslationTable ;
// FMT_UNKNOWN ;
-// Old world. Remove in Jena3
+// Old world.
public class ResultsFormat extends Symbol
{
- // ---- Compatibility (this started pre java 1.5)
- private ResultsFormat(String symbol)
- {
- super(symbol) ;
+ private ResultsFormat(String symbol) {
+ super(symbol);
}
static public ResultsFormat FMT_RS_XML = new ResultsFormat(contentTypeResultsXML) ;
@@ -57,6 +61,7 @@ public class ResultsFormat extends Symbol
static public ResultsFormat FMT_TEXT = new ResultsFormat("text") ;
static public ResultsFormat FMT_TUPLES = new ResultsFormat("tuples") ;
static public ResultsFormat FMT_COUNT = new ResultsFormat("count") ;
+ // Also used for output of result sets as RDF.
static public ResultsFormat FMT_RDF_XML = new ResultsFormat(contentTypeRDFXML) ;
static public ResultsFormat FMT_RDF_N3 = new ResultsFormat(contentTypeN3) ;
static public ResultsFormat FMT_RDF_TTL = new ResultsFormat(contentTypeTurtle) ;
@@ -186,16 +191,59 @@ public class ResultsFormat extends Symbol
return names.lookup(s);
}
+ /**
+ * Mapping from old-style {@link ResultsFormat} to {@link ResultSetLang} or other
+ * {@link Lang}. See also {@link QueryExecUtils#outputResultSet} for dispatch of some old,
+ * specialized types such as results encoded in RDF.
+ */
static Map<ResultsFormat, Lang> mapResultsFormatToLang = new HashMap<>() ;
static {
- mapResultsFormatToLang.put(ResultsFormat.FMT_RS_CSV, ResultSetLang.SPARQLResultSetCSV) ;
- mapResultsFormatToLang.put(ResultsFormat.FMT_RS_TSV, ResultSetLang.SPARQLResultSetTSV) ;
- mapResultsFormatToLang.put(ResultsFormat.FMT_RS_XML, ResultSetLang.SPARQLResultSetXML) ;
- mapResultsFormatToLang.put(ResultsFormat.FMT_RS_JSON, ResultSetLang.SPARQLResultSetJSON) ;
+ mapResultsFormatToLang.put(ResultsFormat.FMT_NONE, ResultSetLang.SPARQLResultSetNone) ;
+ mapResultsFormatToLang.put(ResultsFormat.FMT_RS_CSV, ResultSetLang.SPARQLResultSetCSV) ;
+ mapResultsFormatToLang.put(ResultsFormat.FMT_RS_TSV, ResultSetLang.SPARQLResultSetTSV) ;
+ mapResultsFormatToLang.put(ResultsFormat.FMT_RS_XML, ResultSetLang.SPARQLResultSetXML) ;
+ mapResultsFormatToLang.put(ResultsFormat.FMT_RS_JSON, ResultSetLang.SPARQLResultSetJSON) ;
mapResultsFormatToLang.put(ResultsFormat.FMT_RS_THRIFT, ResultSetLang.SPARQLResultSetThrift) ;
+ mapResultsFormatToLang.put(ResultsFormat.FMT_TEXT, ResultSetLang.SPARQLResultSetText);
}
public static Lang convert(ResultsFormat fmt) {
return mapResultsFormatToLang.get(fmt) ;
}
+
+ /** Write a {@link ResultSet} in various old style formats no longer recommended.
+ * Return true if the format was handled else false.
+ */
+ public static boolean oldWrite(OutputStream out, ResultsFormat outputFormat, Prologue prologue, ResultSet resultSet) {
+ if ( outputFormat.equals(ResultsFormat.FMT_COUNT) ) {
+ int count = ResultSetFormatter.consume(resultSet) ;
+ PrintStream pOut = new PrintStream(out);
+ pOut.println("Count = " + count) ;
+ return true ;
+ }
+
+ if ( outputFormat.equals(ResultsFormat.FMT_RDF_XML) ) {
+ RDFOutput.outputAsRDF(out, "RDF/XML-ABBREV", resultSet) ;
+ return true;
+ }
+
+ if ( outputFormat.equals(ResultsFormat.FMT_RDF_TTL) ) {
+ RDFOutput.outputAsRDF(out, "TTL", resultSet) ;
+ return true;
+ }
+
+ if ( outputFormat.equals(ResultsFormat.FMT_RDF_NT) ) {
+ RDFOutput.outputAsRDF(out, "N-TRIPLES", resultSet) ;
+ return true;
+ }
+
+ if ( outputFormat.equals(ResultsFormat.FMT_TUPLES) ) {
+ PlainFormat pFmt = new PlainFormat(out, prologue) ;
+ ResultSetApply a = new ResultSetApply(resultSet, pFmt) ;
+ a.apply() ;
+ return true;
+ }
+
+ return false;
+ }
}
http://git-wip-us.apache.org/repos/asf/jena/blob/d8939c61/jena-arq/src/main/java/org/apache/jena/sparql/util/QueryExecUtils.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/util/QueryExecUtils.java b/jena-arq/src/main/java/org/apache/jena/sparql/util/QueryExecUtils.java
index e4ddf99..2a09fcb 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/util/QueryExecUtils.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/util/QueryExecUtils.java
@@ -28,7 +28,7 @@ import org.apache.jena.rdf.model.Model ;
import org.apache.jena.rdf.model.RDFNode ;
import org.apache.jena.riot.Lang ;
import org.apache.jena.riot.RDFDataMgr ;
-import org.apache.jena.riot.ResultSetMgr ;
+import org.apache.jena.riot.resultset.rw.ResultsWriter;
import org.apache.jena.shared.PrefixMapping ;
import org.apache.jena.shared.impl.PrefixMappingImpl ;
import org.apache.jena.sparql.ARQConstants ;
@@ -41,11 +41,8 @@ import org.apache.jena.sparql.core.DatasetGraph ;
import org.apache.jena.sparql.core.Prologue ;
import org.apache.jena.sparql.core.Var ;
import org.apache.jena.sparql.engine.QueryIterator ;
-import org.apache.jena.sparql.resultset.PlainFormat ;
import org.apache.jena.sparql.resultset.RDFOutput ;
-import org.apache.jena.sparql.resultset.ResultSetApply ;
import org.apache.jena.sparql.resultset.ResultsFormat ;
-import org.apache.jena.sparql.vocabulary.ResultSetGraphVocab ;
/** Some utilities for query processing. */
public class QueryExecUtils {
@@ -112,80 +109,24 @@ public class QueryExecUtils {
}
public static void outputResultSet(ResultSet results, Prologue prologue, ResultsFormat outputFormat) {
+ if ( outputFormat.equals(ResultsFormat.FMT_UNKNOWN) )
+ outputFormat = ResultsFormat.FMT_TEXT ;
// Proper ResultSet formats.
+ if ( prologue == null )
+ prologue = new Prologue(globalPrefixMap) ;
Lang lang = ResultsFormat.convert(outputFormat) ;
if ( lang != null ) {
- ResultSetMgr.write(System.out, results, lang) ;
+ Context context = ARQ.getContext().copy();
+ if ( prologue != null )
+ context.set(ARQConstants.symPrologue, prologue);
+ ResultsWriter.create().context(context).lang(lang).build().write(System.out, results);
System.out.flush() ;
return ;
}
- // Old way.
- boolean done = false ;
- if ( prologue == null )
- prologue = new Prologue(globalPrefixMap) ;
-
- if ( outputFormat.equals(ResultsFormat.FMT_UNKNOWN) )
- outputFormat = ResultsFormat.FMT_TEXT ;
-
- if ( outputFormat.equals(ResultsFormat.FMT_NONE) || outputFormat.equals(ResultsFormat.FMT_COUNT) ) {
- int count = ResultSetFormatter.consume(results) ;
- if ( outputFormat.equals(ResultsFormat.FMT_COUNT) ) {
- System.out.println("Count = " + count) ;
- }
- done = true ;
- }
-
- if ( outputFormat.equals(ResultsFormat.FMT_RDF_XML) || outputFormat.equals(ResultsFormat.FMT_RDF_N3)
- || outputFormat.equals(ResultsFormat.FMT_RDF_TTL) ) {
- Model m = RDFOutput.encodeAsModel(results) ;
- m.setNsPrefixes(prologue.getPrefixMapping()) ;
- m.setNsPrefix("rs", ResultSetGraphVocab.getURI()) ;
- RDFDataMgr.write(System.out, m, Lang.TURTLE) ;
- done = true ;
- }
-
- if ( outputFormat.equals(ResultsFormat.FMT_RS_XML) ) {
- ResultSetFormatter.outputAsXML(System.out, results) ;
- done = true ;
- }
-
- if ( outputFormat.equals(ResultsFormat.FMT_RS_JSON) ) {
- ResultSetFormatter.outputAsJSON(System.out, results) ;
- done = true ;
- }
-
- if ( outputFormat.equals(ResultsFormat.FMT_RS_SSE) ) {
- ResultSetFormatter.outputAsSSE(System.out, results, prologue) ;
- done = true ;
- }
-
- if ( outputFormat.equals(ResultsFormat.FMT_TEXT) ) {
- ResultSetFormatter.out(System.out, results, prologue) ;
- done = true ;
- }
-
- if ( outputFormat.equals(ResultsFormat.FMT_TUPLES) ) {
- PlainFormat pFmt = new PlainFormat(System.out, prologue) ;
- ResultSetApply a = new ResultSetApply(results, pFmt) ;
- a.apply() ;
- done = true ;
- }
-
- if ( outputFormat.equals(ResultsFormat.FMT_RS_CSV) ) {
- ResultSetFormatter.outputAsCSV(System.out, results) ;
- done = true ;
- }
-
- if ( outputFormat.equals(ResultsFormat.FMT_RS_TSV) ) {
- ResultSetFormatter.outputAsTSV(System.out, results) ;
- done = true ;
- }
-
+ boolean done = ResultsFormat.oldWrite(System.out, outputFormat, prologue, results);
if ( !done )
System.err.println("Unknown format request: " + outputFormat) ;
- results = null ;
-
System.out.flush() ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/d8939c61/jena-arq/src/test/java/org/apache/jena/riot/lang/TestLang.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/lang/TestLang.java b/jena-arq/src/test/java/org/apache/jena/riot/lang/TestLang.java
index fe3b087..705d46a 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/lang/TestLang.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/lang/TestLang.java
@@ -25,12 +25,15 @@ import org.apache.jena.atlas.junit.BaseTest ;
import org.apache.jena.riot.Lang ;
import org.apache.jena.riot.RDFLanguages ;
import org.apache.jena.riot.WebContent ;
+import org.apache.jena.riot.resultset.ResultSetLang;
+import org.apache.jena.sys.JenaSystem;
import org.apache.jena.util.FileUtils ;
import org.junit.Assert ;
import org.junit.Test ;
public class TestLang extends BaseTest
{
+ static { JenaSystem.init(); }
@Test public void registration_01() { testregistration(RDFLanguages.RDFXML) ; }
@Test public void registration_02() { testregistration(RDFLanguages.NTRIPLES) ; }
@Test public void registration_03() { testregistration(RDFLanguages.NT) ; }
@@ -101,6 +104,9 @@ public class TestLang extends BaseTest
{
if ( RDFLanguages.RDFNULL.equals(l) )
continue ;
+ if ( ResultSetLang.SPARQLResultSetNone.equals(l) )
+ continue ;
+
Assert.assertNotNull( l+" does not have file extensions defined", l.getFileExtensions());
Assert.assertTrue( l+" does not have file extensions defined", l.getFileExtensions().size() > 0);
}
[3/3] jena git commit: Rename as TS_FusekiWebapp to be clearer what's
running
Posted by an...@apache.org.
Rename as TS_FusekiWebapp to be clearer what's running
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/2f224de7
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/2f224de7
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/2f224de7
Branch: refs/heads/master
Commit: 2f224de729e3f32260e10dda61dbdef67ba5ca58
Parents: f93fdba
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Dec 14 12:38:14 2018 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Dec 14 12:38:14 2018 +0000
----------------------------------------------------------------------
.../java/org/apache/jena/fuseki/ServerCtl.java | 8 +-
.../java/org/apache/jena/fuseki/TS_Fuseki.java | 81 --------------------
.../org/apache/jena/fuseki/TS_FusekiWebapp.java | 81 ++++++++++++++++++++
3 files changed, 85 insertions(+), 85 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/2f224de7/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/ServerCtl.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/ServerCtl.java b/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/ServerCtl.java
index 568b342..887dd46 100644
--- a/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/ServerCtl.java
+++ b/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/ServerCtl.java
@@ -223,11 +223,11 @@ public class ServerCtl {
}
protected static void setupServer(boolean updateable) {
- FusekiEnv.FUSEKI_HOME = Paths.get(TS_Fuseki.FusekiTestHome).toAbsolutePath() ;
+ FusekiEnv.FUSEKI_HOME = Paths.get(TS_FusekiWebapp.FusekiTestHome).toAbsolutePath() ;
FileOps.ensureDir("target");
- FileOps.ensureDir(TS_Fuseki.FusekiTestHome);
- FileOps.ensureDir(TS_Fuseki.FusekiTestBase) ;
- FusekiEnv.FUSEKI_BASE = Paths.get(TS_Fuseki.FusekiTestBase).toAbsolutePath() ;
+ FileOps.ensureDir(TS_FusekiWebapp.FusekiTestHome);
+ FileOps.ensureDir(TS_FusekiWebapp.FusekiTestBase) ;
+ FusekiEnv.FUSEKI_BASE = Paths.get(TS_FusekiWebapp.FusekiTestBase).toAbsolutePath() ;
// Must have shiro.ini.
// This fakes the state after FusekiSystem initialization
// in the case of starting in the same location. FusekiSystem has statics.
http://git-wip-us.apache.org/repos/asf/jena/blob/2f224de7/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/TS_Fuseki.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/TS_Fuseki.java b/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/TS_Fuseki.java
deleted file mode 100644
index 42e33df..0000000
--- a/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/TS_Fuseki.java
+++ /dev/null
@@ -1,81 +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.jena.atlas.lib.FileOps ;
-import org.apache.jena.atlas.logging.LogCtl ;
-import org.apache.jena.fuseki.system.FusekiLogging;
-import org.apache.jena.fuseki.webapp.FusekiEnv;
-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
- , TestHttpOperations.class
- , TestHttpOptions.class
- , TestDatasetGraphAccessorHTTP.class
- , TestDatasetAccessorHTTP.class
- , TestQuery.class
- , TestAuth.class
- , TestDatasetOps.class
- , TestFileUpload.class
- , TestAdmin.class
- , TestAdminAPI.class
- , TestServerReadOnly.class
- , TestBuilder.class
-})
-
-public class TS_Fuseki extends ServerTest
-{
- public static final String FusekiTestHome = "target/FusekiHome" ;
- public static final String FusekiTestBase = FusekiTestHome+"/run" ;
-
- @BeforeClass public static void setupForFusekiServer() {
- FileOps.ensureDir(FusekiTestHome);
- FileOps.clearDirectory(FusekiTestHome);
- System.setProperty("FUSEKI_HOME", FusekiTestHome) ;
- FusekiEnv.setEnvironment() ;
- FusekiLogging.setLogging();
- // To avoid confusion with log4j.properties in the main part of the server,
- // we modify in place the logging, not try to set it with another
- // Log4j properties file from the classpath.
- LogCtl.setLevel("org.apache.shiro", "WARN") ;
- LogCtl.setLevel("org.eclipse.jetty", "WARN");
-
- LogCtl.setLevel(Fuseki.serverLogName, "WARN");
- LogCtl.setLevel(Fuseki.configLogName, "WARN");
- LogCtl.setLevel(Fuseki.adminLogName, "WARN");
- LogCtl.setLevel(Fuseki.builderLogName, "WARN");
- LogCtl.setLevel(Fuseki.actionLogName, "WARN");
- LogCtl.setLevel(Fuseki.requestLogName, "WARN");
- LogCtl.setLevel(Fuseki.servletRequestLogName,"WARN");
-
- ServerCtl.ctlBeforeTestSuite();
- }
-
- @AfterClass
- static public void afterSuiteClass() {
- ServerCtl.ctlAfterTestSuite() ;
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jena/blob/2f224de7/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/TS_FusekiWebapp.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/TS_FusekiWebapp.java b/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/TS_FusekiWebapp.java
new file mode 100644
index 0000000..a6b7e29
--- /dev/null
+++ b/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/TS_FusekiWebapp.java
@@ -0,0 +1,81 @@
+/*
+ * 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.jena.atlas.lib.FileOps ;
+import org.apache.jena.atlas.logging.LogCtl ;
+import org.apache.jena.fuseki.system.FusekiLogging;
+import org.apache.jena.fuseki.webapp.FusekiEnv;
+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
+ , TestHttpOperations.class
+ , TestHttpOptions.class
+ , TestDatasetGraphAccessorHTTP.class
+ , TestDatasetAccessorHTTP.class
+ , TestQuery.class
+ , TestAuth.class
+ , TestDatasetOps.class
+ , TestFileUpload.class
+ , TestAdmin.class
+ , TestAdminAPI.class
+ , TestServerReadOnly.class
+ , TestBuilder.class
+})
+
+public class TS_FusekiWebapp extends ServerTest
+{
+ public static final String FusekiTestHome = "target/FusekiHome" ;
+ public static final String FusekiTestBase = FusekiTestHome+"/run" ;
+
+ @BeforeClass public static void setupForFusekiServer() {
+ FileOps.ensureDir(FusekiTestHome);
+ FileOps.clearDirectory(FusekiTestHome);
+ System.setProperty("FUSEKI_HOME", FusekiTestHome) ;
+ FusekiEnv.setEnvironment() ;
+ FusekiLogging.setLogging();
+ // To avoid confusion with log4j.properties in the main part of the server,
+ // we modify in place the logging, not try to set it with another
+ // Log4j properties file from the classpath.
+ LogCtl.setLevel("org.apache.shiro", "WARN") ;
+ LogCtl.setLevel("org.eclipse.jetty", "WARN");
+
+ LogCtl.setLevel(Fuseki.serverLogName, "WARN");
+ LogCtl.setLevel(Fuseki.configLogName, "WARN");
+ LogCtl.setLevel(Fuseki.adminLogName, "WARN");
+ LogCtl.setLevel(Fuseki.builderLogName, "WARN");
+ LogCtl.setLevel(Fuseki.actionLogName, "WARN");
+ LogCtl.setLevel(Fuseki.requestLogName, "WARN");
+ LogCtl.setLevel(Fuseki.servletRequestLogName,"WARN");
+
+ ServerCtl.ctlBeforeTestSuite();
+ }
+
+ @AfterClass
+ static public void afterSuiteClass() {
+ ServerCtl.ctlAfterTestSuite() ;
+ }
+}
\ No newline at end of file
[2/3] jena git commit: JENA-1648: Merge commit 'refs/pull/507/head'
of https://github.com/apache/jena
Posted by an...@apache.org.
JENA-1648: Merge commit 'refs/pull/507/head' of https://github.com/apache/jena
This closes #507.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/f93fdbad
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/f93fdbad
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/f93fdbad
Branch: refs/heads/master
Commit: f93fdbad7aa8d6ddb46693395e3bfb5ea487bf16
Parents: c05f129 d8939c6
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Dec 14 12:27:46 2018 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Dec 14 12:27:46 2018 +0000
----------------------------------------------------------------------
.../apache/jena/query/ResultSetFormatter.java | 19 +----
.../jena/riot/resultset/ResultSetLang.java | 4 +
.../riot/resultset/ResultSetWriterRegistry.java | 40 +++++++---
.../jena/riot/resultset/rw/ResultsWriter.java | 2 +-
.../org/apache/jena/sparql/ARQConstants.java | 4 +
.../jena/sparql/resultset/ResultsFormat.java | 66 +++++++++++++---
.../apache/jena/sparql/util/QueryExecUtils.java | 83 +++-----------------
.../org/apache/jena/riot/lang/TestLang.java | 6 ++
8 files changed, 116 insertions(+), 108 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/f93fdbad/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/f93fdbad/jena-arq/src/main/java/org/apache/jena/sparql/util/QueryExecUtils.java
----------------------------------------------------------------------
diff --cc jena-arq/src/main/java/org/apache/jena/sparql/util/QueryExecUtils.java
index 6ba03fd,2a09fcb..2a46a82
--- a/jena-arq/src/main/java/org/apache/jena/sparql/util/QueryExecUtils.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/util/QueryExecUtils.java
@@@ -119,77 -123,10 +123,10 @@@ public class QueryExecUtils
System.out.flush() ;
return ;
}
--
- // Old way.
- boolean done = false ;
- if ( prologue == null )
- prologue = new Prologue(globalPrefixMap) ;
-
- if ( outputFormat.equals(ResultsFormat.FMT_UNKNOWN) )
- outputFormat = ResultsFormat.FMT_TEXT ;
-
- if ( outputFormat.equals(ResultsFormat.FMT_NONE) || outputFormat.equals(ResultsFormat.FMT_COUNT) ) {
- int count = ResultSetFormatter.consume(results) ;
- if ( outputFormat.equals(ResultsFormat.FMT_COUNT) ) {
- System.out.println("Count = " + count) ;
- }
- done = true ;
- }
-
- if ( outputFormat.equals(ResultsFormat.FMT_RDF_XML) || outputFormat.equals(ResultsFormat.FMT_RDF_N3)
- || outputFormat.equals(ResultsFormat.FMT_RDF_TTL) ) {
- Lang langx = Lang.TURTLE;
- if ( outputFormat.equals(ResultsFormat.FMT_RDF_XML) )
- langx = Lang.RDFXML;
-
- Model m = RDFOutput.encodeAsModel(results) ;
- m.setNsPrefixes(prologue.getPrefixMapping()) ;
- m.setNsPrefix("rs", ResultSetGraphVocab.getURI()) ;
- RDFDataMgr.write(System.out, m, langx) ;
- done = true ;
- }
-
- if ( outputFormat.equals(ResultsFormat.FMT_RS_XML) ) {
- ResultSetFormatter.outputAsXML(System.out, results) ;
- done = true ;
- }
-
- if ( outputFormat.equals(ResultsFormat.FMT_RS_JSON) ) {
- ResultSetFormatter.outputAsJSON(System.out, results) ;
- done = true ;
- }
-
- if ( outputFormat.equals(ResultsFormat.FMT_RS_SSE) ) {
- ResultSetFormatter.outputAsSSE(System.out, results, prologue) ;
- done = true ;
- }
-
- if ( outputFormat.equals(ResultsFormat.FMT_TEXT) ) {
- ResultSetFormatter.out(System.out, results, prologue) ;
- done = true ;
- }
-
- if ( outputFormat.equals(ResultsFormat.FMT_TUPLES) ) {
- PlainFormat pFmt = new PlainFormat(System.out, prologue) ;
- ResultSetApply a = new ResultSetApply(results, pFmt) ;
- a.apply() ;
- done = true ;
- }
-
- if ( outputFormat.equals(ResultsFormat.FMT_RS_CSV) ) {
- ResultSetFormatter.outputAsCSV(System.out, results) ;
- done = true ;
- }
-
- if ( outputFormat.equals(ResultsFormat.FMT_RS_TSV) ) {
- ResultSetFormatter.outputAsTSV(System.out, results) ;
- done = true ;
- }
+
+ boolean done = ResultsFormat.oldWrite(System.out, outputFormat, prologue, results);
if ( !done )
System.err.println("Unknown format request: " + outputFormat) ;
- results = null ;
-
System.out.flush() ;
}