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"> - - - + + +