diff --git a/dspace-api/src/main/java/org/dspace/app/canvasdimension/CanvasDimensionCLI.java b/dspace-api/src/main/java/org/dspace/iiif/canvasdimension/CanvasDimensionCLI.java
similarity index 71%
rename from dspace-api/src/main/java/org/dspace/app/canvasdimension/CanvasDimensionCLI.java
rename to dspace-api/src/main/java/org/dspace/iiif/canvasdimension/CanvasDimensionCLI.java
index 1ea5c2f26f..f827ae7ee9 100644
--- a/dspace-api/src/main/java/org/dspace/app/canvasdimension/CanvasDimensionCLI.java
+++ b/dspace-api/src/main/java/org/dspace/iiif/canvasdimension/CanvasDimensionCLI.java
@@ -5,7 +5,7 @@
*
* http://www.dspace.org/license/
*/
-package org.dspace.app.canvasdimension;
+package org.dspace.iiif.canvasdimension;
import java.util.Arrays;
import java.util.UUID;
@@ -17,18 +17,19 @@ import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.MissingArgumentException;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
-import org.dspace.app.canvasdimension.factory.IIIFCanvasDimensionServiceFactory;
-import org.dspace.app.canvasdimension.service.IIIFCanvasDimensionService;
import org.dspace.content.Collection;
import org.dspace.content.Community;
import org.dspace.content.DSpaceObject;
import org.dspace.content.Item;
+import org.dspace.content.factory.ContentServiceFactory;
import org.dspace.core.Constants;
import org.dspace.core.Context;
import org.dspace.eperson.EPerson;
import org.dspace.eperson.factory.EPersonServiceFactory;
import org.dspace.eperson.service.EPersonService;
import org.dspace.handle.factory.HandleServiceFactory;
+import org.dspace.iiif.canvasdimension.factory.IIIFCanvasDimensionServiceFactory;
+import org.dspace.iiif.canvasdimension.service.IIIFCanvasDimensionService;
import org.dspace.services.ConfigurationService;
import org.dspace.services.factory.DSpaceServicesFactory;
@@ -61,7 +62,9 @@ public class CanvasDimensionCLI {
int max2Process = Integer.MAX_VALUE;
String identifier = null;
+ String typeString = null;
String eperson = null;
+ int dsoType = -1;
Context context = new Context();
IIIFCanvasDimensionService canvasProcessor = IIIFCanvasDimensionServiceFactory.getInstance()
@@ -72,14 +75,18 @@ public class CanvasDimensionCLI {
Options options = new Options();
options.addOption("i", "identifier", true,
"process IIIF canvas dimensions for images belonging to this identifier");
+ options.addOption("t", "type", true,
+ "type: COMMUNITY, COLLECTION or ITEM\"");
options.addOption("e", "eperson", true,
"email of eperson setting the canvas dimensions");
options.addOption("f", "force", false,
"force update of all IIIF canvas height and width dimensions");
options.addOption("q", "quiet", false,
- "do not print anything except in the event of errors.");
+ "do not print anything except in the event of errors");
options.addOption("m", "maximum", true,
"process no more than maximum items");
+ options.addOption("h", "help", false,
+ "display help");
Option skipOption = Option.builder("s")
.longOpt("skip")
@@ -104,6 +111,17 @@ public class CanvasDimensionCLI {
System.exit(1);
}
+ if (line.hasOption('h')) {
+ HelpFormatter help = new HelpFormatter();
+ help.printHelp("CanvasDimension processor\n", options);
+ System.out
+ .println("\nUUID example: iiif-canvas-dimensions -e user@email.org " +
+ "-i 1086306d-8a51-43c3-98b9-c3b00f49105f -t COLLECTION");
+ System.out
+ .println("\nHandle example: iiif-canvas-dimensions -e user@email.org -i 123456/21");
+ System.exit(0);
+ }
+
if (line.hasOption('f')) {
force = true;
}
@@ -116,9 +134,29 @@ public class CanvasDimensionCLI {
if (line.hasOption('i')) {
identifier = line.getOptionValue('i');
} else {
+ HelpFormatter help = new HelpFormatter();
+ help.printHelp("CanvasDimension processor\n", options);
System.out.println("An identifier for a Community, Collection, or Item must be provided.");
System.exit(1);
}
+ if (line.hasOption('t')) {
+ typeString = line.getOptionValue('t');
+ if ("ITEM".equalsIgnoreCase(typeString)) {
+ dsoType = Constants.ITEM;
+ } else if ("COLLECTION".equals(typeString)) {
+ dsoType = Constants.COLLECTION;
+ } else if ("COMMUNITY".equalsIgnoreCase(typeString)) {
+ dsoType = Constants.COMMUNITY;
+ }
+ } else {
+ // If the identifier is a handle dsoType is not required.
+ if (identifier.indexOf('/') == -1) {
+ HelpFormatter help = new HelpFormatter();
+ help.printHelp("CanvasDimension processor\n", options);
+ System.out.println("A DSpace type must be provided: COMMUNITY, COLLECTION or ITEM.");
+ System.exit(1);
+ }
+ }
if (line.hasOption('m')) {
max2Process = Integer.parseInt(line.getOptionValue('m'));
if (max2Process <= 1) {
@@ -144,11 +182,20 @@ public class CanvasDimensionCLI {
canvasProcessor.setSkipList(Arrays.asList(skipIds));
}
+ DSpaceObject dso = null;
+ if (identifier.indexOf('/') != -1) {
+ dso = HandleServiceFactory.getInstance().getHandleService().resolveToObject(context, identifier);
+ } else if (dsoType == Constants.COMMUNITY) {
+ dso = ContentServiceFactory.getInstance().getCommunityService().find(context, UUID.fromString(identifier));
+ } else if (dsoType == Constants.COLLECTION) {
+ dso = ContentServiceFactory.getInstance().getCollectionService().find(context, UUID.fromString(identifier));
+ } else if (dsoType == Constants.ITEM) {
+ dso = ContentServiceFactory.getInstance().getItemService().find(context, UUID.fromString(identifier));
+ }
- DSpaceObject dso = HandleServiceFactory.getInstance().getHandleService().resolveToObject(context, identifier);
if (dso == null) {
throw new IllegalArgumentException("Cannot resolve "
- + identifier + " to a DSpace object");
+ + identifier + " to a DSpace object using type: " + typeString);
}
EPerson user;
@@ -189,10 +236,13 @@ public class CanvasDimensionCLI {
processed = 1;
break;
default:
+ System.out.println("Unsupported object type.");
break;
}
// commit changes
- context.commit();
+ if (processed >= 1) {
+ context.commit();
+ }
// Always print summary to standard out.
System.out.println(processed + " IIIF items were processed.");
diff --git a/dspace-api/src/main/java/org/dspace/app/canvasdimension/IIIFApiQueryServiceImpl.java b/dspace-api/src/main/java/org/dspace/iiif/canvasdimension/IIIFApiQueryServiceImpl.java
similarity index 88%
rename from dspace-api/src/main/java/org/dspace/app/canvasdimension/IIIFApiQueryServiceImpl.java
rename to dspace-api/src/main/java/org/dspace/iiif/canvasdimension/IIIFApiQueryServiceImpl.java
index 3eed9b83ab..dabf119326 100644
--- a/dspace-api/src/main/java/org/dspace/app/canvasdimension/IIIFApiQueryServiceImpl.java
+++ b/dspace-api/src/main/java/org/dspace/iiif/canvasdimension/IIIFApiQueryServiceImpl.java
@@ -5,9 +5,9 @@
*
* http://www.dspace.org/license/
*/
-package org.dspace.app.canvasdimension;
+package org.dspace.iiif.canvasdimension;
-import static org.dspace.app.canvasdimension.Util.checkDimensions;
+import static org.dspace.iiif.canvasdimension.Util.checkDimensions;
import java.io.BufferedReader;
import java.io.IOException;
@@ -18,10 +18,9 @@ import java.net.URL;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.logging.log4j.Logger;
-import org.dspace.app.canvasdimension.service.IIIFApiQueryService;
import org.dspace.content.Bitstream;
+import org.dspace.iiif.canvasdimension.service.IIIFApiQueryService;
import org.dspace.iiif.util.IIIFSharedUtils;
-import org.springframework.beans.factory.InitializingBean;
/**
@@ -30,15 +29,10 @@ import org.springframework.beans.factory.InitializingBean;
*
* @author Michael Spalti mspalti@willamette.edu
*/
-public class IIIFApiQueryServiceImpl implements IIIFApiQueryService, InitializingBean {
+public class IIIFApiQueryServiceImpl implements IIIFApiQueryService {
private static final Logger log = org.apache.logging.log4j.LogManager.getLogger(IIIFApiQueryServiceImpl.class);
- @Override
- public void afterPropertiesSet() throws Exception {
- // do nothing
- }
-
@Override
public int[] getImageDimensions(Bitstream bitstream) {
return getIiifImageDimensions(bitstream);
diff --git a/dspace-api/src/main/java/org/dspace/app/canvasdimension/IIIFCanvasDimensionServiceImpl.java b/dspace-api/src/main/java/org/dspace/iiif/canvasdimension/IIIFCanvasDimensionServiceImpl.java
similarity index 97%
rename from dspace-api/src/main/java/org/dspace/app/canvasdimension/IIIFCanvasDimensionServiceImpl.java
rename to dspace-api/src/main/java/org/dspace/iiif/canvasdimension/IIIFCanvasDimensionServiceImpl.java
index 8708f04f0d..99e0a6c6e1 100644
--- a/dspace-api/src/main/java/org/dspace/app/canvasdimension/IIIFCanvasDimensionServiceImpl.java
+++ b/dspace-api/src/main/java/org/dspace/iiif/canvasdimension/IIIFCanvasDimensionServiceImpl.java
@@ -5,7 +5,7 @@
*
* http://www.dspace.org/license/
*/
-package org.dspace.app.canvasdimension;
+package org.dspace.iiif.canvasdimension;
import static org.dspace.iiif.util.IIIFSharedUtils.METADATA_IIIF_HEIGHT;
import static org.dspace.iiif.util.IIIFSharedUtils.METADATA_IIIF_IMAGE;
@@ -19,8 +19,6 @@ import java.util.Iterator;
import java.util.List;
import java.util.Optional;
-import org.dspace.app.canvasdimension.service.IIIFApiQueryService;
-import org.dspace.app.canvasdimension.service.IIIFCanvasDimensionService;
import org.dspace.authorize.AuthorizeException;
import org.dspace.content.Bitstream;
import org.dspace.content.Bundle;
@@ -33,6 +31,8 @@ import org.dspace.content.service.CommunityService;
import org.dspace.content.service.DSpaceObjectService;
import org.dspace.content.service.ItemService;
import org.dspace.core.Context;
+import org.dspace.iiif.canvasdimension.service.IIIFApiQueryService;
+import org.dspace.iiif.canvasdimension.service.IIIFCanvasDimensionService;
import org.dspace.iiif.util.IIIFSharedUtils;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/dspace-api/src/main/java/org/dspace/app/canvasdimension/ImageDimensionReader.java b/dspace-api/src/main/java/org/dspace/iiif/canvasdimension/ImageDimensionReader.java
similarity index 92%
rename from dspace-api/src/main/java/org/dspace/app/canvasdimension/ImageDimensionReader.java
rename to dspace-api/src/main/java/org/dspace/iiif/canvasdimension/ImageDimensionReader.java
index 648d98528c..4e46c8b43f 100644
--- a/dspace-api/src/main/java/org/dspace/app/canvasdimension/ImageDimensionReader.java
+++ b/dspace-api/src/main/java/org/dspace/iiif/canvasdimension/ImageDimensionReader.java
@@ -5,9 +5,9 @@
*
* http://www.dspace.org/license/
*/
-package org.dspace.app.canvasdimension;
+package org.dspace.iiif.canvasdimension;
-import static org.dspace.app.canvasdimension.Util.checkDimensions;
+import static org.dspace.iiif.canvasdimension.Util.checkDimensions;
import java.awt.image.BufferedImage;
import java.io.IOException;
diff --git a/dspace-api/src/main/java/org/dspace/app/canvasdimension/Util.java b/dspace-api/src/main/java/org/dspace/iiif/canvasdimension/Util.java
similarity index 95%
rename from dspace-api/src/main/java/org/dspace/app/canvasdimension/Util.java
rename to dspace-api/src/main/java/org/dspace/iiif/canvasdimension/Util.java
index 3245ade1ca..630febfcbf 100644
--- a/dspace-api/src/main/java/org/dspace/app/canvasdimension/Util.java
+++ b/dspace-api/src/main/java/org/dspace/iiif/canvasdimension/Util.java
@@ -5,7 +5,7 @@
*
* http://www.dspace.org/license/
*/
-package org.dspace.app.canvasdimension;
+package org.dspace.iiif.canvasdimension;
/**
* Utilities for IIIF canvas dimension processing.
diff --git a/dspace-api/src/main/java/org/dspace/app/canvasdimension/factory/IIIFCanvasDimensionServiceFactory.java b/dspace-api/src/main/java/org/dspace/iiif/canvasdimension/factory/IIIFCanvasDimensionServiceFactory.java
similarity index 87%
rename from dspace-api/src/main/java/org/dspace/app/canvasdimension/factory/IIIFCanvasDimensionServiceFactory.java
rename to dspace-api/src/main/java/org/dspace/iiif/canvasdimension/factory/IIIFCanvasDimensionServiceFactory.java
index 75dad46c80..56e5cfee95 100644
--- a/dspace-api/src/main/java/org/dspace/app/canvasdimension/factory/IIIFCanvasDimensionServiceFactory.java
+++ b/dspace-api/src/main/java/org/dspace/iiif/canvasdimension/factory/IIIFCanvasDimensionServiceFactory.java
@@ -5,9 +5,9 @@
*
* http://www.dspace.org/license/
*/
-package org.dspace.app.canvasdimension.factory;
+package org.dspace.iiif.canvasdimension.factory;
-import org.dspace.app.canvasdimension.service.IIIFCanvasDimensionService;
+import org.dspace.iiif.canvasdimension.service.IIIFCanvasDimensionService;
import org.dspace.services.factory.DSpaceServicesFactory;
/**
diff --git a/dspace-api/src/main/java/org/dspace/app/canvasdimension/factory/IIIFCanvasDimensionServiceFactoryImpl.java b/dspace-api/src/main/java/org/dspace/iiif/canvasdimension/factory/IIIFCanvasDimensionServiceFactoryImpl.java
similarity index 85%
rename from dspace-api/src/main/java/org/dspace/app/canvasdimension/factory/IIIFCanvasDimensionServiceFactoryImpl.java
rename to dspace-api/src/main/java/org/dspace/iiif/canvasdimension/factory/IIIFCanvasDimensionServiceFactoryImpl.java
index abe44f540d..0ab17a29a4 100644
--- a/dspace-api/src/main/java/org/dspace/app/canvasdimension/factory/IIIFCanvasDimensionServiceFactoryImpl.java
+++ b/dspace-api/src/main/java/org/dspace/iiif/canvasdimension/factory/IIIFCanvasDimensionServiceFactoryImpl.java
@@ -5,9 +5,9 @@
*
* http://www.dspace.org/license/
*/
-package org.dspace.app.canvasdimension.factory;
+package org.dspace.iiif.canvasdimension.factory;
-import org.dspace.app.canvasdimension.service.IIIFCanvasDimensionService;
+import org.dspace.iiif.canvasdimension.service.IIIFCanvasDimensionService;
import org.springframework.beans.factory.annotation.Autowired;
/**
diff --git a/dspace-api/src/main/java/org/dspace/app/canvasdimension/service/IIIFApiQueryService.java b/dspace-api/src/main/java/org/dspace/iiif/canvasdimension/service/IIIFApiQueryService.java
similarity index 91%
rename from dspace-api/src/main/java/org/dspace/app/canvasdimension/service/IIIFApiQueryService.java
rename to dspace-api/src/main/java/org/dspace/iiif/canvasdimension/service/IIIFApiQueryService.java
index 86e9b91623..e2041fe7b8 100644
--- a/dspace-api/src/main/java/org/dspace/app/canvasdimension/service/IIIFApiQueryService.java
+++ b/dspace-api/src/main/java/org/dspace/iiif/canvasdimension/service/IIIFApiQueryService.java
@@ -5,7 +5,7 @@
*
* http://www.dspace.org/license/
*/
-package org.dspace.app.canvasdimension.service;
+package org.dspace.iiif.canvasdimension.service;
import org.dspace.content.Bitstream;
diff --git a/dspace-api/src/main/java/org/dspace/app/canvasdimension/service/IIIFCanvasDimensionService.java b/dspace-api/src/main/java/org/dspace/iiif/canvasdimension/service/IIIFCanvasDimensionService.java
similarity index 97%
rename from dspace-api/src/main/java/org/dspace/app/canvasdimension/service/IIIFCanvasDimensionService.java
rename to dspace-api/src/main/java/org/dspace/iiif/canvasdimension/service/IIIFCanvasDimensionService.java
index ba3840b20b..7e49e4ada7 100644
--- a/dspace-api/src/main/java/org/dspace/app/canvasdimension/service/IIIFCanvasDimensionService.java
+++ b/dspace-api/src/main/java/org/dspace/iiif/canvasdimension/service/IIIFCanvasDimensionService.java
@@ -5,7 +5,7 @@
*
* http://www.dspace.org/license/
*/
-package org.dspace.app.canvasdimension.service;
+package org.dspace.iiif.canvasdimension.service;
import java.util.List;
diff --git a/dspace-api/src/test/java/org/dspace/app/canvasdimension/CanvasDimensionsIT.java b/dspace-api/src/test/java/org/dspace/app/canvasdimension/CanvasDimensionsIT.java
index 7d5bc48e91..b44dca9d79 100644
--- a/dspace-api/src/test/java/org/dspace/app/canvasdimension/CanvasDimensionsIT.java
+++ b/dspace-api/src/test/java/org/dspace/app/canvasdimension/CanvasDimensionsIT.java
@@ -97,7 +97,7 @@ public class CanvasDimensionsIT extends AbstractIntegrationTestWithDatabase {
context.restoreAuthSystemState();
String handle = iiifItem.getHandle();
- execCanvasScript(handle);
+ execCanvasScriptHandle(handle);
// The test image is small so the canvas dimension should be doubled, e.g. height 200 -> height 400
assertTrue(bitstream.getMetadata().stream()
.filter(m -> m.getMetadataField().toString('.').contentEquals(METADATA_IIIF_HEIGHT))
@@ -127,8 +127,8 @@ public class CanvasDimensionsIT extends AbstractIntegrationTestWithDatabase {
.build();
context.restoreAuthSystemState();
- String handle = col1.getHandle();
- execCanvasScript(handle);
+ String id = col1.getID().toString();
+ execCanvasScript(id, "COLLECTION");
// The test image is small so the canvas dimension should be doubled, e.g. height 200 -> height 400
assertTrue(bitstream.getMetadata().stream()
.filter(m -> m.getMetadataField().toString('.').contentEquals(METADATA_IIIF_HEIGHT))
@@ -158,8 +158,9 @@ public class CanvasDimensionsIT extends AbstractIntegrationTestWithDatabase {
.build();
context.restoreAuthSystemState();
- String handle = child1.getHandle();
- execCanvasScript(handle);
+ String id = child1.getID().toString();
+ execCanvasScript(id, "COMMUNITY");
+
// The test image is small so the canvas dimension should be doubled, e.g. height 200 -> height 400
assertTrue(bitstream.getMetadata().stream()
.filter(m -> m.getMetadataField().toString('.').contentEquals(METADATA_IIIF_HEIGHT))
@@ -190,7 +191,7 @@ public class CanvasDimensionsIT extends AbstractIntegrationTestWithDatabase {
context.restoreAuthSystemState();
String handle = parentCommunity.getHandle();
- execCanvasScript(handle);
+ execCanvasScriptHandle(handle);
// The test image is small so the canvas dimension should be doubled, e.g. height 200 -> height 400
assertTrue(bitstream.getMetadata().stream()
.filter(m -> m.getMetadataField().toString('.').contentEquals(METADATA_IIIF_HEIGHT))
@@ -233,8 +234,9 @@ public class CanvasDimensionsIT extends AbstractIntegrationTestWithDatabase {
context.restoreAuthSystemState();
- String handle = parentCommunity.getHandle();
- execCanvasScript(handle);
+ String id = parentCommunity.getID().toString();
+ execCanvasScript(id, "COMMUNITY");
+
// All bitstreams should be updated with canvas metadata.
assertTrue(bitstream.getMetadata().stream()
.filter(m -> m.getMetadataField().toString('.').contentEquals(METADATA_IIIF_HEIGHT))
@@ -272,8 +274,43 @@ public class CanvasDimensionsIT extends AbstractIntegrationTestWithDatabase {
.build();
context.restoreAuthSystemState();
- String handle = iiifItem.getHandle();
- execCanvasScriptForceOption(handle);
+ String id = iiifItem.getID().toString();
+ execCanvasScriptForceOption(id, "ITEM");
+
+ // The existing metadata should be updated
+ assertTrue(bitstream.getMetadata().stream()
+ .filter(m -> m.getMetadataField().toString('.').contentEquals(METADATA_IIIF_HEIGHT))
+ .anyMatch(m -> m.getValue().contentEquals("400")));
+ assertTrue(bitstream.getMetadata().stream()
+ .filter(m -> m.getMetadataField().toString('.').contentEquals(METADATA_IIIF_WIDTH))
+ .anyMatch(m -> m.getValue().contentEquals("600")));
+
+ }
+
+ @Test
+ public void processCollectionWithForce() throws Exception {
+ context.turnOffAuthorisationSystem();
+ // Create a new Item
+ iiifItem = ItemBuilder.createItem(context, col1)
+ .withTitle("Test Item")
+ .withIssueDate("2017-10-17")
+ .enableIIIF()
+ .build();
+
+ // Add jpeg image bitstream (300 x 200)
+ InputStream input = this.getClass().getResourceAsStream("cat.jpg");
+ bitstream = BitstreamBuilder
+ .createBitstream(context, iiifItem, input)
+ .withName("Bitstream2.jpg")
+ .withMimeType("image/jpeg")
+ .withIIIFCanvasWidth(100)
+ .withIIIFCanvasHeight(100)
+ .build();
+ context.restoreAuthSystemState();
+
+ String id = col1.getID().toString();
+ execCanvasScriptForceOption(id, "COLLECTION");
+
// The existing metadata should be updated
assertTrue(bitstream.getMetadata().stream()
.filter(m -> m.getMetadataField().toString('.').contentEquals(METADATA_IIIF_HEIGHT))
@@ -306,7 +343,7 @@ public class CanvasDimensionsIT extends AbstractIntegrationTestWithDatabase {
context.restoreAuthSystemState();
String handle = iiifItem.getHandle();
- execCanvasScript(handle);
+ execCanvasScriptHandle(handle);
// The existing canvas metadata should be unchanged
assertTrue(bitstream.getMetadata().stream()
.filter(m -> m.getMetadataField().toString('.').contentEquals(METADATA_IIIF_HEIGHT))
@@ -367,9 +404,9 @@ public class CanvasDimensionsIT extends AbstractIntegrationTestWithDatabase {
context.restoreAuthSystemState();
- String handle = parentCommunity.getHandle();
+ String id = parentCommunity.getID().toString();
- execCanvasScriptWithMaxRecs(handle);
+ execCanvasScriptWithMaxRecs(id, "COMMUNITY");
// check System.out for number of items processed.
assertEquals("2 IIIF items were processed.\n", outContent.toString());
}
@@ -426,9 +463,9 @@ public class CanvasDimensionsIT extends AbstractIntegrationTestWithDatabase {
context.restoreAuthSystemState();
- String handle = parentCommunity.getHandle();
+ String id = parentCommunity.getID().toString();
- execCanvasScriptWithSkipList(handle, col2.getHandle() + "," + col3.getHandle());
+ execCanvasScriptWithSkipList(id, "COMMUNITY", col2.getHandle() + "," + col3.getHandle());
// The test image is small so the canvas dimension should be doubled, e.g. height 200 -> height 400
assertTrue(bitstream.getMetadata().stream()
.filter(m -> m.getMetadataField().toString('.').contentEquals(METADATA_IIIF_HEIGHT))
@@ -489,9 +526,9 @@ public class CanvasDimensionsIT extends AbstractIntegrationTestWithDatabase {
context.restoreAuthSystemState();
- String handle = parentCommunity.getHandle();
+ String id = parentCommunity.getID().toString();
- execCanvasScriptWithSkipList(handle, col2.getHandle());
+ execCanvasScriptWithSkipList(id, "COMMUNITY", col2.getHandle());
// The test image is small so the canvas dimension should be doubled, e.g. height 200 -> height 400
assertTrue(bitstream.getMetadata().stream()
.filter(m -> m.getMetadataField().toString('.').contentEquals(METADATA_IIIF_HEIGHT))
@@ -509,21 +546,26 @@ public class CanvasDimensionsIT extends AbstractIntegrationTestWithDatabase {
}
- private void execCanvasScript(String handle) throws Exception {
- runDSpaceScript("canvas-dimensions", "-e", "admin@email.com", "-i", handle);
+ private void execCanvasScriptHandle(String handle) throws Exception {
+ runDSpaceScript("iiif-canvas-dimensions", "-e", "admin@email.com", "-i", handle);
}
- private void execCanvasScriptForceOption(String handle) throws Exception {
- runDSpaceScript("canvas-dimensions", "-e", "admin@email.com", "-i", handle, "-f");
+ private void execCanvasScript(String id, String type) throws Exception {
+ runDSpaceScript("iiif-canvas-dimensions", "-e", "admin@email.com", "-i", id, "-t", type);
}
- private void execCanvasScriptWithMaxRecs(String handle) throws Exception {
+ private void execCanvasScriptForceOption(String id, String type) throws Exception {
+ runDSpaceScript("iiif-canvas-dimensions", "-e", "admin@email.com", "-i", id, "-f", "-t", type);
+ }
+
+ private void execCanvasScriptWithMaxRecs(String id, String type) throws Exception {
// maximum 2
- runDSpaceScript("canvas-dimensions", "-e", "admin@email.com", "-i", handle, "-m", "2", "-f", "-q");
+ runDSpaceScript("iiif-canvas-dimensions", "-e", "admin@email.com", "-i",
+ id, "-t", type, "-m", "2", "-f", "-q");
}
- private void execCanvasScriptWithSkipList(String handle, String skip) throws Exception {
- runDSpaceScript("canvas-dimensions", "-e", "admin@email.com", "-i", handle, "-s", skip, "-f");
+ private void execCanvasScriptWithSkipList(String id, String type, String skip) throws Exception {
+ runDSpaceScript("iiif-canvas-dimensions", "-e", "admin@email.com", "-i", id, "-t", type, "-s", skip, "-f");
}
}
diff --git a/dspace/config/launcher.xml b/dspace/config/launcher.xml
index 7e26e6a3af..c62d9c7980 100644
--- a/dspace/config/launcher.xml
+++ b/dspace/config/launcher.xml
@@ -367,10 +367,10 @@
- canvas-dimensions
- Add canvas width and height metadata for IIIF enabled items.
+ iiif-canvas-dimensions
+ Automatically add the IIIF canvas width/height metadata to Bitstreams of IIIF enabled Items.
- org.dspace.app.canvasdimension.CanvasDimensionCLI
+ org.dspace.iiif.canvasdimension.CanvasDimensionCLI
diff --git a/dspace/config/spring/api/iiif-processing.xml b/dspace/config/spring/api/iiif-processing.xml
index bfe06de26e..17fbcaa836 100644
--- a/dspace/config/spring/api/iiif-processing.xml
+++ b/dspace/config/spring/api/iiif-processing.xml
@@ -3,8 +3,8 @@
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"
default-lazy-init="true">
-
-
-
+
+
+