Author: sinaci
Date: Thu Mar 15 13:20:13 2012
New Revision: 1300969

URL: http://svn.apache.org/viewvc?rev=1300969&view=rev
Log:
- CORS support for CMS Adapter, Contenthub

Modified:
    
incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/BridgeDefinitionsResource.java
    
incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/ContenthubFeedResource.java
    
incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/NotifyResource.java
    
incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/ObjectTypesResource.java
    
incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/RDFMapperResource.java
    
incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/RootResource.java
    
incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/SessionResource.java
    
incubator/stanbol/trunk/contenthub/web/src/main/java/org/apache/stanbol/contenthub/web/resources/RootResource.java

Modified: 
incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/BridgeDefinitionsResource.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/BridgeDefinitionsResource.java?rev=1300969&r1=1300968&r2=1300969&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/BridgeDefinitionsResource.java
 (original)
+++ 
incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/BridgeDefinitionsResource.java
 Thu Mar 15 13:20:13 2012
@@ -16,17 +16,23 @@
  */
 package org.apache.stanbol.cmsadapter.web.resources;
 
+import static org.apache.stanbol.commons.web.base.CorsHelper.addCORSOrigin;
+import static org.apache.stanbol.commons.web.base.CorsHelper.enableCORS;
+
 import java.util.Hashtable;
 
 import javax.servlet.ServletContext;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.FormParam;
+import javax.ws.rs.OPTIONS;
 import javax.ws.rs.POST;
 import javax.ws.rs.Path;
 import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.core.Context;
+import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.ResponseBuilder;
 import javax.ws.rs.core.Response.Status;
 
 import org.apache.stanbol.cmsadapter.core.mapping.MappingConfigurationImpl;
@@ -52,13 +58,13 @@ public class BridgeDefinitionsResource e
 
     private MappingEngine engine;
 
-    @SuppressWarnings("rawtypes")
     public BridgeDefinitionsResource(@Context ServletContext context) {
         try {
             BundleContext bundleContext = (BundleContext) 
context.getAttribute(BundleContext.class.getName());
             ServiceReference serviceReference = 
bundleContext.getServiceReferences(null,
                 MAPPING_ENGINE_COMPONENT_FACTORY_FILTER)[0];
             ComponentFactory componentFactory = (ComponentFactory) 
bundleContext.getService(serviceReference);
+            @SuppressWarnings("rawtypes")
             ComponentInstance componentInstance = 
componentFactory.newInstance(new Hashtable());
             this.engine = (MappingEngine) componentInstance.getInstance();
 
@@ -68,6 +74,13 @@ public class BridgeDefinitionsResource e
         }
     }
 
