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) {