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.


Reply via email to