+    @OPTIONS
+    public Response handleCorsPreflight(@Context HttpHeaders headers) {
+        ResponseBuilder res = Response.ok();
+        enableCORS(servletContext, res, headers);
+        return res.build();
+    }
+    
     /**
      * Takes connection information to access the content managament system 
and executes the bridge
      * definitions. After completing processing of bridges, generated ontology 
is stored through <b>Store</b>
@@ -82,7 +95,8 @@ public class BridgeDefinitionsResource e
     @POST
     @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
     public Response registeBridgeDefinitions(@FormParam("connectionInfo") 
ConnectionInfo connectionInfo,
-                                             @FormParam("bridgeDefinitions") 
BridgeDefinitions bridgeDefinitions) {
+                                             @FormParam("bridgeDefinitions") 
BridgeDefinitions bridgeDefinitions,
+                                             @Context HttpHeaders headers) {
 
         if(connectionInfo == null) {
             logger.warn("No specified connection info");
@@ -105,6 +119,8 @@ public class BridgeDefinitionsResource e
             logger.warn("Cannot access to repository", e);
         }
 
-        return Response.status(Status.INTERNAL_SERVER_ERROR).build();
+        ResponseBuilder rb = Response.status(Status.INTERNAL_SERVER_ERROR);
+        addCORSOrigin(servletContext, rb, headers);
+        return rb.build();
     }
 }
\ No newline at end of file

Modified: 
incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/ContenthubFeedResource.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/ContenthubFeedResource.java?rev=1300969&r1=1300968&r2=1300969&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/ContenthubFeedResource.java
 (original)
+++ 
incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/ContenthubFeedResource.java
 Thu Mar 15 13:20:13 2012
@@ -17,6 +17,8 @@
 package org.apache.stanbol.cmsadapter.web.resources;
 
 import static javax.ws.rs.core.MediaType.TEXT_HTML;
+import static org.apache.stanbol.commons.web.base.CorsHelper.addCORSOrigin;
+import static org.apache.stanbol.commons.web.base.CorsHelper.enableCORS;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -27,12 +29,15 @@ import javax.ws.rs.DELETE;
 import javax.ws.rs.DefaultValue;
 import javax.ws.rs.FormParam;
 import javax.ws.rs.GET;
+import javax.ws.rs.OPTIONS;
 import javax.ws.rs.POST;
 import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
 import javax.ws.rs.core.Context;
+import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.ResponseBuilder;
 import javax.ws.rs.core.Response.Status;
 
 import org.apache.stanbol.cmsadapter.core.mapping.ContenthubFeederManager;
@@ -63,10 +68,19 @@ public class ContenthubFeedResource exte
         feederManager = 
ContextHelper.getServiceFromContext(ContenthubFeederManager.class, context);
     }
 
+    @OPTIONS
+    public Response handleCorsPreflight(@Context HttpHeaders headers) {
+        ResponseBuilder res = Response.ok();
+        enableCORS(servletContext, res, headers);
+        return res.build();
+    }
+
     @GET
     @Produces(TEXT_HTML)
-    public Response get() {
-        return Response.ok(new Viewable("index", this), TEXT_HTML).build();
+    public Response get(@Context HttpHeaders headers) {
+        ResponseBuilder rb = Response.ok(new Viewable("index", this), 
TEXT_HTML);
+        addCORSOrigin(servletContext, rb, headers);
+        return rb.build();
     }
 
     /**
@@ -115,8 +129,9 @@ public class ContenthubFeedResource exte
                                               @FormParam("id") String id,
                                               @FormParam("path") String path,
                                               @FormParam("recursive") 
@DefaultValue("false") boolean recursive,
-                                              @FormParam("contentProperties") 
@DefaultValue("skos:definition,content") String contentProperties) throws 
RepositoryAccessException,
-                                                                               
                                                                 
ContenthubFeederException {
+                                              @FormParam("contentProperties") 
@DefaultValue("skos:definition,content") String contentProperties,
+                                              @Context HttpHeaders headers) 
throws RepositoryAccessException,
+                                                                           
ContenthubFeederException {
 
         sessionKey = RestUtil.nullify(sessionKey);
         id = RestUtil.nullify(id);
@@ -144,7 +159,9 @@ public class ContenthubFeedResource exte
                     .entity("There is no parameter specified to select content 
repository objects\n").build();
         }
 
-        return Response.ok().build();
+        ResponseBuilder rb = Response.ok();
+        addCORSOrigin(servletContext, rb, headers);
+        return rb.build();
     }
 
     /**
@@ -179,8 +196,9 @@ public class ContenthubFeedResource exte
     public Response deleteObjectsFromContenthub(@FormParam("sessionKey") 
String sessionKey,
                                                 @FormParam("id") String id,
                                                 @FormParam("path") String path,
-                                                @FormParam("recursive") 
@DefaultValue("false") boolean recursive) throws RepositoryAccessException,
-                                                                               
                                  ContenthubFeederException {
+                                                @FormParam("recursive") 
@DefaultValue("false") boolean recursive,
+                                                @Context HttpHeaders headers) 
throws RepositoryAccessException,
+                                                                             
ContenthubFeederException {
 
         sessionKey = RestUtil.nullify(sessionKey);
         id = RestUtil.nullify(id);
@@ -205,7 +223,9 @@ public class ContenthubFeedResource exte
                     .entity("There is no parameter specified to select content 
repository objects\n").build();
         }
 
-        return Response.ok().build();
+        ResponseBuilder rb = Response.ok();
+        addCORSOrigin(servletContext, rb, headers);
+        return rb.build();
     }
 
     private List<String> parseContentProperties(String contentProperties) {

Modified: 
incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/NotifyResource.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/NotifyResource.java?rev=1300969&r1=1300968&r2=1300969&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/NotifyResource.java
 (original)
+++ 
incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/NotifyResource.java
 Thu Mar 15 13:20:13 2012
@@ -16,6 +16,9 @@
  */
 package org.apache.stanbol.cmsadapter.web.resources;
 
