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 2011/05/04 17:38:40 UTC
svn commit: r1099491 - in
/incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web:
JerseyEndpointApplication.java resources/RefactorResource.java
Author: alexdma
Date: Wed May 4 15:38:40 2011
New Revision: 1099491
URL: http://svn.apache.org/viewvc?rev=1099491&view=rev
Log:
STANBOL-184 :
- removed stdout prints from RefactorResource
- replaced 204 statuses with 404
- replaced all int status return statements with Response.Status
- Added return statements
- Renamed RefactorResource in JerseyEndpointApplication.
Modified:
incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/JerseyEndpointApplication.java
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/JerseyEndpointApplication.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/JerseyEndpointApplication.java?rev=1099491&r1=1099490&r2=1099491&view=diff
==============================================================================
--- incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/JerseyEndpointApplication.java (original)
+++ incubator/stanbol/trunk/rules/web/src/main/java/org/apache/stanbol/rules/web/JerseyEndpointApplication.java Wed May 4 15:38:40 2011
@@ -8,7 +8,7 @@ import javax.ws.rs.core.Application;
import org.apache.stanbol.commons.web.base.writers.GraphWriter;
import org.apache.stanbol.commons.web.base.writers.ResultSetWriter;
import org.apache.stanbol.owl.web.OWLOntologyWriter;
-import org.apache.stanbol.rules.web.resources.RefactorerResource;
+import org.apache.stanbol.rules.web.resources.RefactorResource;
import org.apache.stanbol.rules.web.resources.RestRecipe;
import org.apache.stanbol.rules.web.resources.RestRule;
import org.apache.stanbol.rules.web.resources.RuleStoreResource;
@@ -35,7 +35,7 @@ public class JerseyEndpointApplication e
classes.add(RuleStoreResource.class);
classes.add(RestRecipe.class);
classes.add(RestRule.class);
- classes.add(RefactorerResource.class);
+ classes.add(RefactorResource.class);
//classes.add(OntologyStorageResource.class);
// message body writers
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=1099491&r1=1099490&r2=1099491&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 Wed May 4 15:38:40 2011
@@ -1,5 +1,8 @@
package org.apache.stanbol.rules.web.resources;
+import static javax.ws.rs.core.Response.Status.INTERNAL_SERVER_ERROR;
+import static javax.ws.rs.core.Response.Status.NOT_FOUND;
+
import java.io.InputStream;
import javax.servlet.ServletContext;
@@ -10,6 +13,7 @@ import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
+import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
@@ -31,6 +35,8 @@ import org.semanticweb.owlapi.model.IRI;
import org.semanticweb.owlapi.model.OWLOntology;
import org.semanticweb.owlapi.model.OWLOntologyCreationException;
import org.semanticweb.owlapi.model.OWLOntologyManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import com.sun.jersey.api.view.ImplicitProduces;
@@ -44,6 +50,8 @@ import com.sun.jersey.api.view.ImplicitP
@ImplicitProduces(MediaType.TEXT_HTML + ";qs=2")
public class RefactorResource extends BaseStanbolResource {
+ private Logger log = LoggerFactory.getLogger(getClass());
+
protected ONManager onManager;
protected Refactorer semionRefactorer;
// protected SemionManager semionManager;
@@ -51,9 +59,7 @@ public class RefactorResource extends Ba
public RefactorResource(@Context ServletContext servletContext) {
semionRefactorer = (Refactorer) (servletContext.getAttribute(Refactorer.class.getName()));
-
onManager = (ONManager) (servletContext.getAttribute(ONManager.class.getName()));
-
tcManager = (TcManager) (servletContext.getAttribute(TcManager.class.getName()));
if (semionRefactorer == null) {
throw new IllegalStateException("SemionRefactorer missing in ServletContext");
@@ -61,109 +67,88 @@ public class RefactorResource extends Ba
}
- public String getNamespace() {
- return onManager.getKReSNamespace();
- }
-
+ /**
+ * The apply mode allows the client to compose a recipe, by mean of string containg the rules, and apply
+ * it "on the fly" to the graph in input.
+ *
+ * @param recipe
+ * String
+ * @param input
+ * InputStream
+ * @return a Response containing the transformed graph
+ */
@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})
- public Response performRefactoring(@FormParam("recipe") String recipe,
- @FormParam("input") InputStream input) {
+ public Response applyRefactoring(@FormParam("recipe") String recipe, @FormParam("input") InputStream input) {
// Refactorer semionRefactorer = semionManager.getRegisteredRefactorer();
- IRI recipeIRI = IRI.create(recipe);
+ KB kb = RuleParserImpl.parse(recipe);
+
+ if (kb == null) return Response.status(NOT_FOUND).build();
+
+ RuleList ruleList = kb.getkReSRuleList();
+ if (ruleList == null) return Response.status(NOT_FOUND).build();
+ Recipe actualRecipe = new RecipeImpl(null, null, ruleList);
OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
OWLOntology inputOntology;
try {
inputOntology = manager.loadOntologyFromOntologyDocument(input);
-
OWLOntology outputOntology;
try {
- outputOntology = semionRefactorer.ontologyRefactoring(inputOntology, recipeIRI);
+ outputOntology = semionRefactorer.ontologyRefactoring(inputOntology, actualRecipe);
} catch (RefactoringException e) {
- e.printStackTrace();
- return Response.status(500).build();
+ // refactoring exceptions are re-thrown
+ throw new WebApplicationException(e, INTERNAL_SERVER_ERROR);
} catch (NoSuchRecipeException e) {
- return Response.status(204).build();
+ // missing recipes result in a status 404
+ return Response.status(NOT_FOUND).build();
}
-
return Response.ok(outputOntology).build();
} catch (OWLOntologyCreationException e) {
- e.printStackTrace();
- return Response.status(404).build();
+ throw new WebApplicationException(e, INTERNAL_SERVER_ERROR);
}
}
-
-
- /**
- * The apply mode allows the client to compose a recipe, by mean of string containg the rules, and
- * apply it "on the fly" to the graph in input.
- *
- * @param recipe String
- * @param input InputStream
- * @return a Response containing the transformed graph
- */
+
+ public String getNamespace() {
+ return onManager.getKReSNamespace();
+ }
+
@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})
- public Response applyRefactoring(@FormParam("recipe") String recipe,
+ public Response performRefactoring(@FormParam("recipe") String recipe,
@FormParam("input") InputStream input) {
// Refactorer semionRefactorer = semionManager.getRegisteredRefactorer();
+ IRI recipeIRI = IRI.create(recipe);
- KB kb = RuleParserImpl.parse(recipe);
-
- if(kb != null){
-
- RuleList ruleList = kb.getkReSRuleList();
- if(ruleList != null){
- Recipe actualRecipe = new RecipeImpl(null, null, ruleList);
-
-
- OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
- OWLOntology inputOntology;
- try {
- inputOntology = manager.loadOntologyFromOntologyDocument(input);
-
- OWLOntology outputOntology;
- try {
- outputOntology = semionRefactorer.ontologyRefactoring(inputOntology, actualRecipe);
- } catch (RefactoringException e) {
- e.printStackTrace();
- return Response.status(500).build();
- } catch (NoSuchRecipeException e) {
- return Response.status(204).build();
- }
-
- return Response.ok(outputOntology).build();
- } catch (OWLOntologyCreationException e) {
- e.printStackTrace();
- return Response.status(404).build();
- }
- }
- else{
- /**
- * TODO
- * ADD A RESPONSE FOR THIS CASE
- */
- return Response.status(404).build();
- }
- }
- else{
- /**
- * TODO
- * ADD A RESPONSE FOR THIS CASE
- */
- return Response.status(404).build();
- }
+ OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
+ OWLOntology inputOntology;
+ try {
+ inputOntology = manager.loadOntologyFromOntologyDocument(input);
+
+ OWLOntology outputOntology;
+ try {
+ outputOntology = semionRefactorer.ontologyRefactoring(inputOntology, recipeIRI);
+ } catch (RefactoringException e) {
+ // refactoring exceptions are re-thrown
+ throw new WebApplicationException(e, INTERNAL_SERVER_ERROR);
+ } catch (NoSuchRecipeException e) {
+ // missing recipes result in a status 404
+ return Response.status(NOT_FOUND).build();
+ }
+ return Response.ok(outputOntology).build();
+ } catch (OWLOntologyCreationException e) {
+ throw new WebApplicationException(e, INTERNAL_SERVER_ERROR);
+ }
}
@@ -172,9 +157,9 @@ public class RefactorResource extends Ba
@QueryParam("input-graph") String inputGraph,
@QueryParam("output-graph") String outputGraph) {
- System.out.println("recipe: " + recipe);
- System.out.println("input-graph: " + inputGraph);
- System.out.println("output-graph: " + outputGraph);
+ log.info("recipe: {}", recipe);
+ log.info("input-graph: {}", inputGraph);
+ log.info("output-graph: {}", outputGraph);
IRI recipeIRI = IRI.create(recipe);
IRI inputGraphIRI = IRI.create(inputGraph);
IRI outputGraphIRI = IRI.create(outputGraph);
@@ -185,9 +170,11 @@ public class RefactorResource extends Ba
semionRefactorer.ontologyRefactoring(outputGraphIRI, inputGraphIRI, recipeIRI);
return Response.ok().build();
} catch (RefactoringException e) {
- return Response.status(500).build();
+ // refactoring exceptions are re-thrown
+ throw new WebApplicationException(e, INTERNAL_SERVER_ERROR);
} catch (NoSuchRecipeException e) {
- return Response.status(204).build();
+ // missing recipes result in a status 404
+ return Response.status(NOT_FOUND).build();
}
}