updated sparql module to work with the new templating api
Project: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/commit/e8cc98d8 Tree: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/tree/e8cc98d8 Diff: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/diff/e8cc98d8 Branch: refs/heads/develop Commit: e8cc98d8804b83ff0334b9210587a86bce70e873 Parents: 6059fb8 Author: Sergio Fernández <[email protected]> Authored: Thu Apr 11 13:55:53 2013 +0200 Committer: Sergio Fernández <[email protected]> Committed: Thu Apr 11 13:55:53 2013 +0200 ---------------------------------------------------------------------- .../sparql/services/sparql/SparqlServiceImpl.java | 54 ++++++++++++++- .../services/sparql/SparqlWritersHelper.java | 54 --------------- .../sparqlhtml/SPARQLBooleanHTMLWriter.java | 1 - .../sparqlhtml/SPARQLResultsHTMLWriter.java | 13 ++-- .../sparql/webservices/SparqlWebService.java | 6 ++- 5 files changed, 64 insertions(+), 64 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/e8cc98d8/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparql/SparqlServiceImpl.java ---------------------------------------------------------------------- diff --git a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparql/SparqlServiceImpl.java b/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparql/SparqlServiceImpl.java index 2fd604c..edcb99d 100644 --- a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparql/SparqlServiceImpl.java +++ b/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparql/SparqlServiceImpl.java @@ -28,11 +28,16 @@ import javax.enterprise.context.ApplicationScoped; import javax.inject.Inject; import org.apache.marmotta.platform.core.api.config.ConfigurationService; +import org.apache.marmotta.platform.core.api.templating.TemplatingService; import org.apache.marmotta.platform.core.api.triplestore.SesameService; import org.apache.marmotta.platform.core.exception.InvalidArgumentException; import org.apache.marmotta.platform.core.exception.MarmottaException; import org.apache.marmotta.platform.sparql.api.sparql.SparqlService; import org.apache.marmotta.platform.sparql.services.sparqlio.rdf.SPARQLGraphResultWriter; +import org.apache.marmotta.platform.sparql.services.sparqlio.sparqlhtml.SPARQLBooleanHTMLWriter; +import org.apache.marmotta.platform.sparql.services.sparqlio.sparqlhtml.SPARQLResultsHTMLWriter; +import org.apache.marmotta.platform.sparql.services.sparqlio.sparqljson.SPARQLBooleanJSONWriter; +import org.apache.marmotta.platform.sparql.services.sparqlio.sparqljson.SPARQLResultsJSONWriter; import org.openrdf.model.Value; import org.openrdf.query.Binding; import org.openrdf.query.BindingSet; @@ -49,6 +54,10 @@ import org.openrdf.query.Update; import org.openrdf.query.UpdateExecutionException; import org.openrdf.query.resultio.BooleanQueryResultWriter; import org.openrdf.query.resultio.TupleQueryResultWriter; +import org.openrdf.query.resultio.sparqlxml.SPARQLBooleanXMLWriter; +import org.openrdf.query.resultio.sparqlxml.SPARQLResultsXMLWriter; +import org.openrdf.query.resultio.text.BooleanTextWriter; +import org.openrdf.query.resultio.text.csv.SPARQLResultsCSVWriter; import org.openrdf.repository.RepositoryConnection; import org.openrdf.repository.RepositoryException; import org.slf4j.Logger; @@ -70,6 +79,9 @@ public class SparqlServiceImpl implements SparqlService { @Inject private ConfigurationService configurationService; + + @Inject + private TemplatingService templatingService; @Inject private SesameService sesameService; @@ -175,7 +187,7 @@ public class SparqlServiceImpl implements SparqlService { } private void query(TupleQuery query, OutputStream output, String format) throws QueryEvaluationException { - query(query, SparqlWritersHelper.getTupleResultWriter(format, output)); + query(query, getTupleResultWriter(format, output)); } private void query(BooleanQuery query, BooleanQueryResultWriter writer) throws QueryEvaluationException { @@ -187,7 +199,7 @@ public class SparqlServiceImpl implements SparqlService { } private void query(BooleanQuery query, OutputStream output, String format) throws QueryEvaluationException { - query(query, SparqlWritersHelper.getBooleanResultWriter(format, output)); + query(query, getBooleanResultWriter(format, output)); } private void query(GraphQuery query, SPARQLGraphResultWriter writer) throws QueryEvaluationException { @@ -199,7 +211,7 @@ public class SparqlServiceImpl implements SparqlService { } private void query(GraphQuery query, OutputStream output, String format) throws QueryEvaluationException { - query(query, SparqlWritersHelper.getGraphResultWriter(format, output)); + query(query, getGraphResultWriter(format, output)); } /** @@ -324,6 +336,42 @@ public class SparqlServiceImpl implements SparqlService { return result; } + private TupleQueryResultWriter getTupleResultWriter(String format, OutputStream os) { + //build outputwriter + final TupleQueryResultWriter out; + if(format == null) { + out = new SPARQLResultsXMLWriter(os); + } else if(SparqlWritersHelper.parseSubType(format).equals("html")) { + out = new SPARQLResultsHTMLWriter(os, templatingService); + } else if(SparqlWritersHelper.parseSubType(format).equals("json")) { + out = new SPARQLResultsJSONWriter(os); + } else if(SparqlWritersHelper.parseSubType(format).equals("xml")) { + out = new SPARQLResultsXMLWriter(os); + } else if(SparqlWritersHelper.parseSubType(format).equals("csv")) { + out = new SPARQLResultsCSVWriter(os); + } else throw new InvalidArgumentException("could not produce format "+format); + return out; + } + + private BooleanQueryResultWriter getBooleanResultWriter(String format, OutputStream os) { + //build outputwriter + final BooleanQueryResultWriter out; + if(format == null) { + out = new SPARQLBooleanXMLWriter(os); + } else if(SparqlWritersHelper.parseSubType(format).equals("html")) { + out = new SPARQLBooleanHTMLWriter(os); + } else if(SparqlWritersHelper.parseSubType(format).equals("json")) { + out = new SPARQLBooleanJSONWriter(os); + } else if(SparqlWritersHelper.parseSubType(format).equals("xml")) { + out = new SPARQLBooleanXMLWriter(os); + } else if(SparqlWritersHelper.parseSubType(format).equals("csv")) { + out = new BooleanTextWriter(os); + } else throw new InvalidArgumentException("could not produce format "+format); + return out; + } + private SPARQLGraphResultWriter getGraphResultWriter(String format, OutputStream os) { + return new SPARQLGraphResultWriter(os,format); + } } http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/e8cc98d8/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparql/SparqlWritersHelper.java ---------------------------------------------------------------------- diff --git a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparql/SparqlWritersHelper.java b/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparql/SparqlWritersHelper.java index a5971dd..60c36af 100644 --- a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparql/SparqlWritersHelper.java +++ b/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparql/SparqlWritersHelper.java @@ -17,23 +17,9 @@ */ package org.apache.marmotta.platform.sparql.services.sparql; -import java.io.OutputStream; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.apache.marmotta.platform.core.exception.InvalidArgumentException; -import org.apache.marmotta.platform.sparql.services.sparqlio.rdf.SPARQLGraphResultWriter; -import org.apache.marmotta.platform.sparql.services.sparqlio.sparqlhtml.SPARQLBooleanHTMLWriter; -import org.apache.marmotta.platform.sparql.services.sparqlio.sparqlhtml.SPARQLResultsHTMLWriter; -import org.apache.marmotta.platform.sparql.services.sparqlio.sparqljson.SPARQLBooleanJSONWriter; -import org.apache.marmotta.platform.sparql.services.sparqlio.sparqljson.SPARQLResultsJSONWriter; -import org.openrdf.query.resultio.BooleanQueryResultWriter; -import org.openrdf.query.resultio.TupleQueryResultWriter; -import org.openrdf.query.resultio.sparqlxml.SPARQLBooleanXMLWriter; -import org.openrdf.query.resultio.sparqlxml.SPARQLResultsXMLWriter; -import org.openrdf.query.resultio.text.BooleanTextWriter; -import org.openrdf.query.resultio.text.csv.SPARQLResultsCSVWriter; - /** * Helper for working with SPARQL Writers * @@ -41,46 +27,6 @@ import org.openrdf.query.resultio.text.csv.SPARQLResultsCSVWriter; * */ public class SparqlWritersHelper { - - public static TupleQueryResultWriter getTupleResultWriter(String format, OutputStream os) { - //build outputwriter - final TupleQueryResultWriter out; - if(format == null) { - out = new SPARQLResultsXMLWriter(os); - } else if(parseSubType(format).equals("html")) { - out = new SPARQLResultsHTMLWriter(os); - } else if(parseSubType(format).equals("json")) { - out = new SPARQLResultsJSONWriter(os); - } else if(parseSubType(format).equals("xml")) { - out = new SPARQLResultsXMLWriter(os); - } else if(parseSubType(format).equals("csv")) { - out = new SPARQLResultsCSVWriter(os); - } else throw new InvalidArgumentException("could not produce format "+format); - return out; - } - - public static BooleanQueryResultWriter getBooleanResultWriter(String format, OutputStream os) { - //build outputwriter - final BooleanQueryResultWriter out; - if(format == null) { - out = new SPARQLBooleanXMLWriter(os); - } else if(parseSubType(format).equals("html")) { - out = new SPARQLBooleanHTMLWriter(os); - } else if(parseSubType(format).equals("json")) { - out = new SPARQLBooleanJSONWriter(os); - } else if(parseSubType(format).equals("xml")) { - out = new SPARQLBooleanXMLWriter(os); - } else if(parseSubType(format).equals("csv")) { - out = new BooleanTextWriter(os); - } else throw new InvalidArgumentException("could not produce format "+format); - return out; - } - - public static SPARQLGraphResultWriter getGraphResultWriter(String format, OutputStream os) { - return new SPARQLGraphResultWriter(os,format); - } - - //TODO: move this to another place public static Pattern subTypePattern = Pattern.compile("[a-z]+/([a-z0-9-._]+\\+)?([a-z0-9-._]+)(;.*)?"); http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/e8cc98d8/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqlhtml/SPARQLBooleanHTMLWriter.java ---------------------------------------------------------------------- diff --git a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqlhtml/SPARQLBooleanHTMLWriter.java b/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqlhtml/SPARQLBooleanHTMLWriter.java index 7e42fbb..bc08941 100644 --- a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqlhtml/SPARQLBooleanHTMLWriter.java +++ b/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqlhtml/SPARQLBooleanHTMLWriter.java @@ -96,7 +96,6 @@ public class SPARQLBooleanHTMLWriter implements BooleanQueryResultWriter { try { Source input = new StreamSource(new ByteArrayInputStream(queryResult)); - Transformer transformer = stylesheet.newTransformer(); transformer.setParameter("serverurl", server_uri); http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/e8cc98d8/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqlhtml/SPARQLResultsHTMLWriter.java ---------------------------------------------------------------------- diff --git a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqlhtml/SPARQLResultsHTMLWriter.java b/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqlhtml/SPARQLResultsHTMLWriter.java index c701b24..05560a4 100644 --- a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqlhtml/SPARQLResultsHTMLWriter.java +++ b/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/services/sparqlio/sparqlhtml/SPARQLResultsHTMLWriter.java @@ -24,7 +24,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import org.apache.marmotta.platform.core.services.templating.TemplatingHelper; + +import org.apache.marmotta.platform.core.api.templating.TemplatingService; import org.openrdf.query.BindingSet; import org.openrdf.query.TupleQueryResultHandlerException; import org.openrdf.query.resultio.TupleQueryResultFormat; @@ -50,8 +51,10 @@ public class SPARQLResultsHTMLWriter implements TupleQueryResultWriter { private OutputStream out; private List<String> vars; + + private TemplatingService templatingService; - public SPARQLResultsHTMLWriter(OutputStream out) { + public SPARQLResultsHTMLWriter(OutputStream out, TemplatingService templatingService) { this.out = out; } @@ -66,7 +69,7 @@ public class SPARQLResultsHTMLWriter implements TupleQueryResultWriter { data.put("vars", vars); this.vars = vars; try { - TemplatingHelper.processTemplate(SPARQLResultsHTMLWriter.class, START_TEMPLATE, data, new OutputStreamWriter(out)); + templatingService.process(SPARQLResultsHTMLWriter.class, START_TEMPLATE, data, new OutputStreamWriter(out)); } catch (Exception e) { log.error(e.getMessage(), e); throw new TupleQueryResultHandlerException(e); @@ -87,7 +90,7 @@ public class SPARQLResultsHTMLWriter implements TupleQueryResultWriter { } data.put("result", result); try { - TemplatingHelper.processTemplate(SPARQLResultsHTMLWriter.class, RESULT_TEMPLATE, data, new OutputStreamWriter(out)); + templatingService.process(SPARQLResultsHTMLWriter.class, RESULT_TEMPLATE, data, new OutputStreamWriter(out)); } catch (Exception e) { log.error(e.getMessage(), e); throw new TupleQueryResultHandlerException(e); @@ -98,7 +101,7 @@ public class SPARQLResultsHTMLWriter implements TupleQueryResultWriter { public void endQueryResult() throws TupleQueryResultHandlerException { Map<String, Object> data = new HashMap<String, Object>(); try { - TemplatingHelper.processTemplate(SPARQLResultsHTMLWriter.class, END_TEMPLATE, data, new OutputStreamWriter(out)); + templatingService.process(SPARQLResultsHTMLWriter.class, END_TEMPLATE, data, new OutputStreamWriter(out)); } catch (Exception e) { log.error(e.getMessage(), e); throw new TupleQueryResultHandlerException(e); http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/e8cc98d8/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/webservices/SparqlWebService.java ---------------------------------------------------------------------- diff --git a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/webservices/SparqlWebService.java b/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/webservices/SparqlWebService.java index b6d520e..2280e91 100644 --- a/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/webservices/SparqlWebService.java +++ b/platform/marmotta-sparql/src/main/java/org/apache/marmotta/platform/sparql/webservices/SparqlWebService.java @@ -17,6 +17,7 @@ */ package org.apache.marmotta.platform.sparql.webservices; +import org.apache.marmotta.platform.core.api.templating.TemplatingService; import org.apache.marmotta.platform.core.exception.MarmottaException; import org.apache.marmotta.platform.sparql.api.sparql.SparqlService; import org.apache.marmotta.platform.sparql.services.sparqlio.rdf.SPARQLGraphResultWriter; @@ -91,6 +92,9 @@ public class SparqlWebService { @Inject private ConfigurationService configurationService; + + @Inject + private TemplatingService templatingService; /** * Single SPARQL endpoint, redirecting to the actual select endpoint @@ -533,7 +537,7 @@ public class SparqlWebService { if(format == null) { out = new SPARQLResultsXMLWriter(os); } else if(parseSubType(format).equals("html")) { - out = new SPARQLResultsHTMLWriter(os); + out = new SPARQLResultsHTMLWriter(os, templatingService); } else if(parseSubType(format).equals("json")) { out = new SPARQLResultsJSONWriter(os); } else if(parseSubType(format).equals("xml")) {