+import static org.apache.stanbol.commons.web.base.CorsHelper.addCORSOrigin;
+import static org.apache.stanbol.commons.web.base.CorsHelper.enableCORS;
+
 import java.util.Hashtable;
 import java.util.List;
 
@@ -23,6 +26,7 @@ import javax.servlet.ServletContext;
 import javax.ws.rs.DELETE;
 import javax.ws.rs.DefaultValue;
 import javax.ws.rs.FormParam;
+import javax.ws.rs.OPTIONS;
 import javax.ws.rs.POST;
 import javax.ws.rs.PUT;
 import javax.ws.rs.Path;
@@ -30,7 +34,9 @@ import javax.ws.rs.PathParam;
 import javax.ws.rs.QueryParam;
 import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.core.Context;
+import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.ResponseBuilder;
 
 import org.apache.clerezza.rdf.core.access.TcManager;
 import org.apache.stanbol.cmsadapter.core.helper.TcManagerClient;
@@ -80,12 +86,20 @@ public class NotifyResource extends Base
         }
     }
 
+    @OPTIONS
+    public Response handleCorsPreflight(@Context HttpHeaders headers) {
+        ResponseBuilder res = Response.ok();
+        enableCORS(servletContext, res, headers);
+        return res.build();
+    }
+
     @SuppressWarnings("unchecked")
     @POST
     public Response notifyCreate(@PathParam("ontologyURI") String ontologyURI,
                                  @FormParam("createdObjects") CMSObjects 
cmsObjects,
                                  @QueryParam("adapterMode") AdapterMode 
adapterMode,
-                                 @DefaultValue("true") 
@QueryParam("considerBridges") boolean considerBridges) {
+                                 @DefaultValue("true") 
@QueryParam("considerBridges") boolean considerBridges,
+                                 @Context HttpHeaders headers) {
 
         List<CMSObject> createdObjectList = 
cmsObjects.getClassificationObjectOrContentObject();
         TcManagerClient tcManagerClient = new TcManagerClient(tcManager);
@@ -100,7 +114,10 @@ public class NotifyResource extends Base
             
conf.setBridgeDefinitions(OntologyResourceHelper.getBridgeDefinitions(model));
         }
         engine.createModel(conf);
