Author: anuzzolese
Date: Wed Mar 28 15:11:42 2012
New Revision: 1306401

URL: http://svn.apache.org/viewvc?rev=1306401&view=rev
Log:
[STANBOL-560] Updated the changes provided by the API of rules into 
reasoners/web. 

Modified:
    
incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/input/impl/RESTInputFactory.java
    
incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/input/provider/impl/RecipeInputProvider.java
    
incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/resources/ReasoningServiceTaskResource.java

Modified: 
incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/input/impl/RESTInputFactory.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/input/impl/RESTInputFactory.java?rev=1306401&r1=1306400&r2=1306401&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/input/impl/RESTInputFactory.java
 (original)
+++ 
incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/input/impl/RESTInputFactory.java
 Wed Mar 28 15:11:42 2012
@@ -32,6 +32,7 @@ import org.apache.stanbol.reasoners.web.
 import 
org.apache.stanbol.reasoners.web.input.provider.impl.OntonetInputProvider;
 import 
org.apache.stanbol.reasoners.web.input.provider.impl.RecipeInputProvider;
 import org.apache.stanbol.reasoners.web.input.provider.impl.UrlInputProvider;
+import org.apache.stanbol.rules.base.api.RuleAdapterManager;
 import org.apache.stanbol.rules.base.api.RuleStore;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -49,13 +50,15 @@ public class RESTInputFactory implements
     ONManager onm;
     SessionManager sessionManager;
     RuleStore rStore;
+    RuleAdapterManager adapterManager;
 
     private Logger log = LoggerFactory.getLogger(getClass());
 
