diff --git a/preston-serve/src/main/java/bio/guoda/preston/server/CmdRedirect.java b/preston-serve/src/main/java/bio/guoda/preston/server/CmdRedirect.java index db5e276c..24e354be 100644 --- a/preston-serve/src/main/java/bio/guoda/preston/server/CmdRedirect.java +++ b/preston-serve/src/main/java/bio/guoda/preston/server/CmdRedirect.java @@ -1,7 +1,5 @@ package bio.guoda.preston.server; -import bio.guoda.preston.cmd.LoggingPersisting; -import org.apache.commons.lang3.StringUtils; import org.eclipse.jetty.server.Connector; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; @@ -32,16 +30,16 @@ public class CmdRedirect implements Runnable { String host = "localhost"; @CommandLine.Option( - names = {"-q", "--query-endpoint"}, - description = "host to listen on" + names = {"--registry"}, + description = "sparql endpoint to query provenance registry" ) - String sparqlEndpoint = "http://localhost:7878/query"; + String registry = "http://localhost:7878/query"; @CommandLine.Option( - names = {"-c", "--content-resolver"}, - description = "server to redirect content requests to" + names = {"--repository"}, + description = "endpoint to access content of known provenance" ) - String contentResolver = "https://linker.bio/"; + String repository = "https://linker.bio/"; @Override @@ -54,8 +52,8 @@ public void run() { ServletHandler servletHandler = new ServletHandler(); ServletHolder servletHolder = new ServletHolder(RedirectingServlet.class); Map properties = new TreeMap() {{ - put(PropertyNames.PRESTON_CONTENT_RESOLVER_ENDPONT, contentResolver); - put(PropertyNames.PRESTON_SPARQL_ENDPONT, sparqlEndpoint); + put(PropertyNames.PRESTON_CONTENT_RESOLVER_ENDPONT, repository); + put(PropertyNames.PRESTON_SPARQL_ENDPONT, registry); }}; servletHolder.setInitParameters(properties); diff --git a/preston-serve/src/main/java/bio/guoda/preston/server/RedirectingServlet.java b/preston-serve/src/main/java/bio/guoda/preston/server/RedirectingServlet.java index cf701451..5393d8ae 100644 --- a/preston-serve/src/main/java/bio/guoda/preston/server/RedirectingServlet.java +++ b/preston-serve/src/main/java/bio/guoda/preston/server/RedirectingServlet.java @@ -23,6 +23,7 @@ import java.net.URI; import java.net.URISyntaxException; import java.nio.charset.StandardCharsets; +import java.util.Arrays; import java.util.Map; import java.util.TreeMap; import java.util.regex.Pattern; @@ -93,11 +94,13 @@ protected void handleRequest(HttpServletResponse response, String resolverEndpoi response.setHeader(HttpHeaders.CONTENT_TYPE, MimeTypes.MIME_TYPE_DWCA); response.setHeader(HttpHeaders.ETAG, contentId); response.setHeader(HttpHeaders.CONTENT_LOCATION, provInfo.get(ARCHIVE_URL)); - response.setHeader(HttpHeaders.DATE, provInfo.get(SEEN_AT)); response.setHeader("X-UUID", provInfo.get(UUID)); response.setHeader("X-DOI", provInfo.get(DOI)); - response.setHeader("X-PROVENANCE-ANCHOR", provInfo.get(PROVENANCE_ID)); - response.setHeader("X-PROVENANCE-ACTIVITY", provInfo.get(ACTIVITY)); + response.setHeader("X-PROV", provInfo.get(PROVENANCE_ID)); + response.setHeader("X-PROV-wasInfluencedBy", StringUtils.join(Arrays.asList(provInfo.get(DOI), provInfo.get(UUID)), " , ")); + response.setHeader("X-PROV-wasGeneratedBy", provInfo.get(ACTIVITY)); + response.setHeader("X-PROV-generatedAtTime", provInfo.get(SEEN_AT)); + response.setHeader("X-PAV-hasVersion", provInfo.get(CONTENT_ID)); response.setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY); log("response [" + requestedIdIRI.getIRIString() + "]"); } else {