From c223802a3626eef14819aabd52ad60dbd2745388 Mon Sep 17 00:00:00 2001 From: William Welling Date: Wed, 7 Oct 2020 10:29:31 -0500 Subject: [PATCH] generate resource identifiers using UUID v3 from url --- .../edu/tamu/iiif/model/RedisResource.java | 23 ++----------- .../iiif/service/RedisResourceResolver.java | 3 +- .../tamu/iiif/model/RedisResourceTest.java | 33 +++---------------- 3 files changed, 10 insertions(+), 49 deletions(-) diff --git a/src/main/java/edu/tamu/iiif/model/RedisResource.java b/src/main/java/edu/tamu/iiif/model/RedisResource.java index c59bf90..e0fb930 100644 --- a/src/main/java/edu/tamu/iiif/model/RedisResource.java +++ b/src/main/java/edu/tamu/iiif/model/RedisResource.java @@ -8,39 +8,22 @@ public class RedisResource { @Id - private String id; + private final String id; @Indexed - private String url; - - public RedisResource() { - super(); - } - - public RedisResource(String url) { - this(); - this.url = url; - } + private final String url; public RedisResource(String id, String url) { - this(url); this.id = id; + this.url = url; } public String getId() { return id; } - public void setId(String id) { - this.id = id; - } - public String getUrl() { return url; } - public void setUrl(String url) { - this.url = url; - } - } diff --git a/src/main/java/edu/tamu/iiif/service/RedisResourceResolver.java b/src/main/java/edu/tamu/iiif/service/RedisResourceResolver.java index 181f050..adce46d 100644 --- a/src/main/java/edu/tamu/iiif/service/RedisResourceResolver.java +++ b/src/main/java/edu/tamu/iiif/service/RedisResourceResolver.java @@ -2,6 +2,7 @@ import java.net.URISyntaxException; import java.util.Optional; +import java.util.UUID; import org.apache.commons.validator.routines.UrlValidator; import org.springframework.beans.factory.annotation.Autowired; @@ -36,7 +37,7 @@ public String create(String url) throws URISyntaxException { if (!URL_VALIDATOR.isValid(url)) { throw new URISyntaxException(url, "Not a valid URL"); } - return redisResourceRepo.save(new RedisResource(url)).getId(); + return redisResourceRepo.save(new RedisResource(UUID.nameUUIDFromBytes(url.getBytes()).toString(), url)).getId(); } public String resolve(String id) throws NotFoundException { diff --git a/src/test/java/edu/tamu/iiif/model/RedisResourceTest.java b/src/test/java/edu/tamu/iiif/model/RedisResourceTest.java index 0daaf72..34547f4 100644 --- a/src/test/java/edu/tamu/iiif/model/RedisResourceTest.java +++ b/src/test/java/edu/tamu/iiif/model/RedisResourceTest.java @@ -11,36 +11,13 @@ public class RedisResourceTest { @Test - public void testCreateDefault() { - RedisResource redisResource = new RedisResource(); - Assert.assertNotNull(redisResource); - } - - @Test - public void testCreateWithUrl() { - RedisResource redisResource = new RedisResource("http://localhost:900/fcrepo/rest/image01"); - Assert.assertNotNull(redisResource); - Assert.assertEquals("http://localhost:900/fcrepo/rest/image01", redisResource.getUrl()); - } - - @Test - public void testCreateComplete() { - String id = UUID.randomUUID().toString(); - RedisResource redisResource = new RedisResource(id, "http://localhost:900/fcrepo/rest/image02"); - Assert.assertNotNull(redisResource); - Assert.assertEquals(id, redisResource.getId()); - Assert.assertEquals("http://localhost:900/fcrepo/rest/image02", redisResource.getUrl()); - } - - @Test - public void testUpdate() { - RedisResource redisResource = new RedisResource(UUID.randomUUID().toString(), "http://localhost:900/fcrepo/rest/image02"); - String id = UUID.randomUUID().toString(); - redisResource.setId(id); - redisResource.setUrl("http://localhost:900/fcrepo/rest/image03"); + public void testCreate() { + String url = "http://localhost:900/fcrepo/rest/image02"; + String id = UUID.nameUUIDFromBytes(url.getBytes()).toString(); + RedisResource redisResource = new RedisResource(id, url); Assert.assertNotNull(redisResource); Assert.assertEquals(id, redisResource.getId()); - Assert.assertEquals("http://localhost:900/fcrepo/rest/image03", redisResource.getUrl()); + Assert.assertEquals(url, redisResource.getUrl()); } }