From 0824b3b81135d65d79876cc426cf7030dd303f93 Mon Sep 17 00:00:00 2001 From: Christian Gendreau Date: Mon, 4 Mar 2024 11:45:35 -0500 Subject: [PATCH 1/7] 33137 add workbook generator to dina workbook (#438) * 33137 Add workbook generator to dina-workbook Added WorkbookGenerator + test * Private constructor, utility class --- .../aafc/dina/workbook/WorkbookGenerator.java | 47 +++++++++++++++++++ .../dina/workbook/WorkbookGeneratorIT.java | 31 ++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 dina-workbook/src/main/java/ca/gc/aafc/dina/workbook/WorkbookGenerator.java create mode 100644 dina-workbook/src/test/java/ca/gc/aafc/dina/workbook/WorkbookGeneratorIT.java diff --git a/dina-workbook/src/main/java/ca/gc/aafc/dina/workbook/WorkbookGenerator.java b/dina-workbook/src/main/java/ca/gc/aafc/dina/workbook/WorkbookGenerator.java new file mode 100644 index 000000000..6effb194a --- /dev/null +++ b/dina-workbook/src/main/java/ca/gc/aafc/dina/workbook/WorkbookGenerator.java @@ -0,0 +1,47 @@ +package ca.gc.aafc.dina.workbook; + +import java.util.List; + +import org.apache.poi.ooxml.POIXMLProperties; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +/** + * Utility to generates Workbook. + * + */ +public final class WorkbookGenerator { + + private WorkbookGenerator() { + //utility class + } + + /** + * Generate a workbook from a list of column names. + * Use in a try-with-resource. + * + * @param columns columns name + * @return the Workbook object + */ + public static Workbook generate(List columns) { + XSSFWorkbook wb = new XSSFWorkbook(); + Sheet sheet1 = wb.createSheet(); + + // Record in custom properties the original columns + POIXMLProperties.CustomProperties customProp = wb.getProperties().getCustomProperties(); + customProp.addProperty("originalColumns", String.join(",", columns)); + + // Rows are 0 based + Row row = sheet1.createRow(0); + + int cellIdx = 0; + for(String columnName: columns) { + row.createCell(cellIdx).setCellValue(columnName); + cellIdx++; + } + + return wb; + } +} diff --git a/dina-workbook/src/test/java/ca/gc/aafc/dina/workbook/WorkbookGeneratorIT.java b/dina-workbook/src/test/java/ca/gc/aafc/dina/workbook/WorkbookGeneratorIT.java new file mode 100644 index 000000000..fb0af8dbb --- /dev/null +++ b/dina-workbook/src/test/java/ca/gc/aafc/dina/workbook/WorkbookGeneratorIT.java @@ -0,0 +1,31 @@ +package ca.gc.aafc.dina.workbook; + +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.List; + +import org.apache.poi.ss.usermodel.Workbook; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class WorkbookGeneratorIT { + + @Test + public void generate_withColumnName_workbookGenerated() throws IOException { + Path tmpExport = Files.createTempDirectory("generate_withColumnName_workbookGenerated") + .resolve("generatedFile.xlsx"); + try (Workbook wb = WorkbookGenerator.generate(List.of("col 1", "col 2"))) { + wb.write(new FileOutputStream(tmpExport.toFile())); + } + + try(FileInputStream fis = new FileInputStream(tmpExport.toFile())) { + var result = WorkbookConverter.convertWorkbook(fis); + // check value of the first cell of the first row of the first sheet + assertEquals("col 1", result.get(0).get(0).content()[0]); + } + } +} From 8e34da9e2aa4c13a697a2484314b3d07e8d988b8 Mon Sep 17 00:00:00 2001 From: Christian Gendreau Date: Mon, 4 Mar 2024 11:49:10 -0500 Subject: [PATCH 2/7] 32932 add uuidv7 support (#436) * 32932 Add uuidv7 support Added utility class UUIDHelper * Use static instance of generator * Fixed Checkstyle issue --- dina-base-api/pom.xml | 12 ++++-- .../java/ca/gc/aafc/dina/util/UUIDHelper.java | 39 +++++++++++++++++++ .../ca/gc/aafc/dina/util/UUIDHelperTest.java | 19 +++++++++ 3 files changed, 67 insertions(+), 3 deletions(-) create mode 100644 dina-base-api/src/main/java/ca/gc/aafc/dina/util/UUIDHelper.java create mode 100644 dina-base-api/src/test/java/ca/gc/aafc/dina/util/UUIDHelperTest.java diff --git a/dina-base-api/pom.xml b/dina-base-api/pom.xml index 9983ef681..b8adb68fb 100644 --- a/dina-base-api/pom.xml +++ b/dina-base-api/pom.xml @@ -31,6 +31,7 @@ 42.4.3 1.15.3 2.15.1 + 4.3.0 @@ -152,9 +153,14 @@ querydsl-core - commons-io - commons-io - ${commons-io.version} + commons-io + commons-io + ${commons-io.version} + + + com.fasterxml.uuid + java-uuid-generator + ${java-uuid-generator.version} diff --git a/dina-base-api/src/main/java/ca/gc/aafc/dina/util/UUIDHelper.java b/dina-base-api/src/main/java/ca/gc/aafc/dina/util/UUIDHelper.java new file mode 100644 index 000000000..2d426453f --- /dev/null +++ b/dina-base-api/src/main/java/ca/gc/aafc/dina/util/UUIDHelper.java @@ -0,0 +1,39 @@ +package ca.gc.aafc.dina.util; + +import java.util.UUID; + +import com.fasterxml.uuid.Generators; +import com.fasterxml.uuid.impl.TimeBasedEpochGenerator; + +/** + * Helper class to handle UUID version 7. + */ +public final class UUIDHelper { + + private static final TimeBasedEpochGenerator GENERATOR = Generators.timeBasedEpochGenerator(); + + private UUIDHelper() { + // utility class + } + + /** + * thread-safe per TimeBasedEpochGenerator implementation. + * @return + */ + public static UUID generateUUIDv7() { + return GENERATOR.generate(); + } + + /** + * Checks if the provided UUID is of version 7. + * @param uuid + * @return is provided UUID version 7. If uuid is null false is returned. + */ + public static boolean isUUIDv7(UUID uuid) { + if(uuid == null) { + return false; + } + return uuid.version() == 7; + } + +} diff --git a/dina-base-api/src/test/java/ca/gc/aafc/dina/util/UUIDHelperTest.java b/dina-base-api/src/test/java/ca/gc/aafc/dina/util/UUIDHelperTest.java new file mode 100644 index 000000000..3d8284a73 --- /dev/null +++ b/dina-base-api/src/test/java/ca/gc/aafc/dina/util/UUIDHelperTest.java @@ -0,0 +1,19 @@ +package ca.gc.aafc.dina.util; + +import java.util.UUID; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +public class UUIDHelperTest { + + @Test + public void testUUIDHelper() { + UUID uuidv7 = UUIDHelper.generateUUIDv7(); + + assertTrue(UUIDHelper.isUUIDv7(uuidv7)); + assertFalse(UUIDHelper.isUUIDv7(UUID.randomUUID())); + } +} From aa7589b9b7574e754568b70e6e62f6b9d3bc7b29 Mon Sep 17 00:00:00 2001 From: Christian Gendreau Date: Mon, 4 Mar 2024 13:03:25 -0500 Subject: [PATCH 3/7] Prepare 0.118 release --- dina-base-api/pom.xml | 4 ++-- dina-client/pom.xml | 2 +- dina-messaging/pom.xml | 4 ++-- dina-search/pom.xml | 2 +- dina-test-support/pom.xml | 2 +- dina-workbook/pom.xml | 2 +- pom.xml | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/dina-base-api/pom.xml b/dina-base-api/pom.xml index b8adb68fb..0286a9612 100644 --- a/dina-base-api/pom.xml +++ b/dina-base-api/pom.xml @@ -8,7 +8,7 @@ io.github.aafc-bicoe dina-base-parent - 0.118-SNAPSHOT + 0.118 dina-base-api @@ -145,7 +145,7 @@ io.github.aafc-bicoe dina-test-support - 0.118-SNAPSHOT + 0.118 test diff --git a/dina-client/pom.xml b/dina-client/pom.xml index 0f14d9825..d2b81f363 100644 --- a/dina-client/pom.xml +++ b/dina-client/pom.xml @@ -8,7 +8,7 @@ io.github.aafc-bicoe dina-base-parent - 0.118-SNAPSHOT + 0.118 dina-client diff --git a/dina-messaging/pom.xml b/dina-messaging/pom.xml index 2259fc0a1..2fb53ca91 100644 --- a/dina-messaging/pom.xml +++ b/dina-messaging/pom.xml @@ -8,7 +8,7 @@ io.github.aafc-bicoe dina-base-parent - 0.118-SNAPSHOT + 0.118 dina-messaging @@ -38,7 +38,7 @@ io.github.aafc-bicoe dina-test-support - 0.118-SNAPSHOT + 0.118 test diff --git a/dina-search/pom.xml b/dina-search/pom.xml index cd85b61aa..9a496ba05 100644 --- a/dina-search/pom.xml +++ b/dina-search/pom.xml @@ -8,7 +8,7 @@ io.github.aafc-bicoe dina-base-parent - 0.118-SNAPSHOT + 0.118 dina-search diff --git a/dina-test-support/pom.xml b/dina-test-support/pom.xml index 714d96292..aaf7b2d39 100644 --- a/dina-test-support/pom.xml +++ b/dina-test-support/pom.xml @@ -9,7 +9,7 @@ io.github.aafc-bicoe dina-base-parent - 0.118-SNAPSHOT + 0.118 dina-test-support diff --git a/dina-workbook/pom.xml b/dina-workbook/pom.xml index d802b5d8f..91524de61 100644 --- a/dina-workbook/pom.xml +++ b/dina-workbook/pom.xml @@ -8,7 +8,7 @@ io.github.aafc-bicoe dina-base-parent - 0.118-SNAPSHOT + 0.118 dina-workbook diff --git a/pom.xml b/pom.xml index 64cda7afe..0f3b53041 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ io.github.aafc-bicoe dina-base-parent - 0.118-SNAPSHOT + 0.118 pom From 7d6daf13e473688bf35abc8bbb05a00d55e766f7 Mon Sep 17 00:00:00 2001 From: Christian Gendreau Date: Mon, 4 Mar 2024 13:07:43 -0500 Subject: [PATCH 4/7] Update SpringFramework --- pom.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pom.xml b/pom.xml index 0f3b53041..e04197cdd 100644 --- a/pom.xml +++ b/pom.xml @@ -50,6 +50,9 @@ 1 20.0.5 + + + 5.3.32 1.33 1.17.3 From 1b3de21e51e8bc202d840f3c8234924b1bc1fe62 Mon Sep 17 00:00:00 2001 From: Christian Gendreau Date: Mon, 4 Mar 2024 13:22:21 -0500 Subject: [PATCH 5/7] Updated OWASP file --- owasp-suppression.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/owasp-suppression.xml b/owasp-suppression.xml index 0071d8fd8..617bc2b07 100644 --- a/owasp-suppression.xml +++ b/owasp-suppression.xml @@ -12,6 +12,10 @@ no untrusted source CVE-2022-1471 + + no UriComponentsBuilder + CVE-2024-22243 + CVE about Keycloak server CVE-2022-1245 From 9d756fa64decc23fcad2d505e8135522b3153410 Mon Sep 17 00:00:00 2001 From: Christian Gendreau Date: Mon, 4 Mar 2024 13:37:45 -0500 Subject: [PATCH 6/7] Updated Postgres jdbc driver --- dina-base-api/pom.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/dina-base-api/pom.xml b/dina-base-api/pom.xml index 0286a9612..28a78fe09 100644 --- a/dina-base-api/pom.xml +++ b/dina-base-api/pom.xml @@ -28,10 +28,14 @@ 2.2.2 0.29 3.6.1 - 42.4.3 + 1.15.3 2.15.1 4.3.0 + + + 42.4.4 + From d208b6d8942ed247ded406e97b1085f307e47409 Mon Sep 17 00:00:00 2001 From: Christian Gendreau Date: Mon, 4 Mar 2024 15:28:44 -0500 Subject: [PATCH 7/7] Prepare next development version --- dina-base-api/pom.xml | 4 ++-- dina-client/pom.xml | 2 +- dina-messaging/pom.xml | 4 ++-- dina-search/pom.xml | 2 +- dina-test-support/pom.xml | 2 +- dina-workbook/pom.xml | 2 +- pom.xml | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/dina-base-api/pom.xml b/dina-base-api/pom.xml index 28a78fe09..95faa2b4b 100644 --- a/dina-base-api/pom.xml +++ b/dina-base-api/pom.xml @@ -8,7 +8,7 @@ io.github.aafc-bicoe dina-base-parent - 0.118 + 0.119-SNAPSHOT dina-base-api @@ -149,7 +149,7 @@ io.github.aafc-bicoe dina-test-support - 0.118 + 0.119-SNAPSHOT test diff --git a/dina-client/pom.xml b/dina-client/pom.xml index d2b81f363..6df57002d 100644 --- a/dina-client/pom.xml +++ b/dina-client/pom.xml @@ -8,7 +8,7 @@ io.github.aafc-bicoe dina-base-parent - 0.118 + 0.119-SNAPSHOT dina-client diff --git a/dina-messaging/pom.xml b/dina-messaging/pom.xml index 2fb53ca91..8a2b89bab 100644 --- a/dina-messaging/pom.xml +++ b/dina-messaging/pom.xml @@ -8,7 +8,7 @@ io.github.aafc-bicoe dina-base-parent - 0.118 + 0.119-SNAPSHOT dina-messaging @@ -38,7 +38,7 @@ io.github.aafc-bicoe dina-test-support - 0.118 + 0.119-SNAPSHOT test diff --git a/dina-search/pom.xml b/dina-search/pom.xml index 9a496ba05..5ff027dda 100644 --- a/dina-search/pom.xml +++ b/dina-search/pom.xml @@ -8,7 +8,7 @@ io.github.aafc-bicoe dina-base-parent - 0.118 + 0.119-SNAPSHOT dina-search diff --git a/dina-test-support/pom.xml b/dina-test-support/pom.xml index aaf7b2d39..ca0d84fdd 100644 --- a/dina-test-support/pom.xml +++ b/dina-test-support/pom.xml @@ -9,7 +9,7 @@ io.github.aafc-bicoe dina-base-parent - 0.118 + 0.119-SNAPSHOT dina-test-support diff --git a/dina-workbook/pom.xml b/dina-workbook/pom.xml index 91524de61..52ee6e780 100644 --- a/dina-workbook/pom.xml +++ b/dina-workbook/pom.xml @@ -8,7 +8,7 @@ io.github.aafc-bicoe dina-base-parent - 0.118 + 0.119-SNAPSHOT dina-workbook diff --git a/pom.xml b/pom.xml index e04197cdd..d80b2b524 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ io.github.aafc-bicoe dina-base-parent - 0.118 + 0.119-SNAPSHOT pom