From: Michael Ritter Date: Tue, 22 Jul 2025 17:10:43 +0000 (-0600) Subject: DRYD-1829: Remove flickr urls from tests (#473) X-Git-Url: https://git.aero2k.de/?a=commitdiff_plain;h=583ab3d6399300daa5c03ab4ad088a1fd5bc7f5b;p=tmp%2Fjakarta-migration.git DRYD-1829: Remove flickr urls from tests (#473) * Add maven-failsafe-plugin * Add jetty-maven-plugin to serve static files * Add maven-remote-resources-plugin * Create StaticImage enum for tests * Rename *Test classes to *IT * Remove flickr from Blob/Media tests --- diff --git a/pom.xml b/pom.xml index 8d5b5421a..059383ac3 100644 --- a/pom.xml +++ b/pom.xml @@ -318,6 +318,63 @@ + + + + org.eclipse.jetty + jetty-maven-plugin + 9.4.57.v20241219 + + + start-jetty + pre-integration-test + + start + + + ${skipTests} + + + + stop-jetty + post-integration-test + + stop + + + + + + + org.apache.maven.plugins + maven-failsafe-plugin + 3.5.3 + + + integration-test + + integration-test + + + + verify + + verify + + + + + + **/*IT.class + + + + + + org.apache.maven.plugins + maven-remote-resources-plugin + 3.3.0 + diff --git a/services/blob/blob-test-utils/pom.xml b/services/blob/blob-test-utils/pom.xml new file mode 100644 index 000000000..87d3b79e0 --- /dev/null +++ b/services/blob/blob-test-utils/pom.xml @@ -0,0 +1,39 @@ + + + 4.0.0 + + + org.collectionspace.services + org.collectionspace.services.blob + ${revision} + + + org.collectionspace.services.blob + blob-test-utils + services.blob.blob-test-utils + jar + + + + + org.apache.maven.plugins + maven-remote-resources-plugin + + + + bundle + + + + + + **/*.jpg + + + + + + + diff --git a/services/blob/blob-test-utils/src/main/java/org/collectionspace/serivces/blob/StaticImage.java b/services/blob/blob-test-utils/src/main/java/org/collectionspace/serivces/blob/StaticImage.java new file mode 100644 index 000000000..a73d9df34 --- /dev/null +++ b/services/blob/blob-test-utils/src/main/java/org/collectionspace/serivces/blob/StaticImage.java @@ -0,0 +1,28 @@ +package org.collectionspace.serivces.blob; + +/** + * Static images which are served by an embedded jetty server. These are the images found under src/main/resources and + * it's expected that they're served on /static in jetty, e.g. /static/bird.jpg + * + * @since 8.3.0 + */ +public enum StaticImage { + BIRD("bird.jpg"), + DECK("deck.jpg"); + + private final String path; + + StaticImage(final String path) { + this.path = path; + } + + public String getUrl() { + final String port = System.getProperty("jetty.port"); + if (port == null) { + throw new RuntimeException("jetty.port property is not set; check your maven plugin configuration"); + } + + return "http://localhost:" + port + "/static/" + path; + } + +} diff --git a/services/blob/blob-test-utils/src/main/resources/bird.jpg b/services/blob/blob-test-utils/src/main/resources/bird.jpg new file mode 100644 index 000000000..6a744c90f Binary files /dev/null and b/services/blob/blob-test-utils/src/main/resources/bird.jpg differ diff --git a/services/blob/blob-test-utils/src/main/resources/deck.jpg b/services/blob/blob-test-utils/src/main/resources/deck.jpg new file mode 100644 index 000000000..23f43dd24 Binary files /dev/null and b/services/blob/blob-test-utils/src/main/resources/deck.jpg differ diff --git a/services/blob/client/pom.xml b/services/blob/client/pom.xml index aba3397d7..9e004c39c 100644 --- a/services/blob/client/pom.xml +++ b/services/blob/client/pom.xml @@ -1,84 +1,141 @@ - - org.collectionspace.services - org.collectionspace.services.blob - ${revision} - + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + + org.collectionspace.services + org.collectionspace.services.blob + ${revision} + - 4.0.0 - org.collectionspace.services.blob.client - services.blob.client + 4.0.0 + org.collectionspace.services.blob.client + services.blob.client - - - org.nuxeo.ecm.core - nuxeo-core-storage-sql-management - ${nuxeo.general.release} - - - org.slf4j - slf4j-log4j12 - - - + + + + org.collectionspace.services + org.collectionspace.services.jaxb + ${project.version} + + + org.collectionspace.services + org.collectionspace.services.client + ${project.version} + + + org.collectionspace.services + org.collectionspace.services.person.client + ${project.version} + test + + + org.collectionspace.services.blob + blob-test-utils + ${project.version} + test + + + + org.jboss.resteasy + resteasy-multipart-provider + - - - org.collectionspace.services - org.collectionspace.services.authority.jaxb - true - ${project.version} - - - org.collectionspace.services - org.collectionspace.services.jaxb - ${project.version} - - - - org.collectionspace.services - org.collectionspace.services.client - ${project.version} - - - org.collectionspace.services - org.collectionspace.services.person.client - ${project.version} - - - - org.testng - testng - - - org.jboss.resteasy - resteasy-jaxrs - - - org.jboss.resteasy - resteasy-jaxb-provider - - - org.jboss.resteasy - resteasy-multipart-provider - - - commons-httpclient - commons-httpclient - - + + org.testng + testng + test + + - - collectionspace-services-blob-client - + + collectionspace-services-blob-client + + + org.apache.maven.plugins + maven-remote-resources-plugin + + + org.collectionspace.services.blob:blob-test-utils:${project.version} + + + + + + process + + + + + + + org.codehaus.mojo + build-helper-maven-plugin + 3.6.0 + + + jetty.port + jetty.stop.port + + + + + + + + + + reserve-port + test-compile + + reserve-network-port + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.5.3 + + + **/*IT.class + + + + + + org.eclipse.jetty + jetty-maven-plugin + + + ${jetty.port} + + quit + ${jetty.stop.port} + 10 + + + /static + ${project.build.directory}/maven-shared-archive-resources + + + + jar + + + + + org.apache.maven.plugins + maven-failsafe-plugin + + + ${jetty.port} + + + + + diff --git a/services/blob/client/src/test/java/org/collectionspace/services/client/test/BlobScaleTest.java b/services/blob/client/src/test/java/org/collectionspace/services/client/test/BlobScaleIT.java similarity index 78% rename from services/blob/client/src/test/java/org/collectionspace/services/client/test/BlobScaleTest.java rename to services/blob/client/src/test/java/org/collectionspace/services/client/test/BlobScaleIT.java index 2742c23c6..a1ddfe696 100644 --- a/services/blob/client/src/test/java/org/collectionspace/services/client/test/BlobScaleTest.java +++ b/services/blob/client/src/test/java/org/collectionspace/services/client/test/BlobScaleIT.java @@ -6,8 +6,6 @@ import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URL; import java.util.ArrayList; import java.util.List; import java.util.Random; @@ -15,6 +13,7 @@ import java.util.Random; import javax.imageio.ImageIO; import javax.ws.rs.core.Response; +import org.collectionspace.serivces.blob.StaticImage; import org.collectionspace.services.client.BlobClient; import org.collectionspace.services.client.CollectionSpaceClient; import org.collectionspace.services.client.Profiler; @@ -24,9 +23,9 @@ import org.slf4j.LoggerFactory; import org.testng.annotations.Test; @SuppressWarnings("rawtypes") -public class BlobScaleTest extends BaseServiceTest { +public class BlobScaleIT extends BaseServiceTest { - private final Logger logger = LoggerFactory.getLogger(BlobScaleTest.class); + private final Logger logger = LoggerFactory.getLogger(BlobScaleIT.class); private static final int IMAGE_SIZE = 1000; private static final int IMAGE_EDGE = -15; @@ -34,7 +33,6 @@ public class BlobScaleTest extends BaseServiceTest { private static final int MAX_FONTSIZE = 60; private static final String IMAGES_TO_CREATE_PROP = "imagesToCreate"; private static final int DEFAULT_IMAGES_TO_CREATE = 3; // Override this value by setting a system property named 'imagesToCreate' -i.e., mvn test -DimagesToCreate=30 - private static final int DEFAULT_IMAGES_TO_GET = DEFAULT_IMAGES_TO_CREATE; private static final String GENERATED_IMAGES = "target/generated_images"; private List allGeneratedImages = new ArrayList(); @@ -71,9 +69,7 @@ public class BlobScaleTest extends BaseServiceTest { + IMAGES_TO_CREATE_PROP + "' was defined, so we'll use the default instead."); } finally { - logger.info("Testing blob scaling by creating " - + result - + " images."); + logger.info("Testing blob scaling by creating {} images.", result); } return result; @@ -89,14 +85,14 @@ public class BlobScaleTest extends BaseServiceTest { Thread.sleep(3000); // sleep for 3 seconds for (int i = 0; i < allGeneratedImages.size(); i++) { - Response res = client.getDerivativeContent(allGeneratedImages.get(i), "Thumbnail"); - try { - assertStatusCode(res, testName); - logger.debug(String.format("Performed GET operation on Thumbnail derivative of image blob ID = '%s'.", - allGeneratedImages.get(i))); - } finally { - res.close(); - } + Response res = client.getDerivativeContent(allGeneratedImages.get(i), "Thumbnail"); + try { + assertStatusCode(res, testName); + logger.debug("Performed GET operation on Thumbnail derivative of image blob ID = '{}'.", + allGeneratedImages.get(i)); + } finally { + res.close(); + } } } @@ -110,21 +106,15 @@ public class BlobScaleTest extends BaseServiceTest { for (int i = 0; i < imagesToCreate; i++, profiler.reset()) { File jpegFile = createJpeg(GENERATED_IMAGES); - URL url = jpegFile.toURI().toURL(); - profiler.start(); - Response res = client.createBlobFromURI("https://farm6.static.flickr.com/5289/5688023100_15e00cde47_o.jpg");//url.toString()); + profiler.start(); + Response res = client.createBlobFromURI(StaticImage.BIRD.getUrl()); try { profiler.stop(); assertStatusCode(res, testName); - logger.debug( - i + ": Uploaded image to Nuxeo in " - + profiler.getCumulativeTime() - + " milleseconds " - + " - " - + " : " - + jpegFile.getAbsolutePath()); + logger.debug("{}: Uploaded image to Nuxeo in {} milleseconds - : {}", i, profiler.getCumulativeTime(), + jpegFile.getAbsolutePath()); String csid = extractId(res); this.knownResourceId = csid; @@ -138,14 +128,12 @@ public class BlobScaleTest extends BaseServiceTest { } } - private void createDirectory(String dirName) { - boolean success = ( - new File(dirName)).mkdir(); - if (success) { - logger.debug("Directory: " - + dirName + " created"); - } - } + private void createDirectory(String dirName) { + boolean success = (new File(dirName)).mkdir(); + if (success) { + logger.debug("Directory: {} created", dirName); + } + } public File createJpeg(String destDir) { File result = null; diff --git a/services/blob/client/src/test/java/org/collectionspace/services/client/test/BlobServiceTest.java b/services/blob/client/src/test/java/org/collectionspace/services/client/test/BlobServiceIT.java similarity index 76% rename from services/blob/client/src/test/java/org/collectionspace/services/client/test/BlobServiceTest.java rename to services/blob/client/src/test/java/org/collectionspace/services/client/test/BlobServiceIT.java index 52fce8a54..c47448d20 100644 --- a/services/blob/client/src/test/java/org/collectionspace/services/client/test/BlobServiceTest.java +++ b/services/blob/client/src/test/java/org/collectionspace/services/client/test/BlobServiceIT.java @@ -30,6 +30,7 @@ import java.util.List; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; +import org.collectionspace.serivces.blob.StaticImage; import org.collectionspace.services.client.CollectionSpaceClient; import org.collectionspace.services.client.BlobClient; import org.collectionspace.services.client.PayloadOutputPart; @@ -51,22 +52,17 @@ import org.jboss.resteasy.plugins.providers.multipart.OutputPart; * $LastChangedDate: $ */ @SuppressWarnings("rawtypes") -public class BlobServiceTest extends AbstractPoxServiceTestImpl { +public class BlobServiceIT extends AbstractPoxServiceTestImpl { - private final String CLASS_NAME = BlobServiceTest.class.getName(); - private final Logger logger = LoggerFactory.getLogger(CLASS_NAME); + private final Logger logger = LoggerFactory.getLogger(BlobServiceIT.class); private final static String KNOWN_IMAGE_FILENAME = "01-03-09_1546.jpg"; private final static int WIDTH_DIMENSION_INDEX = 0; private final static int HEIGHT_DIMENSION_INDEX = 1; - private final static String KNOWN_IMAGE_SIZE = "56261"; - private final static BigDecimal KNOWN_IMAGE_WIDTH = new BigDecimal(640.0); - private final static BigDecimal KNOWN_IMAGE_HEIGHT = new BigDecimal(480.0); - - private final static String PUBLIC_URL_BIRD = "https://farm6.static.flickr.com/5289/5688023100_15e00cde47_o.jpg"; - private final static String PUBLIC_URL_DECK = "https://farm8.staticflickr.com/7231/6962564226_4bdfc17599_k_d.jpg"; - + private static final String KNOWN_IMAGE_SIZE = "56261"; + private static final BigDecimal KNOWN_IMAGE_WIDTH = new BigDecimal("640.0"); + private static final BigDecimal KNOWN_IMAGE_HEIGHT = new BigDecimal("480.0"); private boolean blobCleanup = true; @@ -131,44 +127,44 @@ public class BlobServiceTest extends AbstractPoxServiceTestImpl 0) { - for (File child : children) { - if (isBlobbable(child) == true) { - Response res = null; - String mimeType = this.getMimeType(child); - logger.debug("Processing file URI: " + child.getAbsolutePath()); - logger.debug("MIME type is: " + mimeType); - if (fromUri == true) { - if (uri != null) { - res = client.createBlobFromURI(uri); - //break; - } else { - URL childUrl = child.toURI().toURL(); - res = client.createBlobFromURI(childUrl.toString()); - } - } else { - MultipartFormDataOutput form = new MultipartFormDataOutput(); - OutputPart outputPart = form.addFormData("file", child, MediaType.valueOf(mimeType)); - res = client.createBlobFromFormData(form); - } - try { - assertStatusCode(res, testName); - if (isBlobCleanup() == true) { - allResourceIdsCreated.add(extractId(res)); - } - } finally { - if (res != null) { - res.close(); - } - } - } - } - } else { - logger.debug("Directory: " + blobsDirPath + " is empty or cannot be read."); - } + File[] children = blobsDir.listFiles(); + if (children != null && children.length > 0) { + for (File child : children) { + if (isBlobbable(child)) { + Response res = null; + String mimeType = this.getMimeType(child); + logger.debug("Processing file URI: {}", child.getAbsolutePath()); + logger.debug("MIME type is: {}", mimeType); + if (fromUri) { + if (uri != null) { + res = client.createBlobFromURI(uri); + // break; + } else { + URL childUrl = child.toURI().toURL(); + res = client.createBlobFromURI(childUrl.toString()); + } + } else { + MultipartFormDataOutput form = new MultipartFormDataOutput(); + OutputPart outputPart = form.addFormData("file", child, MediaType.valueOf(mimeType)); + res = client.createBlobFromFormData(form); + } + try { + assertStatusCode(res, testName); + if (isBlobCleanup()) { + allResourceIdsCreated.add(extractId(res)); + } + } finally { + if (res != null) { + res.close(); + } + } + } + } + } else { + logger.debug("Directory: {} is empty or cannot be read.", blobsDirPath); + } } else { - logger.debug("Directory: " + blobsDirPath + " is missing or cannot be read."); + logger.debug("Directory: {} is missing or cannot be read.", blobsDirPath); } } @@ -189,17 +185,17 @@ public class BlobServiceTest extends AbstractPoxServiceTestImplhttp://www.collectionspace.org + blob-test-utils client 3rdparty service diff --git a/services/blob/service/src/test/java/org/collectionspace/services/test/BlobServiceTest.java b/services/blob/service/src/test/java/org/collectionspace/services/test/BlobServiceTest.java deleted file mode 100644 index 50eb4b713..000000000 --- a/services/blob/service/src/test/java/org/collectionspace/services/test/BlobServiceTest.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.collectionspace.services.test; - -//import org.collectionspace.services.blob.Blob; -//import org.collectionspace.services.blob.BlobList; - -/** - * Placeholder for server-side testing of Loan Out service code. - * - * @version $Revision: 2108 $ - */ -public class BlobServiceTest { - //empty -} diff --git a/services/media/client/pom.xml b/services/media/client/pom.xml index 638fd7043..14c06f01b 100644 --- a/services/media/client/pom.xml +++ b/services/media/client/pom.xml @@ -50,6 +50,12 @@ org.collectionspace.services.person.client ${project.version} + + org.collectionspace.services.blob + blob-test-utils + ${project.version} + test + org.testng @@ -74,6 +80,93 @@ - collectionspace-services-media-client + collectionspace-services-media-client + + + + org.apache.maven.plugins + maven-remote-resources-plugin + + + org.collectionspace.services.blob:blob-test-utils:${project.version} + + + + + + process + + + + + + + org.codehaus.mojo + build-helper-maven-plugin + 3.6.0 + + + jetty.port + jetty.stop.port + + + + + + + + + + reserve-port + test-compile + + reserve-network-port + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.5.3 + + + **/*IT.class + + + + + + org.eclipse.jetty + jetty-maven-plugin + + + ${jetty.port} + + quit + ${jetty.stop.port} + 10 + + + /static + ${project.build.directory}/maven-shared-archive-resources + + + + jar + + + + + org.apache.maven.plugins + maven-failsafe-plugin + + + ${jetty.port} + + + + diff --git a/services/media/client/src/test/java/org/collectionspace/services/client/test/MediaServiceTest.java b/services/media/client/src/test/java/org/collectionspace/services/client/test/MediaServiceIT.java similarity index 96% rename from services/media/client/src/test/java/org/collectionspace/services/client/test/MediaServiceTest.java rename to services/media/client/src/test/java/org/collectionspace/services/client/test/MediaServiceIT.java index fef0017cc..245b6d403 100644 --- a/services/media/client/src/test/java/org/collectionspace/services/client/test/MediaServiceTest.java +++ b/services/media/client/src/test/java/org/collectionspace/services/client/test/MediaServiceIT.java @@ -29,6 +29,7 @@ import java.util.List; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; +import org.collectionspace.serivces.blob.StaticImage; import org.collectionspace.services.client.CollectionSpaceClient; import org.collectionspace.services.client.MediaClient; import org.collectionspace.services.client.PayloadOutputPart; @@ -49,11 +50,9 @@ import org.slf4j.LoggerFactory; * $LastChangedRevision: $ * $LastChangedDate: $ */ -public class MediaServiceTest extends AbstractPoxServiceTestImpl { +public class MediaServiceIT extends AbstractPoxServiceTestImpl { - private final String CLASS_NAME = MediaServiceTest.class.getName(); - private final Logger logger = LoggerFactory.getLogger(MediaServiceTest.class); - private final static String PUBLIC_URL_DECK = "https://farm8.staticflickr.com/7231/6962564226_4bdfc17599_k_d.jpg"; + private final Logger logger = LoggerFactory.getLogger(MediaServiceIT.class); private boolean mediaCleanup = true; @@ -77,7 +76,7 @@ public class MediaServiceTest extends AbstractPoxServiceTestImplorg.collectionspace.services.restrictedmedia.jaxb ${project.version} + + org.collectionspace.services + org.collectionspace.services.person.client + ${project.version} + test + + + org.collectionspace.services.blob + blob-test-utils + ${project.version} + test + @@ -66,5 +78,92 @@ collectionspace-services-restrictedmedia-client + + + + org.apache.maven.plugins + maven-remote-resources-plugin + + + org.collectionspace.services.blob:blob-test-utils:${project.version} + + + + + + process + + + + + + + org.codehaus.mojo + build-helper-maven-plugin + 3.6.0 + + + jetty.port + jetty.stop.port + + + + + + + + + + reserve-port + test-compile + + reserve-network-port + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.5.3 + + + **/*IT.class + + + + + + org.eclipse.jetty + jetty-maven-plugin + + + ${jetty.port} + + quit + ${jetty.stop.port} + 10 + + + /static + ${project.build.directory}/maven-shared-archive-resources + + + + jar + + + + + org.apache.maven.plugins + maven-failsafe-plugin + + + ${jetty.port} + + + + - \ No newline at end of file + diff --git a/services/restrictedmedia/client/src/test/java/org/collectionspace/services/client/test/RestrictedMediaServiceTest.java b/services/restrictedmedia/client/src/test/java/org/collectionspace/services/client/test/RestrictedMediaServiceIT.java similarity index 97% rename from services/restrictedmedia/client/src/test/java/org/collectionspace/services/client/test/RestrictedMediaServiceTest.java rename to services/restrictedmedia/client/src/test/java/org/collectionspace/services/client/test/RestrictedMediaServiceIT.java index 46892ce55..a1e9c949b 100644 --- a/services/restrictedmedia/client/src/test/java/org/collectionspace/services/client/test/RestrictedMediaServiceTest.java +++ b/services/restrictedmedia/client/src/test/java/org/collectionspace/services/client/test/RestrictedMediaServiceIT.java @@ -28,6 +28,8 @@ import java.util.List; import java.util.UUID; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; + +import org.collectionspace.serivces.blob.StaticImage; import org.collectionspace.services.client.CollectionSpaceClient; import org.collectionspace.services.client.PayloadOutputPart; import org.collectionspace.services.client.PoxPayloadOut; @@ -45,10 +47,9 @@ import org.testng.annotations.Test; /** * RestrictedMediaServiceTest, carries out tests against a deployed and running Restricted Media Service. */ -public class RestrictedMediaServiceTest extends AbstractPoxServiceTestImpl { +public class RestrictedMediaServiceIT extends AbstractPoxServiceTestImpl { - private final Logger logger = LoggerFactory.getLogger(RestrictedMediaServiceTest.class); - private static final String PUBLIC_URL_DECK = "https://farm8.staticflickr.com/7231/6962564226_4bdfc17599_k_d.jpg"; + private final Logger logger = LoggerFactory.getLogger(RestrictedMediaServiceIT.class); private boolean mediaCleanup = true; @@ -199,7 +200,7 @@ public class RestrictedMediaServiceTest extends AbstractPoxServiceTestImpl