-    public RESTInputFactory(ONManager onm, SessionManager sm, RuleStore 
rStore) {
+    public RESTInputFactory(ONManager onm, SessionManager sm, RuleStore 
rStore, RuleAdapterManager adapterManager) {
         this.onm = onm;
         this.sessionManager = sm;
         this.rStore = rStore;
+        this.adapterManager = adapterManager;
     }
 
     @Override
@@ -104,7 +107,7 @@ public class RESTInputFactory implements
 
             } else if (entry.getKey().equals("recipe")) {
                 if (!entry.getValue().isEmpty()) {
-                    inmgr.addInputProvider(new RecipeInputProvider(rStore, 
entry.getValue().iterator().next()));
+                    inmgr.addInputProvider(new RecipeInputProvider(rStore, 
adapterManager, entry.getValue().iterator().next()));
                 } else {
                     // Parameter exists with no value
                     log.error("Parameter 'recipe' must have a value!");

Modified: 
incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/input/provider/impl/RecipeInputProvider.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/input/provider/impl/RecipeInputProvider.java?rev=1306401&r1=1306400&r2=1306401&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/input/provider/impl/RecipeInputProvider.java
 (original)
+++ 
incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/input/provider/impl/RecipeInputProvider.java
 Wed Mar 28 15:11:42 2012
@@ -22,13 +22,17 @@ import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
 
+import org.apache.clerezza.rdf.core.UriRef;
 import org.apache.stanbol.reasoners.servicesapi.ReasoningServiceInputProvider;
 import org.apache.stanbol.rules.base.api.NoSuchRecipeException;
 import org.apache.stanbol.rules.base.api.Recipe;
+import org.apache.stanbol.rules.base.api.RecipeConstructionException;
+import org.apache.stanbol.rules.base.api.RuleAdapter;
+import org.apache.stanbol.rules.base.api.RuleAdapterManager;
+import org.apache.stanbol.rules.base.api.RuleAtomCallExeption;
 import org.apache.stanbol.rules.base.api.RuleStore;
-import org.apache.stanbol.rules.base.api.util.RuleList;
-import org.semanticweb.owlapi.apibinding.OWLManager;
-import org.semanticweb.owlapi.model.IRI;
+import org.apache.stanbol.rules.base.api.UnavailableRuleObjectException;
+import org.apache.stanbol.rules.base.api.UnsupportedTypeForExportException;
 import org.semanticweb.owlapi.model.SWRLRule;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -46,6 +50,7 @@ public class RecipeInputProvider impleme
     private final Logger log = 
LoggerFactory.getLogger(RecipeInputProvider.class);
 
     private RuleStore store;
+    private RuleAdapterManager adapterManager;
     private String recipeId;
 
     /**
@@ -54,12 +59,14 @@ public class RecipeInputProvider impleme
      * @param store
      * @param recipeId
      */
-    public RecipeInputProvider(RuleStore store,String recipeId){
+    public RecipeInputProvider(RuleStore store, RuleAdapterManager 
adapterManager, String recipeId){
         this.store = store;
+        this.adapterManager = adapterManager;
         this.recipeId = recipeId;
     }
     
-    @Override
+    @SuppressWarnings("unchecked")
+       @Override
     public <T> Iterator<T> getInput(Class<T> type) throws IOException {
        
        ReasoningProvider reasoningProvider = null;
@@ -87,16 +94,39 @@ public class RecipeInputProvider impleme
                    try {
                        Recipe recipe = null;
                        synchronized (store) {
-                           recipe = store.getRecipe(IRI.create(recipeId));     
               
+                           try {
+                                                       recipe = 
store.getRecipe(new UriRef(recipeId));
+                                               } catch 
(RecipeConstructionException e) {
+                                                       log.error("An error 
occurred while generating the recipe.", e);
+                                               }                    
                        }
                        log.debug("Recipe is: {}", recipe);
-                       RuleList ruleList = recipe.getkReSRuleList();
+                       
+                       /*
+                        * We ask to the adapter manager to get the right 
adapter in order to transform
+                        * recipes into SWRLRule objects.
+                        */
+                       RuleAdapter adapter;
+                                       try {
+                                               adapter = 
adapterManager.getAdapter(recipe, SWRLRule.class);
+                                               rules = (List<SWRLRule>) 
adapter.adaptTo(recipe, SWRLRule.class);
+                                       } catch (UnavailableRuleObjectException 
e) {
+                                               log.error(e.getMessage(), e);
+                                       } catch (RuleAtomCallExeption e) {
+                                               log.error(e.getMessage(), e);
+                                       } catch 
(UnsupportedTypeForExportException e) {
+                                               log.error(e.getMessage(), e);
+                                       }
+                       
+                       
+                       /*
+                       RuleList ruleList = recipe.getRuleList();
                        log.debug("RuleList is: {}",ruleList);
                        for(org.apache.stanbol.rules.base.api.Rule r : ruleList 
){
                            SWRLRule swrl = 
r.toSWRL(OWLManager.getOWLDataFactory());
                            log.debug("Prepared rule: {}",swrl);
                            rules.add(swrl);
-                       }
+                       }*/
                    } catch (NoSuchRecipeException e) {
                        log.error("Recipe {} does not exists", recipeId);
                        throw new IOException(e);
@@ -140,12 +170,36 @@ public class RecipeInputProvider impleme
                    try {
                        Recipe recipe = null;
                        synchronized (store) {
-                           recipe = store.getRecipe(IRI.create(recipeId));     
               
+                           try {
+                                                       recipe = 
store.getRecipe(new UriRef(recipeId));
+                                               } catch 
(RecipeConstructionException e) {
+                                                       log.error("An error 
occurred while generating the recipe.", e);
+                                               }                    
                        }
-                       log.debug("Recipe is: {}", recipe);
                        
                        
-                       jenaRules = recipe.toJenaRules();
+                       if(recipe != null){
+                               log.debug("Recipe is: {}", recipe);
+                               
+                               /*
+                                * We ask to the adapter manager to get the 
right adapter in order to transform
+                                * recipes into Jena Rule objects.
+                                */
+                               RuleAdapter adapter;
+                                               try {
+                                                       adapter = 
adapterManager.getAdapter(recipe, Rule.class);
+                                                       jenaRules = 
(List<Rule>) adapter.adaptTo(recipe, Rule.class);
+                                               } catch 
(UnavailableRuleObjectException e) {
+                                                       
log.error(e.getMessage(), e);
+                                               } catch (RuleAtomCallExeption 
e) {
+                                                       
log.error(e.getMessage(), e);
+                                               } catch 
(UnsupportedTypeForExportException e) {
+                                                       
log.error(e.getMessage(), e);
+                                               }
+                               
+                       }
+                       
+                       //jenaRules = recipe.toJenaRules();
                    } catch (NoSuchRecipeException e) {
                        log.error("Recipe {} does not exists", recipeId);
                        throw new IOException(e);

Modified: 
incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/resources/ReasoningServiceTaskResource.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/resources/ReasoningServiceTaskResource.java?rev=1306401&r1=1306400&r2=1306401&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/resources/ReasoningServiceTaskResource.java
 (original)
+++ 
incubator/stanbol/trunk/reasoners/web/src/main/java/org/apache/stanbol/reasoners/web/resources/ReasoningServiceTaskResource.java
 Wed Mar 28 15:11:42 2012
@@ -72,6 +72,7 @@ import org.apache.stanbol.reasoners.web.
 import org.apache.stanbol.reasoners.web.utils.ReasoningServiceExecutor;
 import org.apache.stanbol.reasoners.web.utils.ReasoningServiceResult;
 import org.apache.stanbol.reasoners.web.utils.ResponseTaskBuilder;
+import org.apache.stanbol.rules.base.api.RuleAdapterManager;
 import org.apache.stanbol.rules.base.api.RuleStore;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -110,6 +111,7 @@ public class ReasoningServiceTaskResourc
     private ONManager onm;
     private SessionManager sessionManager;
     private RuleStore ruleStore;
+    private RuleAdapterManager adapterManager;
     private boolean job = false;
     private String jobLocation = "";
 
@@ -154,8 +156,11 @@ public class ReasoningServiceTaskResourc
         this.sessionManager = (SessionManager) 
ContextHelper.getServiceFromContext(SessionManager.class,
             servletContext);
 
-        // Retrieve the ontology network manager
+        // Retrieve the rule store
         this.ruleStore = (RuleStore) 
ContextHelper.getServiceFromContext(RuleStore.class, servletContext);
+        
+        // Retrieve the rule adapter manager
+        this.adapterManager = (RuleAdapterManager) 
ContextHelper.getServiceFromContext(RuleAdapterManager.class, servletContext);
 
         // Check if method is allowed
         // FIXME Supported methods are only GET and POST, but also PUT comes 
here, why?
@@ -466,7 +471,7 @@ public class ReasoningServiceTaskResourc
 
             } else if (entry.getKey().equals("recipe")) {
                 if (!entry.getValue().isEmpty()) {
-                    inmgr.addInputProvider(new RecipeInputProvider(ruleStore, 
entry.getValue().iterator()
+                    inmgr.addInputProvider(new RecipeInputProvider(ruleStore, 
adapterManager, entry.getValue().iterator()
                             .next()));
                     // We remove it form the additional parameter list
                     this.parameters.remove("url");


Reply via email to