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();
         }
 
     }