-        return Response.ok().build();
+
+        ResponseBuilder rb = Response.ok();
+        addCORSOrigin(servletContext, rb, headers);
+        return rb.build();
     }
 
     /**
@@ -116,7 +133,8 @@ public class NotifyResource extends Base
     public Response notifyUpdate(@PathParam("ontologyURI") String ontologyURI,
                                  @FormParam("updatedObjects") CMSObjects 
cmsObjects,
                                  @QueryParam("adapterMode") AdapterMode 
adapterMode,
-                                 @QueryParam("considerBridges") 
@DefaultValue("true") Boolean considerBridges) {
+                                 @QueryParam("considerBridges") 
@DefaultValue("true") Boolean considerBridges,
+                                 @Context HttpHeaders headers) {
         List<CMSObject> updatedObjectList = 
cmsObjects.getClassificationObjectOrContentObject();
         TcManagerClient tcManagerClient = new TcManagerClient(tcManager);
         OntModel model = 
ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM,
@@ -130,7 +148,10 @@ public class NotifyResource extends Base
             
conf.setBridgeDefinitions(OntologyResourceHelper.getBridgeDefinitions(model));
         }
         engine.updateModel(conf);
-        return Response.ok().build();
+
+        ResponseBuilder rb = Response.ok();
+        addCORSOrigin(servletContext, rb, headers);
+        return rb.build();
     }
 
     /**
@@ -144,7 +165,8 @@ public class NotifyResource extends Base
     @DELETE
     public Response notifyDelete(@PathParam("ontologyURI") String ontologyURI,
                                  @FormParam("deletedObjects") CMSObjects 
cmsObjects,
-                                 @QueryParam("considerBridges") 
@DefaultValue("true") Boolean considerBridges) {
+                                 @QueryParam("considerBridges") 
@DefaultValue("true") Boolean considerBridges,
+                                 @Context HttpHeaders headers) {
         List<CMSObject> deletedObjectList = 
cmsObjects.getClassificationObjectOrContentObject();
         TcManagerClient tcManagerClient = new TcManagerClient(tcManager);
         OntModel model = 
ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM,
@@ -159,6 +181,9 @@ public class NotifyResource extends Base
             
conf.setBridgeDefinitions(OntologyResourceHelper.getBridgeDefinitions(model));
         }
         engine.deleteModel(conf);
-        return Response.ok().build();
+
+        ResponseBuilder rb = Response.ok();
+        addCORSOrigin(servletContext, rb, headers);
+        return rb.build();
     }
 }

Modified: 
incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/ObjectTypesResource.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/ObjectTypesResource.java?rev=1300969&r1=1300968&r2=1300969&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/ObjectTypesResource.java
 (original)
+++ 
incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/ObjectTypesResource.java
 Thu Mar 15 13:20:13 2012
@@ -16,19 +16,25 @@
  */
 package org.apache.stanbol.cmsadapter.web.resources;
 
+import static org.apache.stanbol.commons.web.base.CorsHelper.addCORSOrigin;
+import static org.apache.stanbol.commons.web.base.CorsHelper.enableCORS;
+
 import java.util.Hashtable;
 import java.util.List;
 
 import javax.servlet.ServletContext;
 import javax.ws.rs.DELETE;
 import javax.ws.rs.FormParam;
+import javax.ws.rs.OPTIONS;
 import javax.ws.rs.POST;
 import javax.ws.rs.PUT;
 import javax.ws.rs.Path;
 import javax.ws.rs.PathParam;
 import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.core.Context;
+import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.ResponseBuilder;
 
 import org.apache.clerezza.rdf.core.access.TcManager;
 import org.apache.stanbol.cmsadapter.core.helper.TcManagerClient;
@@ -77,10 +83,18 @@ public class ObjectTypesResource extends
         }
     }
 
