Author: alexdma
Date: Wed Mar 28 14:32:41 2012
New Revision: 1306372
URL: http://svn.apache.org/viewvc?rev=1306372&view=rev
Log:
More powerful POST API for OntoNet sessions
Modified:
incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/SessionResource.java
Modified:
incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/SessionResource.java
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/SessionResource.java?rev=1306372&r1=1306371&r2=1306372&view=diff
==============================================================================
---
incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/SessionResource.java
(original)
+++
incubator/stanbol/trunk/ontologymanager/web/src/main/java/org/apache/stanbol/ontologymanager/web/resources/SessionResource.java
Wed Mar 28 14:32:41 2012
@@ -17,6 +17,8 @@
package org.apache.stanbol.ontologymanager.web.resources;
import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+import static javax.ws.rs.core.MediaType.MULTIPART_FORM_DATA;
+import static javax.ws.rs.core.MediaType.TEXT_HTML;
import static javax.ws.rs.core.MediaType.TEXT_PLAIN;
import static javax.ws.rs.core.Response.Status.CONFLICT;
import static javax.ws.rs.core.Response.Status.FORBIDDEN;
@@ -60,6 +62,7 @@ import javax.ws.rs.core.UriInfo;
import org.apache.clerezza.rdf.core.Graph;
import org.apache.stanbol.commons.web.base.ContextHelper;
import org.apache.stanbol.commons.web.base.resource.BaseStanbolResource;
+import org.apache.stanbol.ontologymanager.ontonet.api.ONManager;
import
org.apache.stanbol.ontologymanager.ontonet.api.collector.IrremovableOntologyException;
import
org.apache.stanbol.ontologymanager.ontonet.api.collector.OntologyCollectorModificationException;
import
org.apache.stanbol.ontologymanager.ontonet.api.collector.UnmodifiableOntologyCollectorException;
@@ -75,6 +78,10 @@ import org.semanticweb.owlapi.model.OWLO
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.sun.jersey.multipart.BodyPart;
+import com.sun.jersey.multipart.FormDataBodyPart;
+import com.sun.jersey.multipart.FormDataMultiPart;
+
/**
* The REST resource of an OntoNet {@link Session} whose identifier is known.
*
@@ -91,13 +98,15 @@ public class SessionResource extends Bas
*/
protected SessionManager sesMgr;
+ protected ONManager onMgr;
+
protected Session session;
public SessionResource(@PathParam(value = "id") String sessionId, @Context
ServletContext servletContext) {
this.servletContext = servletContext;
this.sesMgr = (SessionManager)
ContextHelper.getServiceFromContext(SessionManager.class,
servletContext);
- // sesMgr = onm.getSessionManager();
+ this.onMgr = (ONManager)
ContextHelper.getServiceFromContext(ONManager.class, servletContext);
session = sesMgr.getSession(sessionId);
}
@@ -346,6 +355,31 @@ public class SessionResource extends Bas
return rb.build();
}
+ @POST
+ @Consumes({MULTIPART_FORM_DATA})
+ @Produces({TEXT_HTML, TEXT_PLAIN, RDF_XML, TURTLE, X_TURTLE, N3})
+ public Response append(FormDataMultiPart data, @Context HttpHeaders
headers) {
+ System.out.println(" post(FormDataMultiPart data)");
+ log.debug(" post(FormDataMultiPart data)");
+ ResponseBuilder rb;
+
+ for (BodyPart bpart : data.getBodyParts()) {
+ log.debug("is a {}", bpart.getClass());
+ if (bpart instanceof FormDataBodyPart) {
+ FormDataBodyPart dbp = (FormDataBodyPart) bpart;
+ String name = dbp.getName();
+ if (name.equals("scope")) {
+
session.attachScope(onMgr.getScopeRegistry().getScope(dbp.getValue()));
+ }
+ }
+ }
+ rb = Response.ok();
+ // rb.header(HttpHeaders.CONTENT_TYPE, TEXT_HTML + "; charset=utf-8");
+ // FIXME return an appropriate response e.g. 303
+ addCORSOrigin(servletContext, rb, headers);
+ return rb.build();
+ }
+
/**
* Tells the session to no longer manage the ontology with the supplied
<i>logical</i> identifier. The
* ontology will be lost if not stored or not managed by another collector.