Author: ivol37 at gmail.com
Date: Tue Dec 28 16:41:39 2010
New Revision: 550
Log:
[AMDATU-183] Finished RDF2GO API bundle. Refactored SesameService.getModelSet
invocations with Modelset service dependencies and replaced all SesameService
invocations by RDF2GO API calls.
Modified:
trunk/amdatu-example/course-service/pom.xml
trunk/amdatu-example/course-service/src/main/java/org/amdatu/example/course/service/osgi/Activator.java
trunk/amdatu-example/course-service/src/main/java/org/amdatu/example/course/service/service/CourseOntologyDataProvider.java
trunk/amdatu-example/course-service/src/main/java/org/amdatu/example/course/service/service/CourseServiceImpl.java
trunk/amdatu-libraries/utilities/src/main/java/org/amdatu/libraries/utilities/ConversionUtil.java
trunk/amdatu-semanticweb/sesame/src/main/java/org/amdatu/semanticweb/sesame/SesameService.java
trunk/amdatu-semanticweb/sesame/src/main/java/org/amdatu/semanticweb/sesame/service/SesameServiceImpl.java
trunk/amdatu-semanticweb/sparqlendpoint/pom.xml
trunk/amdatu-semanticweb/sparqlendpoint/src/main/java/org/amdatu/semanticweb/sparqlendpoint/Activator.java
trunk/amdatu-semanticweb/sparqlendpoint/src/main/java/org/amdatu/semanticweb/sparqlendpoint/service/SPARQLEndpointServiceImpl.java
trunk/integration-tests/src/test/java/org/amdatu/test/integration/tests/RDF2GOTest.java
Modified: trunk/amdatu-example/course-service/pom.xml
==============================================================================
--- trunk/amdatu-example/course-service/pom.xml (original)
+++ trunk/amdatu-example/course-service/pom.xml Tue Dec 28 16:41:39 2010
@@ -12,8 +12,8 @@
<packaging>bundle</packaging>
<name>Amdatu Example - Course service</name>
<description>Provides an example service to retrieve course
information</description>
-
- <dependencies>
+
+ <dependencies>
<dependency>
<groupId>org.amdatu.web.rest</groupId>
<artifactId>jaxrs</artifactId>
@@ -26,51 +26,45 @@
<artifactId>shindig</artifactId>
<scope>provided</scope>
<type>bundle</type>
- </dependency>
+ </dependency>
<dependency>
<groupId>org.amdatu.cassandra</groupId>
<artifactId>listener</artifactId>
<scope>provided</scope>
<version>${platform.version}</version>
<type>bundle</type>
- </dependency>
+ </dependency>
<dependency>
<groupId>org.amdatu.cassandra</groupId>
<artifactId>application</artifactId>
<scope>provided</scope>
<version>${platform.version}</version>
<type>bundle</type>
- </dependency>
+ </dependency>
<dependency>
<groupId>org.amdatu.core</groupId>
<artifactId>tenant</artifactId>
<scope>provided</scope>
<type>bundle</type>
- </dependency>
+ </dependency>
<dependency>
<groupId>org.amdatu.opensocial</groupId>
<artifactId>profile</artifactId>
<scope>provided</scope>
<type>bundle</type>
- </dependency>
- <dependency>
- <groupId>org.amdatu.semanticweb</groupId>
- <artifactId>sesame</artifactId>
- <scope>provided</scope>
- <type>bundle</type>
</dependency>
<dependency>
<groupId>org.semweb4j</groupId>
<artifactId>rdf2go.api</artifactId>
<version>${rdf2go.version}</version>
<scope>provided</scope>
- </dependency>
+ </dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20090211</version>
<scope>compile</scope>
- </dependency>
+ </dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
@@ -82,13 +76,13 @@
<artifactId>templates</artifactId>
<scope>provided</scope>
<type>bundle</type>
- </dependency>
+ </dependency>
<dependency>
<groupId>org.amdatu.authorization.login</groupId>
<artifactId>service</artifactId>
<scope>provided</scope>
<type>bundle</type>
- </dependency>
+ </dependency>
<dependency>
<groupId>org.amdatu.libraries</groupId>
<artifactId>utilities</artifactId>
@@ -96,25 +90,25 @@
<scope>compile</scope>
</dependency>
</dependencies>
-
+
<build>
- <resources>
+ <resources>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<excludes>
<exclude>conf/*.*</exclude>
</excludes>
- </resource>
+ </resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>conf/*.*</include>
</includes>
- </resource>
- </resources>
-
+ </resource>
+ </resources>
+
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
@@ -128,8 +122,8 @@
<Export-Package>org.amdatu.example.course.service</Export-Package>
</instructions>
</configuration>
- </plugin>
+ </plugin>
- </plugins>
- </build>
+ </plugins>
+ </build>
</project>
Modified:
trunk/amdatu-example/course-service/src/main/java/org/amdatu/example/course/service/osgi/Activator.java
==============================================================================
---
trunk/amdatu-example/course-service/src/main/java/org/amdatu/example/course/service/osgi/Activator.java
(original)
+++
trunk/amdatu-example/course-service/src/main/java/org/amdatu/example/course/service/osgi/Activator.java
Tue Dec 28 16:41:39 2010
@@ -16,19 +16,19 @@
*/
package org.amdatu.example.course.service.osgi;
+import org.amdatu.core.config.templates.ConfigTemplateManager;
import org.amdatu.example.course.service.CourseService;
import org.amdatu.example.course.service.service.CourseOntologyDataProvider;
import org.amdatu.example.course.service.service.CourseResource;
import org.amdatu.example.course.service.service.CourseServiceImpl;
import org.amdatu.example.course.service.service.ProfileDataProvider;
-import org.amdatu.core.config.templates.ConfigTemplateManager;
import org.amdatu.libraries.utilities.osgi.ServiceDependentActivator;
+import org.amdatu.opensocial.profile.PersonService;
import org.amdatu.web.httpcontext.HttpContextServiceFactory;
import org.amdatu.web.httpcontext.ResourceProvider;
-import org.amdatu.opensocial.profile.PersonService;
-import org.amdatu.semanticweb.sesame.SesameService;
import org.amdatu.web.rest.jaxrs.JaxRsSpi;
import org.apache.felix.dm.DependencyManager;
+import org.ontoware.rdf2go.model.ModelSet;
import org.osgi.framework.BundleContext;
import org.osgi.service.cm.ConfigurationAdmin;
import org.osgi.service.log.LogService;
@@ -51,47 +51,47 @@
public void initWithDependencies(BundleContext context, DependencyManager
manager) throws Exception {
// Create and register the course service
manager.add(
- createComponent()
- .setInterface(CourseService.class.getName(), null)
- .setImplementation(CourseServiceImpl.class)
-
.add(createServiceDependency().setService(LogService.class).setRequired(true))
-
.add(createServiceDependency().setService(ConfigurationAdmin.class).setRequired(true))
-
.add(createServiceDependency().setService(SesameService.class).setRequired(true)));
-
+ createComponent()
+ .setInterface(CourseService.class.getName(), null)
+ .setImplementation(CourseServiceImpl.class)
+
.add(createServiceDependency().setService(LogService.class).setRequired(true))
+
.add(createServiceDependency().setService(ConfigurationAdmin.class).setRequired(true))
+
.add(createServiceDependency().setService(ModelSet.class).setRequired(true)));
+
// Create and register the REST interface for the course service
manager.add(
- createComponent()
- .setInterface(ResourceProvider.class.getName(), null)
- .setImplementation(CourseResource.class)
-
.add(createServiceDependency().setService(LogService.class).setRequired(true))
-
.add(createServiceDependency().setService(UserAdmin.class).setRequired(true))
-
.add(createServiceDependency().setService(PersonService.class).setRequired(true))
-
.add(createServiceDependency().setService(ConfigTemplateManager.class).setRequired(true))
-
.add(createServiceDependency().setService(HttpContextServiceFactory.class).setRequired(true))
-
.add(createServiceDependency().setService(CourseService.class).setRequired(true)));
-
+ createComponent()
+ .setInterface(ResourceProvider.class.getName(), null)
+ .setImplementation(CourseResource.class)
+
.add(createServiceDependency().setService(LogService.class).setRequired(true))
+
.add(createServiceDependency().setService(UserAdmin.class).setRequired(true))
+
.add(createServiceDependency().setService(PersonService.class).setRequired(true))
+
.add(createServiceDependency().setService(ConfigTemplateManager.class).setRequired(true))
+
.add(createServiceDependency().setService(HttpContextServiceFactory.class).setRequired(true))
+
.add(createServiceDependency().setService(CourseService.class).setRequired(true)));
+
// Create and register the course ontology data provider service
manager.add(
- createComponent()
- .setImplementation(CourseOntologyDataProvider.class)
-
.add(createServiceDependency().setService(LogService.class).setRequired(true))
-
.add(createServiceDependency().setService(ConfigTemplateManager.class).setRequired(true))
-
.add(createServiceDependency().setService(CourseService.class).setRequired(true))
-
.add(createServiceDependency().setService(SesameService.class).setRequired(true))
-
.add(createServiceDependency().setService(ConfigurationAdmin.class).setRequired(true)));
-
+ createComponent()
+ .setImplementation(CourseOntologyDataProvider.class)
+
.add(createServiceDependency().setService(LogService.class).setRequired(true))
+
.add(createServiceDependency().setService(ConfigTemplateManager.class).setRequired(true))
+
.add(createServiceDependency().setService(CourseService.class).setRequired(true))
+
.add(createServiceDependency().setService(ModelSet.class).setRequired(true))
+
.add(createServiceDependency().setService(ConfigurationAdmin.class).setRequired(true)));
+
// Create and register the course profile data provider service
-
+
manager.add(
- createComponent()
- .setImplementation(ProfileDataProvider.class)
-
.add(createServiceDependency().setService(LogService.class).setRequired(true))
-
.add(createServiceDependency().setService(PersonService.class).setRequired(true))
-
.add(createServiceDependency().setService(UserAdmin.class).setRequired(true)));
+ createComponent()
+ .setImplementation(ProfileDataProvider.class)
+
.add(createServiceDependency().setService(LogService.class).setRequired(true))
+
.add(createServiceDependency().setService(PersonService.class).setRequired(true))
+
.add(createServiceDependency().setService(UserAdmin.class).setRequired(true)));
}
@Override
public void destroy(BundleContext bundleContext, DependencyManager
dependencyManager) throws Exception {
}
-
+
}
Modified:
trunk/amdatu-example/course-service/src/main/java/org/amdatu/example/course/service/service/CourseOntologyDataProvider.java
==============================================================================
---
trunk/amdatu-example/course-service/src/main/java/org/amdatu/example/course/service/service/CourseOntologyDataProvider.java
(original)
+++
trunk/amdatu-example/course-service/src/main/java/org/amdatu/example/course/service/service/CourseOntologyDataProvider.java
Tue Dec 28 16:41:39 2010
@@ -20,25 +20,27 @@
import static
org.amdatu.example.course.service.CourseService.EDUCA_ONTOLOGY_URI_BASE;
import java.io.IOException;
+import java.net.URISyntaxException;
import java.net.URL;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.amdatu.core.config.templates.ConfigTemplateManager;
import org.amdatu.example.course.service.CourseService;
-import org.amdatu.semanticweb.sesame.SesameService;
+import org.amdatu.libraries.utilities.ConversionUtil;
import org.ontoware.aifbcommons.collection.ClosableIterator;
+import org.ontoware.rdf2go.exception.ModelRuntimeException;
import org.ontoware.rdf2go.model.Model;
import org.ontoware.rdf2go.model.ModelSet;
import org.ontoware.rdf2go.model.QueryResultTable;
import org.ontoware.rdf2go.model.QueryRow;
-import org.openrdf.model.URI;
-import org.openrdf.model.ValueFactory;
-import org.openrdf.model.impl.URIImpl;
-import org.openrdf.model.vocabulary.RDF;
-import org.openrdf.repository.RepositoryConnection;
-import org.openrdf.repository.RepositoryException;
+import org.ontoware.rdf2go.model.Syntax;
+import org.ontoware.rdf2go.model.node.URI;
+import org.ontoware.rdf2go.model.node.impl.URIImpl;
+import org.ontoware.rdf2go.util.ModelUtils;
+import org.ontoware.rdf2go.vocabulary.RDF;
import org.osgi.framework.BundleContext;
import org.osgi.service.log.LogService;
@@ -64,11 +66,11 @@
"Dutch", "English", "French", "German"};
// Used services
- private SesameService m_sesameService;
- private BundleContext m_bundleContext;
- private LogService m_logService;
- private ConfigTemplateManager m_configTemplateManager;
- private CourseService m_courseService;
+ private volatile ModelSet m_modelSet;
+ private volatile BundleContext m_bundleContext;
+ private volatile LogService m_logService;
+ private volatile ConfigTemplateManager m_configTemplateManager;
+ private volatile CourseService m_courseService;
// Ontology mappings
public static final Map<String, String> ONTOLOGIES = new HashMap<String,
String>();
@@ -101,8 +103,8 @@
+ "'");
}
- m_sesameService.importRDFFile(rdfsUrl);
- m_sesameService.importRDFFile(rdfUrl);
+ ModelUtils.loadFromFile(ConversionUtil.urlToFile(rdfsUrl),
Syntax.RdfXml, m_modelSet.getDefaultModel());
+ ModelUtils.loadFromFile(ConversionUtil.urlToFile(rdfUrl),
Syntax.RdfXml, m_modelSet.getDefaultModel());
// Build the rest of the test data
buildCourses();
@@ -110,27 +112,29 @@
} catch (IOException e) {
m_logService.log(LogService.LOG_ERROR, "Could not initialize
course ontologies", e);
}
+ catch (ModelRuntimeException e) {
+ m_logService.log(LogService.LOG_ERROR, "Could not initialize
course ontologies", e);
+ }
+ catch (URISyntaxException e) {
+ m_logService.log(LogService.LOG_ERROR, "Could not initialize
course ontologies", e);
+ }
}
// Build the course triples. Most courses are available for all educations
and grades
private void buildCourses() {
- RepositoryConnection connection = null;
try {
- // Build the URL to the Courses.rdf file
- connection = m_sesameService.getRepository().getConnection();
-
// Determine base URL for all ontologies
String baseUrl = m_courseService.getOntologyBaseUrl();
- ValueFactory factory =
m_sesameService.getRepository().getValueFactory();
- URI courseType = factory.createURI(baseUrl +
EDUCA_ONTOLOGY_COURSE_URI);
- URI gradeProp = factory.createURI(baseUrl +
EDUCA_ONTOLOGY_GRADE_PROP_URI);
- URI educationProp = factory.createURI(baseUrl +
EDUCA_ONTOLOGY_EDUCATION_PROP_URI);
- URI nameProp = factory.createURI(baseUrl +
EDUCA_ONTOLOGY_NAME_PROP_URI);
+ Model model = m_modelSet.getDefaultModel();
+ URI courseType = model.createURI(baseUrl +
EDUCA_ONTOLOGY_COURSE_URI);
+ URI gradeProp = model.createURI(baseUrl +
EDUCA_ONTOLOGY_GRADE_PROP_URI);
+ URI educationProp = model.createURI(baseUrl +
EDUCA_ONTOLOGY_EDUCATION_PROP_URI);
+ URI nameProp = model.createURI(baseUrl +
EDUCA_ONTOLOGY_NAME_PROP_URI);
// Retrieve all grades and educations
- List<String> grades = m_sesameService.getSubjects(baseUrl +
EDUCA_ONTOLOGY_GRADE_URI);
- List<String> educations = m_sesameService.getSubjects(baseUrl +
EDUCA_ONTOLOGY_EDUCATION_URI);
+ List<String> grades = getSubjects(baseUrl +
EDUCA_ONTOLOGY_GRADE_URI);
+ List<String> educations = getSubjects(baseUrl +
EDUCA_ONTOLOGY_EDUCATION_URI);
// Loop over all course names and create a Course for each grade
and education
m_logService.log(LogService.LOG_DEBUG, "Adding " +
COURSE_NAMES.length * grades.size() * educations.size()
@@ -149,16 +153,17 @@
for (String educationURI : educations) {
String sCourseURI = courseBaseURI +
educationURI.substring(educationURI.lastIndexOf("#") + 1);
sCourseURI += "/" +
gradeURI.substring(gradeURI.lastIndexOf("#") + 1);
- URI courseURI = factory.createURI(sCourseURI);
- connection.add(courseURI, RDF.TYPE, courseType);
+ URI courseURI = m_modelSet.createURI(sCourseURI);
+
+ model.addStatement(courseURI, RDF.type, courseType);
URIImpl gradeNode = new URIImpl(gradeURI);
- connection.add(courseURI, gradeProp, gradeNode);
+ model.addStatement(courseURI, gradeProp, gradeNode);
URIImpl educationNode = new URIImpl(educationURI);
- connection.add(courseURI, educationProp,
educationNode);
+ model.addStatement(courseURI, educationProp,
educationNode);
- connection.add(courseURI, nameProp,
factory.createLiteral(courseName));
+ model.addStatement(courseURI, nameProp,
model.createPlainLiteral(courseName));
}
}
@@ -170,16 +175,6 @@
}
} catch (IOException e) {
m_logService.log(LogService.LOG_ERROR, "Failed to store Courses in
RDF database", e);
- } catch (RepositoryException e) {
- m_logService.log(LogService.LOG_ERROR, "Failed to store Courses in
RDF database", e);
- } finally {
- if (connection != null) {
- try {
- connection.close();
- } catch (RepositoryException e) {
- m_logService.log(LogService.LOG_ERROR, "Failed to close
RDF database connection", e);
- }
- }
}
}
@@ -192,8 +187,7 @@
private boolean ontologyDataExists() throws IOException {
String baseUrl = m_courseService.getOntologyBaseUrl();
String queryString = "SELECT ?subject WHERE { ?subject a <" + baseUrl
+ EDUCA_ONTOLOGY_PERSON_URI + ">}";
- ModelSet modelSet = m_sesameService.getModelSet();
- Model model = modelSet.getDefaultModel();
+ Model model = m_modelSet.getDefaultModel();
QueryResultTable result = model.sparqlSelect(queryString);
ClosableIterator<QueryRow> iterator = result.iterator();
try {
@@ -205,4 +199,22 @@
}
return Boolean.FALSE;
}
+
+ private List<String> getSubjects(String subjectUri) {
+ Model model = m_modelSet.getDefaultModel();
+ URI uri = model.createURI(subjectUri);
+ String query = "SELECT ?subject WHERE { ?subject a <" + uri + ">}";
+ QueryResultTable result = model.sparqlSelect(query);
+ ClosableIterator<QueryRow> iterator = result.iterator();
+ ArrayList<String> subjects = new ArrayList<String>();
+ try {
+ while (iterator.hasNext()) {
+ QueryRow bs = iterator.next();
+ subjects.add(bs.getValue("subject").toString());
+ }
+ } finally {
+ iterator.close();
+ }
+ return subjects;
+ }
}
Modified:
trunk/amdatu-example/course-service/src/main/java/org/amdatu/example/course/service/service/CourseServiceImpl.java
==============================================================================
---
trunk/amdatu-example/course-service/src/main/java/org/amdatu/example/course/service/service/CourseServiceImpl.java
(original)
+++
trunk/amdatu-example/course-service/src/main/java/org/amdatu/example/course/service/service/CourseServiceImpl.java
Tue Dec 28 16:41:39 2010
@@ -22,7 +22,6 @@
import org.amdatu.example.course.service.Course;
import org.amdatu.example.course.service.CourseService;
-import org.amdatu.semanticweb.sesame.SesameService;
import org.apache.shindig.social.opensocial.model.Person;
import org.ontoware.aifbcommons.collection.ClosableIterator;
import org.ontoware.rdf2go.model.Model;
@@ -42,7 +41,7 @@
public class CourseServiceImpl implements CourseService {
// Services injected by the Felix dependency manager
private volatile LogService m_logService;
- private volatile SesameService m_sesameService;
+ private volatile ModelSet m_modelSet;
private volatile ConfigurationAdmin m_configAdmin;
/**
@@ -70,8 +69,7 @@
"}";
ArrayList<Course> courses = new ArrayList<Course>();
- ModelSet modelSet = m_sesameService.getModelSet();
- Model model = modelSet.getDefaultModel();
+ Model model = m_modelSet.getDefaultModel();
QueryResultTable result = model.sparqlSelect(sparqlQuery);
ClosableIterator<QueryRow> iterator = result.iterator();
try {
Modified:
trunk/amdatu-libraries/utilities/src/main/java/org/amdatu/libraries/utilities/ConversionUtil.java
==============================================================================
---
trunk/amdatu-libraries/utilities/src/main/java/org/amdatu/libraries/utilities/ConversionUtil.java
(original)
+++
trunk/amdatu-libraries/utilities/src/main/java/org/amdatu/libraries/utilities/ConversionUtil.java
Tue Dec 28 16:41:39 2010
@@ -18,11 +18,19 @@
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
+import java.net.URISyntaxException;
+import java.net.URL;
public final class ConversionUtil {
+ // Default amount of bytes to read at once
+ private static final int DEFAULT_BYTE_SIZE = 1024;
+
/**
* Converts a serializable Java object to a byte array.
* @param object The object to convert
@@ -58,7 +66,7 @@
* @param bytes Array of bytes to convert
* @return The converted object
* @throws ClassNotFoundException Instead the class of the serialized Java
object
- * could not be found (likely caused by the fact that the class is not
available in
+ * could not be found (likely caused by the fact that the class is not
available in
* this bundles classloader)
* @throws IOException In case any IO exception occurred
*/
@@ -83,4 +91,32 @@
}
return data;
}
+
+ public static File urlToFile(URL url) throws IOException,
URISyntaxException {
+ String filename = url.toURI().getRawPath();
+ filename = filename.substring(filename.lastIndexOf("/") + 1);
+ File tempFile = File.createTempFile(filename, ".temp");
+ InputStream is = null;
+ FileOutputStream fos = null;
+ try {
+ is = url.openStream();
+ fos = new FileOutputStream(tempFile);
+ int len = 0;
+ byte[] b = new byte[DEFAULT_BYTE_SIZE];
+ while ((len = is.read(b)) > 0) {
+ fos.write(b, 0, len);
+ }
+ } finally {
+ if (is != null) {
+ try {
+ is.close();
+ } finally {
+ if (fos != null) {
+ fos.close();
+ }
+ }
+ }
+ }
+ return tempFile;
+ }
}
Modified:
trunk/amdatu-semanticweb/sesame/src/main/java/org/amdatu/semanticweb/sesame/SesameService.java
==============================================================================
---
trunk/amdatu-semanticweb/sesame/src/main/java/org/amdatu/semanticweb/sesame/SesameService.java
(original)
+++
trunk/amdatu-semanticweb/sesame/src/main/java/org/amdatu/semanticweb/sesame/SesameService.java
Tue Dec 28 16:41:39 2010
@@ -19,30 +19,37 @@
import java.net.URL;
import java.util.List;
-import org.ontoware.rdf2go.model.ModelSet;
import org.openrdf.repository.Repository;
/**
* Interface for a Sesame service. Sesame is a fast and scalable RDF database.
Sesame also provides
* two query languages for searching through the RDF documents in a Sesame
database: SeRQL and SPARQL.
+ * This interface is deprecated, use the RDF2GO API instead. All methods
however are still fully functioning, but
+ * they will be removed in subsequent releases.
*
* @author ivol
*/
+ at Deprecated
public interface SesameService {
/**
* Returns the Sesame repository that stores the RDF documents.
+ * This method has been deprecated, use the RDF2GO API instead. To
retrieve a ModelSet published by
+ * the any RDF implementation define a service dependency on ModelSet
instead.
*
* @return the Sesame repository that stores the RDF documents.
*/
+ @Deprecated
Repository getRepository();
- ModelSet getModelSet();
-
/**
* Imports an RDF file into the RDF storage.
+ * This method has been deprecated, use the RDF2GO API instead. To import
a RDF file use:
+ * ModelUtils.loadFromFile(ConversionUtil.urlToFile(url), Syntax.RdfXml,
m_modelSet.getDefaultModel());
+ * NB: ConversionUtil is a utility class in the utilities bundle of the
amdatu-libraries module.
*
* @param rdfFile The URL to the file to import.
*/
+ @Deprecated
void importRDFFile(URL rdfFile);
/**
@@ -70,9 +77,11 @@
/**
* Retrieve a list of subject URI's that are instances of the specified
class.
+ * This method has been deprecated, use the RDF2GO API instead.
*
* @param classURI The URI of the class of which the subjects must be
instances
* @return List of resource URI's of the selected subjects
*/
+ @Deprecated
List<String> getSubjects(String classURI);
}
Modified:
trunk/amdatu-semanticweb/sesame/src/main/java/org/amdatu/semanticweb/sesame/service/SesameServiceImpl.java
==============================================================================
---
trunk/amdatu-semanticweb/sesame/src/main/java/org/amdatu/semanticweb/sesame/service/SesameServiceImpl.java
(original)
+++
trunk/amdatu-semanticweb/sesame/src/main/java/org/amdatu/semanticweb/sesame/service/SesameServiceImpl.java
Tue Dec 28 16:41:39 2010
@@ -80,6 +80,7 @@
m_repository.initialize();
m_rdf2goModelSet = new RepositoryModelSet(m_repository);
m_rdf2goModelSet.open();
+ registerModelSet();
} catch (RepositoryException e) {
m_logService.log(LogService.LOG_ERROR, "Failed to initialize
Sesame SailRepository in repository "
+ "directory '" + m_repositoryDir + "'", e);
@@ -111,7 +112,7 @@
public void importRDFFile(URL rdfFile) {
RepositoryConnection connection = null;
try {
- connection = getRepository().getConnection();
+ connection = m_repository.getConnection();
connection.add(rdfFile, rdfFile.toString(), RDFFormat.RDFXML);
} catch (RepositoryException e) {
m_logService.log(LogService.LOG_ERROR, "Failed to store RDF file
'" + rdfFile + "'", e);
@@ -134,7 +135,7 @@
RepositoryConnection connection = null;
TupleQueryResult result = null;
try {
- connection = getRepository().getConnection();
+ connection = m_repository.getConnection();
TupleQuery tupleQuery =
connection.prepareTupleQuery(QueryLanguage.SPARQL, queryString);
result = tupleQuery.evaluate();
return handler.handleResult(result);
@@ -164,7 +165,7 @@
}
public List<String> getSubjects(String subjectUri) {
- ValueFactory factory = getRepository().getValueFactory();
+ ValueFactory factory = m_repository.getValueFactory();
URI uri = factory.createURI(subjectUri);
String query = "SELECT ?subject WHERE { ?subject a <" + uri + ">}";
Model model = m_rdf2goModelSet.getDefaultModel();
Modified: trunk/amdatu-semanticweb/sparqlendpoint/pom.xml
==============================================================================
--- trunk/amdatu-semanticweb/sparqlendpoint/pom.xml (original)
+++ trunk/amdatu-semanticweb/sparqlendpoint/pom.xml Tue Dec 28 16:41:39 2010
@@ -13,13 +13,7 @@
<name>Amdatu Semantic Web - SPARQL Endpoint</name>
<description>Provides a gadget to execute SPARQL queries</description>
- <dependencies>
- <dependency>
- <groupId>org.amdatu.semanticweb</groupId>
- <artifactId>sesame</artifactId>
- <scope>provided</scope>
- <type>bundle</type>
- </dependency>
+ <dependencies>
<dependency>
<groupId>org.semweb4j</groupId>
<artifactId>rdf2go.api</artifactId>
Modified:
trunk/amdatu-semanticweb/sparqlendpoint/src/main/java/org/amdatu/semanticweb/sparqlendpoint/Activator.java
==============================================================================
---
trunk/amdatu-semanticweb/sparqlendpoint/src/main/java/org/amdatu/semanticweb/sparqlendpoint/Activator.java
(original)
+++
trunk/amdatu-semanticweb/sparqlendpoint/src/main/java/org/amdatu/semanticweb/sparqlendpoint/Activator.java
Tue Dec 28 16:41:39 2010
@@ -18,12 +18,12 @@
import org.amdatu.libraries.utilities.osgi.ServiceDependentActivator;
import org.amdatu.opensocial.gadgetmanagement.GadgetManagement;
-import org.amdatu.semanticweb.sesame.SesameService;
import org.amdatu.semanticweb.sparqlendpoint.service.SPARQLEndpointServiceImpl;
import org.amdatu.web.httpcontext.HttpContextServiceFactory;
import org.amdatu.web.httpcontext.ResourceProvider;
import org.amdatu.web.rest.jaxrs.JaxRsSpi;
import org.apache.felix.dm.DependencyManager;
+import org.ontoware.rdf2go.model.ModelSet;
import org.osgi.framework.BundleContext;
import org.osgi.service.log.LogService;
@@ -46,10 +46,10 @@
// Create the SPARQLEndpointServiceImpl which has dependencies with
the Log service
// and HTTP service
manager.add(createComponent().setInterface(ResourceProvider.class.getName(),
null).setImplementation(
- SPARQLEndpointServiceImpl.class).add(
+ SPARQLEndpointServiceImpl.class).add(
createServiceDependency().setService(LogService.class).setRequired(true))
.add(createServiceDependency().setService(GadgetManagement.class).setRequired(true))
-
.add(createServiceDependency().setService(SesameService.class).setRequired(true))
+
.add(createServiceDependency().setService(ModelSet.class).setRequired(true))
.add(createServiceDependency().setService(HttpContextServiceFactory.class).setRequired(true))
.add(createConfigurationDependency().setPid(SPARQLEndpointServiceImpl.PID)));
}
@@ -57,5 +57,5 @@
@Override
public void destroy(BundleContext bundleContext, DependencyManager
dependencyManager) throws Exception {
}
-
+
}
Modified:
trunk/amdatu-semanticweb/sparqlendpoint/src/main/java/org/amdatu/semanticweb/sparqlendpoint/service/SPARQLEndpointServiceImpl.java
==============================================================================
---
trunk/amdatu-semanticweb/sparqlendpoint/src/main/java/org/amdatu/semanticweb/sparqlendpoint/service/SPARQLEndpointServiceImpl.java
(original)
+++
trunk/amdatu-semanticweb/sparqlendpoint/src/main/java/org/amdatu/semanticweb/sparqlendpoint/service/SPARQLEndpointServiceImpl.java
Tue Dec 28 16:41:39 2010
@@ -36,7 +36,6 @@
import org.amdatu.opensocial.gadgetmanagement.GadgetManagement;
import org.amdatu.opensocial.shindig.GadgetCategory;
import org.amdatu.opensocial.shindig.GadgetDefinition;
-import org.amdatu.semanticweb.sesame.SesameService;
import org.amdatu.semanticweb.sparqlendpoint.Activator;
import org.amdatu.web.httpcontext.HttpContextServiceFactory;
import org.amdatu.web.httpcontext.ResourceProvider;
@@ -71,11 +70,11 @@
private final static String PORTNR = "portnr";
// Service dependencies, injected by the Felix dependency manager
- private volatile SesameService m_sesameService;
private volatile LogService m_logService;
private volatile BundleContext m_bundleContext;
private volatile HttpContextServiceFactory m_httpContextServiceFactory;
private volatile GadgetManagement m_gadgetManagement;
+ private volatile ModelSet m_modelSet;
// The private HTTP context service for this bundle
private Component m_httpContextComponent;
@@ -141,8 +140,7 @@
JSONObject jsonObject = new JSONObject();
try {
m_logService.log(LogService.LOG_DEBUG, "Executing SPARQL query: "
+ query);
- ModelSet modelSet = m_sesameService.getModelSet();
- Model model = modelSet.getDefaultModel();
+ Model model = m_modelSet.getDefaultModel();
QueryResultTable result = model.sparqlSelect(query);
List<String> names = result.getVariables();
ClosableIterator<QueryRow> iterator = result.iterator();
Modified:
trunk/integration-tests/src/test/java/org/amdatu/test/integration/tests/RDF2GOTest.java
==============================================================================
---
trunk/integration-tests/src/test/java/org/amdatu/test/integration/tests/RDF2GOTest.java
(original)
+++
trunk/integration-tests/src/test/java/org/amdatu/test/integration/tests/RDF2GOTest.java
Tue Dec 28 16:41:39 2010
@@ -55,7 +55,6 @@
protected Option provisionBundles() {
return provision(
javaxServlet(),
- log4j(),
amdatuRdf2goApi(),
amdatuRdf2goSesameBridge(),
amdatuSesameApplication()