+    @OPTIONS
+    public Response handleCorsPreflight(@Context HttpHeaders headers) {
+        ResponseBuilder res = Response.ok();
+        enableCORS(servletContext, res, headers);
+        return res.build();
+    }
+
     @SuppressWarnings("unchecked")
     @POST
     public Response liftObjectTypes(@PathParam("ontologyURI") String 
ontologyURI,
-                                    @FormParam("objectTypeDefinitions") 
ObjectTypeDefinitions objectTypeDefinitions) {
+                                    @FormParam("objectTypeDefinitions") 
ObjectTypeDefinitions objectTypeDefinitions,
+                                    @Context HttpHeaders headers) {
 
         List<ObjectTypeDefinition> createdObjectList = 
objectTypeDefinitions.getObjectTypeDefinition();
 
@@ -93,13 +107,17 @@ public class ObjectTypesResource extends
         conf.setObjects((List<Object>) (List<?>) createdObjectList);
         conf.setAdapterMode(AdapterMode.STRICT_OFFLINE);
         engine.createModel(conf);
-        return Response.ok().build();
+
+        ResponseBuilder rb = Response.ok();
+        addCORSOrigin(servletContext, rb, headers);
+        return rb.build();
     }
 
     @SuppressWarnings("unchecked")
     @PUT
     public Response updateClassificationObjects(@PathParam("ontologyURI") 
String ontologyURI,
-                                                
@FormParam("objectTypeDefinitions") ObjectTypeDefinitions 
objectTypeDefinitions) {
+                                                
@FormParam("objectTypeDefinitions") ObjectTypeDefinitions objectTypeDefinitions,
+                                                @Context HttpHeaders headers) {
 
         List<ObjectTypeDefinition> createdObjectList = 
objectTypeDefinitions.getObjectTypeDefinition();
         TcManagerClient tcManagerClient = new TcManagerClient(tcManager);
@@ -111,13 +129,17 @@ public class ObjectTypesResource extends
         conf.setObjects((List<Object>) (List<?>) createdObjectList);
         conf.setAdapterMode(AdapterMode.STRICT_OFFLINE);
         engine.updateModel(conf);
-        return Response.ok().build();
+
+        ResponseBuilder rb = Response.ok();
+        addCORSOrigin(servletContext, rb, headers);
+        return rb.build();
     }
 
     @SuppressWarnings("unchecked")
     @DELETE
     public Response deleteClassificationObjects(@PathParam("ontologyURI") 
String ontologyURI,
-                                                
@FormParam("objectTypeDefinitions") ObjectTypeDefinitions 
objectTypeDefinitions) {
+                                                
@FormParam("objectTypeDefinitions") ObjectTypeDefinitions objectTypeDefinitions,
+                                                @Context HttpHeaders headers) {
 
         List<ObjectTypeDefinition> createdObjectList = 
objectTypeDefinitions.getObjectTypeDefinition();
         TcManagerClient tcManagerClient = new TcManagerClient(tcManager);
@@ -129,6 +151,9 @@ public class ObjectTypesResource extends
         conf.setObjects((List<Object>) (List<?>) createdObjectList);
         conf.setAdapterMode(AdapterMode.STRICT_OFFLINE);
         engine.deleteModel(conf);
-        return Response.ok().build();
+
+        ResponseBuilder rb = Response.ok();
+        addCORSOrigin(servletContext, rb, headers);
+        return rb.build();
     }
 }

Modified: 
incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/RDFMapperResource.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/RDFMapperResource.java?rev=1300969&r1=1300968&r2=1300969&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/RDFMapperResource.java
 (original)
+++ 
incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/RDFMapperResource.java
 Thu Mar 15 13:20:13 2012
@@ -17,6 +17,8 @@
 package org.apache.stanbol.cmsadapter.web.resources;
 
 import static javax.ws.rs.core.MediaType.TEXT_HTML;
+import static org.apache.stanbol.commons.web.base.CorsHelper.addCORSOrigin;
+import static org.apache.stanbol.commons.web.base.CorsHelper.enableCORS;
 
 import java.io.ByteArrayInputStream;
 import java.io.File;
@@ -31,13 +33,16 @@ import javax.ws.rs.Consumes;
 import javax.ws.rs.DefaultValue;
 import javax.ws.rs.FormParam;
 import javax.ws.rs.GET;
+import javax.ws.rs.OPTIONS;
 import javax.ws.rs.POST;
 import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
 import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.Context;
+import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.ResponseBuilder;
 import javax.ws.rs.core.Response.Status;
 
 import org.apache.clerezza.rdf.core.Graph;
@@ -78,10 +83,35 @@ public class RDFMapperResource extends B
         bridgeManager = 
ContextHelper.getServiceFromContext(RDFBridgeManager.class, context);
     }
 
