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 2013/12/13 19:06:35 UTC
svn commit: r1550784 - in /jena/branches/jena-fuseki-new-ui: ./
src/main/java/org/apache/jena/fuseki/
src/main/java/org/apache/jena/fuseki/servlets/
src/test/java/org/apache/jena/fuseki/
Author: andy
Date: Fri Dec 13 18:06:35 2013
New Revision: 1550784
URL: http://svn.apache.org/r1550784
Log:
Add upload by multipart form to GSP.
Removed:
jena/branches/jena-fuseki-new-ui/delete-ds
Modified:
jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/FusekiLib.java
jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/ActionBase.java
jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/ActionSPARQL.java
jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST.java
jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST_RW.java
jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Upload.java
jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/ServletBase.java
jena/branches/jena-fuseki-new-ui/src/test/java/org/apache/jena/fuseki/ServerTest.java
Modified: jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/FusekiLib.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/FusekiLib.java?rev=1550784&r1=1550783&r2=1550784&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/FusekiLib.java (original)
+++ jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/FusekiLib.java Fri Dec 13 18:06:35 2013
@@ -140,4 +140,17 @@ public class FusekiLib {
PrefixMapping pmapDest = dsg.getDefaultGraph().getPrefixMapping() ;
pmapDest.withDefaultMappings(pmapSrc) ;
}
+
+ public static void addDataInto(DatasetGraph src, DatasetGraph dest) {
+ Iterator<Quad> iter = src.find(Node.ANY, Node.ANY, Node.ANY, Node.ANY) ;
+ for (; iter.hasNext();) {
+ Quad q = iter.next() ;
+ dest.add(q) ;
+ }
+
+ PrefixMapping pmapSrc = src.getDefaultGraph().getPrefixMapping() ;
+ PrefixMapping pmapDest = dest.getDefaultGraph().getPrefixMapping() ;
+ pmapDest.withDefaultMappings(pmapSrc) ;
+ }
+
}
Modified: jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/ActionBase.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/ActionBase.java?rev=1550784&r1=1550783&r2=1550784&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/ActionBase.java (original)
+++ jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/ActionBase.java Fri Dec 13 18:06:35 2013
@@ -28,6 +28,7 @@ import javax.servlet.ServletException ;
import javax.servlet.http.HttpServletRequest ;
import javax.servlet.http.HttpServletResponse ;
+import org.apache.jena.fuseki.Fuseki ;
import org.apache.jena.fuseki.HttpNames ;
import org.apache.jena.web.HttpSC ;
import org.slf4j.Logger ;
@@ -100,12 +101,9 @@ public abstract class ActionBase extends
/** Return a fresh WebAction for this request */
protected HttpAction allocHttpAction(long id, HttpServletRequest request, HttpServletResponse response) {
// Need a way to set verbose logging on a per servlet and per request basis.
- return new HttpAction(id, log, request, response, verboseLogging) ;
+ return new HttpAction(id, log, request, response, Fuseki.verboseLogging) ;
}
-// protected abstract void validate(HttpAction action) ;
-// protected abstract void perform(HttpAction action) ;
-
// Default start/finish steps.
protected void startRequest(HttpAction action) {
}
Modified: jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/ActionSPARQL.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/ActionSPARQL.java?rev=1550784&r1=1550783&r2=1550784&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/ActionSPARQL.java (original)
+++ jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/ActionSPARQL.java Fri Dec 13 18:06:35 2013
@@ -18,11 +18,27 @@
package org.apache.jena.fuseki.servlets;
+import static java.lang.String.format ;
import static org.apache.jena.fuseki.server.CounterName.Requests ;
import static org.apache.jena.fuseki.server.CounterName.RequestsBad ;
import static org.apache.jena.fuseki.server.CounterName.RequestsGood ;
+
+import java.io.InputStream ;
+import java.util.zip.GZIPInputStream ;
+
+import org.apache.commons.fileupload.FileItemIterator ;
+import org.apache.commons.fileupload.FileItemStream ;
+import org.apache.commons.fileupload.servlet.ServletFileUpload ;
+import org.apache.jena.atlas.web.ContentType ;
import org.apache.jena.fuseki.Fuseki ;
import org.apache.jena.fuseki.server.* ;
+import org.apache.jena.riot.* ;
+import org.apache.jena.riot.lang.LangRIOT ;
+import org.apache.jena.riot.lang.StreamRDFCounting ;
+import org.apache.jena.riot.system.ErrorHandler ;
+import org.apache.jena.riot.system.ErrorHandlerFactory ;
+import org.apache.jena.riot.system.StreamRDF ;
+import org.apache.jena.riot.system.StreamRDFLib ;
import com.hp.hpl.jena.query.QueryCancelledException ;
@@ -123,4 +139,83 @@ public abstract class ActionSPARQL exten
Fuseki.serverLog.warn("Exception on counter dec", ex) ;
}
}
+
+ public static void parse(HttpAction action, StreamRDF dest, InputStream input, Lang lang, String base) {
+ // Need to adjust the error handler.
+ // try { RDFDataMgr.parse(dest, input, base, lang) ; }
+ // catch (RiotException ex) { errorBadRequest("Parse error: "+ex.getMessage()) ; }
+ LangRIOT parser = RiotReader.createParser(input, lang, base, dest) ;
+ ErrorHandler errorHandler = ErrorHandlerFactory.errorHandlerStd(action.log);
+ parser.getProfile().setHandler(errorHandler) ;
+ try { parser.parse() ; }
+ catch (RiotException ex) { errorBadRequest("Parse error: "+ex.getMessage()) ; }
+ }
+
+ /** Process an HTTP upload of RDF files (triples or quads)
+ * Stream straight into a graph or dataset -- unlike SPARQL_Upload the destination
+ * is known at the start of the multipart file body
+ */
+
+ static public void fileUploadWorker(HttpAction action, StreamRDF dest, boolean isGraph) {
+ String base = wholeRequestURL(action.request) ;
+ String item = (isGraph)?"quad":"triple" ;
+ ServletFileUpload upload = new ServletFileUpload();
+ long count = -1 ;
+
+ //log.info(format("[%d] Upload: Field=%s ignored", action.id, fieldName)) ;
+
+ try {
+ FileItemIterator iter = upload.getItemIterator(action.request);
+ while (iter.hasNext()) {
+ FileItemStream fileStream = iter.next();
+ if (fileStream.isFormField())
+ errorBadRequest("Only files accept in multipart file upload") ;
+ //Ignore the field name.
+ //String fieldName = fileStream.getFieldName();
+
+ InputStream stream = fileStream.openStream();
+ // Process the input stream
+ String contentTypeHeader = fileStream.getContentType() ;
+ ContentType ct = ContentType.create(contentTypeHeader) ;
+ Lang lang = RDFLanguages.contentTypeToLang(ct.getContentType()) ;
+
+ if ( lang == null ) {
+ String name = fileStream.getName() ;
+ if ( name == null || name.equals("") )
+ errorBadRequest("No name for content - can't determine RDF syntax") ;
+ lang = RDFLanguages.filenameToLang(name) ;
+ if (name.endsWith(".gz"))
+ stream = new GZIPInputStream(stream);
+ }
+ if ( lang == null )
+ // Desperate.
+ lang = RDFLanguages.RDFXML ;
+
+ String printfilename = fileStream.getName() ;
+ if ( printfilename == null || printfilename.equals("") )
+ printfilename = "<none>" ;
+
+ // Before
+ // action.log.info(format("[%d] Filename: %s, Content-Type=%s, Charset=%s => %s",
+ // action.id, printfilename, ct.getContentType(), ct.getCharset(), lang.getName())) ;
+
+ StreamRDFCounting countingDest = StreamRDFLib.count(dest) ;
+ try {
+ ActionSPARQL.parse(action, countingDest, stream, lang, base);
+ long c = countingDest.count() ;
+
+ action.log.info(format("[%d] Filename: %s, Content-Type=%s, Charset=%s => %s : %d %s%s",
+ action.id, printfilename, ct.getContentType(), ct.getCharset(), lang.getName(),
+ c, item, (c==1)?"":"s")) ;
+ } catch (RiotParseException ex) {
+ action.log.info(format("[%d] Filename: %s, Content-Type=%s, Charset=%s => %s : %s",
+ action.id, printfilename, ct.getContentType(), ct.getCharset(), lang.getName(),
+ ex.getMessage())) ;
+ throw ex ;
+ }
+ }
+ }
+ catch (ActionErrorException ex) { throw ex ; }
+ catch (Exception ex) { errorOccurred(ex) ; }
+ }
}
Modified: jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST.java?rev=1550784&r1=1550783&r2=1550784&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST.java (original)
+++ jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST.java Fri Dec 13 18:06:35 2013
@@ -18,29 +18,19 @@
package org.apache.jena.fuseki.servlets;
-import static java.lang.String.format ;
import static org.apache.jena.fuseki.HttpNames.* ;
import java.io.IOException ;
-import java.io.InputStream ;
import java.util.Enumeration ;
import java.util.Locale ;
-import java.util.zip.GZIPInputStream ;
import javax.servlet.ServletException ;
import javax.servlet.http.HttpServletRequest ;
import javax.servlet.http.HttpServletResponse ;
-import org.apache.commons.fileupload.FileItemIterator ;
-import org.apache.commons.fileupload.FileItemStream ;
-import org.apache.commons.fileupload.servlet.ServletFileUpload ;
-import org.apache.jena.atlas.web.ContentType ;
import org.apache.jena.fuseki.HttpNames ;
import org.apache.jena.fuseki.server.CounterName ;
-import org.apache.jena.riot.* ;
-import org.apache.jena.riot.lang.LangRIOT ;
-import org.apache.jena.riot.lang.StreamRDFCounting ;
-import org.apache.jena.riot.system.* ;
+import org.apache.jena.riot.system.IRIResolver ;
import org.slf4j.Logger ;
import org.slf4j.LoggerFactory ;
@@ -106,6 +96,13 @@ public abstract class SPARQL_REST extend
return new Target(true, dsg, null, null) ;
}
+ /** Create a new Target which is like the original but aimed at a different DatasetGraph */
+ static Target retarget(Target target, DatasetGraph dsg) {
+ Target target2 = new Target(target, dsg) ;
+ target2._graph = null ;
+ return target2 ;
+ }
+
private Target(boolean isDefault, DatasetGraph dsg, String name, Node graphName) {
this.isDefault = isDefault ;
this.dsg = dsg ;
@@ -125,6 +122,14 @@ public abstract class SPARQL_REST extend
}
}
+ private Target(Target other, DatasetGraph dsg) {
+ this.isDefault = other.isDefault ;
+ this.dsg = dsg ; //other.dsg ;
+ this._graph = other._graph ;
+ this.name = other.name ;
+ this.graphName = other.graphName ;
+ }
+
/** Get a graph for the action - this may create a graph in the dataset - this is not a test for graph existence */
public Graph graph() {
if ( ! isGraphSet() )
@@ -290,19 +295,6 @@ public abstract class SPARQL_REST extend
protected abstract void doPut(HttpAction action) ;
protected abstract void doOptions(HttpAction action) ;
- // XXX Move to SPARQL_ServletBase
- // Check for all RiotReader
- public static void parse(HttpAction action, StreamRDF dest, InputStream input, Lang lang, String base) {
- // Need to adjust the error handler.
-// try { RDFDataMgr.parse(dest, input, base, lang) ; }
-// catch (RiotException ex) { errorBadRequest("Parse error: "+ex.getMessage()) ; }
- LangRIOT parser = RiotReader.createParser(input, lang, base, dest) ;
- ErrorHandler errorHandler = ErrorHandlerFactory.errorHandlerStd(action.log);
- parser.getProfile().setHandler(errorHandler) ;
- try { parser.parse() ; }
- catch (RiotException ex) { errorBadRequest("Parse error: "+ex.getMessage()) ; }
- }
-
@Override
protected void validate(HttpAction action)
{
@@ -352,86 +344,4 @@ public abstract class SPARQL_REST extend
errorBadRequest("Multiple occurrences of '"+name+"'") ;
return values[0] ;
}
-
- // XXX Where to put this?
- /** Process an HTTP upload of RDF files (triples or quads)
- * Stream straight into a graph or dataset -- unlike SPARQL_Upload the destination is known
- * at the start of the multipart file body
- */
-
- static public void fileUploadWorker(HttpAction action, String base)
- {
- // XXX Extend determineTarget to allow for datasets. Conflict with direct naming?
- Target target = determineTarget(action) ;
-
- String item = (target==null)?"quad":"triple" ;
-
- // Load quads or triples.
- // Caution: if a target grpah is given and then a quads format found,
- // the default graph of the quad steram is sent to the target graph.
- StreamRDF dest =
- (target == null)
- ? StreamRDFLib.dataset(action.getActiveDSG())
- : StreamRDFLib.graph(target.graph()) ;
-
- ServletFileUpload upload = new ServletFileUpload();
- long count = -1 ;
-
- //log.info(format("[%d] Upload: Field=%s ignored", action.id, fieldName)) ;
-
- try {
- FileItemIterator iter = upload.getItemIterator(action.request);
- while (iter.hasNext()) {
- FileItemStream fileStream = iter.next();
- if (fileStream.isFormField())
- errorBadRequest("Only files accept in multipart file upload") ;
- //Ignore the field name.
- //String fieldName = fileStream.getFieldName();
-
- InputStream stream = fileStream.openStream();
- // Process the input stream
- String contentTypeHeader = fileStream.getContentType() ;
- ContentType ct = ContentType.create(contentTypeHeader) ;
- Lang lang = RDFLanguages.contentTypeToLang(ct.getContentType()) ;
-
- if ( lang == null ) {
- String name = fileStream.getName() ;
- if ( name == null || name.equals("") )
- errorBadRequest("No name for content - can't determine RDF syntax") ;
- lang = RDFLanguages.filenameToLang(name) ;
- if (name.endsWith(".gz"))
- stream = new GZIPInputStream(stream);
- }
- if ( lang == null )
- // Desperate.
- lang = RDFLanguages.RDFXML ;
-
- String printfilename = fileStream.getName() ;
- if ( printfilename == null || printfilename.equals("") )
- printfilename = "<none>" ;
-
- // Before
- // action.log.info(format("[%d] Filename: %s, Content-Type=%s, Charset=%s => %s",
- // action.id, printfilename, ct.getContentType(), ct.getCharset(), lang.getName())) ;
-
- StreamRDFCounting countingDest = StreamRDFLib.count(dest) ;
- try {
- SPARQL_REST.parse(action, countingDest, stream, lang, base);
- long c = countingDest.count() ;
-
- action.log.info(format("[%d] Filename: %s, Content-Type=%s, Charset=%s => %s : %d %s%s",
- action.id, printfilename, ct.getContentType(), ct.getCharset(), lang.getName(),
- c, item, (c==1)?"":"s")) ;
- } catch (RiotParseException ex) {
- action.log.info(format("[%d] Filename: %s, Content-Type=%s, Charset=%s => %s : %s",
- action.id, printfilename, ct.getContentType(), ct.getCharset(), lang.getName(),
- ex.getMessage())) ;
- throw ex ;
- }
- }
- }
- catch (ActionErrorException ex) { throw ex ; }
- catch (Exception ex) { errorOccurred(ex) ; }
- }
-
}
Modified: jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST_RW.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST_RW.java?rev=1550784&r1=1550783&r2=1550784&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST_RW.java (original)
+++ jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST_RW.java Fri Dec 13 18:06:35 2013
@@ -36,6 +36,8 @@ import org.apache.jena.riot.system.Strea
import org.apache.jena.web.HttpSC ;
import com.hp.hpl.jena.graph.Graph ;
+import com.hp.hpl.jena.sparql.core.DatasetGraph ;
+import com.hp.hpl.jena.sparql.core.DatasetGraphFactory ;
import com.hp.hpl.jena.sparql.graph.GraphFactory ;
/** The WRITE operations added to the READ operations */
@@ -85,13 +87,6 @@ public class SPARQL_REST_RW extends SPAR
if ( ct == null )
errorBadRequest("No Content-Type:") ;
- // Helper case - if it's a possible HTTP file upload, pretend that's the action.
- if ( WebContent.contentTypeMultiFormData.equalsIgnoreCase(ct.getContentType()) ) {
- String base = wholeRequestURL(action.request) ;
- fileUpload(action, base);
- return ;
- }
-
if ( WebContent.contentTypeMultiMixed.equals(ct.getContentType()) ) {
error(HttpSC.UNSUPPORTED_MEDIA_TYPE_415, "multipart/mixed not supported") ;
}
@@ -144,6 +139,9 @@ public class SPARQL_REST_RW extends SPAR
action.endWrite() ;
}
}
+
+
+
/** Add data where the destination does not support full transactions.
* In particular, with no abort, and actions probably going to the real storage
@@ -187,9 +185,54 @@ public class SPARQL_REST_RW extends SPAR
} finally { action.endWrite() ; }
}
+ private static void uploadNonTxn(HttpAction action, String base) {
+ DatasetGraph dsg = DatasetGraphFactory.createMem() ;
+ // Need temporary destination
+ action.beginWrite() ;
+ try {
+ Target target = determineTarget(action) ;
+ boolean isGraph = (target == null) ;
+ // Load quads or triples.
+ // Caution: if a target graph is given and then a quads format found,
+ // the default graph of the quad steram is sent to the target graph.
+ Target target1 = Target.retarget(target, dsg) ;
+ StreamRDF dest =
+ (target == null)
+ ? StreamRDFLib.dataset(target1.dsg)
+ : StreamRDFLib.graph(target1.graph()) ;
+
+ fileUploadWorker(action, dest, isGraph) ;
+
+ // Copy temp dsg to target.dsg - hopefuly, nothing can go wrong.
+ FusekiLib.addDataInto(dsg, target.dsg);
+ action.commit() ;
+ success(action) ;
+ } catch (Exception ex) {
+ // Something else went wrong. Try to backout (unlikely).
+ try { action.abort() ; } catch (Exception ex2) {}
+ errorOccurred(ex.getMessage()) ;
+ return ;
+ } finally {
+ action.endWrite() ;
+ }
+ }
+
private static void incomingData(HttpAction action, StreamRDF dest) {
- String base = wholeRequestURL(action.request) ;
ContentType ct = FusekiLib.getContentType(action) ;
+
+ if ( WebContent.contentTypeMultiFormData.equalsIgnoreCase(ct.getContentType()) )
+ {
+ boolean isGraph = true ; // Only for the tripels/quads logging.
+ fileUploadWorker(action, dest, isGraph) ;
+ return ;
+ }
+// else
+// incomingDataGraphBody(action, ct, dest) ;
+// }
+//
+// private static void incomingDataGraphBody(HttpAction action, ContentType ct, StreamRDF dest) {
+
+ String base = wholeRequestURL(action.request) ; // XXX Actually wrong?!
Lang lang = RDFLanguages.contentTypeToLang(ct.getContentType()) ;
if ( lang == null ) {
errorBadRequest("Unknown content type for triples: " + ct) ;
@@ -209,60 +252,10 @@ public class SPARQL_REST_RW extends SPAR
ct.getCharset(), lang.getName())) ;
}
- parse(action, dest, input, lang, base) ;
+ ActionSPARQL.parse(action, dest, input, lang, base) ;
}
- static public void fileUpload(HttpAction action, String base)
- {
- if ( action.isTransactional() )
- uploadTxn(action, base) ;
- else
- uploadNonTxn(action, base) ;
- }
-
- /** Non-transaction - buffer to a temporary graph so that parse errors
- * are caught before inserting any data.
- */
- private static void uploadNonTxn(HttpAction action, String base) {
- System.err.println("Dangerous fake") ;
- // Need tempoary destination
- action.beginWrite() ;
- fileUploadWorker(action, base) ;
- action.commit() ;
- // XXX
-// Pair<String, Graph> p = null ;
-// String graphName = p.getLeft() ;
-// Graph graphTmp = p.getRight() ;
-// long tripleCount = graphTmp.size() ;
-//
-// action.log.info(format("[%d] Upload: Graph: %s (%d triple(s))",
-// action.id, graphName, tripleCount)) ;
-//
-// Node gn = graphName.equals(HttpNames.valueDefault)
-// ? Quad.defaultGraphNodeGenerated
-// : NodeFactory.createURI(graphName) ;
-//
-// action.beginWrite() ;
-// try {
-// FusekiLib.addDataInto(graphTmp, action.getActiveDSG(), gn) ;
-// action.commit() ;
-// return ;
-// } catch (RuntimeException ex)
-// {
-// // If anything went wrong, try to backout.
-// try { action.abort() ; } catch (Exception ex2) {}
-// errorOccurred(ex.getMessage()) ;
-// return ;
-// }
-// finally { action.endWrite() ; }
- }
-
- /** Transactional - data to go straight to the destination, with an abort on parse error.
- */
- private static void uploadTxn(HttpAction action, String base) {
- fileUploadWorker(action, base) ;
- }
-
+ // XXX Tests for file upload.
protected static void deleteGraph(HttpAction action) {
Target target = determineTarget(action) ;
Modified: jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Upload.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Upload.java?rev=1550784&r1=1550783&r2=1550784&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Upload.java (original)
+++ jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Upload.java Fri Dec 13 18:06:35 2013
@@ -241,7 +241,7 @@ public class SPARQL_Upload extends Actio
StreamRDF x = StreamRDFLib.graph(graphTmp) ;
StreamRDFCounting dest = StreamRDFLib.count(x) ;
- SPARQL_REST.parse(action, dest, stream, lang, base);
+ ActionSPARQL.parse(action, dest, stream, lang, base);
count = dest.count() ;
}
}
Modified: jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/ServletBase.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/ServletBase.java?rev=1550784&r1=1550783&r2=1550784&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/ServletBase.java (original)
+++ jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/ServletBase.java Fri Dec 13 18:06:35 2013
@@ -31,8 +31,8 @@ import org.apache.jena.fuseki.Fuseki ;
import org.apache.jena.fuseki.HttpNames ;
import org.apache.jena.web.HttpSC ;
+//
public abstract class ServletBase extends HttpServlet {
- public final boolean verboseLogging = Fuseki.verboseLogging ;
private static AtomicLong requestIdAlloc = new AtomicLong(0) ;
protected ServletBase() {}
@@ -47,7 +47,7 @@ public abstract class ServletBase extend
* HTTP Response
* @return Request ID
*/
- protected long allocRequestId(HttpServletRequest request, HttpServletResponse response) {
+ protected static long allocRequestId(HttpServletRequest request, HttpServletResponse response) {
long id = requestIdAlloc.incrementAndGet() ;
addRequestId(response, id) ;
return id ;
@@ -61,11 +61,11 @@ public abstract class ServletBase extend
* @param id
* Request ID
*/
- protected void addRequestId(HttpServletResponse response, long id) {
+ protected static void addRequestId(HttpServletResponse response, long id) {
response.addHeader("Fuseki-Request-ID", Long.toString(id)) ;
}
- protected void responseSendError(HttpServletResponse response, int statusCode, String message) {
+ protected static void responseSendError(HttpServletResponse response, int statusCode, String message) {
try {
response.sendError(statusCode, message) ;
} catch (IOException ex) {
@@ -73,7 +73,7 @@ public abstract class ServletBase extend
} catch (IllegalStateException ex) {}
}
- protected void responseSendError(HttpServletResponse response, int statusCode) {
+ protected static void responseSendError(HttpServletResponse response, int statusCode) {
try {
response.sendError(statusCode) ;
} catch (IOException ex) {
@@ -136,11 +136,11 @@ public abstract class ServletBase extend
}
}
- protected void warning(HttpAction action, String string) {
+ protected static void warning(HttpAction action, String string) {
action.log.warn(string) ;
}
- protected void warning(HttpAction action, String string, Throwable thorwable) {
+ protected static void warning(HttpAction action, String string, Throwable thorwable) {
action.log.warn(string, thorwable) ;
}
Modified: jena/branches/jena-fuseki-new-ui/src/test/java/org/apache/jena/fuseki/ServerTest.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/test/java/org/apache/jena/fuseki/ServerTest.java?rev=1550784&r1=1550783&r2=1550784&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/test/java/org/apache/jena/fuseki/ServerTest.java (original)
+++ jena/branches/jena-fuseki-new-ui/src/test/java/org/apache/jena/fuseki/ServerTest.java Fri Dec 13 18:06:35 2013
@@ -18,6 +18,9 @@
package org.apache.jena.fuseki;
+import java.util.Collection ;
+
+import org.apache.jena.fuseki.server.DatasetRegistry ;
import org.apache.jena.fuseki.server.FusekiConfig ;
import org.apache.jena.fuseki.server.SPARQLServer ;
import org.apache.jena.fuseki.server.ServerConfig ;
@@ -109,7 +112,12 @@ public class ServerTest
if ( server != null )
server.stop() ;
server = null ;
+ // Clear out the registry.
+ Collection<String> keys = DatasetRegistry.get().keys() ;
+ for ( String k : keys )
+ DatasetRegistry.get().remove(k);
}
+
public static void resetServer()
{
Update clearRequest = new UpdateDrop(Target.ALL) ;