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();
 -    }
 -
  }