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