You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@marmotta.apache.org by wi...@apache.org on 2014/10/27 09:01:44 UTC
[8/9] git commit: MARMOTTA-556: fixed dataset support
MARMOTTA-556: fixed dataset support
Project: http://git-wip-us.apache.org/repos/asf/marmotta/repo
Commit: http://git-wip-us.apache.org/repos/asf/marmotta/commit/22d16b35
Tree: http://git-wip-us.apache.org/repos/asf/marmotta/tree/22d16b35
Diff: http://git-wip-us.apache.org/repos/asf/marmotta/diff/22d16b35
Branch: refs/heads/MARMOTTA-556
Commit: 22d16b352a87d1ac7366f79b027a6137da756ebc
Parents: d99de51
Author: Sergio Fernández <wi...@apache.org>
Authored: Fri Oct 24 22:02:25 2014 +0200
Committer: Sergio Fernández <wi...@apache.org>
Committed: Fri Oct 24 22:02:25 2014 +0200
----------------------------------------------------------------------
.../marmotta/platform/ldf/api/LdfService.java | 9 +++---
.../platform/ldf/services/LdfServiceImpl.java | 14 ++++-----
.../platform/ldf/sesame/LdfRDFHandler.java | 2 +-
.../platform/ldf/webservices/LdfWebService.java | 33 +++++++-------------
4 files changed, 25 insertions(+), 33 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/marmotta/blob/22d16b35/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/api/LdfService.java
----------------------------------------------------------------------
diff --git a/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/api/LdfService.java b/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/api/LdfService.java
index 9496589..a1d2dce 100644
--- a/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/api/LdfService.java
+++ b/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/api/LdfService.java
@@ -22,6 +22,7 @@ import org.openrdf.model.URI;
import org.openrdf.rio.RDFFormat;
import org.openrdf.model.Value;
import org.openrdf.repository.RepositoryException;
+import org.openrdf.rio.RDFHandlerException;
import java.io.OutputStream;
@@ -45,7 +46,7 @@ public interface LdfService {
* @param format RDF serialization
* @param out output stream where write the fragment
*/
- void writeFragment(String subject, String predicate, String object, int page, RDFFormat format, OutputStream out) throws RepositoryException;
+ void writeFragment(String subject, String predicate, String object, int page, RDFFormat format, OutputStream out) throws RepositoryException, RDFHandlerException;
/**
* Writes a fragment matching the specified triple fragment pattern
@@ -58,7 +59,7 @@ public interface LdfService {
* @param format RDF serialization
* @param out output stream where write the fragment
*/
- void writeFragment(URI subject, URI predicate, Value object, int page, RDFFormat format, OutputStream out) throws RepositoryException;
+ void writeFragment(URI subject, URI predicate, Value object, int page, RDFFormat format, OutputStream out) throws RepositoryException, RDFHandlerException;
/**
* Writes a fragment matching the specified quad fragment pattern
@@ -72,7 +73,7 @@ public interface LdfService {
* @param format RDF serialization
* @param out output stream where write the fragment
*/
- void writeFragment(String subject, String predicate, String object, String context, int page, RDFFormat format, OutputStream out) throws RepositoryException;
+ void writeFragment(String subject, String predicate, String object, String context, int page, RDFFormat format, OutputStream out) throws RepositoryException, RDFHandlerException;
/**
* Writes a fragment matching the specified quad fragment pattern
@@ -86,6 +87,6 @@ public interface LdfService {
* @param format RDF serialization
* @param out output stream where write the fragment
*/
- void writeFragment(URI subject, URI predicate, Value object, Resource context, int page, RDFFormat format, OutputStream out) throws RepositoryException;
+ void writeFragment(URI subject, URI predicate, Value object, Resource context, int page, RDFFormat format, OutputStream out) throws RepositoryException, RDFHandlerException;
}
http://git-wip-us.apache.org/repos/asf/marmotta/blob/22d16b35/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/services/LdfServiceImpl.java
----------------------------------------------------------------------
diff --git a/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/services/LdfServiceImpl.java b/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/services/LdfServiceImpl.java
index 3f906da..580cb25 100644
--- a/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/services/LdfServiceImpl.java
+++ b/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/services/LdfServiceImpl.java
@@ -48,17 +48,17 @@ public class LdfServiceImpl implements LdfService {
private SesameService sesameService;
@Override
- public void writeFragment(String subjectStr, String predicateStr, String objectStr, int page, RDFFormat format, OutputStream out) throws RepositoryException {
+ public void writeFragment(String subjectStr, String predicateStr, String objectStr, int page, RDFFormat format, OutputStream out) throws RepositoryException, RDFHandlerException {
writeFragment(subjectStr, predicateStr, objectStr, null, page, format, out);
}
@Override
- public void writeFragment(URI subject, URI predicate, Value object, int page, RDFFormat format, OutputStream out) throws RepositoryException {
+ public void writeFragment(URI subject, URI predicate, Value object, int page, RDFFormat format, OutputStream out) throws RepositoryException, RDFHandlerException {
writeFragment(subject, predicate, object, null, page, format, out);
}
@Override
- public void writeFragment(String subjectStr, String predicateStr, String objectStr, String contextStr, int page, RDFFormat format, OutputStream out) throws RepositoryException {
+ public void writeFragment(String subjectStr, String predicateStr, String objectStr, String contextStr, int page, RDFFormat format, OutputStream out) throws RepositoryException, RDFHandlerException {
final ValueFactoryImpl vf = new ValueFactoryImpl();
URI subject = null;
@@ -105,17 +105,17 @@ public class LdfServiceImpl implements LdfService {
}
@Override
- public void writeFragment(URI subject, URI predicate, Value object, Resource context, int page, RDFFormat format, OutputStream out) throws RepositoryException {
+ public void writeFragment(URI subject, URI predicate, Value object, Resource context, int page, RDFFormat format, OutputStream out) throws RepositoryException, RDFHandlerException {
final RepositoryConnection conn = sesameService.getConnection();
try {
conn.begin();
RepositoryResult<Statement> statements = conn.getStatements(subject, predicate, object, true, context);
RDFHandler handler = new LdfRDFHandler(Rio.createWriter(format, out), context, page);
Rio.write(ResultUtils.iterable(statements), handler);
- } catch (RDFHandlerException e) {
- e.printStackTrace();
} finally {
- conn.close();
+ if (conn != null && conn.isOpen()) {
+ conn.close();
+ }
}
}
http://git-wip-us.apache.org/repos/asf/marmotta/blob/22d16b35/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/sesame/LdfRDFHandler.java
----------------------------------------------------------------------
diff --git a/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/sesame/LdfRDFHandler.java b/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/sesame/LdfRDFHandler.java
index 2ba0e21..5164705 100644
--- a/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/sesame/LdfRDFHandler.java
+++ b/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/sesame/LdfRDFHandler.java
@@ -128,7 +128,7 @@ public class LdfRDFHandler implements RDFHandler {
final int size = statements.size();
final int offset = LdfService.PAGE_SIZE * (page - 1);
if (offset > size) {
- throw new IllegalArgumentException("page " + page + " can't be generated");
+ throw new RDFHandlerException("page " + page + " can't be generated");
}
final int limit = LdfService.PAGE_SIZE < size-offset ? LdfService.PAGE_SIZE : size-offset;
List<Statement> filteredStatements = statements.subList(offset, limit);
http://git-wip-us.apache.org/repos/asf/marmotta/blob/22d16b35/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/webservices/LdfWebService.java
----------------------------------------------------------------------
diff --git a/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/webservices/LdfWebService.java b/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/webservices/LdfWebService.java
index cc09402..0cc1f09 100644
--- a/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/webservices/LdfWebService.java
+++ b/platform/marmotta-ldf/src/main/java/org/apache/marmotta/platform/ldf/webservices/LdfWebService.java
@@ -9,6 +9,7 @@ import org.apache.marmotta.platform.core.util.WebServiceUtil;
import org.apache.marmotta.platform.ldf.api.LdfService;
import org.openrdf.repository.RepositoryException;
import org.openrdf.rio.RDFFormat;
+import org.openrdf.rio.RDFHandlerException;
import org.openrdf.rio.Rio;
import javax.enterprise.context.ApplicationScoped;
@@ -50,7 +51,6 @@ public class LdfWebService {
@QueryParam("object") @DefaultValue("") String object,
@QueryParam("page") @DefaultValue("1") String page,
@HeaderParam("Accept") String accept) {
- System.out.println("1");
return getFragment(subject, predicate, object, null, Integer.parseInt(page), accept);
}
@@ -62,7 +62,6 @@ public class LdfWebService {
@QueryParam("page") @DefaultValue("1") String page,
@PathParam("uuid") String uuid,
@HeaderParam("Accept") String accept) {
- System.out.println("2");
final String context = buildContextUri(uuid);
return getFragment(subject, predicate, object, context, Integer.parseInt(page), accept);
}
@@ -73,26 +72,19 @@ public class LdfWebService {
final String context,
final int page,
final String accept) {
- System.out.println("3");
final RDFFormat format = getFormat(accept);
- try {
- StreamingOutput stream = new StreamingOutput() {
- @Override
- public void write(OutputStream outputStream) throws IOException, WebApplicationException {
- try {
- ldfService.writeFragment(subject, predicate, object, context, page, format, outputStream);
- } catch (RepositoryException e) {
- throw new WebApplicationException(e);
- }
+ StreamingOutput stream = new StreamingOutput() {
+ @Override
+ public void write(OutputStream outputStream) throws IOException, WebApplicationException {
+ try {
+ ldfService.writeFragment(subject, predicate, object, context, page, format, outputStream);
+ } catch (RepositoryException | RDFHandlerException | IllegalArgumentException e) {
+ throw new WebApplicationException(e);
}
- };
- return Response.ok(stream).build();
- } catch (WebApplicationException e) {
- return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
- } catch (IllegalArgumentException e) {
- return Response.status(Response.Status.BAD_REQUEST).entity(e.getMessage()).build();
- }
+ }
+ };
+ return Response.ok(stream).build();
}
private RDFFormat getFormat(String accept) {
@@ -105,8 +97,7 @@ public class LdfWebService {
private String buildContextUri(String uuid) {
if (StringUtils.isNotBlank(uuid)) {
- String root = configurationService.getBaseUri();
- return root.substring(0, root.length() - 1) + WebServiceUtil.getResourcePath(this) + "/" + uuid;
+ return configurationService.getBaseUri() + ConfigurationService.CONTEXT_PATH + "/" + uuid;
} else {
return null;
}