From 992d1f701e781b55d0e3f3e1d528b35902a452ae Mon Sep 17 00:00:00 2001 From: Gabriel Einsdorf Date: Mon, 2 Jul 2018 10:21:06 +0200 Subject: [PATCH 1/3] Maven dependency cleanup: - bump parent pom version - switch to managed scijava-common version --- pom.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 4d867fc..125cc9f 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.scijava pom-scijava - 17.1.1 + 23.0.0 @@ -98,7 +98,6 @@ KNIME GmbH and Board of Regents of the University of Wisconsin-Madison. - 2.65.0 3.6.0 From 1b85929bb61443e17e4528d9ae8b42062e1f2001 Mon Sep 17 00:00:00 2001 From: Gabriel Einsdorf Date: Mon, 8 Jan 2018 10:56:18 +0100 Subject: [PATCH 2/3] Implement LocationResolver --- .../scijava/io/http/HTTPLocationResolver.java | 23 ++++++++++++ .../io/http/HTTPLocationResolverTest.java | 37 +++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 src/main/java/org/scijava/io/http/HTTPLocationResolver.java create mode 100644 src/test/java/org/scijava/io/http/HTTPLocationResolverTest.java diff --git a/src/main/java/org/scijava/io/http/HTTPLocationResolver.java b/src/main/java/org/scijava/io/http/HTTPLocationResolver.java new file mode 100644 index 0000000..b2b5873 --- /dev/null +++ b/src/main/java/org/scijava/io/http/HTTPLocationResolver.java @@ -0,0 +1,23 @@ + +package org.scijava.io.http; + +import java.net.URI; +import java.net.URISyntaxException; + +import org.scijava.io.location.AbstractLocationResolver; +import org.scijava.io.location.Location; +import org.scijava.io.location.LocationResolver; +import org.scijava.plugin.Plugin; + +@Plugin(type = LocationResolver.class) +public class HTTPLocationResolver extends AbstractLocationResolver { + + public HTTPLocationResolver() { + super("http", "https"); + } + + @Override + public Location resolve(URI uri) throws URISyntaxException { + return new HTTPLocation(uri); + } +} diff --git a/src/test/java/org/scijava/io/http/HTTPLocationResolverTest.java b/src/test/java/org/scijava/io/http/HTTPLocationResolverTest.java new file mode 100644 index 0000000..2db5f7a --- /dev/null +++ b/src/test/java/org/scijava/io/http/HTTPLocationResolverTest.java @@ -0,0 +1,37 @@ + +package org.scijava.io.http; + +import static org.junit.Assert.assertEquals; + +import java.io.IOException; +import java.net.URISyntaxException; + +import org.junit.Test; +import org.scijava.Context; +import org.scijava.io.handle.DataHandleService; +import org.scijava.io.location.Location; +import org.scijava.io.location.LocationService; + +public class HTTPLocationResolverTest { + + final Context context = new Context(); + final DataHandleService dataHandleService = context.service( + DataHandleService.class); + final LocationService resolver = context.service(LocationService.class); + + /** + * Tests the location creation with a file located on Github + * + * @throws URISyntaxException + */ + @Test + public void testDataHandleRemote() throws IOException, URISyntaxException { + + String url = + "https://github.com/scijava/scijava-io-http/blob/master/src/test/resources/testfile?raw=true"; + final Location loc = new HTTPLocation(url); + final Location locResolved = resolver.resolve(url); + + assertEquals(loc, locResolved); + } +} From abe30181b53cbbc3e7069ee7ce8d33a8c53a995f Mon Sep 17 00:00:00 2001 From: Gabriel Einsdorf Date: Tue, 17 Apr 2018 17:37:02 +0200 Subject: [PATCH 3/3] Implement getName() to ensure format detection works. --- src/main/java/org/scijava/io/http/HTTPLocation.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/java/org/scijava/io/http/HTTPLocation.java b/src/main/java/org/scijava/io/http/HTTPLocation.java index 60ce067..664ae64 100644 --- a/src/main/java/org/scijava/io/http/HTTPLocation.java +++ b/src/main/java/org/scijava/io/http/HTTPLocation.java @@ -34,6 +34,7 @@ import java.net.URI; import java.net.URISyntaxException; import java.net.URL; +import java.util.List; import java.util.Objects; import org.scijava.io.location.AbstractRemoteLocation; @@ -136,4 +137,13 @@ public HttpUrl getHttpUrl() { public URI getURI() { return url.uri(); } + + /** + * @return the last path element + */ + @Override + public String getName() { + final List segs = url.pathSegments(); + return segs.get(segs.size() - 1); + } }