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/07/21 15:38:10 UTC
[14/16] git commit: MARMOTTA-508: simplified ldp init
MARMOTTA-508: simplified ldp init
Project: http://git-wip-us.apache.org/repos/asf/marmotta/repo
Commit: http://git-wip-us.apache.org/repos/asf/marmotta/commit/5d2675f0
Tree: http://git-wip-us.apache.org/repos/asf/marmotta/tree/5d2675f0
Diff: http://git-wip-us.apache.org/repos/asf/marmotta/diff/5d2675f0
Branch: refs/heads/ldp
Commit: 5d2675f0b7d7e9da35df701559e586362358c99d
Parents: c34b2fe
Author: Sergio Fernández <wi...@apache.org>
Authored: Tue Jul 15 13:59:52 2014 +0200
Committer: Sergio Fernández <wi...@apache.org>
Committed: Tue Jul 15 13:59:52 2014 +0200
----------------------------------------------------------------------
.../platform/ldp/services/LdpServiceImpl.java | 6 +--
.../platform/ldp/webservices/LdpPreProcess.java | 53 --------------------
.../platform/ldp/webservices/LdpWebService.java | 44 ++++++++++------
3 files changed, 32 insertions(+), 71 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/marmotta/blob/5d2675f0/platform/marmotta-ldp/src/main/java/org/apache/marmotta/platform/ldp/services/LdpServiceImpl.java
----------------------------------------------------------------------
diff --git a/platform/marmotta-ldp/src/main/java/org/apache/marmotta/platform/ldp/services/LdpServiceImpl.java b/platform/marmotta-ldp/src/main/java/org/apache/marmotta/platform/ldp/services/LdpServiceImpl.java
index eeede1a..c592dea 100644
--- a/platform/marmotta-ldp/src/main/java/org/apache/marmotta/platform/ldp/services/LdpServiceImpl.java
+++ b/platform/marmotta-ldp/src/main/java/org/apache/marmotta/platform/ldp/services/LdpServiceImpl.java
@@ -89,14 +89,14 @@ public class LdpServiceImpl implements LdpService {
@Override
public void init(RepositoryConnection connection, URI root) throws RepositoryException {
+ final ValueFactory valueFactory = connection.getValueFactory();
+ final Literal now = valueFactory.createLiteral(new Date());
if (!exists(connection, root)) {
+ connection.add(root, RDFS.LABEL, valueFactory.createLiteral("Marmotta's LDP Root Container"), ldpContext);
connection.add(root, RDF.TYPE, LDP.Resource, ldpContext);
connection.add(root, RDF.TYPE, LDP.RDFSource, ldpContext);
connection.add(root, RDF.TYPE, LDP.Container, ldpContext);
connection.add(root, RDF.TYPE, LDP.BasicContainer, ldpContext);
- final ValueFactory valueFactory = connection.getValueFactory();
- connection.add(root, RDFS.LABEL, valueFactory.createLiteral("Marmotta's LDP Root Container"), ldpContext);
- final Literal now = valueFactory.createLiteral(new Date());
connection.add(root, DCTERMS.created, now, ldpContext);
connection.add(root, DCTERMS.modified, now, ldpContext);
}
http://git-wip-us.apache.org/repos/asf/marmotta/blob/5d2675f0/platform/marmotta-ldp/src/main/java/org/apache/marmotta/platform/ldp/webservices/LdpPreProcess.java
----------------------------------------------------------------------
diff --git a/platform/marmotta-ldp/src/main/java/org/apache/marmotta/platform/ldp/webservices/LdpPreProcess.java b/platform/marmotta-ldp/src/main/java/org/apache/marmotta/platform/ldp/webservices/LdpPreProcess.java
deleted file mode 100644
index 342b9b7..0000000
--- a/platform/marmotta-ldp/src/main/java/org/apache/marmotta/platform/ldp/webservices/LdpPreProcess.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package org.apache.marmotta.platform.ldp.webservices;
-
-import org.apache.marmotta.platform.core.api.triplestore.SesameService;
-import org.apache.marmotta.platform.ldp.api.LdpService;
-import org.openrdf.model.URI;
-import org.openrdf.repository.RepositoryConnection;
-import org.openrdf.repository.RepositoryException;
-
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
-import javax.ws.rs.container.ContainerRequestContext;
-import javax.ws.rs.container.ContainerRequestFilter;
-import javax.ws.rs.container.PreMatching;
-import javax.ws.rs.core.UriBuilder;
-import javax.ws.rs.core.UriInfo;
-import java.io.IOException;
-
-/**
- * Pre-process interceptor for LDP
- *
- * @author Sergio Fernández
- */
-@PreMatching
-@ApplicationScoped
-public class LdpPreProcess implements ContainerRequestFilter {
-
- @Inject
- private LdpService ldpService;
-
- @Inject
- private SesameService sesameService;
-
- @Override
- public void filter(ContainerRequestContext context) throws IOException {
- UriInfo uriInfo = context.getUriInfo();
- UriBuilder resourceUriBuilder = ldpService.getResourceUriBuilder(uriInfo);
- //TODO avoid the expensive operations once it's initialized
- try {
- final RepositoryConnection conn = sesameService.getConnection();
- try {
- conn.begin();
- URI root = conn.getValueFactory().createURI(resourceUriBuilder.build().toString());
- ldpService.init(conn, root);
- conn.commit();
- } finally {
- conn.close();
- }
- } catch (RepositoryException e) {
- e.printStackTrace();
- throw new IOException(e);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/marmotta/blob/5d2675f0/platform/marmotta-ldp/src/main/java/org/apache/marmotta/platform/ldp/webservices/LdpWebService.java
----------------------------------------------------------------------
diff --git a/platform/marmotta-ldp/src/main/java/org/apache/marmotta/platform/ldp/webservices/LdpWebService.java b/platform/marmotta-ldp/src/main/java/org/apache/marmotta/platform/ldp/webservices/LdpWebService.java
index 02cd5a8..5a32210 100644
--- a/platform/marmotta-ldp/src/main/java/org/apache/marmotta/platform/ldp/webservices/LdpWebService.java
+++ b/platform/marmotta-ldp/src/main/java/org/apache/marmotta/platform/ldp/webservices/LdpWebService.java
@@ -24,6 +24,7 @@ import org.apache.marmotta.commons.vocabulary.LDP;
import org.apache.marmotta.platform.core.api.config.ConfigurationService;
import org.apache.marmotta.platform.core.api.exporter.ExportService;
import org.apache.marmotta.platform.core.api.triplestore.SesameService;
+import org.apache.marmotta.platform.core.events.SesameStartupEvent;
import org.apache.marmotta.platform.ldp.api.LdpService;
import org.apache.marmotta.platform.ldp.exceptions.IncompatibleResourceTypeException;
import org.apache.marmotta.platform.ldp.exceptions.InvalidInteractionModelException;
@@ -44,6 +45,7 @@ import org.slf4j.Logger;
import javax.annotation.PostConstruct;
import javax.enterprise.context.ApplicationScoped;
+import javax.enterprise.event.Observes;
import javax.inject.Inject;
import javax.ws.rs.*;
import javax.ws.rs.core.*;
@@ -83,10 +85,22 @@ public class LdpWebService {
@Inject
private SesameService sesameService;
- @PostConstruct
- protected void initialize() {
- // TODO: basic initialization
+ protected void initialize(@Observes SesameStartupEvent event) {
log.info("Starting up LDP WebService Endpoint");
+ String root = UriBuilder.fromUri(configurationService.getBaseUri()).path(LdpWebService.PATH).build().toASCIIString();
+ try {
+ final RepositoryConnection conn = sesameService.getConnection();
+ try {
+ conn.begin();
+ ldpService.init(conn, conn.getValueFactory().createURI(root));
+ log.debug("Created LDP root container <{}>", root);
+ conn.commit();
+ } finally {
+ conn.close();
+ }
+ } catch (RepositoryException e) {
+ log.error("Error creating LDP root container <{}>: {}", root, e.getMessage(), e);
+ }
}
@GET
@@ -503,6 +517,18 @@ public class LdpWebService {
* Add all the default headers specified in LDP to the Response
*
* @param connection
+ * @param status the StatusCode
+ * @param resource the iri/uri/url of the resouce
+ * @return the provided ResponseBuilder for chaining
+ */
+ protected Response.ResponseBuilder createResponse(RepositoryConnection connection, Response.Status status, String resource) throws RepositoryException {
+ return createResponse(connection, status.getStatusCode(), resource);
+ }
+
+ /**
+ * Add all the default headers specified in LDP to the Response
+ *
+ * @param connection
* @param status the status code
* @param resource the uri/url of the resouce
* @return the provided ResponseBuilder for chaining
@@ -567,16 +593,4 @@ public class LdpWebService {
return rb;
}
- /**
- * Add all the default headers specified in LDP to the Response
- *
- * @param connection
- * @param status the StatusCode
- * @param resource the iri/uri/url of the resouce
- * @return the provided ResponseBuilder for chaining
- */
- protected Response.ResponseBuilder createResponse(RepositoryConnection connection, Response.Status status, String resource) throws RepositoryException {
- return createResponse(connection, status.getStatusCode(), resource);
- }
-
}