+    @OPTIONS
+    public Response handleCorsPreflight(@Context HttpHeaders headers) {
+        ResponseBuilder res = Response.ok();
+        enableCORS(servletContext, res, headers);
+        return res.build();
+    }
+
+    @OPTIONS
+    @Path("/rdf")
+    public Response handleCorsPreflightRDF(@Context HttpHeaders headers) {
+        ResponseBuilder res = Response.ok();
+        enableCORS(servletContext, res, headers);
+        return res.build();
+    }
+
+    @OPTIONS
+    @Path("/cms")
+    public Response handleCorsPreflightCMS(@Context HttpHeaders headers) {
+        ResponseBuilder res = Response.ok();
+        enableCORS(servletContext, res, headers);
+        return res.build();
+    }
+
     @GET
     @Produces(TEXT_HTML)
-    public Response get() {
-        return Response.ok(new Viewable("index", this), TEXT_HTML).build();
+    public Response get(@Context HttpHeaders headers) {
+        ResponseBuilder rb = Response.ok(new Viewable("index", this), 
TEXT_HTML);
+        addCORSOrigin(servletContext, rb, headers);
+        return rb.build();
     }
 
     /**
@@ -110,7 +140,8 @@ public class RDFMapperResource extends B
     @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
     public Response mapRawRDFToRepository(@FormParam("sessionKey") String 
sessionKey,
                                           @FormParam("serializedGraph") String 
serializedGraph,
-                                          @FormParam("url") String url) throws 
MalformedURLException,
+                                          @FormParam("url") String url,
+                                          @Context HttpHeaders headers) throws 
MalformedURLException,
                                                                        
IOException {
 
         sessionKey = RestUtil.nullify(sessionKey);
@@ -133,7 +164,7 @@ public class RDFMapperResource extends B
                     .build();
         }
 
-        Response r = mapRDF(g, sessionKey);
+        Response r = mapRDF(g, sessionKey, headers);
         logger.info("RDF mapping finished in: {} seconds", 
((System.currentTimeMillis() - start) / 1000));
         return r;
     }
@@ -156,8 +187,9 @@ public class RDFMapperResource extends B
     @POST
     @Consumes(MediaType.MULTIPART_FORM_DATA)
     public Response mapRDFToRepositoryFromFile(@QueryParam("sessionKey") 
String sessionKey,
-                                   @FormDataParam("rdfFile") File rdfFile,
-                                   @FormDataParam("rdfFile") 
FormDataContentDisposition rdfFileInfo) throws IOException {
+                                               @FormDataParam("rdfFile") File 
rdfFile,
+                                               @FormDataParam("rdfFile") 
FormDataContentDisposition rdfFileInfo,
+                                               @Context HttpHeaders headers) 
throws IOException {
 
         sessionKey = RestUtil.nullify(sessionKey);
         if (sessionKey == null) {
@@ -175,12 +207,12 @@ public class RDFMapperResource extends B
             return Response.status(Status.BAD_REQUEST).entity("There is no RDF 
file specified").build();
         }
 
-        Response r = mapRDF(g, sessionKey);
+        Response r = mapRDF(g, sessionKey, headers);
         logger.info("RDF mapping finished in: {} seconds", 
((System.currentTimeMillis() - start) / 1000));
         return r;
     }
 
-    private Response mapRDF(Graph g, String sessionKey) {
+    private Response mapRDF(Graph g, String sessionKey, HttpHeaders headers) {
         try {
             bridgeManager.storeRDFToRepository(sessionKey, g);
         } catch (RepositoryAccessException e) {
@@ -192,7 +224,9 @@ public class RDFMapperResource extends B
             return 
Response.status(Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
         }
 
-        return Response.ok().entity("RDF data has been mapped to the content 
repository").build();
+        ResponseBuilder rb = Response.ok().entity("RDF data has been mapped to 
the content repository");
+        addCORSOrigin(servletContext, rb, headers);
+        return rb.build();
     }
 
     /**
@@ -226,9 +260,10 @@ public class RDFMapperResource extends B
     @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
     @Produces(SupportedFormat.RDF_XML)
     public Response mapRepositoryToRDF(@FormParam("sessionKey") String 
sessionKey,
-                           @FormParam("baseURI") String baseURI,
-                           @FormParam("store") boolean store,
-                           @FormParam("update") @DefaultValue("true") boolean 
update) {
+                                       @FormParam("baseURI") String baseURI,
+                                       @FormParam("store") boolean store,
+                                       @FormParam("update") 
@DefaultValue("true") boolean update,
+                                       @Context HttpHeaders headers) {
 
         sessionKey = RestUtil.nullify(sessionKey);
         if (sessionKey == null) {
@@ -241,7 +276,9 @@ public class RDFMapperResource extends B
             MGraph generatedGraph = 
bridgeManager.generateRDFFromRepository(baseURI, sessionKey, store,
                 update);
             logger.info("CMS mapping finished in: {} seconds", 
((System.currentTimeMillis() - start) / 1000));
-            return Response.ok(generatedGraph, 
SupportedFormat.RDF_XML).build();
+            ResponseBuilder rb = Response.ok(generatedGraph, 
SupportedFormat.RDF_XML);
+            addCORSOrigin(servletContext, rb, headers);
+            return rb.build();
         } catch (RepositoryAccessException e) {
             String message = e.getMessage();
             logger.warn(message, e);

Modified: 
incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/RootResource.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/RootResource.java?rev=1300969&r1=1300968&r2=1300969&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/RootResource.java
 (original)
+++ 
incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/RootResource.java
 Thu Mar 15 13:20:13 2012
@@ -17,11 +17,17 @@
 package org.apache.stanbol.cmsadapter.web.resources;
 
 import static javax.ws.rs.core.MediaType.TEXT_HTML;
+import static org.apache.stanbol.commons.web.base.CorsHelper.addCORSOrigin;
+import static org.apache.stanbol.commons.web.base.CorsHelper.enableCORS;
 
 import javax.ws.rs.GET;
+import javax.ws.rs.OPTIONS;
 import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.ResponseBuilder;
 
 import org.apache.stanbol.commons.web.base.resource.BaseStanbolResource;
 
@@ -30,10 +36,19 @@ import com.sun.jersey.api.view.Viewable;
 @Path("/cmsadapter")
 public class RootResource extends BaseStanbolResource {
 
+    @OPTIONS
+    public Response handleCorsPreflight(@Context HttpHeaders headers) {
+        ResponseBuilder res = Response.ok();
+        enableCORS(servletContext, res, headers);
+        return res.build();
+    }
+
     @GET
     @Produces(TEXT_HTML)
-    public Response get() {
-        return Response.ok(new Viewable("index", this), TEXT_HTML).build();
+    public Response get(@Context HttpHeaders headers) {
+        ResponseBuilder rb = Response.ok(new Viewable("index", this), 
TEXT_HTML);
+        addCORSOrigin(servletContext, rb, headers);
+        return rb.build();
     }
 
 }

Modified: 
incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/SessionResource.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/SessionResource.java?rev=1300969&r1=1300968&r2=1300969&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/SessionResource.java
 (original)
+++ 
incubator/stanbol/trunk/cmsadapter/web/src/main/java/org/apache/stanbol/cmsadapter/web/resources/SessionResource.java
 Thu Mar 15 13:20:13 2012
@@ -18,14 +18,19 @@ package org.apache.stanbol.cmsadapter.we
 
 import static javax.ws.rs.core.MediaType.TEXT_HTML;
 import static javax.ws.rs.core.MediaType.TEXT_PLAIN;
+import static org.apache.stanbol.commons.web.base.CorsHelper.addCORSOrigin;
+import static org.apache.stanbol.commons.web.base.CorsHelper.enableCORS;
 
 import javax.servlet.ServletContext;
 import javax.ws.rs.GET;
+import javax.ws.rs.OPTIONS;
 import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
 import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.Context;
+import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.ResponseBuilder;
 import javax.ws.rs.core.Response.Status;
 
 import org.apache.stanbol.cmsadapter.core.repository.SessionManager;
@@ -48,10 +53,19 @@ public class SessionResource extends Bas
         sessionManager = 
ContextHelper.getServiceFromContext(SessionManager.class, context);
     }
 
+    @OPTIONS
+    public Response handleCorsPreflight(@Context HttpHeaders headers) {
+        ResponseBuilder res = Response.ok();
+        enableCORS(servletContext, res, headers);
+        return res.build();
+    }
+
     @GET
     @Produces(TEXT_HTML)
-    public Response get() {
-        return Response.ok(new Viewable("index", this), TEXT_HTML).build();
+    public Response get(@Context HttpHeaders headers) {
+        ResponseBuilder rb = Response.ok(new Viewable("index", this), 
TEXT_HTML);
+        addCORSOrigin(servletContext, rb, headers);
+        return rb.build();
     }
 
     /**
@@ -82,7 +96,8 @@ public class SessionResource extends Bas
                                         @QueryParam("workspaceName") String 
workspaceName,
                                         @QueryParam("username") String 
username,
                                         @QueryParam("password") String 
password,
-                                        @QueryParam("connectionType") String 
connectionType) throws RepositoryAccessException {
+                                        @QueryParam("connectionType") String 
connectionType,
+                                        @Context HttpHeaders headers) throws 
RepositoryAccessException {
 
         repositoryURL = RestUtil.nullify(repositoryURL);
         workspaceName = RestUtil.nullify(workspaceName);
@@ -100,6 +115,8 @@ public class SessionResource extends Bas
 
         String sessionKey = sessionManager.createSessionKey(repositoryURL, 
workspaceName, username, password,
             connectionType);
-        return Response.status(Status.CREATED).entity(sessionKey).build();
+        ResponseBuilder rb = 
Response.status(Status.CREATED).entity(sessionKey);
+        addCORSOrigin(servletContext, rb, headers);
+        return rb.build();
     }
 }

Modified: 
incubator/stanbol/trunk/contenthub/web/src/main/java/org/apache/stanbol/contenthub/web/resources/RootResource.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/contenthub/web/src/main/java/org/apache/stanbol/contenthub/web/resources/RootResource.java?rev=1300969&r1=1300968&r2=1300969&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/contenthub/web/src/main/java/org/apache/stanbol/contenthub/web/resources/RootResource.java
 (original)
+++ 
incubator/stanbol/trunk/contenthub/web/src/main/java/org/apache/stanbol/contenthub/web/resources/RootResource.java
 Thu Mar 15 13:20:13 2012
@@ -16,6 +16,7 @@
  */
 package org.apache.stanbol.contenthub.web.resources;
 
+import static org.apache.stanbol.commons.web.base.CorsHelper.addCORSOrigin;
 import static org.apache.stanbol.commons.web.base.CorsHelper.enableCORS;
 
 import java.net.URI;
@@ -35,7 +36,7 @@ import org.apache.stanbol.commons.web.ba
  * Base resource which automatically redirects to "contenthub/contenthub/store"
  * 
  * @author anil.sinaci
- *
+ * 
  */
 @Path("/contenthub")
 public class RootResource extends BaseStanbolResource {
@@ -46,9 +47,12 @@ public class RootResource extends BaseSt
         enableCORS(servletContext, res, headers);
         return res.build();
     }
-    
+
     @GET
-    public Response getView() throws URISyntaxException {
-        return Response.seeOther(new URI(uriInfo.getBaseUri() + 
"contenthub/contenthub/store/")).build();
+    public Response getView(@Context HttpHeaders headers) throws 
URISyntaxException {
+        ResponseBuilder rb = Response
+                .seeOther(new URI(uriInfo.getBaseUri() + 
"contenthub/contenthub/store/"));
+        addCORSOrigin(servletContext, rb, headers);
+        return rb.build();
     }
 }


Reply via email to