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