Author: reto
Date: Wed Jan 27 13:37:57 2010
New Revision: 903636

URL: http://svn.apache.org/viewvc?rev=903636&view=rev
Log:
CLEREZZA-70: closed

Added:
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.utils/src/main/java/org/apache/clerezza/rdf/utils/MGraphUtils.java
      - copied unchanged from r903625, 
incubator/clerezza/issues/CLEREZZA-70/org.apache.clerezza.rdf.utils/src/main/java/org/apache/clerezza/rdf/utils/MGraphUtils.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.utils/src/test/java/org/apache/clerezza/rdf/utils/MGraphUtilsTest.java
      - copied unchanged from r903625, 
incubator/clerezza/issues/CLEREZZA-70/org.apache.clerezza.rdf.utils/src/test/java/org/apache/clerezza/rdf/utils/MGraphUtilsTest.java
Removed:
    incubator/clerezza/issues/CLEREZZA-70/
Modified:
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.utils/
   (props changed)
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.content/
   (props changed)
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/Editor.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.content/src/main/resources/org/apache/clerezza/platform/content/staticweb/scripts/tria-disco.js

Propchange: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.utils/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Wed Jan 27 13:37:57 2010
@@ -0,0 +1 @@
+/incubator/clerezza/issues/CLEREZZA-70/org.apache.clerezza.rdf.utils:901253-903625

Propchange: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.content/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Jan 27 13:37:57 2010
@@ -1,3 +1,3 @@
 
/incubator/clerezza/issues/CLEREZZA-25/org.apache.clerezza.platform.content:891178-892849
 
/incubator/clerezza/issues/CLEREZZA-65/org.apache.clerezza.platform.content:897875-897920
-/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.content:890392-891033
+/incubator/clerezza/issues/CLEREZZA-70/org.apache.clerezza.platform.content:897917-903631

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/Editor.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/Editor.java?rev=903636&r1=903635&r2=903636&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/Editor.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/Editor.java
 Wed Jan 27 13:37:57 2010
@@ -23,7 +23,6 @@
 import java.lang.annotation.Annotation;
 import java.net.URL;
 
-import javax.ws.rs.Consumes;
 import javax.ws.rs.FormParam;
 import javax.ws.rs.GET;
 import javax.ws.rs.POST;
@@ -36,9 +35,14 @@
 import javax.ws.rs.core.UriInfo;
 import javax.ws.rs.ext.MessageBodyReader;
 import javax.ws.rs.ext.Providers;
+import org.apache.clerezza.rdf.utils.MGraphUtils.NoSuchSubGraphException;
 
 import org.osgi.framework.Bundle;
 import org.osgi.service.component.ComponentContext;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.Service;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.apache.clerezza.jaxrs.utils.TrailingSlash;
@@ -48,6 +52,7 @@
 import org.apache.clerezza.rdf.core.UriRef;
 import org.apache.clerezza.rdf.core.access.TcManager;
 import org.apache.clerezza.rdf.utils.GraphNode;
+import org.apache.clerezza.rdf.utils.MGraphUtils;
 import org.apache.clerezza.web.fileserver.BundlePathNode;
 import org.apache.clerezza.web.fileserver.FileServer;
 import org.wymiwyg.commons.util.dirbrowser.PathNode;
@@ -57,22 +62,18 @@
  * using the Discobits ontology
  *
  * @author rbn
- * @scr.component
- * @scr.service interface="java.lang.Object"
- * @scr.property name="javax.ws.rs" type="Boolean" value="true"
  *
  */
+...@component
+...@service(Object.class)
+...@property(name="javax.ws.rs", boolValue=true)
 @Path("tools/editor")
 public class Editor {
-       
-       /**
-        * @scr.reference
-        */
+
+       @Reference
        private ContentGraphProvider cgProvider;
 
-       /**
-        * @scr.reference
-        */
+       @Reference
        private TcManager tcManager;
 
        
@@ -116,35 +117,39 @@
                        tcManager.getMGraph(graphUri);
                return new GraphNode(uri, mGraph);
        }
-       /*
-        * note that without specifying consumes the subsequent method using
-        * @FormParam is never selected
+
+       /**
+        * replaces the subgraph serialized with RDF/XML in <code>revokedString
+        * </code> with the one from <code>assertedString</code>.
+        *
+        * @param graphUri the graph within which the replacement has to take 
place or null
+        * for the content graph
+        * @param assertedString the asserted Graph as RDF/XML
+        * @param revokedString the revoked Graph as RDF/XML
         */
        @POST
        @Path("post")
