Author: suat
Date: Tue Sep 13 08:27:26 2011
New Revision: 1170080

URL: http://svn.apache.org/viewvc?rev=1170080&view=rev
Log:
-Removed dependencies from core bundle
-Implemented a TcManager client to perform ontology level operations

Added:
    
incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/helper/
    
incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/helper/TcManagerClient.java
Modified:
    incubator/stanbol/trunk/cmsadapter/core/pom.xml
    
incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/mapping/MappingEngineImpl.java

Modified: incubator/stanbol/trunk/cmsadapter/core/pom.xml
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/core/pom.xml?rev=1170080&r1=1170079&r2=1170080&view=diff
==============================================================================
--- incubator/stanbol/trunk/cmsadapter/core/pom.xml (original)
+++ incubator/stanbol/trunk/cmsadapter/core/pom.xml Tue Sep 13 08:27:26 2011
@@ -50,14 +50,6 @@
                <!-- Apache Stanbol dependencies -->
                <dependency>
                        <groupId>org.apache.stanbol</groupId>
-                       
<artifactId>org.apache.stanbol.ontologymanager.store.rest.client</artifactId>
-               </dependency>
-               <dependency>
-                       <groupId>org.apache.stanbol</groupId>
-                       
<artifactId>org.apache.stanbol.ontologymanager.store.api</artifactId>
-               </dependency>
-               <dependency>
-                       <groupId>org.apache.stanbol</groupId>
                        
<artifactId>org.apache.stanbol.cmsadapter.servicesapi</artifactId>
                </dependency>
 

Added: 
incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/helper/TcManagerClient.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/helper/TcManagerClient.java?rev=1170080&view=auto
==============================================================================
--- 
incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/helper/TcManagerClient.java
 (added)
+++ 
incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/helper/TcManagerClient.java
 Tue Sep 13 08:27:26 2011
@@ -0,0 +1,97 @@
+package org.apache.stanbol.cmsadapter.core.helper;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.util.Set;
+
+import org.apache.clerezza.rdf.core.MGraph;
+import org.apache.clerezza.rdf.core.UriRef;
+import org.apache.clerezza.rdf.core.access.TcManager;
+import org.apache.clerezza.rdf.jena.facade.JenaGraph;
+
+import com.hp.hpl.jena.rdf.model.Model;
+import com.hp.hpl.jena.rdf.model.ModelFactory;
+import com.hp.hpl.jena.rdf.model.RDFWriter;
+
+/**
+ * This class is a client for basic ontology level functionalities through 
Clerezza {@link TcManager}
+ * 
+ * @author suat
+ * 
+ */
+public class TcManagerClient {
+    private TcManager tcManager;
+
+    public TcManagerClient(TcManager tcManager) {
+        this.tcManager = tcManager;
+    }
+
+    /**
+     * Checks the {@link MGraph} specified with <code>ontologyURI</code> exists
+     * 
+     * @param ontologyURI
+     *            URI of the ontology
+     * @return whether the {@link MGraph} specified exists
+     */
+    public boolean modelExists(String ontologyURI) {
+        Set<UriRef> graphs = tcManager.listMGraphs();
+        if (graphs.contains(new UriRef(ontologyURI))) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+
+    /**
+     * Gets the ontology specified with <code>ontologyURI</code> through 
{@link TcManager}. Obtained
+     * {@link MGraph} is used to create a {@link JenaGraph}. If the graph does 
not exists, a new is created.
+     * 
+     * @param ontologyURI
+     *            URI of the ontology
+     * @return {@link Model} specified by <code>ontologyURI</code>
+     */
+    public Model getModel(String ontologyURI) {
+        MGraph graph;
+        if (modelExists(ontologyURI)) {
+            graph = tcManager.getMGraph(new UriRef(ontologyURI));
+        } else {
+            graph = tcManager.createMGraph(new UriRef(ontologyURI));
+        }
+        JenaGraph jenaGraph = new JenaGraph(graph);
+        Model model = ModelFactory.createModelForGraph(jenaGraph);
+        return model;
+    }
+
+    /**
+     * Stores the ontology specified by <code>ontology</code> through {@link 
TcManager}. If a graph specified
+     * by <code>ontologyURI</code> already exists, it is deleted, then a new 
one is created.
+     * 
+     * @param ontology
+     *            content of the ontology passed in a {@link Model} object
+     * @param ontologyURI
+     *            URI of the ontology
+     */ 
+    public void saveOntology(Model ontology, String ontologyURI) {
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        RDFWriter rdfWriter = ontology.getWriter("RDF/XML");
+        rdfWriter.setProperty("xmlbase", ontologyURI);
+        rdfWriter.write(ontology, baos, ontologyURI);
+        ByteArrayInputStream bais = new 
ByteArrayInputStream(baos.toByteArray());
+
+        if (modelExists(ontologyURI)) {
+            deleteModel(ontologyURI);
+        }
+        MGraph graph = tcManager.createMGraph(new UriRef(ontologyURI));
+        JenaGraph jenaGraph = new JenaGraph(graph);
+        Model model = ModelFactory.createModelForGraph(jenaGraph);
+        model.read(bais, ontologyURI);
+
+        if (model.supportsTransactions()) {
+            model.commit();
+        }
+    }
+
+    private void deleteModel(String ontologyURI) {
+        tcManager.deleteTripleCollection(new UriRef(ontologyURI));
+    }
+}

Modified: 
incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/mapping/MappingEngineImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/mapping/MappingEngineImpl.java?rev=1170080&r1=1170079&r2=1170080&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/mapping/MappingEngineImpl.java
 (original)
+++ 
incubator/stanbol/trunk/cmsadapter/core/src/main/java/org/apache/stanbol/cmsadapter/core/mapping/MappingEngineImpl.java
 Tue Sep 13 08:27:26 2011
@@ -16,19 +16,20 @@
  */
 package org.apache.stanbol.cmsadapter.core.mapping;
 
-import java.io.ByteArrayOutputStream;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.Iterator;
 import java.util.List;
 
+import org.apache.clerezza.rdf.core.access.TcManager;
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.ReferenceCardinality;
 import org.apache.felix.scr.annotations.ReferencePolicy;
 import org.apache.felix.scr.annotations.Service;
 import org.apache.stanbol.cmsadapter.core.decorated.DObjectFactoryImp;
+import org.apache.stanbol.cmsadapter.core.helper.TcManagerClient;
 import org.apache.stanbol.cmsadapter.servicesapi.helper.OntologyResourceHelper;
 import org.apache.stanbol.cmsadapter.servicesapi.mapping.MappingConfiguration;
 import org.apache.stanbol.cmsadapter.servicesapi.mapping.MappingEngine;
@@ -44,15 +45,12 @@ import org.apache.stanbol.cmsadapter.ser
 import org.apache.stanbol.cmsadapter.servicesapi.repository.RepositoryAccess;
 import 
org.apache.stanbol.cmsadapter.servicesapi.repository.RepositoryAccessException;
 import 
org.apache.stanbol.cmsadapter.servicesapi.repository.RepositoryAccessManager;
-import org.apache.stanbol.ontologymanager.store.rest.client.RestClient;
-import 
org.apache.stanbol.ontologymanager.store.rest.client.RestClientException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.hp.hpl.jena.ontology.OntModel;
 import com.hp.hpl.jena.ontology.OntModelSpec;
 import com.hp.hpl.jena.rdf.model.ModelFactory;
-import com.hp.hpl.jena.rdf.model.RDFWriter;
 
 @Component(factory = 
"org.apache.stanbol.cmsadapter.servicesapi.mapping.MappingEngineFactory")
 @Service
@@ -68,10 +66,10 @@ public class MappingEngineImpl implement
     private TypeLifterManager typeLifterManager;
 
     @Reference
-    private RestClient storeClient;
+    private RepositoryAccessManager accessManager;
 
     @Reference
-    private RepositoryAccessManager accessManager;
+    private TcManager tcManager;
 
     private RepositoryAccess accessor;
     private Object session;
@@ -124,11 +122,7 @@ public class MappingEngineImpl implement
         
OntologyResourceHelper.saveBridgeDefinitions(conf.getBridgeDefinitions(), 
this.ontModel);
         logger.debug("Total process time for ontology {} is {} ms", 
ontologyURI, System.currentTimeMillis()
                                                                                
  - t1);
-        try {
-            storeOntology();
-        } catch (RestClientException e) {
-            logger.warn("Failed to store ontology for ontologyURI {}", 
ontologyURI, e);
-        }
+        storeOntology();
     }
 
     @Override
