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;
         }