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 2015/10/23 22:38:02 UTC
[01/13] jena git commit: Correct access visibility.
Repository: jena
Updated Branches:
refs/heads/master 3d8cbbdf7 -> 85b722be1
Correct access visibility.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/70db5e16
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/70db5e16
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/70db5e16
Branch: refs/heads/master
Commit: 70db5e16e84e7d513118cad2ff95a205c37173ed
Parents: 3d8cbbd
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Oct 23 10:52:08 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Oct 23 10:52:08 2015 +0100
----------------------------------------------------------------------
.../src/main/java/org/apache/jena/riot/system/IRIResolver.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/70db5e16/jena-arq/src/main/java/org/apache/jena/riot/system/IRIResolver.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/system/IRIResolver.java b/jena-arq/src/main/java/org/apache/jena/riot/system/IRIResolver.java
index ecd581a..5887c76 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/system/IRIResolver.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/system/IRIResolver.java
@@ -443,7 +443,7 @@ public abstract class IRIResolver
}
@Override
- public IRI getBaseIRI() {
+ protected IRI getBaseIRI() {
return base ;
}
[05/13] jena git commit: Typo
Posted by an...@apache.org.
Typo
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/aa5337bb
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/aa5337bb
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/aa5337bb
Branch: refs/heads/master
Commit: aa5337bb170dcdccfa134fa9c233da7170a73850
Parents: 1e58470
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Oct 23 17:32:10 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Oct 23 17:32:10 2015 +0100
----------------------------------------------------------------------
.../src/main/java/org/apache/jena/fuseki/server/DataService.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/aa5337bb/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/DataService.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/DataService.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/DataService.java
index bf341a2..a8610c4 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/DataService.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/DataService.java
@@ -90,7 +90,7 @@ public class DataService { //implements DatasetMXBean {
}
/** Return the OperationNames available here.
- * @see #getOperation(OperationName) to ge the endpoint list
+ * @see #getOperation(OperationName) to get the endpoint list
*/
public Collection<OperationName> getOperations() {
return operations.keySet() ;
[08/13] jena git commit: Tidy tests.
Posted by an...@apache.org.
Tidy tests.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/9af00abf
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/9af00abf
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/9af00abf
Branch: refs/heads/master
Commit: 9af00abf079c6b025b155ec2b739b3ee28b303ef
Parents: 33bb6a8
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Oct 23 17:35:06 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Oct 23 17:35:06 2015 +0100
----------------------------------------------------------------------
.../java/org/apache/jena/fuseki/FusekiTest.java | 106 +++++++++++++++++++
.../java/org/apache/jena/fuseki/ServerTest.java | 17 +--
.../java/org/apache/jena/fuseki/TestAdmin.java | 61 ++---------
.../java/org/apache/jena/fuseki/TestAuth.java | 2 +-
.../org/apache/jena/fuseki/TestDatasetOps.java | 8 +-
.../org/apache/jena/fuseki/TestFileUpload.java | 22 ++--
.../java/org/apache/jena/fuseki/TestQuery.java | 11 +-
.../apache/jena/fuseki/TestSPARQLProtocol.java | 3 +-
.../fuseki/http/TestDatasetAccessorHTTP.java | 27 ++---
.../http/TestDatasetGraphAccessorHTTP.java | 2 +-
.../org/apache/jena/fuseki/http/TestHttpOp.java | 38 +++----
11 files changed, 172 insertions(+), 125 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/9af00abf/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/FusekiTest.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/FusekiTest.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/FusekiTest.java
new file mode 100644
index 0000000..441d7f0
--- /dev/null
+++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/FusekiTest.java
@@ -0,0 +1,106 @@
+/**
+ * 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 java.io.IOException ;
+import java.util.Objects ;
+
+import org.apache.http.HttpResponse ;
+import org.apache.http.StatusLine ;
+import org.apache.http.client.HttpClient ;
+import org.apache.http.client.methods.HttpOptions ;
+import org.apache.http.client.methods.HttpUriRequest ;
+import org.apache.http.impl.client.SystemDefaultHttpClient ;
+import org.apache.http.protocol.HttpContext ;
+import org.apache.http.util.EntityUtils ;
+import org.apache.jena.atlas.web.HttpException ;
+import org.apache.jena.riot.web.HttpNames ;
+import org.apache.jena.riot.web.HttpResponseHandler ;
+import org.apache.jena.riot.web.HttpResponseLib ;
+import org.apache.jena.web.HttpSC ;
+import org.junit.Assert ;
+
+public class FusekiTest {
+
+ /** Check whether str is a comma separated list of expected (unordered) */
+ public static void assertStringList(String str, String... expected) {
+ str = str.replace(" ", "") ;
+ String[] x = str.split(",") ;
+ int count = 0 ;
+ for ( String ex : expected ) {
+ Assert.assertTrue("Got: "+str+" - Does not contain "+ex, containsStr(ex, x)) ;
+ }
+ for ( String s : x ) {
+ Assert.assertTrue("Got: "+str+" - Not expected "+s, containsStr(s, expected)) ;
+ }
+ }
+
+ /** Is v in the list of strings? */
+ public static boolean containsStr(String v, String[] strings) {
+ for ( String s: strings ) {
+ if ( Objects.equals(v, s))
+ return true ;
+ }
+ return false ;
+ }
+
+ /** Do an HTTP Options. */
+ public static String execOptions(String url) {
+ try {
+ // Prepare and execute
+ HttpResponseHandler handler = HttpResponseLib.nullResponse ;
+ HttpClient httpClient = new SystemDefaultHttpClient() ;
+ HttpUriRequest request = new HttpOptions(url) ;
+ HttpResponse response = httpClient.execute(request, (HttpContext)null);
+
+ // Response
+ StatusLine statusLine = response.getStatusLine();
+ int statusCode = statusLine.getStatusCode();
+ if (HttpSC.isClientError(statusCode) || HttpSC.isServerError(statusCode)) {
+ // Error responses can have bodies so it is important to clear up.
+ String contentPayload = "" ;
+ if ( response.getEntity() != null )
+ contentPayload = EntityUtils.toString(response.getEntity()) ;
+ throw new HttpException(statusLine.getStatusCode(), statusLine.getReasonPhrase(), contentPayload);
+ }
+ if (handler != null)
+ handler.handle(url, response);
+ return response.getFirstHeader(HttpNames.hAllow).getValue() ;
+ } catch (IOException ex) {
+ throw new HttpException(ex);
+ }
+ }
+
+ public static void exec404(Runnable action) {
+ execWithHttpException(HttpSC.NOT_FOUND_404, action) ;
+ }
+
+ public static void execWithHttpException(int statusCode, Runnable action) {
+ try {
+ action.run();
+ Assert.fail("Expected HttpException") ;
+ } catch (HttpException ex) {
+ // -1 : any status code in HttpException
+ if ( statusCode > 0 )
+ Assert.assertEquals(statusCode, ex.getResponseCode()) ;
+
+ }
+ }
+}
+
http://git-wip-us.apache.org/repos/asf/jena/blob/9af00abf/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/ServerTest.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/ServerTest.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/ServerTest.java
index 5e916ac..bbe0db7 100644
--- a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/ServerTest.java
+++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/ServerTest.java
@@ -59,7 +59,7 @@ public class ServerTest {
public static final String urlDataset = "http://localhost:" + port + datasetPath ;
public static final String serviceUpdate = urlDataset + "/update" ;
public static final String serviceQuery = urlDataset + "/query" ;
- public static final String serviceREST = urlDataset + "/data" ;
+ public static final String serviceGSP = urlDataset + "/data" ;
public static final String gn1 = "http://graph/1" ;
public static final String gn2 = "http://graph/2" ;
@@ -85,8 +85,12 @@ public class ServerTest {
// static { allocServer() ; }
static public void allocServer() {
+ allocServer(true) ;
+ }
+
+ static public void allocServer(boolean updateable) {
if ( countServer == 0 )
- setupServer() ;
+ setupServer(updateable) ;
countServer++ ;
}
@@ -98,16 +102,16 @@ public class ServerTest {
}
}
- protected static void setupServer() {
+ protected static void setupServer(boolean updateable) {
FusekiEnv.FUSEKI_HOME = Paths.get(TS_Fuseki.FusekiTestHome).toAbsolutePath() ;
FileOps.ensureDir("target");
FileOps.ensureDir(TS_Fuseki.FusekiTestHome);
FileOps.ensureDir(TS_Fuseki.FusekiTestBase) ;
FusekiEnv.FUSEKI_BASE = Paths.get(TS_Fuseki.FusekiTestBase).toAbsolutePath() ;
- setupServer(ServerTest.port, null, ServerTest.datasetPath) ;
+ setupServer(ServerTest.port, null, ServerTest.datasetPath, updateable) ;
}
- protected static void setupServer(int port, String authConfigFile, String datasetPath) {
+ protected static void setupServer(int port, String authConfigFile, String datasetPath, boolean updateable) {
SystemState.location = Location.mem() ;
SystemState.init$() ;
@@ -115,7 +119,8 @@ public class ServerTest {
DatasetGraph dsg = DatasetGraphFactory.createMem() ;
params.dsg = dsg ;
params.datasetPath = datasetPath ;
- params.allowUpdate = true ;
+ params.allowUpdate = updateable ;
+
FusekiServerListener.initialSetup = params ;
JettyServerConfig config = make(port, true, true) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/9af00abf/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestAdmin.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestAdmin.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestAdmin.java
index 17bc77f..2a2e46a 100644
--- a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestAdmin.java
+++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestAdmin.java
@@ -40,7 +40,6 @@ import org.apache.jena.atlas.json.JSON ;
import org.apache.jena.atlas.json.JsonArray ;
import org.apache.jena.atlas.json.JsonObject ;
import org.apache.jena.atlas.json.JsonValue ;
-import org.apache.jena.atlas.junit.BaseTest ;
import org.apache.jena.atlas.lib.Lib ;
import org.apache.jena.atlas.web.HttpException ;
import org.apache.jena.atlas.web.TypedInputStream ;
@@ -49,30 +48,14 @@ import org.apache.jena.riot.WebContent ;
import org.apache.jena.riot.web.HttpOp ;
import org.apache.jena.riot.web.HttpResponseHandler ;
import org.apache.jena.web.HttpSC ;
-import org.junit.After ;
-import org.junit.AfterClass ;
-import org.junit.Before ;
import org.junit.Test ;
/** Tests of the admin functionality */
-public class TestAdmin extends BaseTest {
+public class TestAdmin extends AbstractFusekiTest {
// Name of the dataset in the assembler file.
static String dsTest = "test-ds2" ;
- @Before public void beforeTest() {
- ServerTest.allocServer() ;
- ServerTest.resetServer() ;
- }
-
- @After public void afterTest() {
- ServerTest.freeServer() ;
- }
-
- @AfterClass public static void afterClass() {
- ServerTest.teardownServer() ;
- }
-
// --- Ping
@Test public void ping_1() {
@@ -120,11 +103,7 @@ public class TestAdmin extends BaseTest {
// Specific dataset
@Test public void list_datasets_4() {
- try {
- getDatasetDescription("does-not-exist") ;
- } catch (HttpException ex) {
- assertEquals(HttpSC.NOT_FOUND_404, ex.getResponseCode()) ;
- }
+ FusekiTest.exec404( () -> getDatasetDescription("does-not-exist") ) ;
}
// Specific dataset
@@ -184,12 +163,7 @@ public class TestAdmin extends BaseTest {
@Test public void delete_dataset_1() {
String name = "NoSuchDataset" ;
- try {
- execHttpDelete(ServerTest.urlRoot+"$/"+opDatasets+"/"+name) ;
- fail("delete did not cause an Http Exception") ;
- } catch ( HttpException ex ) {
- assertEquals(HttpSC.NOT_FOUND_404, ex.getResponseCode()) ;
- }
+ FusekiTest.exec404( ()-> execHttpDelete(ServerTest.urlRoot+"$/"+opDatasets+"/"+name) ) ;
}
// ---- Active/Offline.
@@ -218,9 +192,7 @@ public class TestAdmin extends BaseTest {
@Test public void state_3() {
addTestDataset() ;
- try {
- execHttpPost(ServerTest.urlRoot+"$/"+opDatasets+"/DoesNotExist?state=offline", null) ;
- } catch (HttpException ex) { assertEquals(HttpSC.NOT_FOUND_404, ex.getResponseCode()) ; }
+ FusekiTest.exec404(()->execHttpPost(ServerTest.urlRoot+"$/"+opDatasets+"/DoesNotExist?state=offline", null)) ;
deleteDataset(dsTest) ;
}
@@ -244,10 +216,9 @@ public class TestAdmin extends BaseTest {
@Test public void stats_3() {
addTestDataset() ;
- try {
+ FusekiTest.exec404(()->{
JsonValue v = execGetJSON(urlRoot+"$/"+opStats+"/DoesNotExist") ;
- checkJsonStatsAll(v);
- } catch (HttpException ex) { assertEquals(HttpSC.NOT_FOUND_404, ex.getResponseCode()); }
+ }) ;
deleteDataset(dsTest) ;
}
@@ -262,11 +233,7 @@ public class TestAdmin extends BaseTest {
@Test public void task_2() {
String x = "NoSuchTask" ;
String url = urlRoot+"$/tasks/"+x ;
- try {
- httpGetJson(url) ;
- } catch (HttpException ex) {
- assertEquals(404, ex.getResponseCode()) ;
- }
+ FusekiTest.exec404(()->httpGetJson(url) ) ;
try {
checkInTasks(x) ;
fail("No failure!") ;
@@ -454,18 +421,10 @@ private static void deleteDataset(String name) {
}
private static void checkNotThere(String name) {
- if ( name.startsWith("/") )
- name = name.substring(1) ;
+ String n = (name.startsWith("/")) ? name.substring(1) : name ;
// Check gone exists.
- try { adminPing(name) ; }
- catch (HttpException ex) {
- assertEquals(HttpSC.NOT_FOUND_404, ex.getResponseCode()) ;
- }
-
- try { askPing(name) ; }
- catch (HttpException ex) {
- assertEquals(HttpSC.NOT_FOUND_404, ex.getResponseCode()) ;
- }
+ FusekiTest.exec404(()-> adminPing(n) ) ;
+ FusekiTest.exec404(() -> askPing(n) ) ;
}
private static void checkJsonDatasetsAll(JsonValue v) {
http://git-wip-us.apache.org/repos/asf/jena/blob/9af00abf/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestAuth.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestAuth.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestAuth.java
index cef7a22..a5158d2 100644
--- a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestAuth.java
+++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestAuth.java
@@ -82,7 +82,7 @@ public class TestAuth {
LogCtl.logLevel(Fuseki.actionLog.getName(), org.apache.log4j.Level.WARN, java.util.logging.Level.WARNING);
LogCtl.logLevel("org.eclipse.jetty", org.apache.log4j.Level.WARN, java.util.logging.Level.WARNING);
- ServerTest.setupServer(authPort, realmFile.getAbsolutePath(), authDatasetPath);
+ ServerTest.setupServer(authPort, realmFile.getAbsolutePath(), authDatasetPath, true);
}
/**
http://git-wip-us.apache.org/repos/asf/jena/blob/9af00abf/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestDatasetOps.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestDatasetOps.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestDatasetOps.java
index 7107310..179a020 100644
--- a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestDatasetOps.java
+++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestDatasetOps.java
@@ -19,7 +19,7 @@
package org.apache.jena.fuseki;
import static org.apache.jena.fuseki.ServerTest.serviceQuery ;
-import static org.apache.jena.fuseki.ServerTest.serviceREST ;
+import static org.apache.jena.fuseki.ServerTest.serviceGSP ;
import static org.apache.jena.fuseki.ServerTest.urlDataset ;
import org.apache.http.HttpEntity ;
import org.apache.http.entity.EntityTemplate ;
@@ -65,15 +65,15 @@ public class TestDatasetOps extends AbstractFusekiTest
}
@Test public void gsp_x_02() {
- gsp_x(urlDataset, serviceREST) ;
+ gsp_x(urlDataset, serviceGSP) ;
}
@Test public void gsp_x_03() {
- gsp_x(serviceREST, urlDataset) ;
+ gsp_x(serviceGSP, urlDataset) ;
}
@Test public void gsp_x_04() {
- gsp_x(serviceREST, urlDataset) ;
+ gsp_x(serviceGSP, urlDataset) ;
}
private void gsp_x(String outward, String inward) {
http://git-wip-us.apache.org/repos/asf/jena/blob/9af00abf/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestFileUpload.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestFileUpload.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestFileUpload.java
index eb96560..d351c7d 100644
--- a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestFileUpload.java
+++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestFileUpload.java
@@ -18,7 +18,7 @@
package org.apache.jena.fuseki;
-import static org.apache.jena.fuseki.ServerTest.serviceREST ;
+import static org.apache.jena.fuseki.ServerTest.serviceGSP ;
import org.apache.jena.atlas.web.TypedInputStream ;
import org.apache.jena.fuseki.http.TestDatasetAccessorHTTP ;
import org.apache.jena.fuseki.http.TestHttpOp ;
@@ -42,12 +42,12 @@ public class TestFileUpload extends AbstractFusekiTest
{
@Test public void upload_gsp_01()
{
- FileSender x = new FileSender(ServerTest.serviceREST+"?default") ;
+ FileSender x = new FileSender(serviceGSP+"?default") ;
x.add("D.ttl", "<http://example/s> <http://example/p> <http://example/o> .", "text/turtle") ;
x.send("POST") ;
Model m = ModelFactory.createDefaultModel() ;
- TypedInputStream in = HttpOp.execHttpGet(serviceREST, "text/turtle") ;
+ TypedInputStream in = HttpOp.execHttpGet(serviceGSP, "text/turtle") ;
RDFDataMgr.read(m, in, RDFLanguages.contentTypeToLang(in.getMediaType()) ) ;
// which is is effectively :
// DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceREST) ;
@@ -57,13 +57,13 @@ public class TestFileUpload extends AbstractFusekiTest
@Test public void upload_gsp_02()
{
- FileSender x = new FileSender(ServerTest.serviceREST+"?default") ;
+ FileSender x = new FileSender(ServerTest.serviceGSP+"?default") ;
x.add("D.ttl", "<http://example/s> <http://example/p> 123 .", "text/turtle") ;
x.add("D.nt", "<http://example/s> <http://example/p> <http://example/o-456> .", "application/n-triples") ;
x.send("PUT") ;
// BUG
- DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceREST) ;
+ DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceGSP) ;
Model m = du.getModel() ;
assertEquals(2, m.size()) ;
}
@@ -71,12 +71,12 @@ public class TestFileUpload extends AbstractFusekiTest
// Extension of GSP - no graph selector => dataset
@Test public void upload_gsp_03()
{
- FileSender x = new FileSender(ServerTest.serviceREST) ;
+ FileSender x = new FileSender(ServerTest.serviceGSP) ;
x.add("D.ttl", "<http://example/s> <http://example/p> <http://example/o> .", "text/turtle") ;
x.add("D.trig", "<http://example/g> { <http://example/s> <http://example/p> <http://example/o> }", "text/trig") ;
x.send("POST") ;
- DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceREST) ;
+ DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceGSP) ;
Model m = du.getModel() ;
assertEquals(1, m.size()) ;
}
@@ -84,7 +84,7 @@ public class TestFileUpload extends AbstractFusekiTest
@Test public void upload_gsp_04()
{
{
- DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceREST) ;
+ DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceGSP) ;
Model m = du.getModel() ;
assertEquals(0, m.size()) ;
}
@@ -93,7 +93,7 @@ public class TestFileUpload extends AbstractFusekiTest
x.add("D.trig", "<http://example/g> { <http://example/s> <http://example/p> 123,456 }", "text/plain") ;
x.send("POST") ;
- DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceREST) ;
+ DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceGSP) ;
Model m = du.getModel() ;
assertEquals(1, m.size()) ;
m = du.getModel("http://example/g") ;
@@ -107,7 +107,7 @@ public class TestFileUpload extends AbstractFusekiTest
x.add("D.nq", "", "application/-n-quads") ;
x.send("PUT") ;
- DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceREST) ;
+ DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceGSP) ;
Model m = du.getModel() ;
assertEquals(0, m.size()) ;
}
@@ -117,7 +117,7 @@ public class TestFileUpload extends AbstractFusekiTest
x.add("D.nq", "<http://example/s> <http://example/p> <http://example/o-456> <http://example/g> .", "application/n-quads") ;
x.send("PUT") ;
- DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceREST) ;
+ DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceGSP) ;
Model m = du.getModel("http://example/g") ;
assertEquals(1, m.size()) ;
m = du.getModel() ;
http://git-wip-us.apache.org/repos/asf/jena/blob/9af00abf/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestQuery.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestQuery.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestQuery.java
index 08c837d..3a47102 100644
--- a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestQuery.java
+++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestQuery.java
@@ -23,7 +23,7 @@ import static org.apache.jena.fuseki.ServerTest.gn2 ;
import static org.apache.jena.fuseki.ServerTest.model1 ;
import static org.apache.jena.fuseki.ServerTest.model2 ;
import static org.apache.jena.fuseki.ServerTest.serviceQuery ;
-import static org.apache.jena.fuseki.ServerTest.serviceREST ;
+import static org.apache.jena.fuseki.ServerTest.serviceGSP ;
import java.io.IOException ;
import java.net.HttpURLConnection ;
@@ -61,15 +61,14 @@ public class TestQuery extends BaseTest {
@BeforeClass
public static void beforeClass() {
ServerTest.allocServer() ;
- ServerTest.resetServer() ;
- DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceREST) ;
+ DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceGSP) ;
du.putModel(model1) ;
du.putModel(gn1, model2) ;
}
@AfterClass
public static void afterClass() {
- DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceREST) ;
+ DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceGSP) ;
du.deleteDefault() ;
ServerTest.freeServer() ;
}
@@ -111,7 +110,7 @@ public class TestQuery extends BaseTest {
@Test
public void query_dynamic_dataset_01() {
- DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceREST) ;
+ DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceGSP) ;
du.putModel(model1);
du.putModel(gn1, model2);
{
@@ -136,7 +135,7 @@ public class TestQuery extends BaseTest {
@Test
public void query_dynamic_dataset_02() {
- DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceREST) ;
+ DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceGSP) ;
du.putModel(model1);
du.putModel(gn1, model1);
du.putModel(gn2, model2);
http://git-wip-us.apache.org/repos/asf/jena/blob/9af00abf/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestSPARQLProtocol.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestSPARQLProtocol.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestSPARQLProtocol.java
index bd53495..32bc663 100644
--- a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestSPARQLProtocol.java
+++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestSPARQLProtocol.java
@@ -37,9 +37,8 @@ public class TestSPARQLProtocol extends BaseTest
@BeforeClass
public static void beforeClass() {
ServerTest.allocServer();
- ServerTest.resetServer();
// Load some data.
- DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceREST);
+ DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceGSP);
du.putModel(model1);
du.putModel(gn1, model2);
}
http://git-wip-us.apache.org/repos/asf/jena/blob/9af00abf/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestDatasetAccessorHTTP.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestDatasetAccessorHTTP.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestDatasetAccessorHTTP.java
index d7056d3..457ab96 100644
--- a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestDatasetAccessorHTTP.java
+++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestDatasetAccessorHTTP.java
@@ -21,6 +21,7 @@ package org.apache.jena.fuseki.http;
import static org.apache.jena.fuseki.ServerTest.* ;
import org.apache.jena.atlas.junit.BaseTest ;
import org.apache.jena.atlas.web.HttpException ;
+import org.apache.jena.fuseki.FusekiTest ;
import org.apache.jena.fuseki.ServerTest ;
import org.apache.jena.query.DatasetAccessor ;
import org.apache.jena.query.DatasetAccessorFactory ;
@@ -39,7 +40,7 @@ public class TestDatasetAccessorHTTP extends BaseTest
//Model level testing.
static final String datasetURI_not_1 = "http://localhost:"+port+"/junk" ;
- static final String datasetURI_not_2 = serviceREST+"/not" ;
+ static final String datasetURI_not_2 = serviceGSP+"/not" ;
static final String datasetURI_not_3 = "http://localhost:"+port+datasetPath+"/not/data" ;
@BeforeClass public static void beforeClass() { ServerTest.allocServer() ; }
@@ -51,33 +52,23 @@ public class TestDatasetAccessorHTTP extends BaseTest
{
// Can GET the dataset service.
try {
- HttpOp.execHttpGet(serviceREST) ;
+ HttpOp.execHttpGet(serviceGSP) ;
} catch (HttpException ex) {
assertTrue(HttpSC.isClientError(ex.getResponseCode())) ;
throw ex ;
}
}
- @Test(expected=HttpException.class)
+ @Test
public void test_ds_2()
{
- try {
- HttpOp.execHttpGet(datasetURI_not_1) ;
- } catch (HttpException ex) {
- assertEquals(HttpSC.NOT_FOUND_404, ex.getResponseCode()) ;
- throw ex ;
- }
+ FusekiTest.exec404(()->HttpOp.execHttpGet(datasetURI_not_1)) ;
}
- @Test(expected=HttpException.class)
+ @Test
public void test_ds_3()
{
- try {
- HttpOp.execHttpGet(datasetURI_not_2) ;
- } catch (HttpException ex) {
- assertEquals(HttpSC.NOT_FOUND_404, ex.getResponseCode()) ;
- throw ex ;
- }
+ FusekiTest.exec404(()->HttpOp.execHttpGet(datasetURI_not_2)) ;
}
@Test
@@ -101,7 +92,7 @@ public class TestDatasetAccessorHTTP extends BaseTest
public void test_404_3()
{
// Right service, wrong graph
- DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceREST) ;
+ DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceGSP) ;
Model graph = du.getModel(gn99) ;
assertNull(graph) ;
}
@@ -317,7 +308,7 @@ public class TestDatasetAccessorHTTP extends BaseTest
static DatasetAccessor connectToService()
{
- return DatasetAccessorFactory.createHTTP(ServerTest.serviceREST) ;
+ return DatasetAccessorFactory.createHTTP(ServerTest.serviceGSP) ;
}
static DatasetAccessor connectToDataset()
http://git-wip-us.apache.org/repos/asf/jena/blob/9af00abf/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestDatasetGraphAccessorHTTP.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestDatasetGraphAccessorHTTP.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestDatasetGraphAccessorHTTP.java
index 7687b2c..964511f 100644
--- a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestDatasetGraphAccessorHTTP.java
+++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestDatasetGraphAccessorHTTP.java
@@ -38,6 +38,6 @@ public class TestDatasetGraphAccessorHTTP extends AbstractTestDatasetGraphAccess
@Override
protected DatasetGraphAccessor getDatasetUpdater()
{
- return new DatasetGraphAccessorHTTP(ServerTest.serviceREST) ;
+ return new DatasetGraphAccessorHTTP(ServerTest.serviceGSP) ;
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/9af00abf/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestHttpOp.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestHttpOp.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestHttpOp.java
index b8ad9de..488c517 100644
--- a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestHttpOp.java
+++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/http/TestHttpOp.java
@@ -18,30 +18,26 @@
package org.apache.jena.fuseki.http;
-import org.apache.jena.atlas.junit.BaseTest ;
import org.apache.jena.atlas.lib.IRILib ;
import org.apache.jena.atlas.web.HttpException ;
import org.apache.jena.atlas.web.TypedInputStream ;
+import org.apache.jena.fuseki.AbstractFusekiTest ;
+import org.apache.jena.fuseki.FusekiTest ;
import org.apache.jena.fuseki.ServerTest ;
import org.apache.jena.riot.WebContent ;
import org.apache.jena.riot.web.HttpOp ;
import org.apache.jena.sparql.engine.http.Params ;
import org.apache.jena.web.HttpSC ;
-import org.junit.AfterClass ;
-import org.junit.BeforeClass ;
import org.junit.Test ;
// This a mixture of testing HttpOp and testing basic operation of the SPARQL server
// especially error cases abnd unusual usage that the higher level APIs don't use.
-public class TestHttpOp extends BaseTest {
+public class TestHttpOp extends AbstractFusekiTest {
- static String pingURL = ServerTest.urlRoot+"$/ping" ;
- @BeforeClass public static void beforeClass() { ServerTest.allocServer() ; }
- @AfterClass public static void afterClass() { ServerTest.freeServer() ; }
-
- static String gspServiceURL = ServerTest.serviceREST ;
- static String defaultGraphURL = ServerTest.serviceREST+"?default" ;
- static String namedGraphURL = ServerTest.serviceREST+"?graph=http://example/g" ;
+ static String pingURL = ServerTest.urlRoot+"$/ping" ;
+ static String gspServiceURL = ServerTest.serviceGSP ;
+ static String defaultGraphURL = ServerTest.serviceGSP+"?default" ;
+ static String namedGraphURL = ServerTest.serviceGSP+"?graph=http://example/g" ;
static String queryURL = ServerTest.serviceQuery ;
static String updateURL = ServerTest.serviceUpdate ;
@@ -53,13 +49,11 @@ public class TestHttpOp extends BaseTest {
try ( TypedInputStream in = HttpOp.execHttpGet(pingURL) ) {}
}
- @Test(expected=HttpException.class)
+ @Test
public void httpGet_02() {
- try ( TypedInputStream in = HttpOp.execHttpGet(ServerTest.urlRoot+"does-not-exist") ) { }
- catch(HttpException ex) {
- assertEquals(HttpSC.NOT_FOUND_404, ex.getResponseCode()) ;
- throw ex ;
- }
+ FusekiTest.exec404(() -> {
+ try (TypedInputStream in = HttpOp.execHttpGet(ServerTest.urlRoot + "does-not-exist")) {}
+ });
}
@Test public void httpGet_03() {
@@ -185,7 +179,7 @@ public class TestHttpOp extends BaseTest {
}
@Test public void gsp_06() {
- //HttpOp.execHttpDelete(namedGraphURL) ; -- woudl be 404.
+ //HttpOp.execHttpDelete(namedGraphURL) ; -- would be 404.
HttpOp.execHttpPost(namedGraphURL, WebContent.contentTypeTurtle, graphString) ;
String s1 = HttpOp.execHttpGetString(namedGraphURL, WebContent.contentTypeNTriples) ;
@@ -196,13 +190,7 @@ public class TestHttpOp extends BaseTest {
String s3 = HttpOp.execHttpGetString(defaultGraphURL, WebContent.contentTypeNTriples) ;
assertTrue(s3.isEmpty()) ;
- try {
- HttpOp.execHttpDelete(namedGraphURL) ;
- fail("Expected 404") ;
- } catch (HttpException ex) {
- assertEquals(ex.getResponseCode(), HttpSC.NOT_FOUND_404) ;
- }
-
+ FusekiTest.exec404(()->HttpOp.execHttpDelete(namedGraphURL)) ;
}
// Extended GSP - no ?default, no ?graph acts on the datasets as a whole.
[06/13] jena git commit: Add name to differentiate R and RW on
quads/datatset.
Posted by an...@apache.org.
Add name to differentiate R and RW on quads/datatset.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/b764a944
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/b764a944
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/b764a944
Branch: refs/heads/master
Commit: b764a94492731b2b6992da4ef5f0def4e916eab8
Parents: aa5337b
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Oct 23 17:33:17 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Oct 23 17:33:17 2015 +0100
----------------------------------------------------------------------
.../main/java/org/apache/jena/fuseki/server/OperationName.java | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/b764a944/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/OperationName.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/OperationName.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/OperationName.java
index 0abcf20..8cf2c9c 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/OperationName.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/OperationName.java
@@ -20,13 +20,13 @@ package org.apache.jena.fuseki.server;
public enum OperationName {
// Fixed names give the codebase some resilience.
-
Query("SPARQL Query"),
Update("SPARQL Update"),
Upload("File Upload"),
- GSP("Graph Store Protocol"),
+ GSP_RW("Graph Store Protocol"),
GSP_R("Graph Store Protocol (Read)"),
- Quads("HTTP Quads")
+ Quads_RW("HTTP Quads"),
+ Quads_R("HTTP Quads (Read)")
;
private final String description ;
[09/13] jena git commit: JENA-1055: Handle OPTIONS for query and
update.
Posted by an...@apache.org.
JENA-1055: Handle OPTIONS for query and update.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/e9ef60b3
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/e9ef60b3
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/e9ef60b3
Branch: refs/heads/master
Commit: e9ef60b30bfc92dc00bd2d895f2d38cbf35d8510
Parents: 9af00ab
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Oct 23 17:37:32 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Oct 23 19:47:46 2015 +0100
----------------------------------------------------------------------
.../jena/fuseki/servlets/SPARQL_Query.java | 70 ++++++++++++--------
.../jena/fuseki/servlets/SPARQL_Update.java | 18 ++++-
2 files changed, 59 insertions(+), 29 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/e9ef60b3/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java
index 55225c9..33b2b91 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java
@@ -71,6 +71,8 @@ public abstract class SPARQL_Query extends SPARQL_Protocol
}
// Choose REST verbs to support.
+
+ // doMethod : Not used with UberServlet dispatch.
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
@@ -82,40 +84,15 @@ public abstract class SPARQL_Query extends SPARQL_Protocol
doCommon(request, response) ;
}
- // HEAD
-
@Override
protected void doOptions(HttpServletRequest request, HttpServletResponse response) {
setCommonHeadersForOptions(response) ;
response.setHeader(HttpNames.hAllow, "GET,OPTIONS,POST") ;
response.setHeader(HttpNames.hContentLengh, "0") ;
}
-
- @Override
- protected final void perform(HttpAction action) {
- // GET
- if ( action.request.getMethod().equals(HttpNames.METHOD_GET) ) {
- executeWithParameter(action) ;
- return ;
- }
-
- ContentType ct = FusekiLib.getContentType(action) ;
-
- // POST application/x-www-form-url
- // POST ?query= and no Content-Type
- if ( ct == null || isHtmlForm(ct) ) {
- // validation checked that if no Content-type, then its a POST with ?query=
- executeWithParameter(action) ;
- return ;
- }
-
- // POST application/sparql-query
- if ( matchContentType(ct, ctSPARQLQuery) ) {
- executeBody(action) ;
- return ;
- }
-
- ServletOps.error(HttpSC.UNSUPPORTED_MEDIA_TYPE_415, "Bad content type: " + ct.getContentType()) ;
+
+ protected void doOptions(HttpAction action) {
+ doOptions(action.request, action.response) ;
}
// All the params we support
@@ -131,6 +108,9 @@ public abstract class SPARQL_Query extends SPARQL_Protocol
@Override
protected void validate(HttpAction action) {
String method = action.request.getMethod().toUpperCase(Locale.ROOT) ;
+
+ if ( HttpNames.METHOD_OPTIONS.equals(method) )
+ return ;
if ( !HttpNames.METHOD_POST.equals(method) && !HttpNames.METHOD_GET.equals(method) )
ServletOps.errorMethodNotAllowed("Not a GET or POST request") ;
@@ -207,6 +187,40 @@ public abstract class SPARQL_Query extends SPARQL_Protocol
}
}
+ @Override
+ protected final void perform(HttpAction action) {
+ // OPTIONS
+ if ( action.request.getMethod().equals(HttpNames.METHOD_OPTIONS) ) {
+ // Share with update via SPARQL_Protocol.
+ doOptions(action) ;
+ return ;
+ }
+
+ // GET
+ if ( action.request.getMethod().equals(HttpNames.METHOD_GET) ) {
+ executeWithParameter(action) ;
+ return ;
+ }
+
+ ContentType ct = FusekiLib.getContentType(action) ;
+
+ // POST application/x-www-form-url
+ // POST ?query= and no Content-Type
+ if ( ct == null || isHtmlForm(ct) ) {
+ // validation checked that if no Content-type, then its a POST with ?query=
+ executeWithParameter(action) ;
+ return ;
+ }
+
+ // POST application/sparql-query
+ if ( matchContentType(ct, ctSPARQLQuery) ) {
+ executeBody(action) ;
+ return ;
+ }
+
+ ServletOps.error(HttpSC.UNSUPPORTED_MEDIA_TYPE_415, "Bad content type: " + ct.getContentType()) ;
+ }
+
private void executeWithParameter(HttpAction action) {
String queryString = action.request.getParameter(paramQuery) ;
execute(queryString, action) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/e9ef60b3/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Update.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Update.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Update.java
index 297cd17..d01bb31 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Update.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Update.java
@@ -72,6 +72,8 @@ public class SPARQL_Update extends SPARQL_Protocol
public SPARQL_Update()
{ super() ; }
+ // doMethod : Not used with UberServlet dispatch.
+
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
@@ -90,6 +92,10 @@ public class SPARQL_Update extends SPARQL_Protocol
response.setHeader(HttpNames.hAllow, "OPTIONS,POST") ;
response.setHeader(HttpNames.hContentLengh, "0") ;
}
+
+ protected void doOptions(HttpAction action) {
+ doOptions(action.request, action.response) ;
+ }
@Override
protected void perform(HttpAction action) {
@@ -115,8 +121,11 @@ public class SPARQL_Update extends SPARQL_Protocol
@Override
protected void validate(HttpAction action) {
HttpServletRequest request = action.request ;
+
+ if ( HttpNames.METHOD_OPTIONS.equals(request.getMethod()) )
+ return ;
- if ( !HttpNames.METHOD_POST.equalsIgnoreCase(request.getMethod()) )
+ if ( ! HttpNames.METHOD_POST.equalsIgnoreCase(request.getMethod()) )
ServletOps.errorMethodNotAllowed("SPARQL Update : use POST") ;
ContentType ct = FusekiLib.getContentType(action) ;
@@ -198,6 +207,13 @@ public class SPARQL_Update extends SPARQL_Protocol
}
private void execute(HttpAction action, InputStream input) {
+ // OPTIONS
+ if ( action.request.getMethod().equals(HttpNames.METHOD_OPTIONS) ) {
+ // Share with update via SPARQL_Protocol.
+ doOptions(action) ;
+ return ;
+ }
+
UsingList usingList = processProtocol(action.request) ;
// If the dsg is transactional, then we can parse and execute the update in a streaming fashion.
[11/13] jena git commit: Allow for old and new names.
Posted by an...@apache.org.
Allow for old and new names.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/32e78fa7
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/32e78fa7
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/32e78fa7
Branch: refs/heads/master
Commit: 32e78fa7c23ded9b4904301b7e4373daab3f7cee
Parents: d61d1ca
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Oct 23 20:29:30 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Oct 23 20:29:30 2015 +0100
----------------------------------------------------------------------
.../jena-fuseki-core/src/main/webapp/js/app/models/dataset.js | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/32e78fa7/jena-fuseki2/jena-fuseki-core/src/main/webapp/js/app/models/dataset.js
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/webapp/js/app/models/dataset.js b/jena-fuseki2/jena-fuseki-core/src/main/webapp/js/app/models/dataset.js
index 80dc092..9c911c2 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/webapp/js/app/models/dataset.js
+++ b/jena-fuseki2/jena-fuseki-core/src/main/webapp/js/app/models/dataset.js
@@ -126,7 +126,10 @@ define(
/** Return the GSP write URL for this dataset, if it has one, or null */
graphStoreProtocolURL: function() {
- return this.endpointURL( "GSP" ) ;
+ if ( this.endpointURL( "GSP" ) )
+ // Old name
+ return this.endpointURL( "GSP" ) ;
+ return this.endpointURL( "GSP_RW" ) ;
},
/** Return the GSP read URL for this dataset, if it has one, or null */
@@ -248,4 +251,4 @@ define(
return Dataset;
}
-);
\ No newline at end of file
+);
[04/13] jena git commit: Remove stray blank line.
Posted by an...@apache.org.
Remove stray blank line.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/1e58470e
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/1e58470e
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/1e58470e
Branch: refs/heads/master
Commit: 1e58470e539bb2446914112d7f56114ca020d2db
Parents: 85602bc
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Oct 23 17:31:44 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Oct 23 17:31:44 2015 +0100
----------------------------------------------------------------------
jena-arq/src/main/java/org/apache/jena/riot/web/HttpOp.java | 1 -
1 file changed, 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/1e58470e/jena-arq/src/main/java/org/apache/jena/riot/web/HttpOp.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/web/HttpOp.java b/jena-arq/src/main/java/org/apache/jena/riot/web/HttpOp.java
index af15916..67bcf87 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/web/HttpOp.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/web/HttpOp.java
@@ -1114,7 +1114,6 @@ public class HttpOp {
}
}
-
public static String readPayload(HttpEntity entity) throws IOException {
if (entity == null) {
return null;
[13/13] jena git commit: Remove dev code.
Posted by an...@apache.org.
Remove dev code.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/85b722be
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/85b722be
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/85b722be
Branch: refs/heads/master
Commit: 85b722be16eafe9ba994f0cbe74f690db744d27e
Parents: dba52b9
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Oct 23 20:31:01 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Oct 23 20:31:01 2015 +0100
----------------------------------------------------------------------
.../java/org/apache/jena/fuseki/servlets/SPARQL_UberServlet.java | 1 -
1 file changed, 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/85b722be/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberServlet.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberServlet.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberServlet.java
index 1a49956..cf92264 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberServlet.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberServlet.java
@@ -152,7 +152,6 @@ public abstract class SPARQL_UberServlet extends ActionSPARQL
String method = request.getMethod() ;
DataAccessPoint desc = action.getDataAccessPoint() ;
- System.err.println("**** SET READONLY ****") ;
DataService dSrv = action.getDataService() ;
// if ( ! dSrv.isActive() )
[07/13] jena git commit: Imporve comments.
Posted by an...@apache.org.
Imporve comments.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/33bb6a87
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/33bb6a87
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/33bb6a87
Branch: refs/heads/master
Commit: 33bb6a8732073c14be323a458df7ab4f38ab78d3
Parents: b764a94
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Oct 23 17:34:01 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Oct 23 17:34:01 2015 +0100
----------------------------------------------------------------------
.../jena/fuseki/server/ServerInitialConfig.java | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/33bb6a87/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/ServerInitialConfig.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/ServerInitialConfig.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/ServerInitialConfig.java
index d3b1966..1e42bd6 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/ServerInitialConfig.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/ServerInitialConfig.java
@@ -28,20 +28,18 @@ public class ServerInitialConfig {
// Priority order : --conf, templated
// through the command line processing should not allow --conf and a templated /dataset.
- // Either this ...
- public String argTemplateFile = null ; // Command list args --mem, --loc, --memtdb
+ // Either this ... command line ...
+ public String argTemplateFile = null ; // Command list args --mem, --loc, --memtdb
public String datasetPath = null ; // Dataset name on the command line.
public boolean allowUpdate = false ; // Command line --update.
- // Special case - directly pass in the dataset graphs - datasetPath must be given.
- public DatasetGraph dsg = null ; // Command line --file.
+ // Special case - prebuilt dataset. Uses datasetPath.
+ public DatasetGraph dsg = null ; // Embedded or command line --file)
- // Or this ...
+ // Or configuration file from command line
public String fusekiCmdLineConfigFile = null ; // Command line --conf.
- // Or this ... (lowest priority)
+ // Or configuration from run area (lowest priority)
public String fusekiServerConfigFile = null ; // "run" area
-
// Additional information.
public Map<String,String> params = new HashMap<>() ;
-
}
[03/13] jena git commit: Reformat
Posted by an...@apache.org.
Reformat
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/85602bcb
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/85602bcb
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/85602bcb
Branch: refs/heads/master
Commit: 85602bcbf590a73a140158d8547e9836af87534a
Parents: f42d76d
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Oct 23 12:54:38 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Oct 23 12:54:38 2015 +0100
----------------------------------------------------------------------
.../apache/jena/fuseki/TestSPARQLProtocol.java | 111 +++++++++----------
1 file changed, 55 insertions(+), 56 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/85602bcb/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestSPARQLProtocol.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestSPARQLProtocol.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestSPARQLProtocol.java
index cffc8c4..bd53495 100644
--- a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestSPARQLProtocol.java
+++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestSPARQLProtocol.java
@@ -18,73 +18,72 @@
package org.apache.jena.fuseki;
-import static org.apache.jena.fuseki.ServerTest.* ;
-import org.apache.jena.atlas.junit.BaseTest ;
-import org.apache.jena.query.* ;
-import org.apache.jena.riot.WebContent ;
-import org.apache.jena.sparql.engine.http.QueryEngineHTTP ;
-import org.apache.jena.sparql.util.Convert ;
-import org.apache.jena.update.UpdateExecutionFactory ;
-import org.apache.jena.update.UpdateFactory ;
-import org.apache.jena.update.UpdateProcessor ;
-import org.apache.jena.update.UpdateRequest ;
-import org.junit.AfterClass ;
-import org.junit.BeforeClass ;
-import org.junit.Test ;
+import static org.apache.jena.fuseki.ServerTest.*;
+import org.apache.jena.atlas.junit.BaseTest;
+import org.apache.jena.query.*;
+import org.apache.jena.riot.WebContent;
+import org.apache.jena.sparql.engine.http.QueryEngineHTTP;
+import org.apache.jena.sparql.util.Convert;
+import org.apache.jena.update.UpdateExecutionFactory;
+import org.apache.jena.update.UpdateFactory;
+import org.apache.jena.update.UpdateProcessor;
+import org.apache.jena.update.UpdateRequest;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
public class TestSPARQLProtocol extends BaseTest
{
- @BeforeClass public static void beforeClass()
- {
- ServerTest.allocServer() ;
- ServerTest.resetServer() ;
+ @BeforeClass
+ public static void beforeClass() {
+ ServerTest.allocServer();
+ ServerTest.resetServer();
// Load some data.
- DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceREST) ;
- du.putModel(model1) ;
- du.putModel(gn1, model2) ;
+ DatasetAccessor du = DatasetAccessorFactory.createHTTP(serviceREST);
+ du.putModel(model1);
+ du.putModel(gn1, model2);
}
-
- @AfterClass public static void afterClass()
- {
- ServerTest.resetServer() ;
- ServerTest.freeServer() ;
+
+ @AfterClass
+ public static void afterClass() {
+ ServerTest.resetServer();
+ ServerTest.freeServer();
}
-
- static String query(String base, String queryString)
- {
- return base+"?query="+Convert.encWWWForm(queryString) ;
+
+ static String query(String base, String queryString) {
+ return base + "?query=" + Convert.encWWWForm(queryString);
}
-
- @Test public void query_01()
- {
- Query query = QueryFactory.create("SELECT * { ?s ?p ?o }") ;
- QueryExecution qexec = QueryExecutionFactory.sparqlService(serviceQuery, query) ;
- ResultSet rs = qexec.execSelect() ;
- int x = ResultSetFormatter.consume(rs) ;
- assertTrue( x != 0 ) ;
+
+ @Test
+ public void query_01() {
+ Query query = QueryFactory.create("SELECT * { ?s ?p ?o }");
+ QueryExecution qexec = QueryExecutionFactory.sparqlService(serviceQuery, query);
+ ResultSet rs = qexec.execSelect();
+ int x = ResultSetFormatter.consume(rs);
+ assertTrue(x != 0);
}
- @Test public void query_02()
- {
- Query query = QueryFactory.create("SELECT * { ?s ?p ?o }") ;
- QueryEngineHTTP engine = QueryExecutionFactory.createServiceRequest(serviceQuery, query) ;
- engine.setSelectContentType(WebContent.contentTypeResultsJSON) ;
- ResultSet rs = engine.execSelect() ;
- int x = ResultSetFormatter.consume(rs) ;
- assertTrue( x != 0 ) ;
+ @Test
+ public void query_02() {
+ Query query = QueryFactory.create("SELECT * { ?s ?p ?o }");
+ QueryEngineHTTP engine = QueryExecutionFactory.createServiceRequest(serviceQuery, query);
+ engine.setSelectContentType(WebContent.contentTypeResultsJSON);
+ ResultSet rs = engine.execSelect();
+ int x = ResultSetFormatter.consume(rs);
+ assertTrue(x != 0);
}
- @Test public void update_01()
- {
- UpdateRequest update = UpdateFactory.create("INSERT DATA {}") ;
- UpdateProcessor proc = UpdateExecutionFactory.createRemote(update, serviceUpdate) ;
- proc.execute() ;
+ @Test
+ public void update_01() {
+ UpdateRequest update = UpdateFactory.create("INSERT DATA {}");
+ UpdateProcessor proc = UpdateExecutionFactory.createRemote(update, serviceUpdate);
+ proc.execute();
}
-
- @Test public void update_02()
- {
- UpdateRequest update = UpdateFactory.create("INSERT DATA {}") ;
- UpdateProcessor proc = UpdateExecutionFactory.createRemoteForm(update, serviceUpdate) ;
- proc.execute() ;
+
+ @Test
+ public void update_02() {
+ UpdateRequest update = UpdateFactory.create("INSERT DATA {}");
+ UpdateProcessor proc = UpdateExecutionFactory.createRemoteForm(update, serviceUpdate);
+ proc.execute();
}
}
[10/13] jena git commit: JENA-1055: Rationalize method checking
handling especially OPTIONS.
Posted by an...@apache.org.
JENA-1055: Rationalize method checking handling especially OPTIONS.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/d61d1ca2
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/d61d1ca2
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/d61d1ca2
Branch: refs/heads/master
Commit: d61d1ca27af8023b59bfb4664a88b245e8e17e83
Parents: e9ef60b
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Oct 23 19:50:18 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Oct 23 19:50:18 2015 +0100
----------------------------------------------------------------------
.../org/apache/jena/fuseki/build/Builder.java | 20 +--
.../apache/jena/fuseki/build/FusekiConfig.java | 1 +
.../org/apache/jena/fuseki/mgt/ActionStats.java | 2 +-
.../apache/jena/fuseki/servlets/REST_Quads.java | 10 +-
.../jena/fuseki/servlets/REST_Quads_R.java | 13 +-
.../jena/fuseki/servlets/REST_Quads_RW.java | 14 +-
.../jena/fuseki/servlets/SPARQL_GSP_R.java | 8 +-
.../fuseki/servlets/SPARQL_UberServlet.java | 67 +++++-----
.../apache/jena/fuseki/servlets/ServletOps.java | 2 +
.../java/org/apache/jena/fuseki/TS_Fuseki.java | 2 +
.../org/apache/jena/fuseki/TestHttpOptions.java | 61 +++++++++
.../apache/jena/fuseki/TestServerReadOnly.java | 134 +++++++++++++++++++
12 files changed, 275 insertions(+), 59 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/d61d1ca2/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/Builder.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/Builder.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/Builder.java
index 77297c7..9b15ec1 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/Builder.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/Builder.java
@@ -44,8 +44,9 @@ public class Builder
{
private static Logger log = Fuseki.builderLog ;
- /** Build a DataAccessPoint, including DataServiceat Resource svc */
+ /** Build a DataAccessPoint, including DataService at Resource svc */
public static DataAccessPoint buildDataAccessPoint(Resource svc) {
+ // XXX
RDFNode n = FusekiLib.getOne(svc, "fu:name") ;
if ( ! n.isLiteral() )
throw new FusekiConfigException("Not a literal for access point name: "+FmtUtils.stringForRDFNode(n));
@@ -63,7 +64,7 @@ public class Builder
}
/** Build a DatasetRef starting at Resource svc */
- public static DataService buildDataService(Resource svc) {
+ private static DataService buildDataService(Resource svc) {
//log.debug("Service: " + nodeLabel(svc)) ;
// DO REAL WORK
Resource datasetDesc = ((Resource)getOne(svc, "fu:dataset")) ;
@@ -78,12 +79,12 @@ public class Builder
addServiceEP(dataService, OperationName.Update, svc, "fu:serviceUpdate") ;
addServiceEP(dataService, OperationName.Upload, svc, "fu:serviceUpload") ;
addServiceEP(dataService, OperationName.GSP_R, svc, "fu:serviceReadGraphStore") ;
- addServiceEP(dataService, OperationName.GSP, svc, "fu:serviceReadWriteGraphStore") ;
+ addServiceEP(dataService, OperationName.GSP_RW, svc, "fu:serviceReadWriteGraphStore") ;
- if ( ! dataService.getOperation(OperationName.GSP).isEmpty() )
- dataService.addEndpoint(OperationName.Quads, "") ;
+ if ( ! dataService.getOperation(OperationName.GSP_RW).isEmpty() )
+ dataService.addEndpoint(OperationName.Quads_RW, "") ;
else if ( ! dataService.getOperation(OperationName.GSP_R).isEmpty() )
- dataService.addEndpoint(OperationName.Quads, "") ;
+ dataService.addEndpoint(OperationName.Quads_R, "") ;
// XXX
// // Extract timeout overriding configuration if present.
@@ -103,14 +104,15 @@ public class Builder
addServiceEP(dataService, OperationName.Query, "query") ;
addServiceEP(dataService, OperationName.Query, "sparql") ;
if ( ! allowUpdate ) {
- addServiceEP(dataService, OperationName.Quads, "quads") ;
addServiceEP(dataService, OperationName.GSP_R, "data") ;
+ addServiceEP(dataService, OperationName.Quads_R, "") ;
return dataService ;
}
- addServiceEP(dataService, OperationName.GSP, "data") ;
+ addServiceEP(dataService, OperationName.GSP_RW, "data") ;
+ addServiceEP(dataService, OperationName.GSP_R, "get") ;
addServiceEP(dataService, OperationName.Update, "update") ;
addServiceEP(dataService, OperationName.Upload, "upload") ;
- addServiceEP(dataService, OperationName.Quads, "") ;
+ addServiceEP(dataService, OperationName.Quads_RW, "") ;
return dataService ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/d61d1ca2/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/FusekiConfig.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/FusekiConfig.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/FusekiConfig.java
index 8bfa469..8bd4afd 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/FusekiConfig.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/FusekiConfig.java
@@ -245,6 +245,7 @@ public class FusekiConfig {
}
Resource service = services.get(0) ;
+ // Configuration file determines read-only status.
DataAccessPoint acc = Builder.buildDataAccessPoint(service) ;
return acc ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/d61d1ca2/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionStats.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionStats.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionStats.java
index 4e9a082..24e1c5b 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionStats.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/ActionStats.java
@@ -187,7 +187,7 @@ public class ActionStats extends ActionContainerItem
}
private long gspValue(DataService dSrv, CounterName cn) {
- return counter(dSrv, OperationName.GSP, cn) +
+ return counter(dSrv, OperationName.GSP_RW, cn) +
counter(dSrv, OperationName.GSP_R, cn) ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/d61d1ca2/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/REST_Quads.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/REST_Quads.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/REST_Quads.java
index 578447e..8fb1a7d 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/REST_Quads.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/REST_Quads.java
@@ -24,19 +24,13 @@ package org.apache.jena.fuseki.servlets ;
* dataset URI.
*/
-public abstract class REST_Quads extends SPARQL_GSP {
- // Not supported: GSP direct naming.
-
+public abstract class REST_Quads extends SPARQL_GSP
+{
public REST_Quads() {
super() ;
}
@Override
- protected void validate(HttpAction action) {
- // Check in the operations itself.
- }
-
- @Override
protected void doOptions(HttpAction action) {
ServletOps.errorMethodNotAllowed("OPTIONS") ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/d61d1ca2/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/REST_Quads_R.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/REST_Quads_R.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/REST_Quads_R.java
index a8ce180..73e2715 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/REST_Quads_R.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/REST_Quads_R.java
@@ -41,7 +41,18 @@ public class REST_Quads_R extends REST_Quads {
}
@Override
- protected void validate(HttpAction action) { }
+ protected void validate(HttpAction action) {
+ // Allowed methods controlled by ActionREST.dispatch
+ String method = action.getRequest().getMethod() ;
+ switch(method) {
+ case HttpNames.METHOD_GET:
+ case HttpNames.METHOD_HEAD:
+ case HttpNames.METHOD_OPTIONS:
+ break ;
+ default:
+ ServletOps.errorMethodNotAllowed(method+" : Read-only dataset");
+ }
+ }
@Override
protected void doGet(HttpAction action) {
http://git-wip-us.apache.org/repos/asf/jena/blob/d61d1ca2/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/REST_Quads_RW.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/REST_Quads_RW.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/REST_Quads_RW.java
index 80b1b8a..c845d7b 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/REST_Quads_RW.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/REST_Quads_RW.java
@@ -22,6 +22,7 @@ import org.apache.jena.fuseki.FusekiLib ;
import org.apache.jena.riot.RiotException ;
import org.apache.jena.riot.system.StreamRDF ;
import org.apache.jena.riot.system.StreamRDFLib ;
+import org.apache.jena.riot.web.HttpNames ;
import org.apache.jena.sparql.core.DatasetGraph ;
import org.apache.jena.sparql.core.DatasetGraphFactory ;
@@ -37,8 +38,17 @@ public class REST_Quads_RW extends REST_Quads_R {
}
@Override
- protected void validate(HttpAction action) { }
-
+ protected void validate(HttpAction action) {
+ }
+
+ @Override
+ protected void doOptions(HttpAction action) {
+ setCommonHeadersForOptions(action.response) ;
+ action.response.setHeader(HttpNames.hAllow, "GET,HEAD,OPTIONS,PUT,POST");
+ action.response.setHeader(HttpNames.hContentLengh, "0") ;
+ ServletOps.success(action) ;
+ }
+
@Override
protected void doPost(HttpAction action) {
if ( !action.getDataService().allowUpdate() )
http://git-wip-us.apache.org/repos/asf/jena/blob/d61d1ca2/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_GSP_R.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_GSP_R.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_GSP_R.java
index f35e582..54d04d5 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_GSP_R.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_GSP_R.java
@@ -106,17 +106,17 @@ public class SPARQL_GSP_R extends SPARQL_GSP
@Override
protected void doPost(HttpAction action)
- { ServletOps.errorMethodNotAllowed("POST") ; }
+ { ServletOps.errorMethodNotAllowed("POST : Read-only") ; }
@Override
protected void doDelete(HttpAction action)
- { ServletOps.errorMethodNotAllowed("DELETE") ; }
+ { ServletOps.errorMethodNotAllowed("DELETE : Read-only") ; }
@Override
protected void doPut(HttpAction action)
- { ServletOps.errorMethodNotAllowed("PUT") ; }
+ { ServletOps.errorMethodNotAllowed("PUT : Read-only") ; }
@Override
protected void doPatch(HttpAction action)
- { ServletOps.errorMethodNotAllowed("PATCH") ; }
+ { ServletOps.errorMethodNotAllowed("PATCH : Read-only") ; }
}
http://git-wip-us.apache.org/repos/asf/jena/blob/d61d1ca2/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberServlet.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberServlet.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberServlet.java
index f64e7c3..1a49956 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberServlet.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberServlet.java
@@ -22,8 +22,10 @@ import static java.lang.String.format ;
import static org.apache.jena.riot.WebContent.contentTypeSPARQLQuery ;
import static org.apache.jena.riot.WebContent.contentTypeSPARQLUpdate ;
+import java.io.IOException ;
import java.util.List ;
+import javax.servlet.ServletException ;
import javax.servlet.http.HttpServletRequest ;
import javax.servlet.http.HttpServletResponse ;
@@ -80,11 +82,10 @@ public abstract class SPARQL_UberServlet extends ActionSPARQL
public AccessByConfig() { super() ; }
@Override protected boolean allowQuery(HttpAction action) { return isEnabled(action, OperationName.Query) ; }
@Override protected boolean allowUpdate(HttpAction action) { return isEnabled(action, OperationName.Update) ; }
- @Override protected boolean allowREST_R(HttpAction action) { return isEnabled(action, OperationName.GSP_R) || isEnabled(action, OperationName.GSP) ; }
- @Override protected boolean allowREST_W(HttpAction action) { return isEnabled(action, OperationName.GSP) ; }
- // Quad operations tied to presence/absence of GSP.
- @Override protected boolean allowQuadsR(HttpAction action) { return isEnabled(action, OperationName.GSP_R) || isEnabled(action, OperationName.GSP) ; }
- @Override protected boolean allowQuadsW(HttpAction action) { return isEnabled(action, OperationName.GSP) ; }
+ @Override protected boolean allowREST_R(HttpAction action) { return isEnabled(action, OperationName.GSP_R) || isEnabled(action, OperationName.GSP_RW) ; }
+ @Override protected boolean allowREST_W(HttpAction action) { return isEnabled(action, OperationName.GSP_RW) ; }
+ @Override protected boolean allowQuadsR(HttpAction action) { return isEnabled(action, OperationName.Quads_R) || isEnabled(action, OperationName.Quads_RW) ; }
+ @Override protected boolean allowQuadsW(HttpAction action) { return isEnabled(action, OperationName.Quads_RW) ; }
// Test whether there is a configuration that allows this action as the operation given.
// Ignores the operation in the action (set due to parsing - it might be "quads"
@@ -109,7 +110,7 @@ public abstract class SPARQL_UberServlet extends ActionSPARQL
private final ActionSPARQL uploadServlet = new SPARQL_Upload() ;
private final ActionSPARQL gspServlet_R = new SPARQL_GSP_R() ;
private final ActionSPARQL gspServlet_RW = new SPARQL_GSP_RW() ;
- private final ActionSPARQL restQuads_R = new REST_Quads_R() ;
+ private final ActionSPARQL restQuads_R = new REST_Quads_R() ; // XXX
private final ActionSPARQL restQuads_RW = new REST_Quads_RW() ;
public SPARQL_UberServlet() { super(); }
@@ -151,6 +152,7 @@ public abstract class SPARQL_UberServlet extends ActionSPARQL
String method = request.getMethod() ;
DataAccessPoint desc = action.getDataAccessPoint() ;
+ System.err.println("**** SET READONLY ****") ;
DataService dSrv = action.getDataService() ;
// if ( ! dSrv.isActive() )
@@ -184,15 +186,6 @@ public abstract class SPARQL_UberServlet extends ActionSPARQL
boolean hasTrailing = ( trailing.length() != 0 ) ;
if ( !hasTrailing && !hasParams ) {
- // REST quads operations.
-// if ( serviceDispatch(action, OperationName.GSP_R, restQuads_R) ) return ;
-// if ( serviceDispatch(action, OperationName.GSP, restQuads_RW) ) return ;
-
-// boolean isPOST = method.equals(HttpNames.METHOD_POST) ;
-// if ( isPOST ) {
-// // Differentiate SPARQL query, SPARQL update by content type.
-// }
-
// REST dataset.
boolean isGET = method.equals(HttpNames.METHOD_GET) ;
boolean isHEAD = method.equals(HttpNames.METHOD_HEAD) ;
@@ -202,13 +195,16 @@ public abstract class SPARQL_UberServlet extends ActionSPARQL
if ( allowREST_R(action) )
restQuads_R.executeLifecycle(action) ;
else
- ServletOps.errorForbidden("Forbidden: "+method+" on dataset") ;
+ ServletOps.errorMethodNotAllowed("Read-only dataset : "+method) ;
return ;
}
+ // If the read-only server has the same name as the writable server,
+ // and the default fro a read-only server is "/data", like a writable dataset,
+ // this test is insufficient.
if ( allowREST_W(action) )
restQuads_RW.executeLifecycle(action) ;
else
- ServletOps.errorForbidden("Forbidden: "+method+" on dataset") ;
+ ServletOps.errorMethodNotAllowed("Read-only dataset : "+method) ;
return ;
}
@@ -221,7 +217,7 @@ public abstract class SPARQL_UberServlet extends ActionSPARQL
if ( hasParamQuery || ( isPOST && contentTypeSPARQLQuery.equalsIgnoreCase(ct) ) ) {
// SPARQL Query
if ( !allowQuery(action) )
- ServletOps.errorForbidden("Forbidden: SPARQL query") ;
+ ServletOps.errorMethodNotAllowed("SPARQL query : "+method) ;
executeRequest(action, queryServlet) ;
return ;
}
@@ -231,7 +227,7 @@ public abstract class SPARQL_UberServlet extends ActionSPARQL
if ( isPOST && ( hasParamUpdate || contentTypeSPARQLUpdate.equalsIgnoreCase(ct) ) ) {
// SPARQL Update
if ( !allowUpdate(action) )
- ServletOps.errorForbidden("Forbidden: SPARQL update") ;
+ ServletOps.errorMethodNotAllowed("SPARQL update : "+method) ;
executeRequest(action, updateServlet) ;
return ;
}
@@ -243,7 +239,7 @@ public abstract class SPARQL_UberServlet extends ActionSPARQL
}
ServletOps.errorBadRequest("Malformed request") ;
- ServletOps.errorForbidden("Forbidden: SPARQL Graph Store Protocol : Read operation : "+method) ;
+ ServletOps.errorMethodNotAllowed("SPARQL Graph Store Protocol : "+method) ;
}
final boolean checkForPossibleService = true ;
@@ -256,11 +252,11 @@ public abstract class SPARQL_UberServlet extends ActionSPARQL
if ( serviceDispatch(action, OperationName.Upload, uploadServlet) ) return ;
if ( hasParams ) {
if ( serviceDispatch(action, OperationName.GSP_R, gspServlet_R) ) return ;
- if ( serviceDispatch(action, OperationName.GSP, gspServlet_RW) ) return ;
+ if ( serviceDispatch(action, OperationName.GSP_RW, gspServlet_RW) ) return ;
} else {
// No parameters - do as a quads operation on the dataset.
if ( serviceDispatch(action, OperationName.GSP_R, restQuads_R) ) return ;
- if ( serviceDispatch(action, OperationName.GSP, restQuads_RW) ) return ;
+ if ( serviceDispatch(action, OperationName.GSP_RW, restQuads_RW) ) return ;
}
}
// There is a trailing part - params are illegal by this point.
@@ -331,18 +327,21 @@ public abstract class SPARQL_UberServlet extends ActionSPARQL
}
private void executeRequest(HttpAction action, ActionSPARQL servlet) {
- servlet.executeLifecycle(action) ;
- // A call to "doCommon" or a forwarded dispatch looses "action".
-// try
-// {
-// String target = getEPName(desc.name, endpointList) ;
-// if ( target == null )
-// errorMethodNotAllowed(request.getMethod()) ;
-// // ** relative servlet forward
-// request.getRequestDispatcher(target).forward(request, response) ;
-// // ** absolute srvlet forward
-// // getServletContext().getRequestDispatcher(target) ;
-// } catch (Exception e) { errorOccurred(e) ; }
+ if ( true ) {
+ // Execute an ActionSPARQL.
+ // Bypasses HttpServlet.service to doMethod dispatch.
+ servlet.executeLifecycle(action) ;
+ return ;
+ }
+ if ( false ) {
+ // Execute by calling the whole servlet mechanism.
+ // This causes HttpServlet.service to call the appropriate doMethod.
+ // but the action, and the id, are not passed on and a ne one is created.
+ try { servlet.service(action.request, action.response) ; }
+ catch (ServletException | IOException e) {
+ ServletOps.errorOccurred(e);
+ }
+ }
}
protected static MediaType contentNegotationQuads(HttpAction action) {
http://git-wip-us.apache.org/repos/asf/jena/blob/d61d1ca2/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ServletOps.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ServletOps.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ServletOps.java
index 277bf47..b250250 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ServletOps.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ServletOps.java
@@ -154,6 +154,8 @@ public class ServletOps {
}
public static String formatForLog(String string) {
+ if ( string == null )
+ return "<null>" ;
string = string.replace('\n', ' ') ;
string = string.replace('\r', ' ') ;
return string ;
http://git-wip-us.apache.org/repos/asf/jena/blob/d61d1ca2/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TS_Fuseki.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TS_Fuseki.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TS_Fuseki.java
index 8806968..b8f6e9e 100644
--- a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TS_Fuseki.java
+++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TS_Fuseki.java
@@ -33,6 +33,7 @@ import org.junit.runners.Suite ;
@Suite.SuiteClasses( {
TestHttpOp.class
, TestSPARQLProtocol.class
+ , TestHttpOptions.class
, TestDatasetGraphAccessorHTTP.class
, TestDatasetAccessorHTTP.class
, TestQuery.class
@@ -40,6 +41,7 @@ import org.junit.runners.Suite ;
, TestDatasetOps.class
, TestFileUpload.class
, TestAdmin.class
+ , TestServerReadOnly.class
})
public class TS_Fuseki extends ServerTest
http://git-wip-us.apache.org/repos/asf/jena/blob/d61d1ca2/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestHttpOptions.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestHttpOptions.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestHttpOptions.java
new file mode 100644
index 0000000..8f26d1a
--- /dev/null
+++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestHttpOptions.java
@@ -0,0 +1,61 @@
+/**
+ * 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 static org.apache.jena.fuseki.ServerTest.serviceGSP ;
+import static org.apache.jena.fuseki.ServerTest.serviceQuery ;
+import static org.apache.jena.fuseki.ServerTest.serviceUpdate ;
+import static org.apache.jena.fuseki.ServerTest.urlDataset ;
+
+import org.junit.Test ;
+
+public class TestHttpOptions extends AbstractFusekiTest
+{
+ @Test
+ public void options_query() {
+ String v = FusekiTest.execOptions(serviceQuery) ;
+ FusekiTest.assertStringList(v, "GET", "OPTIONS", "POST") ;
+ }
+
+ @Test
+ public void options_update() {
+ String v = FusekiTest.execOptions(serviceUpdate) ;
+ FusekiTest.assertStringList(v, "OPTIONS", "POST") ;
+ }
+
+ @Test
+ public void options_dataset_01() {
+ String v = FusekiTest.execOptions(urlDataset) ;
+ // Not DELETE
+ FusekiTest.assertStringList(v, "HEAD", "GET", "OPTIONS", "POST", "PUT") ;
+ }
+
+ @Test
+ public void options_dataset_02() {
+ //"quads"
+ }
+
+ @Test
+ public void options_gsp_rw() {
+ String v = FusekiTest.execOptions(serviceGSP+"?default") ;
+ FusekiTest.assertStringList(v, "GET", "OPTIONS", "HEAD", "POST", "PUT", "DELETE") ;
+ }
+
+}
+
http://git-wip-us.apache.org/repos/asf/jena/blob/d61d1ca2/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestServerReadOnly.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestServerReadOnly.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestServerReadOnly.java
new file mode 100644
index 0000000..8e3f98a
--- /dev/null
+++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/TestServerReadOnly.java
@@ -0,0 +1,134 @@
+/**
+ * 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 static org.apache.jena.fuseki.ServerTest.serviceGSP ;
+import static org.apache.jena.fuseki.ServerTest.serviceQuery ;
+import static org.apache.jena.fuseki.ServerTest.serviceUpdate ;
+
+import java.nio.charset.StandardCharsets ;
+
+import org.apache.http.HttpEntity ;
+import org.apache.http.entity.StringEntity ;
+import org.apache.jena.atlas.junit.BaseTest ;
+import org.apache.jena.query.Query ;
+import org.apache.jena.query.QueryExecution ;
+import org.apache.jena.query.QueryExecutionFactory ;
+import org.apache.jena.query.QueryFactory ;
+import org.apache.jena.riot.web.HttpOp ;
+import org.apache.jena.update.UpdateExecutionFactory ;
+import org.apache.jena.update.UpdateFactory ;
+import org.apache.jena.update.UpdateProcessor ;
+import org.apache.jena.update.UpdateRequest ;
+import org.apache.jena.web.HttpSC ;
+import org.junit.AfterClass ;
+import org.junit.BeforeClass ;
+import org.junit.Test ;
+
+/** Tests on a read only server. */
+public class TestServerReadOnly extends BaseTest
+{
+ // readonly server.
+ @BeforeClass
+ public static void allocServerForSuite() {
+ ServerTest.allocServer(false) ;
+ }
+
+ @AfterClass
+ public static void freeServerForSuite() {
+ ServerTest.freeServer() ;
+ }
+
+ @Test
+ public void query_readonly() {
+ Query query = QueryFactory.create("ASK{}");
+ QueryExecution qexec = QueryExecutionFactory.sparqlService(serviceQuery, query);
+ qexec.execAsk() ;
+ }
+
+ @Test()
+ public void update_readonly() {
+ FusekiTest.exec404( () -> {
+ UpdateRequest update = UpdateFactory.create("INSERT DATA {}");
+ UpdateProcessor proc = UpdateExecutionFactory.createRemote(update, serviceUpdate);
+ proc.execute();
+ });
+ }
+
+
+ @Test
+ public void gsp_w_readonly_POST() {
+ // Try to write
+ FusekiTest.execWithHttpException(HttpSC.METHOD_NOT_ALLOWED_405, ()->{
+ HttpEntity e = new StringEntity("", StandardCharsets.UTF_8) ;
+ HttpOp.execHttpPost(serviceGSP+"?default", e);
+ }) ;
+ }
+
+ @Test
+ public void gsp_w_readonly_PUT() {
+ // Try to write
+ FusekiTest.execWithHttpException(HttpSC.METHOD_NOT_ALLOWED_405, ()->{
+ HttpEntity e = new StringEntity("", StandardCharsets.UTF_8) ;
+ HttpOp.execHttpPut(serviceGSP+"?default", e);
+ }) ;
+ }
+
+ @Test
+ public void gsp_w_readonly_DELETE() {
+ // Try to write
+ FusekiTest.execWithHttpException(HttpSC.METHOD_NOT_ALLOWED_405, ()->{
+ HttpOp.execHttpDelete(serviceGSP+"?default");
+ }) ;
+ }
+
+ @Test
+ public void dataset_w_readonly_POST() {
+ // Try to write
+ FusekiTest.execWithHttpException(HttpSC.METHOD_NOT_ALLOWED_405, ()->{
+ HttpEntity e = new StringEntity("", StandardCharsets.UTF_8) ;
+ HttpOp.execHttpPost(ServerTest.urlDataset, e) ;
+ }) ;
+ }
+
+ @Test
+ public void dataset_w_readonly_PUT() {
+ // Try to write
+ FusekiTest.execWithHttpException(HttpSC.METHOD_NOT_ALLOWED_405, ()->{
+ HttpEntity e = new StringEntity("", StandardCharsets.UTF_8) ;
+ HttpOp.execHttpPut(ServerTest.urlDataset, e) ;
+ }) ;
+ }
+
+ @Test
+ public void dataset_w_readonly_DELETE() {
+ // Try to write
+ FusekiTest.execWithHttpException(HttpSC.METHOD_NOT_ALLOWED_405, ()->{
+ HttpOp.execHttpDelete(ServerTest.urlDataset) ;
+ }) ;
+ }
+
+ @Test
+ public void options_gsp_readonly() {
+ String v = FusekiTest.execOptions(serviceGSP+"?default") ;
+ FusekiTest.assertStringList(v, "GET", "OPTIONS", "HEAD") ;
+ }
+
+}
+
[02/13] jena git commit: Reword addHeader warning. Reformat.
Posted by an...@apache.org.
Reword addHeader warning. Reformat.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/f42d76dc
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/f42d76dc
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/f42d76dc
Branch: refs/heads/master
Commit: f42d76dcd03551213ba63696d9889d07979192d5
Parents: 70db5e1
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Oct 23 10:52:41 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Oct 23 10:52:41 2015 +0100
----------------------------------------------------------------------
.../servlets/HttpServletResponseTracker.java | 76 ++++++++++----------
1 file changed, 36 insertions(+), 40 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/f42d76dc/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/HttpServletResponseTracker.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/HttpServletResponseTracker.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/HttpServletResponseTracker.java
index c39e728..ac7ce09 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/HttpServletResponseTracker.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/HttpServletResponseTracker.java
@@ -18,6 +18,7 @@
package org.apache.jena.fuseki.servlets;
+import static java.lang.String.format ;
import java.io.IOException ;
import javax.servlet.http.HttpServletResponse ;
@@ -31,70 +32,65 @@ public class HttpServletResponseTracker extends HttpServletResponseWrapper
{
private final HttpAction action ;
- public HttpServletResponseTracker(HttpAction action, HttpServletResponse response)
- {
- super(response) ;
- this.action = action ;
+ public HttpServletResponseTracker(HttpAction action, HttpServletResponse response) {
+ super(response);
+ this.action = action;
}
@Override
- public void sendError(int sc, String msg) throws IOException
- {
- action.statusCode = sc ;
- action.message = msg ;
- super.sendError(sc, msg) ;
+ public void sendError(int sc, String msg) throws IOException {
+ action.statusCode = sc;
+ action.message = msg;
+ super.sendError(sc, msg);
}
@Override
- public void sendError(int sc) throws IOException
- {
- action.statusCode = sc ;
- action.message = null ;
- super.sendError(sc) ;
+ public void sendError(int sc) throws IOException {
+ action.statusCode = sc;
+ action.message = null;
+ super.sendError(sc);
}
@Override
- public void setHeader(String name, String value)
- {
- super.setHeader(name, value) ;
- action.headers.put(name, value) ;
+ public void setHeader(String name, String value) {
+ super.setHeader(name, value);
+ action.headers.put(name, value);
}
@Override
- public void addHeader(String name, String value)
- {
- Log.warn(this, "Unexpected addHeader - not recorded in log") ;
- super.addHeader(name, value) ;
+ public void addHeader(String name, String value) {
+ // Fuseki only uses setHeader.
+ // This is assumption checking code.
+ // (No design reason why Fuseki can't use multiple headers.)
+ Log.warn(this, format("addHeader(%s: %s) : Expected only setHeader - header not in response", name, value));
+ super.addHeader(name, value);
}
+
@Override
- public void setStatus(int sc)
- {
- action.statusCode = sc ;
- action.message = null ;
- super.setStatus(sc) ;
+ public void setStatus(int sc) {
+ action.statusCode = sc;
+ action.message = null;
+ super.setStatus(sc);
}
@Override
@Deprecated
- public void setStatus(int sc, String sm)
- {
- action.statusCode = sc ;
- action.message = sm ;
- super.setStatus(sc, sm) ;
+ public void setStatus(int sc, String sm) {
+ action.statusCode = sc;
+ action.message = sm;
+ super.setStatus(sc, sm);
}
@Override
- public void setContentLength(int len)
- {
- action.contentLength = len ;
- super.setContentLength(len) ;
+ public void setContentLength(int len) {
+ action.contentLength = len;
+ super.setContentLength(len);
}
@Override
- public void setContentType(String type)
- {
- action.contentType = type ;
- super.setContentType(type) ;
+ public void setContentType(String type) {
+ action.contentType = type;
+ super.setContentType(type);
}
// From HttpServletResponse
[12/13] jena git commit: Reset
Posted by an...@apache.org.
Reset
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/dba52b9b
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/dba52b9b
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/dba52b9b
Branch: refs/heads/master
Commit: dba52b9b20c07291fe47f431c4462d34c397d918
Parents: 32e78fa
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Oct 23 20:29:57 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Oct 23 20:29:57 2015 +0100
----------------------------------------------------------------------
.../org/apache/jena/fuseki/server/ServerInitialConfig.java | 9 +++++++++
1 file changed, 9 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/dba52b9b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/ServerInitialConfig.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/ServerInitialConfig.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/ServerInitialConfig.java
index 1e42bd6..d1d4f11 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/ServerInitialConfig.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/ServerInitialConfig.java
@@ -42,4 +42,13 @@ public class ServerInitialConfig {
// Additional information.
public Map<String,String> params = new HashMap<>() ;
+
+ public void reset() {
+ argTemplateFile = null ;
+ datasetPath = null ;
+ allowUpdate = false ;
+ dsg = null ;
+ fusekiCmdLineConfigFile = null ; // Command line --conf.
+ fusekiServerConfigFile = null ;
+ }
}