@@ -145,12 +139,7 @@ public class MappingEngineImpl implement
         runProcessors(conf.getObjects(), "create");
         logger.debug("Total process time for ontology {} is {} ms", 
ontologyURI, System.currentTimeMillis()
                                                                                
  - t1);
-
-        try {
-            storeOntology();
-        } catch (RestClientException e) {
-            logger.warn("Failed to store ontology for ontologyURI {}", 
ontologyURI, e);
-        }
+        storeOntology();
     }
 
     @Override
@@ -168,11 +157,7 @@ public class MappingEngineImpl implement
         runProcessors(conf.getObjects(), "create");
         logger.debug("Total process time for ontology {} is {} ms", 
ontologyURI, System.currentTimeMillis()
                                                                                
  - t1);
-        try {
-            storeOntology();
-        } catch (RestClientException e) {
-            logger.warn("Failed to store ontology for ontologyURI {}", 
ontologyURI, e);
-        }
+        storeOntology();
     }
 
     @Override
@@ -187,12 +172,7 @@ public class MappingEngineImpl implement
         runProcessors(conf.getObjects(), "delete");
         logger.debug("Total process time for ontology {} is {} ms", 
ontologyURI, System.currentTimeMillis()
                                                                                
  - t1);
-
-        try {
-            storeOntology();
-        } catch (RestClientException e) {
-            logger.warn("Failed to store ontology for ontologyURI {}", 
ontologyURI, e);
-        }
+        storeOntology();
     }
 
     @Override
@@ -258,7 +238,7 @@ public class MappingEngineImpl implement
                 connectionInfo = 
OntologyResourceHelper.getConnectionInfo(this.ontModel);
                 if (connectionInfo == null) {
                     logger.warn("Failed to retrieve connection info from 
ontmodel");
-                    return;
+                    throw new RuntimeException("Failed to retrieve connection 
info from ontmodel");
                 }
             }
         }
@@ -292,14 +272,9 @@ public class MappingEngineImpl implement
         this.ontologyResourceHelper = new OntologyResourceHelper(this);
     }
 
-    private void storeOntology() throws RestClientException {
-        ByteArrayOutputStream bos = new ByteArrayOutputStream();
-        RDFWriter rdfWriter = ontModel.getWriter("RDF/XML");
-        rdfWriter.setProperty("xmlbase", ontologyURI);
-        rdfWriter.write(ontModel, bos, ontologyURI);
-        byte[] ontologyContentAsByteArray = bos.toByteArray();
-        String ontologyContentAsString = new 
String(ontologyContentAsByteArray);
-        storeClient.saveOntology(ontologyContentAsString, ontologyURI, 
"UTF-8");
+    private void storeOntology() {
+        TcManagerClient tcManagerClient = new TcManagerClient(tcManager);
+        tcManagerClient.saveOntology(ontModel, ontologyURI);
     }
 
     protected void bindProcessor(Processor processor) {


Reply via email to