You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@marmotta.apache.org by wi...@apache.org on 2014/06/13 11:02:49 UTC
[20/20] git commit: merged develop branch
merged develop branch
Project: http://git-wip-us.apache.org/repos/asf/marmotta/repo
Commit: http://git-wip-us.apache.org/repos/asf/marmotta/commit/e10955ec
Tree: http://git-wip-us.apache.org/repos/asf/marmotta/tree/e10955ec
Diff: http://git-wip-us.apache.org/repos/asf/marmotta/diff/e10955ec
Branch: refs/heads/ldp
Commit: e10955ec8ca92d408c63dfbd119159bbf586c688
Parents: b61ebf8 4a188e6
Author: Sergio Fernández <wi...@apache.org>
Authored: Fri Jun 13 11:01:59 2014 +0200
Committer: Sergio Fernández <wi...@apache.org>
Committed: Fri Jun 13 11:01:59 2014 +0200
----------------------------------------------------------------------
.../commons/sesame/test/SesameMatchers.java | 295 +++++++-
.../AbstractRepositoryConnectionMatcher.java | 1 -
.../sesame/test/base/RdfStringMatcher.java | 50 +-
.../sesame/test/base/RepositoryMatcher.java | 50 +-
.../commons/sesame/test/base/SesameMatcher.java | 1 -
.../test/connection/HasStatementMatcher.java | 42 +-
.../sesame/test/sparql/SparqlAskMatcher.java | 16 +
.../test/sparql/SparqlGraphQueryMatcher.java | 51 +-
.../test/sparql/SparqlTupleQueryMatcher.java | 1 -
.../optimizer/DistinctLimitOptimizer.java | 8 +
.../kiwi/test/junit/KiWiDatabaseRunner.java | 9 +-
.../ldpath-backend-linkeddata/assembly.xml | 56 --
.../ldpath/ldpath-backend-linkeddata/pom.xml | 265 +------
.../src/main/doc/LICENSE.txt | 754 ------------------
.../src/main/doc/NOTICE.txt | 18 -
.../src/main/doc/README.txt | 99 ---
.../ldpath/backend/linkeddata/LDQuery.java | 173 -----
libraries/ldpath/ldpath-core-bundle/pom.xml | 10 +-
libraries/ldpath/ldpath-functions-json/pom.xml | 107 +++
.../model/functions/json/JsonPathFunction.java | 84 +++
...rmotta.ldpath.api.functions.SelectorFunction | 1 +
.../functions/json/JsonPathFunctionTest.java | 61 ++
.../src/test/resources/logback.xml | 27 +
.../ldpath/model/functions/json/data.n3 | 31 +
.../ldpath/ldpath-ldquery-cli/assembly.xml | 56 ++
libraries/ldpath/ldpath-ldquery-cli/pom.xml | 338 +++++++++
.../ldpath-ldquery-cli/src/main/doc/LICENSE.txt | 755 +++++++++++++++++++
.../ldpath-ldquery-cli/src/main/doc/NOTICE.txt | 18 +
.../ldpath-ldquery-cli/src/main/doc/README.txt | 99 +++
.../apache/marmotta/ldpath/ldquery/LDQuery.java | 196 +++++
.../ldpath/ldpath-template-linkeddata/pom.xml | 134 ++++
.../marmotta/ldpath/template/LDTemplate.java | 2 +-
libraries/ldpath/pom.xml | 2 +
parent/pom.xml | 77 +-
.../marmotta/platform/ldp/api/LdpService.java | 9 +-
.../IncompatibleResourceTypeException.java | 59 ++
.../InvalidInteractionModelException.java | 2 +-
.../InvalidModificationException.java | 2 +-
.../platform/ldp/exceptions/LDPException.java | 56 ++
.../platform/ldp/services/LdpServiceImpl.java | 79 +-
.../platform/ldp/util/EntityTagUtils.java | 19 +
.../platform/ldp/webservices/LdpWebService.java | 33 +-
.../ldp/webservices/LdpWebServiceTest.java | 115 ++-
.../ldp/webservices/util/HeaderMatchers.java | 13 +-
.../src/test/resources/test_update.ttl | 27 +
.../src/test/resources/test_update_invalid.ttl | 25 +
pom.xml | 30 +-
47 files changed, 2910 insertions(+), 1446 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/marmotta/blob/e10955ec/platform/marmotta-ldp/src/main/java/org/apache/marmotta/platform/ldp/services/LdpServiceImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/marmotta/blob/e10955ec/platform/marmotta-ldp/src/main/java/org/apache/marmotta/platform/ldp/webservices/LdpWebService.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/marmotta/blob/e10955ec/platform/marmotta-ldp/src/test/java/org/apache/marmotta/platform/ldp/webservices/LdpWebServiceTest.java
----------------------------------------------------------------------
diff --cc platform/marmotta-ldp/src/test/java/org/apache/marmotta/platform/ldp/webservices/LdpWebServiceTest.java
index 3446649,214926e..8053e46
--- a/platform/marmotta-ldp/src/test/java/org/apache/marmotta/platform/ldp/webservices/LdpWebServiceTest.java
+++ b/platform/marmotta-ldp/src/test/java/org/apache/marmotta/platform/ldp/webservices/LdpWebServiceTest.java
@@@ -309,4 -314,113 +314,108 @@@ public class LdpWebServiceTest
.post(container);
}
+ @Test
+ public void testPUT() throws Exception {
+ final String container = baseUrl+LdpWebService.PATH + "/test";
+
+ final String put_valid = IOUtils.toString(LdpWebServiceTest.class.getResourceAsStream("/test_update.ttl"), "utf8");
+ final String put_invalid = IOUtils.toString(LdpWebServiceTest.class.getResourceAsStream("/test_update_invalid.ttl"), "utf8");
+
+
+ // Create a resource
+ final String resource = RestAssured
+ .given()
+ .header("Slug", "PUT")
+ .contentType(RDFFormat.TURTLE.getDefaultMIMEType())
+ .body(testResourceTTL.getBytes())
+ .expect()
+ .statusCode(201)
+ .post(container)
+ .getHeader("Location");
+ final URI uri = new URIImpl(resource);
+
+ // Check the data is there
+ EntityTag etag = EntityTagUtils.parseEntityTag(RestAssured
+ .given()
+ .header("Accept", RDFFormat.RDFXML.getDefaultMIMEType())
+ .expect()
+ .contentType(RDFFormat.RDFXML.getDefaultMIMEType())
+ .body(SesameMatchers.rdfStringMatches(RDFFormat.RDFXML, resource,
+ SesameMatchers.hasStatement(uri, RDF.TYPE, new URIImpl("http://example.com/Example")),
+ CoreMatchers.not(SesameMatchers.hasStatement(uri, RDFS.LABEL, null)),
+ CoreMatchers.not(SesameMatchers.hasStatement(uri, LDP.contains, uri))
+ ))
+ .get(resource)
+ .getHeader("ETag"));
+ log.debug("ETag for <{}>: {}", resource, etag);
+
+ // Try a Put without if-match header
+ RestAssured
+ .given()
+ .contentType(RDFFormat.TURTLE.getDefaultMIMEType())
+ .body(put_valid.getBytes())
+ .expect()
+ .statusCode(428)
+ .put(resource);
+
+ // Try a Put with wrong if-match header
+ RestAssured
+ .given()
+ .header("If-Match", new EntityTag("invalid").toString())
+ .contentType(RDFFormat.TURTLE.getDefaultMIMEType())
+ .body(put_valid.getBytes())
+ .expect()
+ .statusCode(412)
+ .put(resource);
+
+ // Try a Put
+ RestAssured
+ .given()
+ .header("If-Match", etag.toString())
+ .contentType(RDFFormat.TURTLE.getDefaultMIMEType())
+ .body(put_valid.getBytes())
+ .expect()
+ .statusCode(200)
+ .put(resource);
+
+ // Check the new data is there
+ etag = EntityTagUtils.parseEntityTag(RestAssured
+ .given()
+ .header("Accept", RDFFormat.RDFXML.getDefaultMIMEType())
+ .expect()
+ .contentType(RDFFormat.RDFXML.getDefaultMIMEType())
+ .body(SesameMatchers.rdfStringMatches(RDFFormat.RDFXML, resource,
+ SesameMatchers.hasStatement(uri, RDF.TYPE, new URIImpl("http://example.com/Example")),
+ SesameMatchers.hasStatement(uri, RDFS.LABEL, null),
+ CoreMatchers.not(SesameMatchers.hasStatement(uri, LDP.contains, uri))
+ ))
+ .get(resource)
+ .header("ETag"));
+
+ // Try an invalid PUT (server-controlled property)
+ // Try a Put
+ RestAssured
+ .given()
+ .header("If-Match", etag.toString())
+ .contentType(RDFFormat.TURTLE.getDefaultMIMEType())
+ .body(put_invalid.getBytes())
+ .expect()
+ .statusCode(409)
+ .put(resource);
+
+ // Check the data is still there
+ RestAssured
+ .given()
+ .header("Accept", RDFFormat.RDFXML.getDefaultMIMEType())
+ .expect()
+ .contentType(RDFFormat.RDFXML.getDefaultMIMEType())
+ .header("ETag", HeaderMatchers.hasEntityTag(etag))
+ .body(SesameMatchers.rdfStringMatches(RDFFormat.RDFXML, resource,
+ SesameMatchers.hasStatement(uri, RDF.TYPE, new URIImpl("http://example.com/Example")),
+ SesameMatchers.hasStatement(uri, RDFS.LABEL, null),
+ CoreMatchers.not(SesameMatchers.hasStatement(uri, LDP.contains, uri))
+ ))
+ .get(resource);
+ }
+
- @AfterClass
- public static void tearDown() {
- marmotta.shutdown();
- }
-
}