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/11/26 21:32:24 UTC
svn commit: r1545822 - in
/jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/mgt:
DatasetsCollectionServlet.java DescriptionServlet.java JsonDescription.java
Author: andy
Date: Tue Nov 26 20:32:24 2013
New Revision: 1545822
URL: http://svn.apache.org/r1545822
Log:
Refinement of /$/datasets
Modified:
jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/mgt/DatasetsCollectionServlet.java
jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/mgt/DescriptionServlet.java
jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/mgt/JsonDescription.java
Modified: jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/mgt/DatasetsCollectionServlet.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/mgt/DatasetsCollectionServlet.java?rev=1545822&r1=1545821&r2=1545822&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/mgt/DatasetsCollectionServlet.java (original)
+++ jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/mgt/DatasetsCollectionServlet.java Tue Nov 26 20:32:24 2013
@@ -81,42 +81,66 @@ public class DatasetsCollectionServlet e
}
@Override
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- String name = request.getRequestURI() ;
- int idx = name.lastIndexOf('/') ;
- name = name.substring(idx) ;
- String datasetPath = DatasetRef.canocialDatasetPath(name) ;
- DatasetRef dsDesc = DatasetRegistry.get().get(datasetPath) ;
- if ( dsDesc == null )
- errorNotFound("Not found: "+name);
+ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ try {
+ execGet(request, response) ;
+ } catch (ActionErrorException ex) {
+ if ( ex.exception != null )
+ ex.exception.printStackTrace(System.err) ;
+ // XXX Log message done by printResponse in a moment.
+ if ( ex.message != null )
+ responseSendError(response, ex.rc, ex.message) ;
+ else
+ responseSendError(response, ex.rc) ;
+ }
+ }
+ protected void execGet(HttpServletRequest request, HttpServletResponse response) {
JsonBuilder builder = new JsonBuilder() ;
- JsonDescription.describe(builder, dsDesc) ;
+ String pathInfo = request.getPathInfo() ;
+ if ( pathInfo == null || pathInfo.isEmpty() || pathInfo.equals("/") ) {
+ // All
+
+ builder.startObject() ;
+ builder.key("datasets") ;
+ JsonDescription.arrayDatasets(builder, DatasetRegistry.get());
+ builder.finishObject() ;
+ } else {
+ String name = pathInfo ; // request.getRequestURI() ;
+ int idx = pathInfo.lastIndexOf('/') ;
+ if ( idx > 0 )
+ name = name.substring(idx) ;
+ String datasetPath = DatasetRef.canocialDatasetPath(name) ;
+ DatasetRef dsDesc = DatasetRegistry.get().get(datasetPath) ;
+ if ( dsDesc == null )
+ errorNotFound("Not found: dataset "+name);
+ JsonDescription.describe(builder, dsDesc) ;
+ }
JsonValue v = builder.build() ;
- ServletOutputStream out = response.getOutputStream() ;
- response.setContentType(WebContent.contentTypeJSON);
- response.setCharacterEncoding(WebContent.charsetUTF8) ;
- JSON.write(out, v) ;
- out.println() ;
- out.flush() ;
+ try {
+ ServletOutputStream out = response.getOutputStream() ;
+ response.setContentType(WebContent.contentTypeJSON);
+ response.setCharacterEncoding(WebContent.charsetUTF8) ;
+ JSON.write(out, v) ;
+ out.println() ;
+ out.flush() ;
+ } catch (IOException ex) { errorOccurred(ex) ; }
}
-
+
protected void execPost(HttpServletRequest request, HttpServletResponse response) {
+ String pathInfo = request.getPathInfo() ;
+ if ( pathInfo != null && ! pathInfo.isEmpty() && ! pathInfo.equals("/") ) {
+ // Can only POST to the container.
+ errorNotFound("Not found") ;
+ return ;
+ }
+
Model m = ModelFactory.createDefaultModel() ;
StreamRDF dest = StreamRDFLib.graph(m.getGraph()) ;
bodyAsGraph(request, dest) ;
Resource t = m.createResource("http://jena.apache.org/fuseki#Service") ;
List<Resource> services = getByType(t, m) ;
-// ResultSet rs = query("SELECT * { ?service rdf:type fuseki:Service }", m) ;
-// List<Resource> services = new ArrayList<Resource>() ;
-// for ( ; rs.hasNext() ; )
-// {
-// QuerySolution soln = rs.next() ;
-// Resource svc = soln.getResource("service") ;
-// services.add(svc) ;
-// }
-
if ( services.size() == 0 ) {
log.error("No services found") ;
throw new FusekiConfigException() ;
@@ -139,13 +163,6 @@ public class DatasetsCollectionServlet e
SPARQLServer.registerDataset(datasetPath, dsDesc) ;
}
-// @Override
-// protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException
-// {
-//
-// }
-
-
// XXX Merge with SPARQL_REST_RW.incomingData
protected static ErrorHandler errorHandler = ErrorHandlerFactory.errorHandlerStd(log) ;
Modified: jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/mgt/DescriptionServlet.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/mgt/DescriptionServlet.java?rev=1545822&r1=1545821&r2=1545822&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/mgt/DescriptionServlet.java (original)
+++ jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/mgt/DescriptionServlet.java Tue Nov 26 20:32:24 2013
@@ -30,7 +30,6 @@ import org.apache.jena.atlas.json.JSON ;
import org.apache.jena.atlas.json.JsonBuilder ;
import org.apache.jena.atlas.json.JsonValue ;
import org.apache.jena.fuseki.Fuseki ;
-import org.apache.jena.fuseki.server.DatasetRef ;
import org.apache.jena.fuseki.server.DatasetRegistry ;
import org.apache.jena.riot.WebContent ;
import org.apache.jena.web.HttpSC ;
@@ -58,8 +57,7 @@ public class DescriptionServlet extends
}
}
- private void description(HttpServletRequest req, HttpServletResponse resp) throws IOException
- {
+ private void description(HttpServletRequest req, HttpServletResponse resp) throws IOException {
ServletOutputStream out = resp.getOutputStream() ;
resp.setContentType(WebContent.contentTypeJSON);
resp.setCharacterEncoding(WebContent.charsetUTF8) ;
@@ -93,18 +91,13 @@ public class DescriptionServlet extends
.key("version").value(Fuseki.VERSION) ;
}
- private int port(Server jettyServer ) {
+ private int port(Server jettyServer) {
return jettyServer.getConnectors()[0].getPort() ;
}
private void describeDataset(JsonBuilder builder) {
builder.key("datasets") ;
- builder.startArray() ;
- for ( String ds : DatasetRegistry.get().keys() ) {
- DatasetRef desc = DatasetRegistry.get().get(ds) ;
- JsonDescription.describe(builder, desc) ;
- }
- builder.finishArray() ;
+ JsonDescription.arrayDatasets(builder, DatasetRegistry.get());
}
}
Modified: jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/mgt/JsonDescription.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/mgt/JsonDescription.java?rev=1545822&r1=1545821&r2=1545822&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/mgt/JsonDescription.java (original)
+++ jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/mgt/JsonDescription.java Tue Nov 26 20:32:24 2013
@@ -20,6 +20,7 @@ package org.apache.jena.fuseki.mgt;
import org.apache.jena.atlas.json.JsonBuilder ;
import org.apache.jena.fuseki.server.DatasetRef ;
+import org.apache.jena.fuseki.server.DatasetRegistry ;
import org.apache.jena.fuseki.server.ServiceRef ;
/** Create a description of a service */
@@ -31,7 +32,16 @@ public class JsonDescription {
static final String srvType = "srv.type" ;
static final String srvEndpoints = "srv.endpoints" ;
- static void describe(JsonBuilder builder, ServiceRef serviceref) {
+ public static void arrayDatasets(JsonBuilder builder, DatasetRegistry registry) {
+ builder.startArray() ;
+ for ( String ds : registry.keys() ) {
+ DatasetRef desc = DatasetRegistry.get().get(ds) ;
+ JsonDescription.describe(builder, desc) ;
+ }
+ builder.finishArray() ;
+ }
+
+ public static void describe(JsonBuilder builder, ServiceRef serviceref) {
builder.startObject() ;
builder.key(srvType).value(serviceref.name) ;
@@ -45,7 +55,7 @@ public class JsonDescription {
builder.finishObject() ;
}
- static void describe(JsonBuilder builder, DatasetRef ds) {
+ public static void describe(JsonBuilder builder, DatasetRef ds) {
builder.startObject() ;