You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by al...@apache.org on 2012/08/02 11:41:28 UTC
svn commit: r1368402 -
/incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RefactorResource.java
Author: alexdma
Date: Thu Aug 2 09:41:28 2012
New Revision: 1368402
URL: http://svn.apache.org/viewvc?rev=1368402&view=rev
Log:
STANBOL-711 : refactor endpoint now has multiple CORS preflight methods and origin additions, accepts application/x-turtle
Modified:
incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RefactorResource.java
Modified: incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RefactorResource.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RefactorResource.java?rev=1368402&r1=1368401&r2=1368402&view=diff
==============================================================================
--- incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RefactorResource.java (original)
+++ incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/resources/RefactorResource.java Thu Aug 2 09:41:28 2012
@@ -16,10 +16,20 @@
*/
package org.apache.stanbol.rules.web.resources;
+import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
import static javax.ws.rs.core.Response.Status.INTERNAL_SERVER_ERROR;
import static javax.ws.rs.core.Response.Status.NOT_FOUND;
+import static javax.ws.rs.core.Response.Status.NO_CONTENT;
+import static javax.ws.rs.core.Response.Status.PRECONDITION_FAILED;
import static org.apache.stanbol.commons.web.base.CorsHelper.addCORSOrigin;
import static org.apache.stanbol.commons.web.base.CorsHelper.enableCORS;
+import static org.apache.stanbol.commons.web.base.format.KRFormat.FUNCTIONAL_OWL;
+import static org.apache.stanbol.commons.web.base.format.KRFormat.MANCHESTER_OWL;
+import static org.apache.stanbol.commons.web.base.format.KRFormat.OWL_XML;
+import static org.apache.stanbol.commons.web.base.format.KRFormat.RDF_JSON;
+import static org.apache.stanbol.commons.web.base.format.KRFormat.RDF_XML;
+import static org.apache.stanbol.commons.web.base.format.KRFormat.TURTLE;
+import static org.apache.stanbol.commons.web.base.format.KRFormat.X_TURTLE;
import java.io.InputStream;
@@ -37,13 +47,11 @@ 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.TripleCollection;
import org.apache.clerezza.rdf.core.UriRef;
import org.apache.stanbol.commons.owl.transformation.OWLAPIToClerezzaConverter;
import org.apache.stanbol.commons.web.base.ContextHelper;
-import org.apache.stanbol.commons.web.base.format.KRFormat;
import org.apache.stanbol.commons.web.base.resource.BaseStanbolResource;
import org.apache.stanbol.commons.web.base.utils.MediaTypeUtil;
import org.apache.stanbol.rules.base.api.NoSuchRecipeException;
@@ -83,16 +91,9 @@ public class RefactorResource extends Ba
public RefactorResource(@Context ServletContext servletContext) {
refactorer = (Refactorer) ContextHelper.getServiceFromContext(Refactorer.class, servletContext);
- if (refactorer == null) {
- throw new IllegalStateException("Refactorer missing in ServletContext");
- }
-
+ if (refactorer == null) throw new IllegalStateException("Refactorer missing in ServletContext");
ruleStore = (RuleStore) ContextHelper.getServiceFromContext(RuleStore.class, servletContext);
-
- if (ruleStore == null) {
- throw new IllegalStateException("RuleStore missing in ServletContext");
- }
-
+ if (ruleStore == null) throw new IllegalStateException("RuleStore missing in ServletContext");
}
/**
@@ -108,12 +109,11 @@ public class RefactorResource extends Ba
@POST
@Path("/apply")
@Consumes(MediaType.MULTIPART_FORM_DATA)
- @Produces(value = {KRFormat.TURTLE, KRFormat.FUNCTIONAL_OWL, KRFormat.MANCHESTER_OWL, KRFormat.RDF_XML,
- KRFormat.OWL_XML, KRFormat.RDF_JSON})
+ @Produces(value = {TURTLE, RDF_XML, MANCHESTER_OWL, FUNCTIONAL_OWL, OWL_XML, RDF_JSON, X_TURTLE})
public Response applyRefactoring(@FormDataParam("recipe") String recipe,
@FormDataParam("input") InputStream input,
@Context HttpHeaders headers) {
-
+ ResponseBuilder rb;
OWLOntology output = null;
try {
output = doRefactoring(input,
@@ -121,19 +121,15 @@ public class RefactorResource extends Ba
} catch (OWLOntologyCreationException e1) {
throw new WebApplicationException(e1, INTERNAL_SERVER_ERROR);
} catch (RefactoringException e1) {
- throw new WebApplicationException(e1, INTERNAL_SERVER_ERROR);
- }
- if (output == null) {
- ResponseBuilder rb = Response.status(NOT_FOUND);
- rb.header(HttpHeaders.CONTENT_TYPE, MediaType.TEXT_PLAIN + "; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
- return rb.build();
+ throw new WebApplicationException(e1, BAD_REQUEST);
}
- ResponseBuilder rb = Response.ok(output);
- rb.header(HttpHeaders.CONTENT_TYPE, MediaType.TEXT_PLAIN + "; charset=utf-8");
+ if (output != null) {
+ rb = Response.ok(output);
+ MediaType mediaType = MediaTypeUtil.getAcceptableMediaType(headers, null);
+ if (mediaType != null) rb.header(HttpHeaders.CONTENT_TYPE, mediaType);
+ } else rb = Response.status(NOT_FOUND);
addCORSOrigin(servletContext, rb, headers);
return rb.build();
-
}
/**
@@ -149,12 +145,11 @@ public class RefactorResource extends Ba
@POST
@Path("/applyfile")
@Consumes(MediaType.MULTIPART_FORM_DATA)
- @Produces(value = {KRFormat.TURTLE, KRFormat.FUNCTIONAL_OWL, KRFormat.MANCHESTER_OWL, KRFormat.RDF_XML,
- KRFormat.OWL_XML, KRFormat.RDF_JSON})
+ @Produces(value = {TURTLE, RDF_XML, MANCHESTER_OWL, FUNCTIONAL_OWL, OWL_XML, RDF_JSON, X_TURTLE})
public Response applyRefactoringFromRuleFile(@FormDataParam("recipe") InputStream recipeStream,
@FormDataParam("input") InputStream input,
@Context HttpHeaders headers) {
-
+ ResponseBuilder rb;
OWLOntology output = null;
try {
output = doRefactoring(input,
@@ -164,14 +159,11 @@ public class RefactorResource extends Ba
} catch (RefactoringException e1) {
throw new WebApplicationException(e1, INTERNAL_SERVER_ERROR);
}
- if (output == null) {
- ResponseBuilder rb = Response.status(NOT_FOUND);
- rb.header(HttpHeaders.CONTENT_TYPE, MediaType.TEXT_PLAIN + "; charset=utf-8");
- addCORSOrigin(servletContext, rb, headers);
- return rb.build();
- }
- ResponseBuilder rb = Response.ok(output);
- rb.header(HttpHeaders.CONTENT_TYPE, MediaType.TEXT_PLAIN + "; charset=utf-8");
+ if (output != null) {
+ rb = Response.ok(output);
+ MediaType mediaType = MediaTypeUtil.getAcceptableMediaType(headers, null);
+ if (mediaType != null) rb.header(HttpHeaders.CONTENT_TYPE, mediaType);
+ } else rb = Response.status(NOT_FOUND);
addCORSOrigin(servletContext, rb, headers);
return rb.build();
@@ -203,15 +195,38 @@ public class RefactorResource extends Ba
return OWLAPIToClerezzaConverter.clerezzaGraphToOWLOntology(tripleCollection);
}
+ @OPTIONS
+ public Response handleCorsPreflight(@Context HttpHeaders headers) {
+ ResponseBuilder rb = Response.ok();
+ enableCORS(servletContext, rb, headers);
+ return rb.build();
+ }
+
+ @OPTIONS
+ @Path("/apply")
+ public Response handleCorsPreflightApply(@Context HttpHeaders headers) {
+ ResponseBuilder rb = Response.ok();
+ enableCORS(servletContext, rb, headers);
+ return rb.build();
+ }
+
+ @OPTIONS
+ @Path("/applyfile")
+ public Response handleCorsPreflightApplyFile(@Context HttpHeaders headers) {
+ ResponseBuilder rb = Response.ok();
+ enableCORS(servletContext, rb, headers);
+ return rb.build();
+ }
+
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
- @Produces(value = {KRFormat.TURTLE, KRFormat.FUNCTIONAL_OWL, KRFormat.MANCHESTER_OWL, KRFormat.RDF_XML,
- KRFormat.OWL_XML, KRFormat.RDF_JSON})
+ @Produces(value = {TURTLE, RDF_XML, MANCHESTER_OWL, FUNCTIONAL_OWL, OWL_XML, RDF_JSON, X_TURTLE})
public Response performRefactoring(@FormDataParam("recipe") String recipe,
- @FormDataParam("input") InputStream input) {
+ @FormDataParam("input") InputStream input,
+ @Context HttpHeaders headers) {
// Refactorer semionRefactorer = semionManager.getRegisteredRefactorer();
-
+ ResponseBuilder rb;
UriRef recipeID = new UriRef(recipe);
Recipe rcp;
try {
@@ -223,19 +238,21 @@ public class RefactorResource extends Ba
OWLAPIToClerezzaConverter.owlOntologyToClerezzaMGraph(inputOntology), rcp);
OWLOntology outputOntology = OWLAPIToClerezzaConverter
.clerezzaGraphToOWLOntology(tripleCollection);
-
- return Response.ok(outputOntology).build();
+ rb = Response.ok(outputOntology);
+ MediaType mediaType = MediaTypeUtil.getAcceptableMediaType(headers, null);
+ if (mediaType != null) rb.header(HttpHeaders.CONTENT_TYPE, mediaType);
} catch (NoSuchRecipeException e1) {
- return Response.status(Status.NOT_FOUND).build();
+ rb = Response.status(NOT_FOUND);
} catch (RecipeConstructionException e1) {
- return Response.status(Status.NO_CONTENT).build();
+ rb = Response.status(NO_CONTENT);
} catch (OWLOntologyCreationException e) {
- return Response.status(Status.PRECONDITION_FAILED).build();
+ rb = Response.status(PRECONDITION_FAILED);
} catch (RefactoringException e) {
- return Response.status(Status.INTERNAL_SERVER_ERROR).build();
+ rb = Response.status(INTERNAL_SERVER_ERROR);
}
-
+ addCORSOrigin(servletContext, rb, headers);
+ return rb.build();
}
@GET
@@ -273,11 +290,4 @@ public class RefactorResource extends Ba
return responseBuilder.build();
}
- @OPTIONS
- public Response handleCorsPreflight(@Context HttpHeaders headers) {
- ResponseBuilder rb = Response.ok();
- enableCORS(servletContext, rb, headers);
- return rb.build();
- }
-
}