-       @Consumes({"application/rdf+xml", 
"text/rdf+n3","application/n-triples","application/turtle","application/n3","text/n3","text/turtle"})
-       public void postDiscobit(@QueryParam("resource") UriRef uri, 
-                       @QueryParam("graph") UriRef graphUri, Graph graph) {
-               final MGraph mGraph = graphUri == null ? 
cgProvider.getContentGraph() :
-                       tcManager.getMGraph(graphUri);
-               new SimpleDiscobitsHandler(mGraph).remove(uri);
-               mGraph.addAll(graph);
-       }
-       
-       @POST
-       @Path("post")
-       public void postDiscobit(@QueryParam("resource") UriRef uri,
-                       @QueryParam("graph") UriRef graphUri,
-                       @FormParam("assert") String assertedString) {
+       public void postDiscobit(@QueryParam("graph") UriRef graphUri,
+                       @FormParam("assert") String assertedString,
+                       @FormParam("revoke") String revokedString) {
                MessageBodyReader<Graph> graphReader = 
providers.getMessageBodyReader(Graph.class, Graph.class, null,rdfXmlType);
                final Graph assertedGraph;
+               final Graph revokedGraph;
                try {
-                       assertedGraph = graphReader.readFrom(Graph.class, 
Graph.class, new Annotation[0], rdfXmlType, null, new 
ByteArrayInputStream(assertedString.getBytes()));                       
+                       assertedGraph = graphReader.readFrom(Graph.class, 
Graph.class, new Annotation[0], rdfXmlType, null, new 
ByteArrayInputStream(assertedString.getBytes()));
+                       revokedGraph = graphReader.readFrom(Graph.class, 
Graph.class, new Annotation[0], rdfXmlType, null, new 
ByteArrayInputStream(revokedString.getBytes()));
                } catch (IOException ex) {
                        logger.error("reading graph {}", ex);
                        throw new WebApplicationException(ex, 500);
                }
-               postDiscobit(uri, graphUri, assertedGraph);
+               final MGraph mGraph = graphUri == null ? 
cgProvider.getContentGraph() :
+                       tcManager.getMGraph(graphUri);
+               try {
+                       MGraphUtils.removeSubGraph(mGraph, revokedGraph);
+               } catch (NoSuchSubGraphException ex) {
+                       throw new RuntimeException(ex);
+               }
+               mGraph.addAll(assertedGraph);
        }
 
        @GET

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.content/src/main/resources/org/apache/clerezza/platform/content/staticweb/scripts/tria-disco.js
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.content/src/main/resources/org/apache/clerezza/platform/content/staticweb/scripts/tria-disco.js?rev=903636&r1=903635&r2=903636&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.content/src/main/resources/org/apache/clerezza/platform/content/staticweb/scripts/tria-disco.js
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.content/src/main/resources/org/apache/clerezza/platform/content/staticweb/scripts/tria-disco.js
 Wed Jan 27 13:37:57 2010
@@ -5,15 +5,20 @@
 
 TriaDisco.putData = function(rdfSymbol, store, previousStore, 
noContainerCreation) {
     var xhr = Util.XMLHTTPFactory();
-    var postUrl = "post?resource="+rdfSymbol.uri;
+    var postUrl = "post";
        if (TriaDisco.graphUri != null) {
-               postUrl += "&graph="+TriaDisco.graphUri
+               postUrl += "?graph="+TriaDisco.graphUri
        }
     xhr.open('POST', postUrl, false);
-    xhr.setRequestHeader("Content-Type", "application/rdf+xml");
-    var assertedRDF = new 
XMLSerializer().serializeToString(RDFXMLSerializer.serialize(store, ""));
-    xhr.setRequestHeader("Content-length", assertedRDF.length);
-    xhr.send(assertedRDF);
+
+       var assertedRDF = new 
XMLSerializer().serializeToString(RDFXMLSerializer.serialize(store, ""));
+       var revokedRDF = new 
XMLSerializer().serializeToString(RDFXMLSerializer.serialize(previousStore, 
""));
+       var parameters = "assert="+encodeURIComponent(assertedRDF);
+       parameters += "&revoke="+encodeURIComponent(revokedRDF);
+       xhr.setRequestHeader("Content-type", 
"application/x-www-form-urlencoded");
+       xhr.setRequestHeader("Content-length", parameters.length);
+       //xhr.setRequestHeader("Connection", "close");
+       xhr.send(parameters);
     if (xhr.status >= 300) {
         alert(xhr.status+" " +xhr.statusText);
         throw new Error(xhr.status+" " +xhr.statusText);


Reply via email to