From cac2bbcc12484b98a09c3cb335993d37062af6a8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jan 2024 14:36:50 +0000 Subject: [PATCH 01/50] Bump org.springframework.boot from 3.2.1 to 3.2.2 Bumps [org.springframework.boot](https://github.com/spring-projects/spring-boot) from 3.2.1 to 3.2.2. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.1...v3.2.2) --- updated-dependencies: - dependency-name: org.springframework.boot dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index dbd4902d..14155a10 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'org.springframework.boot' version '3.2.1' + id 'org.springframework.boot' version '3.2.2' id 'io.spring.dependency-management' version '1.1.4' id 'io.freefair.lombok' version '8.4' id 'io.freefair.maven-publish-java' version '8.4' From 012246768587095a29d4cb874fd116be67b1ecbe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jan 2024 14:36:52 +0000 Subject: [PATCH 02/50] Bump org.owasp.dependencycheck from 9.0.8 to 9.0.9 Bumps org.owasp.dependencycheck from 9.0.8 to 9.0.9. --- updated-dependencies: - dependency-name: org.owasp.dependencycheck dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index dbd4902d..c7436a42 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ plugins { id 'io.spring.dependency-management' version '1.1.4' id 'io.freefair.lombok' version '8.4' id 'io.freefair.maven-publish-java' version '8.4' - id 'org.owasp.dependencycheck' version '9.0.8' + id 'org.owasp.dependencycheck' version '9.0.9' id 'org.asciidoctor.jvm.convert' version '4.0.1' id 'net.ltgt.errorprone' version '3.1.0' id 'net.researchgate.release' version '3.0.2' From 864817b99affc1ae71de2b458d2b32dbb3e6a224 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Jan 2024 14:19:44 +0000 Subject: [PATCH 03/50] Bump com.networknt:json-schema-validator from 1.1.0 to 1.3.0 Bumps [com.networknt:json-schema-validator](https://github.com/networknt/json-schema-validator) from 1.1.0 to 1.3.0. - [Release notes](https://github.com/networknt/json-schema-validator/releases) - [Changelog](https://github.com/networknt/json-schema-validator/blob/master/CHANGELOG.md) - [Commits](https://github.com/networknt/json-schema-validator/compare/1.1.0...1.3.0) --- updated-dependencies: - dependency-name: com.networknt:json-schema-validator dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index dbd4902d..80df247f 100644 --- a/build.gradle +++ b/build.gradle @@ -103,7 +103,7 @@ dependencies { implementation "org.apache.tika:tika-core:2.9.1" // JSON validator - implementation "com.networknt:json-schema-validator:1.1.0" + implementation "com.networknt:json-schema-validator:1.3.0" // XML validator // https://mvnrepository.com/artifact/xerces/xercesImpl implementation 'xerces:xercesImpl:2.12.2' From 18025220aedf33869361dee7725957373273631b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Jan 2024 14:19:50 +0000 Subject: [PATCH 04/50] Bump org.mockito:mockito-core from 5.8.0 to 5.10.0 Bumps [org.mockito:mockito-core](https://github.com/mockito/mockito) from 5.8.0 to 5.10.0. - [Release notes](https://github.com/mockito/mockito/releases) - [Commits](https://github.com/mockito/mockito/compare/v5.8.0...v5.10.0) --- updated-dependencies: - dependency-name: org.mockito:mockito-core dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index dbd4902d..025361a3 100644 --- a/build.gradle +++ b/build.gradle @@ -127,7 +127,7 @@ dependencies { testImplementation "org.springframework.security:spring-security-test" //Java 11 Support - testImplementation "org.mockito:mockito-core:5.8.0" + testImplementation "org.mockito:mockito-core:5.10.0" testImplementation "junit:junit:4.13.2" testImplementation "com.github.stefanbirkner:system-lambda:1.2.1" From dc08ccab33e4b3e951e1c0a1a6b0ea4913472225 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Jan 2024 08:18:54 +0000 Subject: [PATCH 05/50] Bump org.asciidoctor.jvm.convert from 4.0.1 to 4.0.2 Bumps org.asciidoctor.jvm.convert from 4.0.1 to 4.0.2. --- updated-dependencies: - dependency-name: org.asciidoctor.jvm.convert dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 8a6b4c77..08f8f62f 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { id 'io.freefair.lombok' version '8.4' id 'io.freefair.maven-publish-java' version '8.4' id 'org.owasp.dependencycheck' version '9.0.9' - id 'org.asciidoctor.jvm.convert' version '4.0.1' + id 'org.asciidoctor.jvm.convert' version '4.0.2' id 'net.ltgt.errorprone' version '3.1.0' id 'net.researchgate.release' version '3.0.2' id 'com.gorylenko.gradle-git-properties' version '2.4.1' From 01a8f6a529ba3fd138bb2c8f5b1aed6a8190d390 Mon Sep 17 00:00:00 2001 From: Volker Hartmann Date: Tue, 30 Jan 2024 13:08:33 +0100 Subject: [PATCH 06/50] Adapt to new API of json-schema-validator. --- .../java/edu/kit/datamanager/metastore2/util/JsonUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/edu/kit/datamanager/metastore2/util/JsonUtils.java b/src/main/java/edu/kit/datamanager/metastore2/util/JsonUtils.java index 264e4279..3211f40c 100644 --- a/src/main/java/edu/kit/datamanager/metastore2/util/JsonUtils.java +++ b/src/main/java/edu/kit/datamanager/metastore2/util/JsonUtils.java @@ -244,7 +244,7 @@ protected static JsonSchema getJsonSchemaFromString(String schemaContent, Versio JsonSchemaFactory factory = JsonSchemaFactory.getInstance(version); JsonSchema schema = factory.getSchema(schemaContent); checkSchema(schema); - Optional optionalVersionFound = SpecVersionDetector.detectOptionalVersion(schema.getSchemaNode()); + Optional optionalVersionFound = SpecVersionDetector.detectOptionalVersion(schema.getSchemaNode(), false); VersionFlag versionFound = version; if (!optionalVersionFound.isEmpty()) { versionFound = optionalVersionFound.get(); From e58cecc8d76b28a72817d5221bf8e0af99ea3830 Mon Sep 17 00:00:00 2001 From: Volker Hartmann Date: Tue, 30 Jan 2024 13:48:46 +0100 Subject: [PATCH 07/50] Date format is no longer checked!? Change key-value instead to get an invalid JSON file. --- .../metastore2/test/JsonSchemaRegistryControllerTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/edu/kit/datamanager/metastore2/test/JsonSchemaRegistryControllerTest.java b/src/test/java/edu/kit/datamanager/metastore2/test/JsonSchemaRegistryControllerTest.java index ec340cf0..6775d6ee 100644 --- a/src/test/java/edu/kit/datamanager/metastore2/test/JsonSchemaRegistryControllerTest.java +++ b/src/test/java/edu/kit/datamanager/metastore2/test/JsonSchemaRegistryControllerTest.java @@ -164,7 +164,7 @@ public class JsonSchemaRegistryControllerTest { + " } " + "}"; private final static String JSON_DOCUMENT = "{\"title\":\"any string\",\"date\": \"2020-10-16\"}"; - private final static String INVALID_JSON_DOCUMENT = "{\"title\":\"any string\",\"date\":\"2020-10-16T10:13:24\"}"; + private final static String INVALID_JSON_DOCUMENT = "{\"title\":\"any string\",\"dates\":\"2020-10-16T10:13:24\"}"; private final static String DC_DOCUMENT = "\n" + "\n" + " Carbon, Seth\n" From 62b380f0b2d5ca348beb32627bb1c0b791bdbb76 Mon Sep 17 00:00:00 2001 From: Volker Hartmann Date: Wed, 31 Jan 2024 15:11:03 +0100 Subject: [PATCH 08/50] Bump service-base to 1.2.1 which allows redirections while downloading from URL. --- build.gradle | 2 +- gradle.properties | 1 + .../java/edu/kit/datamanager/metastore2/util/JsonUtilsTest.java | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 80df247f..f80ce731 100644 --- a/build.gradle +++ b/build.gradle @@ -110,7 +110,7 @@ dependencies { // datamanager implementation "edu.kit.datamanager:repo-core:1.2.1" - implementation "edu.kit.datamanager:service-base:1.2.0" + implementation "edu.kit.datamanager:service-base:1.2.1" // elasticsearch (since service-base 1.1.0) implementation "org.springframework.data:spring-data-elasticsearch:5.2.2" diff --git a/gradle.properties b/gradle.properties index 4da9e1b7..09ecec71 100644 --- a/gradle.properties +++ b/gradle.properties @@ -23,3 +23,4 @@ action.custom-6.args=--configure-on-demand -w -x check -x test -Xlint:deprecatio netbeans.com-github-philippefichet-sonarlint4netbeans.excludedRules=[{"repository":"php","rule":"S3335"},{"repository":"php","rule":"S3336"},{"repository":"php","rule":"S2002"},{"repository":"php","rule":"S2005"},{"repository":"php","rule":"S3333"},{"repository":"php","rule":"S3334"},{"repository":"Web","rule":"ImgWithoutWidthOrHeightCheck"},{"repository":"php","rule":"S1151"},{"repository":"php","rule":"S3332"},{"repository":"php","rule":"S2001"},{"repository":"Web","rule":"UnclosedTagCheck"},{"repository":"php","rule":"S2000"},{"repository":"java","rule":"S2309"},{"repository":"php","rule":"S126"},{"repository":"java","rule":"S4605"},{"repository":"java","rule":"S4604"},{"repository":"java","rule":"S2308"},{"repository":"xml","rule":"S3282"},{"repository":"php","rule":"S2918"},{"repository":"java","rule":"S2301"},{"repository":"java","rule":"S1696"},{"repository":"java","rule":"S1213"},{"repository":"java","rule":"S1698"},{"repository":"java","rule":"S1699"},{"repository":"php","rule":"S1820"},{"repository":"java","rule":"S3750"},{"repository":"java","rule":"S4288"},{"repository":"java","rule":"S1451"},{"repository":"php","rule":"S122"},{"repository":"java","rule":"S1694"},{"repository":"java","rule":"S1695"},{"repository":"php","rule":"S1821"},{"repository":"php","rule":"S5867"},{"repository":"java","rule":"S6211"},{"repository":"java","rule":"S2096"},{"repository":"java","rule":"S6212"},{"repository":"php","rule":"S2011"},{"repository":"Web","rule":"UnifiedExpressionCheck"},{"repository":"Web","rule":"PageWithoutFaviconCheck"},{"repository":"php","rule":"S134"},{"repository":"java","rule":"S1448"},{"repository":"java","rule":"S2658"},{"repository":"java","rule":"S1449"},{"repository":"java","rule":"S3749"},{"repository":"php","rule":"S139"},{"repository":"java","rule":"S5128"},{"repository":"php","rule":"S2007"},{"repository":"php","rule":"S3337"},{"repository":"php","rule":"S3338"},{"repository":"java","rule":"S1200"},{"repository":"Web","rule":"ComplexityCheck"},{"repository":"Web","rule":"RequiredAttributeCheck"},{"repository":"php","rule":"S104"},{"repository":"java","rule":"S3658"},{"repository":"java","rule":"S2208"},{"repository":"java","rule":"S2444"},{"repository":"java","rule":"S2203"},{"repository":"java","rule":"S2325"},{"repository":"java","rule":"S3414"},{"repository":"Web","rule":"S1829"},{"repository":"java","rule":"S4174"},{"repository":"Web","rule":"IllegalTabCheck"},{"repository":"java","rule":"S1106"},{"repository":"java","rule":"S1228"},{"repository":"java","rule":"S1107"},{"repository":"java","rule":"S1108"},{"repository":"java","rule":"S1109"},{"repository":"xml","rule":"S3373"},{"repository":"java","rule":"S1105"},{"repository":"php","rule":"S5856"},{"repository":"java","rule":"S2063"},{"repository":"java","rule":"S3030"},{"repository":"java","rule":"S3032"},{"repository":"Web","rule":"DoubleQuotesCheck"},{"repository":"Web","rule":"MaxLineLengthCheck"},{"repository":"java","rule":"S105"},{"repository":"Web","rule":"LongJavaScriptCheck"},{"repository":"java","rule":"S103"},{"repository":"Web","rule":"WmodeIsWindowCheck"},{"repository":"java","rule":"S104"},{"repository":"java","rule":"S109"},{"repository":"java","rule":"S113"},{"repository":"java","rule":"S4926"},{"repository":"java","rule":"S4248"},{"repository":"java","rule":"S1774"},{"repository":"php","rule":"S1105"},{"repository":"php","rule":"S1106"},{"repository":"php","rule":"S1121"},{"repository":"Web","rule":"InputWithoutLabelCheck"},{"repository":"xml","rule":"S2260"},{"repository":"java","rule":"S2059"},{"repository":"java","rule":"S1641"},{"repository":"java","rule":"S2972"},{"repository":"java","rule":"S2973"},{"repository":"java","rule":"S2974"},{"repository":"java","rule":"S2057"},{"repository":"java","rule":"S6411"},{"repository":"php","rule":"S1117"},{"repository":"java","rule":"S3052"},{"repository":"php","rule":"S1451"},{"repository":"Web","rule":"NonConsecutiveHeadingCheck"},{"repository":"java","rule":"S126"},{"repository":"java","rule":"S923"},{"repository":"java","rule":"S134"},{"repository":"java","rule":"S1315"},{"repository":"java","rule":"S1312"},{"repository":"java","rule":"S1314"},{"repository":"java","rule":"S4266"},{"repository":"java","rule":"S1310"},{"repository":"java","rule":"S2196"},{"repository":"java","rule":"S2197"},{"repository":"java","rule":"S118"},{"repository":"java","rule":"S1309"},{"repository":"java","rule":"S3725"},{"repository":"java","rule":"S121"},{"repository":"java","rule":"S122"},{"repository":"Web","rule":"DynamicJspIncludeCheck"},{"repository":"php","rule":"S1578"},{"repository":"php","rule":"S5935"},{"repository":"Web","rule":"InlineStyleCheck"},{"repository":"java","rule":"S3047"},{"repository":"java","rule":"S1541"},{"repository":"java","rule":"S2260"},{"repository":"java","rule":"S2141"},{"repository":"php","rule":"S1311"},{"repository":"java","rule":"S2384"},{"repository":"php","rule":"S4142"},{"repository":"xml","rule":"S105"},{"repository":"java","rule":"S2701"},{"repository":"xml","rule":"S103"},{"repository":"java","rule":"S2148"},{"repository":"php","rule":"S881"},{"repository":"java","rule":"S2143"},{"repository":"java","rule":"S1176"},{"repository":"java","rule":"S1160"},{"repository":"php","rule":"S1200"},{"repository":"java","rule":"S2250"},{"repository":"java","rule":"S818"},{"repository":"java","rule":"S1162"},{"repository":"java","rule":"S4551"},{"repository":"java","rule":"S2131"},{"repository":"java","rule":"S138"},{"repository":"java","rule":"S139"},{"repository":"Web","rule":"IllegalNamespaceCheck"},{"repository":"php","rule":"S5915"},{"repository":"php","rule":"S1314"},{"repository":"java","rule":"S1166"},{"repository":"php","rule":"S1799"},{"repository":"java","rule":"S5793"},{"repository":"java","rule":"S1194"},{"repository":"java","rule":"S2162"},{"repository":"java","rule":"S2164"},{"repository":"xml","rule":"S3419"},{"repository":"Web","rule":"WhiteSpaceAroundCheck"},{"repository":"java","rule":"S3937"},{"repository":"xml","rule":"S1120"},{"repository":"java","rule":"S1996"},{"repository":"Web","rule":"MultiplePageDirectivesCheck"},{"repository":"xml","rule":"S3420"},{"repository":"java","rule":"S3254"},{"repository":"xml","rule":"S3423"},{"repository":"java","rule":"S2047"},{"repository":"php","rule":"S1541"},{"repository":"Web","rule":"InternationalizationCheck"},{"repository":"java","rule":"S3242"},{"repository":"java","rule":"S6073"},{"repository":"php","rule":"S2070"},{"repository":"java","rule":"S2959"},{"repository":"Web","rule":"LinkToNothingCheck"},{"repository":"Web","rule":"S1436"},{"repository":"java","rule":"S2039"},{"repository":"xml","rule":"S2321"},{"repository":"java","rule":"S1188"},{"repository":"java","rule":"S1067"},{"repository":"java","rule":"S2156"},{"repository":"java","rule":"S3366"},{"repository":"Web","rule":"LinksIdenticalTextsDifferentTargetsCheck"},{"repository":"php","rule":"S2047"},{"repository":"php","rule":"S2046"},{"repository":"java","rule":"S5970"},{"repository":"php","rule":"S2043"},{"repository":"php","rule":"S2042"},{"repository":"php","rule":"S1990"},{"repository":"php","rule":"S2044"},{"repository":"java","rule":"S864"},{"repository":"Web","rule":"MouseEventWithoutKeyboardEquivalentCheck"},{"repository":"java","rule":"S5979"},{"repository":"java","rule":"NoSonar"},{"repository":"java","rule":"S5977"},{"repository":"java","rule":"S5612"},{"repository":"java","rule":"S1258"},{"repository":"java","rule":"S3437"},{"repository":"Web","rule":"FileLengthCheck"},{"repository":"Web","rule":"JspScriptletCheck"},{"repository":"java","rule":"S2221"},{"repository":"java","rule":"S1132"},{"repository":"java","rule":"S3553"},{"repository":"php","rule":"NoSonar"},{"repository":"Web","rule":"IllegalTagLibsCheck"},{"repository":"php","rule":"S2050"},{"repository":"java","rule":"S3306"},{"repository":"java","rule":"S2698"},{"repository":"php","rule":"S1996"},{"repository":"php","rule":"S2964"},{"repository":"java","rule":"S2693"},{"repository":"java","rule":"S1120"},{"repository":"java","rule":"S2694"},{"repository":"java","rule":"S2211"},{"repository":"php","rule":"S1997"},{"repository":"java","rule":"S2333"},{"repository":"java","rule":"S1244"},{"repository":"php","rule":"S5899"},{"repository":"java","rule":"S1151"},{"repository":"Web","rule":"IllegalElementCheck"},{"repository":"java","rule":"S5194"},{"repository":"php","rule":"S2260"},{"repository":"java","rule":"S888"},{"repository":"java","rule":"S1711"},{"repository":"java","rule":"S3578"},{"repository":"php","rule":"S2036"},{"repository":"php","rule":"S2278"},{"repository":"php","rule":"S2277"},{"repository":"php","rule":"S1067"},{"repository":"php","rule":"S2830"},{"repository":"php","rule":"S2038"},{"repository":"php","rule":"S2037"},{"repository":"php","rule":"S5783"},{"repository":"java","rule":"S1939"},{"repository":"java","rule":"S1821"},{"repository":"java","rule":"S1942"},{"repository":"java","rule":"S1943"},{"repository":"java","rule":"S881"},{"repository":"java","rule":"S5867"},{"repository":"java","rule":"S1147"},{"repository":"java","rule":"S1820"},{"repository":"java","rule":"S1941"},{"repository":"java","rule":"S1142"},{"repository":"php","rule":"S2701"},{"repository":"Web","rule":"HeaderCheck"}] netbeans.com-github-philippefichet-sonarlint4netbeans.rules_2e_parameters_2e_java_2e_S3776_2e_Threshold=15 netbeans.com-github-philippefichet-sonarlint4netbeans.extraProperties={} +netbeans.hint.jdkPlatform=JDK_19 diff --git a/src/test/java/edu/kit/datamanager/metastore2/util/JsonUtilsTest.java b/src/test/java/edu/kit/datamanager/metastore2/util/JsonUtilsTest.java index f426640a..c3ea28f7 100644 --- a/src/test/java/edu/kit/datamanager/metastore2/util/JsonUtilsTest.java +++ b/src/test/java/edu/kit/datamanager/metastore2/util/JsonUtilsTest.java @@ -18,6 +18,7 @@ import org.junit.BeforeClass; import org.junit.Test; import static org.junit.Assert.*; +import org.junit.Ignore; /** * @@ -714,6 +715,7 @@ public void testValidateDateJson() { * Test of validateJson method, of class JsonUtils. */ @Test + @Ignore public void testValidateJsonWithInvalidDateDocument() { System.out.println("testValidateJsonWithInvalidDateDocument"); String[] jsonDocuments = {invalidDateDocument}; From 8e741bce3920a78f98c5cf903aa5821260d35317 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Feb 2024 14:52:04 +0000 Subject: [PATCH 09/50] Bump codecov/codecov-action from 3 to 4 Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 3 to 4. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v3...v4) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/gradle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 01724ff7..547af910 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -59,6 +59,6 @@ jobs: - name: Build with Gradle (JDK ${{ env.currentBuildVersion }}) run: ./gradlew clean check jacocoTestReport - name: Codecov - uses: codecov/codecov-action@v3 + uses: codecov/codecov-action@v4 with: files: ./build/reports/jacoco/test/jacocoTestReport.xml #optional From 7faba66ee1ab116b06019fb7123709730dcb92a5 Mon Sep 17 00:00:00 2001 From: Volker Hartmann Date: Tue, 13 Feb 2024 13:00:55 +0100 Subject: [PATCH 10/50] Introduce licenseUri as additional field for Metadata(Schema)Record. --- .../edu/kit/datamanager/metastore2/domain/MetadataRecord.java | 2 ++ .../kit/datamanager/metastore2/domain/MetadataSchemaRecord.java | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/main/java/edu/kit/datamanager/metastore2/domain/MetadataRecord.java b/src/main/java/edu/kit/datamanager/metastore2/domain/MetadataRecord.java index 0f1387b5..dfec5342 100644 --- a/src/main/java/edu/kit/datamanager/metastore2/domain/MetadataRecord.java +++ b/src/main/java/edu/kit/datamanager/metastore2/domain/MetadataRecord.java @@ -77,6 +77,8 @@ public class MetadataRecord implements EtagSupport, Serializable { @NotNull(message = "A list of access control entries for resticting access.") @OneToMany(cascade = jakarta.persistence.CascadeType.ALL, orphanRemoval = true) private final Set acl = new HashSet<>(); + @NotBlank(message = "The uri of the license, e.g. for Apache-2.0 license this would be 'https://spdx.org/licenses/Apache-2.0'.") + private String licenseUri; @NotBlank(message = "The metadata document uri, e.g. pointing to a local file.") private String metadataDocumentUri; @NotBlank(message = "The SHA-1 hash of the associated metadata file. The hash is used for comparison while updating.") diff --git a/src/main/java/edu/kit/datamanager/metastore2/domain/MetadataSchemaRecord.java b/src/main/java/edu/kit/datamanager/metastore2/domain/MetadataSchemaRecord.java index f8793d1d..c06ad45a 100644 --- a/src/main/java/edu/kit/datamanager/metastore2/domain/MetadataSchemaRecord.java +++ b/src/main/java/edu/kit/datamanager/metastore2/domain/MetadataSchemaRecord.java @@ -98,6 +98,8 @@ public enum SCHEMA_TYPE { private Instant lastUpdate; @Transient private final Set acl = new HashSet<>(); + @NotBlank(message = "The uri of the license, e.g. for Apache-2.0 license this would be 'https://spdx.org/licenses/Apache-2.0'.") + private String licenseUri; @NotBlank(message = "The schema document uri, e.g. pointing to a local file.") private String schemaDocumentUri; @NotBlank(message = "The SHA-1 hash of the associated schema file. The hash is used for comparison while synchonization.") From aed46d0f27b836c939fcad3be71b0af559d6d20c Mon Sep 17 00:00:00 2001 From: Volker Hartmann Date: Tue, 13 Feb 2024 13:02:25 +0100 Subject: [PATCH 11/50] Add tests for licenseUri. --- .../test/MetadataControllerTest.java | 90 ++++++++++++++ .../test/SchemaRegistryControllerTest.java | 110 +++++++++++++++--- .../util/MetadataRecordUtilTest.java | 22 ++++ 3 files changed, 208 insertions(+), 14 deletions(-) diff --git a/src/test/java/edu/kit/datamanager/metastore2/test/MetadataControllerTest.java b/src/test/java/edu/kit/datamanager/metastore2/test/MetadataControllerTest.java index eac68241..f915f3a3 100644 --- a/src/test/java/edu/kit/datamanager/metastore2/test/MetadataControllerTest.java +++ b/src/test/java/edu/kit/datamanager/metastore2/test/MetadataControllerTest.java @@ -114,6 +114,7 @@ public class MetadataControllerTest { private static final String INVALID_SCHEMA = "invalid_dc"; private static final String UNKNOWN_RELATED_RESOURCE = "unknownHResourceId"; private static final String RELATED_RESOURCE_STRING = "anyResourceId"; + private static final String APACHE_2_LICENSE = "https://spdx.org/licenses/Apache-2.0"; private static final ResourceIdentifier RELATED_RESOURCE = ResourceIdentifier.factoryInternalResourceIdentifier(RELATED_RESOURCE_STRING); private static final ResourceIdentifier RELATED_RESOURCE_URL = ResourceIdentifier.factoryUrlResourceIdentifier(RELATED_RESOURCE_STRING); private static final ResourceIdentifier RELATED_RESOURCE_2 = ResourceIdentifier.factoryInternalResourceIdentifier("anyOtherResourceId"); @@ -1599,6 +1600,95 @@ public void testUpdateRecordWithInvalidSetting4Json() throws Exception { CreateSchemaUtil.ingestOrUpdateXmlMetadataDocument(mockMvc, SCHEMA_ID, 1l, "document", null, schemaConfig.getJwtSecret(), true, status().isUnprocessableEntity()); } + @Test + public void testUpdateRecordWithLicense() throws Exception { + String metadataRecordId = createDCMetadataRecord(); + MvcResult result = this.mockMvc.perform(get("/api/v1/metadata/" + metadataRecordId). + header("Accept", MetadataRecord.METADATA_RECORD_MEDIA_TYPE)). + andDo(print()). + andExpect(status().isOk()). + andReturn(); + String etag = result.getResponse().getHeader("ETag"); + String body = result.getResponse().getContentAsString(); + + ObjectMapper mapper = new ObjectMapper(); + MetadataRecord record = mapper.readValue(body, MetadataRecord.class); + record.setLicenseUri(APACHE_2_LICENSE); + MockMultipartFile recordFile = new MockMultipartFile("record", "metadata-record.json", "application/json", mapper.writeValueAsString(record).getBytes()); + MockMultipartFile metadataFile = new MockMultipartFile("document", "metadata.xml", "application/xml", DC_DOCUMENT_VERSION_2.getBytes()); + + result = this.mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/metadata/" + record.getId()). + file(recordFile). + file(metadataFile). + header("If-Match", etag). + with(putMultipart())). + andDo(print()). + andExpect(status().isOk()). + andReturn(); + +// result = this.mockMvc.perform(put("/api/v1/metadata/dc").header("If-Match", etag).contentType(MetadataRecord.METADATA_RECORD_MEDIA_TYPE).content(mapper.writeValueAsString(record))).andDo(print()).andExpect(status().isOk()).andReturn(); + body = result.getResponse().getContentAsString(); + + MetadataRecord record2 = mapper.readValue(body, MetadataRecord.class); + Assert.assertNotEquals(record.getDocumentHash(), record2.getDocumentHash()); + Assert.assertEquals(record.getCreatedAt(), record2.getCreatedAt()); + Assert.assertEquals(record.getSchema().getIdentifier(), record2.getSchema().getIdentifier()); + Assert.assertEquals((long) record.getRecordVersion(), record2.getRecordVersion() - 1l);// version should be 1 higher + if (record.getAcl() != null) { + Assert.assertTrue(record.getAcl().containsAll(record2.getAcl())); + } + Assert.assertTrue(record.getLastUpdate().isBefore(record2.getLastUpdate())); + Assert.assertNotNull(record2.getLicenseUri()); + Assert.assertTrue(record2.getLicenseUri().equals(APACHE_2_LICENSE)); + // Check for new metadata document. + result = this.mockMvc.perform(get("/api/v1/metadata/" + metadataRecordId)). + andDo(print()). + andExpect(status().isOk()). + andReturn(); + String content = result.getResponse().getContentAsString(); + + String dcMetadata = DC_DOCUMENT_VERSION_2; + + Assert.assertEquals(dcMetadata, content); + + Assert.assertEquals(record.getMetadataDocumentUri().replace("version=1", "version=2"), record2.getMetadataDocumentUri()); + result = this.mockMvc.perform(get("/api/v1/metadata/" + metadataRecordId). + header("Accept", MetadataRecord.METADATA_RECORD_MEDIA_TYPE)). + andDo(print()). + andExpect(status().isOk()). + andReturn(); + etag = result.getResponse().getHeader("ETag"); + body = result.getResponse().getContentAsString(); + + mapper = new ObjectMapper(); + record = mapper.readValue(body, MetadataRecord.class); + record.setLicenseUri(null); + recordFile = new MockMultipartFile("record", "metadata-record.json", "application/json", mapper.writeValueAsString(record).getBytes()); + + result = this.mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/metadata/" + record.getId()). + file(recordFile). + header("If-Match", etag). + with(putMultipart())). + andDo(print()). + andExpect(status().isOk()). + andReturn(); + +// result = this.mockMvc.perform(put("/api/v1/metadata/dc").header("If-Match", etag).contentType(MetadataRecord.METADATA_RECORD_MEDIA_TYPE).content(mapper.writeValueAsString(record))).andDo(print()).andExpect(status().isOk()).andReturn(); + body = result.getResponse().getContentAsString(); + + MetadataRecord record3 = mapper.readValue(body, MetadataRecord.class); + Assert.assertEquals(record2.getDocumentHash(), record3.getDocumentHash()); + Assert.assertEquals(record2.getCreatedAt(), record3.getCreatedAt()); + Assert.assertEquals(record2.getSchema().getIdentifier(), record3.getSchema().getIdentifier()); + Assert.assertEquals((long) record2.getRecordVersion(), (long)record3.getRecordVersion());// version should be the same + if (record.getAcl() != null) { + Assert.assertTrue(record2.getAcl().containsAll(record3.getAcl())); + } + Assert.assertTrue(record2.getLastUpdate().isBefore(record3.getLastUpdate())); + Assert.assertNull(record3.getLicenseUri()); + + } + @Test public void testDeleteRecordWithoutAuthentication() throws Exception { String metadataRecordId = createDCMetadataRecord(); diff --git a/src/test/java/edu/kit/datamanager/metastore2/test/SchemaRegistryControllerTest.java b/src/test/java/edu/kit/datamanager/metastore2/test/SchemaRegistryControllerTest.java index 748379ba..11ba5db6 100644 --- a/src/test/java/edu/kit/datamanager/metastore2/test/SchemaRegistryControllerTest.java +++ b/src/test/java/edu/kit/datamanager/metastore2/test/SchemaRegistryControllerTest.java @@ -112,8 +112,8 @@ @DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS) public class SchemaRegistryControllerTest { - private final static String TEMP_DIR_4_ALL = "/tmp/metastore2/schematest/"; - private final static String TEMP_DIR_4_SCHEMAS = TEMP_DIR_4_ALL + "schema/"; + private static final String TEMP_DIR_4_ALL = "/tmp/metastore2/schematest/"; + private static final String TEMP_DIR_4_SCHEMAS = TEMP_DIR_4_ALL + "schema/"; private static final String PID = "anyPID"; private static final ResourceIdentifier.IdentifierType PID_TYPE = ResourceIdentifier.IdentifierType.HANDLE; private static final String SCHEMA_ID = "dc"; @@ -121,9 +121,9 @@ public class SchemaRegistryControllerTest { private static final String LABEL = "any unique label for test"; private static final String DEFINITION = "any unique definition for test"; private static final String COMMENT = "any unique comment for test"; - private final static String KIT_SCHEMA = CreateSchemaUtil.KIT_SCHEMA; - - private final static String KIT_SCHEMA_V2 = "\n" @@ -138,15 +138,15 @@ public class SchemaRegistryControllerTest { + " \n" + " "; - private final static String KIT_DOCUMENT = CreateSchemaUtil.KIT_DOCUMENT; - private final static String INVALID_KIT_DOCUMENT = CreateSchemaUtil.KIT_DOCUMENT_INVALID_1; - private final static String SCHEMA_V1 = CreateSchemaUtil.XML_SCHEMA_V1; - private final static String SCHEMA_V2 = CreateSchemaUtil.XML_SCHEMA_V2; - private final static String SCHEMA_V3 = CreateSchemaUtil.XML_SCHEMA_V3; - private final static String XML_DOCUMENT_V1 = CreateSchemaUtil.XML_DOCUMENT_V1; - private final static String XML_DOCUMENT_V2 = CreateSchemaUtil.XML_DOCUMENT_V2; - private final static String XML_DOCUMENT_V3 = CreateSchemaUtil.XML_DOCUMENT_V3; - private final static String JSON_DOCUMENT = "{\"title\":\"any string\",\"date\": \"2020-10-16\"}"; + private static final String KIT_DOCUMENT = CreateSchemaUtil.KIT_DOCUMENT; + private static final String INVALID_KIT_DOCUMENT = CreateSchemaUtil.KIT_DOCUMENT_INVALID_1; + private static final String SCHEMA_V1 = CreateSchemaUtil.XML_SCHEMA_V1; + private static final String SCHEMA_V2 = CreateSchemaUtil.XML_SCHEMA_V2; + private static final String SCHEMA_V3 = CreateSchemaUtil.XML_SCHEMA_V3; + private static final String XML_DOCUMENT_V1 = CreateSchemaUtil.XML_DOCUMENT_V1; + private static final String XML_DOCUMENT_V2 = CreateSchemaUtil.XML_DOCUMENT_V2; + private static final String XML_DOCUMENT_V3 = CreateSchemaUtil.XML_DOCUMENT_V3; + private static final String JSON_DOCUMENT = "{\"title\":\"any string\",\"date\": \"2020-10-16\"}"; private static final String RELATED_RESOURCE_STRING = "anyResourceId"; private static final ResourceIdentifier RELATED_RESOURCE = ResourceIdentifier.factoryInternalResourceIdentifier(RELATED_RESOURCE_STRING); @@ -1056,6 +1056,8 @@ public void testUpdateRecordAndDocument() throws Exception { body = result.getResponse().getContentAsString(); MetadataSchemaRecord record2 = mapper.readValue(body, MetadataSchemaRecord.class); + Assert.assertNull(record2.getLicenseUri()); + Assert.assertEquals(record.getLicenseUri(), record2.getLicenseUri()); Assert.assertNotEquals(mimeTypeBefore, record2.getMimeType());//mime type was changed by update Assert.assertEquals(record.getCreatedAt(), record2.getCreatedAt()); testForNextVersion(record.getSchemaDocumentUri(), record2.getSchemaDocumentUri()); @@ -1074,6 +1076,86 @@ public void testUpdateRecordAndDocument() throws Exception { Assert.assertEquals(KIT_SCHEMA_V2, content); } + + @Test + public void testUpdateRecordAndDocumentWithLicense() throws Exception { + String schemaId = "updateRecordAndDocumentWithLicense".toLowerCase(Locale.getDefault()); + ingestSchemaRecord(schemaId); + MvcResult result = this.mockMvc.perform(get("/api/v1/schemas/" + schemaId).header("Accept", MetadataSchemaRecord.METADATA_SCHEMA_RECORD_MEDIA_TYPE)).andDo(print()).andExpect(status().isOk()).andReturn(); + String etag = result.getResponse().getHeader("ETag"); + String body = result.getResponse().getContentAsString(); + + ObjectMapper mapper = new ObjectMapper(); + MetadataSchemaRecord record = mapper.readValue(body, MetadataSchemaRecord.class); + String mimeTypeBefore = record.getMimeType(); + record.setMimeType(MediaType.APPLICATION_JSON.toString()); + record.setLicenseUri(APACHE_2_LICENSE); + System.out.println("****************************************************************************************"); + System.out.println("****************************************************************************************"); + System.out.println(mapper.writeValueAsString(record)); + MockMultipartFile recordFile = new MockMultipartFile("record", "metadata-record.json", "application/json", mapper.writeValueAsString(record).getBytes()); + MockMultipartFile schemaFile = new MockMultipartFile("schema", "schema.xsd", "application/xml", KIT_SCHEMA_V2.getBytes()); + + result = this.mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/schemas/" + schemaId). + file(recordFile). + file(schemaFile). + header("If-Match", etag). + with(putMultipart())). + andDo(print()). + andExpect(status().isOk()). + andExpect(redirectedUrlPattern("http://*:*/**/" + record.getSchemaId() + "?version=*")). + andReturn(); + body = result.getResponse().getContentAsString(); + etag = result.getResponse().getHeader("ETag"); + + MetadataSchemaRecord record2 = mapper.readValue(body, MetadataSchemaRecord.class); + Assert.assertNotNull(record2.getLicenseUri()); + Assert.assertEquals(record.getLicenseUri(), record2.getLicenseUri()); + Assert.assertNotEquals(mimeTypeBefore, record2.getMimeType());//mime type was changed by update + Assert.assertEquals(record.getCreatedAt(), record2.getCreatedAt()); + testForNextVersion(record.getSchemaDocumentUri(), record2.getSchemaDocumentUri()); +// Assert.assertEquals(record.getSchemaDocumentUri().replace("version=1", "version=2"), record2.getSchemaDocumentUri()); + Assert.assertNotEquals(record.getSchemaHash(), record2.getSchemaHash()); + Assert.assertEquals(record.getSchemaId(), record2.getSchemaId()); + Assert.assertEquals((long) record.getSchemaVersion() + 1l, (long) record2.getSchemaVersion());//version is not changing for metadata update + if (record.getAcl() != null) { + Assert.assertTrue(record.getAcl().containsAll(record2.getAcl())); + } + Assert.assertTrue(record.getLastUpdate().isBefore(record2.getLastUpdate())); + // Test also document for update + result = this.mockMvc.perform(get("/api/v1/schemas/" + schemaId)).andDo(print()).andExpect(status().isOk()).andReturn(); + String content = result.getResponse().getContentAsString(); + + Assert.assertEquals(KIT_SCHEMA_V2, content); + // Remove license + record2.setLicenseUri(null); + recordFile = new MockMultipartFile("record", "metadata-record.json", "application/json", mapper.writeValueAsString(record2).getBytes()); + + result = this.mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/schemas/" + schemaId). + file(recordFile). + header("If-Match", etag). + with(putMultipart())). + andDo(print()). + andExpect(status().isOk()). + andExpect(redirectedUrlPattern("http://*:*/**/" + record.getSchemaId() + "?version=*")). + andReturn(); + body = result.getResponse().getContentAsString(); + + MetadataSchemaRecord record3 = mapper.readValue(body, MetadataSchemaRecord.class); + Assert.assertNull(record3.getLicenseUri()); + Assert.assertEquals(record2.getMimeType(), record3.getMimeType());//mime type was changed by update + Assert.assertEquals(record2.getCreatedAt(), record3.getCreatedAt()); + Assert.assertEquals(record2.getSchemaDocumentUri(), record3.getSchemaDocumentUri()); +// Assert.assertEquals(record.getSchemaDocumentUri().replace("version=1", "version=2"), record2.getSchemaDocumentUri()); + Assert.assertEquals(record2.getSchemaHash(), record3.getSchemaHash()); + Assert.assertEquals(record2.getSchemaId(), record3.getSchemaId()); + Assert.assertEquals((long) record.getSchemaVersion() + 1l, (long) record2.getSchemaVersion());//version is not changing for metadata update + if (record.getAcl() != null) { + Assert.assertTrue(record2.getAcl().containsAll(record3.getAcl())); + } + Assert.assertTrue(record2.getLastUpdate().isBefore(record3.getLastUpdate())); + } + @Test public void testUpdateRecordAndDocumentWithWrongVersion() throws Exception { String schemaId = "updateRecordAndDocumentWithWrongVersion".toLowerCase(Locale.getDefault()); diff --git a/src/test/java/edu/kit/datamanager/metastore2/util/MetadataRecordUtilTest.java b/src/test/java/edu/kit/datamanager/metastore2/util/MetadataRecordUtilTest.java index a5615a96..e8743f91 100644 --- a/src/test/java/edu/kit/datamanager/metastore2/util/MetadataRecordUtilTest.java +++ b/src/test/java/edu/kit/datamanager/metastore2/util/MetadataRecordUtilTest.java @@ -21,6 +21,7 @@ import edu.kit.datamanager.repo.domain.DataResource; import edu.kit.datamanager.repo.domain.Date; import edu.kit.datamanager.repo.domain.RelatedIdentifier; +import edu.kit.datamanager.repo.domain.Scheme; import java.time.Instant; import java.util.function.UnaryOperator; import org.javers.core.Javers; @@ -82,6 +83,7 @@ public class MetadataRecordUtilTest { private final static String TEMP_DIR_4_METADATA = TEMP_DIR_4_ALL + "metadata/"; private static final String METADATA_RECORD_ID = "test_id"; private static final String PID = "anyPID"; + private static final String LICENSE = "https://spdx.org/licenses/Apache-2.0"; private static final String PRINCIPAL = "principal"; private static final String SCHEMA_ID = "my_dc"; private static final String INVALID_SCHEMA = "invalid_dc"; @@ -670,6 +672,7 @@ public void testMigrateToMetadataRecord() { assertEquals("Id should be the same!", result.getId(), dataResource.getId()); assertEquals("Version should be '1'", Long.valueOf(1l), result.getRecordVersion()); assertTrue("ACL should be empty", result.getAcl().isEmpty()); + assertTrue("License should be 'null'", result.getLicenseUri() == null); assertNull("PID should be empty", result.getPid()); assertNull("Create date should be empty!", result.getCreatedAt()); assertNull("Last update date should be empty!", result.getLastUpdate()); @@ -682,6 +685,7 @@ public void testMigrateToMetadataRecord() { assertEquals("Id should be the same!", result.getId(), dataResource.getId()); assertEquals("Version should be '1'", Long.valueOf(1l), result.getRecordVersion()); assertTrue("ACL should be empty", result.getAcl().isEmpty()); + assertTrue("License should be 'null'", result.getLicenseUri() == null); assertNull("PID should be empty", result.getPid()); assertNull("Create date should be empty!", result.getCreatedAt()); assertNull("Last update date should be empty!", result.getLastUpdate()); @@ -693,12 +697,30 @@ public void testMigrateToMetadataRecord() { assertEquals("Id should be the same!", result.getId(), dataResource.getId()); assertEquals("Version should be '1'", Long.valueOf(1l), result.getRecordVersion()); assertTrue("ACL should be empty", result.getAcl().isEmpty()); + assertTrue("License should be 'null'", result.getLicenseUri() == null); assertNull("Create date should be empty!", result.getCreatedAt()); assertNull("Last update date should be empty!", result.getLastUpdate()); // PID should be set assertNotNull("PID shouldn't be NULL", result.getPid()); assertEquals(PID, result.getPid().getIdentifier()); assertEquals(ResourceIdentifier.IdentifierType.UPC, result.getPid().getIdentifierType()); + // Test migration of PID with two alternate identifiers (internal & UPC) + dataResource.getRights().add(Scheme.factoryScheme("test", LICENSE)); + result = MetadataRecordUtil.migrateToMetadataRecord(applicationProperties, dataResource, false); + assertNotNull(result.getId()); + assertEquals("Id should be the same!", result.getId(), dataResource.getId()); + assertEquals("Version should be '1'", Long.valueOf(1l), result.getRecordVersion()); + assertTrue("ACL should be empty", result.getAcl().isEmpty()); + assertNull("Create date should be empty!", result.getCreatedAt()); + assertNull("Last update date should be empty!", result.getLastUpdate()); + // PID should be set + assertNotNull("PID shouldn't be NULL", result.getPid()); + assertEquals(PID, result.getPid().getIdentifier()); + assertEquals(ResourceIdentifier.IdentifierType.UPC, result.getPid().getIdentifierType()); + // License should be set + assertNotNull("License shouldn't be NULL", result.getLicenseUri()); + assertEquals(LICENSE, result.getLicenseUri()); + // Add schemaID, resourceType, relatedIdentifier for schema //@ToDo Make this working again // dataResource.getTitles().add(Title.factoryTitle(SCHEMA_ID)); From 179e2af031878f593fabbd4bc8e3fd635d722a55 Mon Sep 17 00:00:00 2001 From: Volker Hartmann Date: Tue, 13 Feb 2024 13:02:58 +0100 Subject: [PATCH 12/50] Implement code for licenseUri. --- .../metastore2/util/MetadataRecordUtil.java | 39 ++++++++++-- .../util/MetadataSchemaRecordUtil.java | 60 +++++++++++-------- 2 files changed, 69 insertions(+), 30 deletions(-) diff --git a/src/main/java/edu/kit/datamanager/metastore2/util/MetadataRecordUtil.java b/src/main/java/edu/kit/datamanager/metastore2/util/MetadataRecordUtil.java index 1532ea25..1e1d04bd 100644 --- a/src/main/java/edu/kit/datamanager/metastore2/util/MetadataRecordUtil.java +++ b/src/main/java/edu/kit/datamanager/metastore2/util/MetadataRecordUtil.java @@ -40,6 +40,7 @@ import edu.kit.datamanager.repo.domain.Date; import edu.kit.datamanager.repo.domain.RelatedIdentifier; import edu.kit.datamanager.repo.domain.ResourceType; +import edu.kit.datamanager.repo.domain.Scheme; import edu.kit.datamanager.repo.domain.Title; import edu.kit.datamanager.repo.domain.acl.AclEntry; import edu.kit.datamanager.repo.service.IContentInformationService; @@ -445,6 +446,7 @@ public static DataResource migrateToDataResource(RepoBaseConfiguration applicati dataResource.getTitles().add(Title.factoryTitle(defaultTitle, Title.TYPE.OTHER)); } dataResource.setResourceType(ResourceType.createResourceType(MetadataRecord.RESOURCE_TYPE)); + checkLicense(dataResource, metadataRecord.getLicenseUri()); return dataResource; } @@ -562,6 +564,10 @@ public static MetadataRecord migrateToMetadataRecord(RepoBaseConfiguration appli } } } + // Only one license allowed. So don't worry about size of set. + if (!dataResource.getRights().isEmpty()) { + metadataRecord.setLicenseUri(dataResource.getRights().iterator().next().getSchemeUri()); + } long nano5 = System.nanoTime() / 1000000; LOG.info("Migrate to MetadataRecord, {}, {}, {}, {}, {}, {}", nano1, nano2 - nano1, nano3 - nano1, nano4 - nano1, nano5 - nano1, provideETag); } @@ -622,7 +628,8 @@ public static MetadataSchemaRecord getCurrentInternalSchemaRecord(MetastoreConfi URI finalUri = builder.build().toUri(); try { - returnValue = SimpleServiceClient.create(finalUri.toString()).withBearerToken(guestToken).accept(MetadataSchemaRecord.METADATA_SCHEMA_RECORD_MEDIA_TYPE).getResource(MetadataSchemaRecord.class); + returnValue = SimpleServiceClient.create(finalUri.toString()).withBearerToken(guestToken).accept(MetadataSchemaRecord.METADATA_SCHEMA_RECORD_MEDIA_TYPE).getResource(MetadataSchemaRecord.class + ); success = true; break; } catch (HttpClientErrorException ce) { @@ -672,7 +679,8 @@ public static MetadataSchemaRecord getInternalSchemaRecord(MetastoreConfiguratio URI finalUri = builder.build().toUri(); try { - returnValue = SimpleServiceClient.create(finalUri.toString()).withBearerToken(guestToken).accept(MetadataSchemaRecord.METADATA_SCHEMA_RECORD_MEDIA_TYPE).getResource(MetadataSchemaRecord.class); + returnValue = SimpleServiceClient.create(finalUri.toString()).withBearerToken(guestToken).accept(MetadataSchemaRecord.METADATA_SCHEMA_RECORD_MEDIA_TYPE).getResource(MetadataSchemaRecord.class + ); success = true; break; } catch (HttpClientErrorException ce) { @@ -856,9 +864,10 @@ public static MetadataRecord mergeRecords(MetadataRecord managed, MetadataRecord managed.setRelatedResource(mergeEntry("Updating record->relatedResource", managed.getRelatedResource(), provided.getRelatedResource())); //update schemaId managed.setSchema(mergeEntry("Updating record->schema", managed.getSchema(), provided.getSchema())); - //update schemaVersion managed.setSchemaVersion(mergeEntry("Updating record->schemaVersion", managed.getSchemaVersion(), provided.getSchemaVersion())); + // update licenseUri + managed.setLicenseUri(mergeEntry("Updating record->licenseUri", managed.getLicenseUri(), provided.getLicenseUri(), true)); } else { managed = (managed != null) ? managed : provided; } @@ -1048,7 +1057,29 @@ public static boolean checkAccessRights(Set aclEntries, boolean curren public static final void fixMetadataDocumentUri(MetadataRecord metadataRecord) { String metadataDocumentUri = metadataRecord.getMetadataDocumentUri(); - metadataRecord.setMetadataDocumentUri(WebMvcLinkBuilder.linkTo(WebMvcLinkBuilder.methodOn(MetadataControllerImpl.class).getMetadataDocumentById(metadataRecord.getId(), metadataRecord.getRecordVersion(), null, null)).toUri().toString()); + metadataRecord + .setMetadataDocumentUri(WebMvcLinkBuilder.linkTo(WebMvcLinkBuilder.methodOn(MetadataControllerImpl.class + ).getMetadataDocumentById(metadataRecord.getId(), metadataRecord.getRecordVersion(), null, null)).toUri().toString()); LOG.trace("Fix metadata document Uri '{}' -> '{}'", metadataDocumentUri, metadataRecord.getMetadataDocumentUri()); } + + public static void checkLicense(DataResource dataResource, String licenseUri) { + if (licenseUri != null) { + Set rights = dataResource.getRights(); + String licenseId = licenseUri.substring(licenseUri.lastIndexOf("/")); + Scheme license = Scheme.factoryScheme(licenseId, licenseUri); + if (rights.isEmpty()) { + rights.add(license); + } else { + // Check if license already exists (only one license allowed) + if (!rights.contains(license)) { + rights.clear(); + rights.add(license); + } + } + } else { + // Remove license + dataResource.getRights().clear(); + } + } } diff --git a/src/main/java/edu/kit/datamanager/metastore2/util/MetadataSchemaRecordUtil.java b/src/main/java/edu/kit/datamanager/metastore2/util/MetadataSchemaRecordUtil.java index 5b27d854..f7c55088 100644 --- a/src/main/java/edu/kit/datamanager/metastore2/util/MetadataSchemaRecordUtil.java +++ b/src/main/java/edu/kit/datamanager/metastore2/util/MetadataSchemaRecordUtil.java @@ -45,6 +45,7 @@ import edu.kit.datamanager.repo.domain.Date; import edu.kit.datamanager.repo.domain.Description; import edu.kit.datamanager.repo.domain.ResourceType; +import edu.kit.datamanager.repo.domain.Scheme; import edu.kit.datamanager.repo.domain.Title; import edu.kit.datamanager.repo.service.IContentInformationService; import edu.kit.datamanager.repo.util.ContentDataUtils; @@ -444,6 +445,7 @@ public static DataResource migrateToDataResource(RepoBaseConfiguration applicati checkDescription(descriptions, metadataSchemaRecord.getLabel(), Description.TYPE.OTHER); checkDescription(descriptions, metadataSchemaRecord.getDefinition(), Description.TYPE.TECHNICAL_INFO); checkDescription(descriptions, metadataSchemaRecord.getComment(), Description.TYPE.ABSTRACT); + MetadataRecordUtil.checkLicense(dataResource, metadataSchemaRecord.getLicenseUri()); return dataResource; } @@ -601,30 +603,34 @@ public static MetadataSchemaRecord migrateToMetadataSchemaRecord(RepoBaseConfigu saveNewSchemaRecord(metadataSchemaRecord); } } - } - long nano7 = System.nanoTime() / 1000000; - // label -> description of type (OTHER) - // description -> description of type (TECHNICAL_INFO) - // comment -> description of type (ABSTRACT) - Iterator iterator = dataResource.getDescriptions().iterator(); - while (iterator.hasNext()) { - Description nextDescription = iterator.next(); - switch (nextDescription.getType()) { - case ABSTRACT: - metadataSchemaRecord.setComment(nextDescription.getDescription()); - break; - case TECHNICAL_INFO: - metadataSchemaRecord.setDefinition(nextDescription.getDescription()); - break; - case OTHER: - metadataSchemaRecord.setLabel(nextDescription.getDescription()); - break; - default: - LOG.trace("Unknown description type: '{}' -> skipped", nextDescription.getType()); + long nano7 = System.nanoTime() / 1000000; + // label -> description of type (OTHER) + // description -> description of type (TECHNICAL_INFO) + // comment -> description of type (ABSTRACT) + Iterator desc_iterator = dataResource.getDescriptions().iterator(); + while (desc_iterator.hasNext()) { + Description nextDescription = desc_iterator.next(); + switch (nextDescription.getType()) { + case ABSTRACT: + metadataSchemaRecord.setComment(nextDescription.getDescription()); + break; + case TECHNICAL_INFO: + metadataSchemaRecord.setDefinition(nextDescription.getDescription()); + break; + case OTHER: + metadataSchemaRecord.setLabel(nextDescription.getDescription()); + break; + default: + LOG.trace("Unknown description type: '{}' -> skipped", nextDescription.getType()); + } + } + // Only one license allowed. So don't worry about size of set. + if (!dataResource.getRights().isEmpty()) { + metadataSchemaRecord.setLicenseUri(dataResource.getRights().iterator().next().getSchemeUri()); + } + if (LOG.isTraceEnabled()) { + LOG.trace("Migrate to schema record, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}", nano1, nano2 - nano1, nano3 - nano1, nano4 - nano1, nano4 - nano1, nano5 - nano1, nano6 - nano1, nano7 - nano1, provideETag); } - } - if (LOG.isTraceEnabled()) { - LOG.trace("Migrate to schema record, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}", nano1, nano2 - nano1, nano3 - nano1, nano4 - nano1, nano4 - nano1, nano5 - nano1, nano6 - nano1, nano7 - nano1, provideETag); } return metadataSchemaRecord; } @@ -916,9 +922,9 @@ public static MetadataSchemaRecord getRecordByIdAndVersion(MetastoreConfiguratio MetadataSchemaRecord result = null; Page dataResource; try { - dataResource = metastoreProperties.getDataResourceService().findAllVersions(recordId, null); + dataResource = metastoreProperties.getDataResourceService().findAllVersions(recordId, null); } catch (ResourceNotFoundException rnfe) { - rnfe.setDetail("Schema document with ID '" + recordId + "' doesn't exist!"); + rnfe.setDetail("Schema document with ID '" + recordId + "' doesn't exist!"); throw rnfe; } long nano2 = System.nanoTime() / 1000000; @@ -930,7 +936,7 @@ public static MetadataSchemaRecord getRecordByIdAndVersion(MetastoreConfiguratio if (findFirst.isPresent()) { result = migrateToMetadataSchemaRecord(metastoreProperties, findFirst.get(), supportEtag); } else { - String message = String.format("Version '%d' of ID '%s' doesn't exist!",version, recordId); + String message = String.format("Version '%d' of ID '%s' doesn't exist!", version, recordId); LOG.error(message); throw new ResourceNotFoundException(message); } @@ -968,6 +974,8 @@ public static MetadataSchemaRecord mergeRecords(MetadataSchemaRecord managed, Me managed.setSchemaId(mergeEntry("Updating record->schema", managed.getSchemaId(), provided.getSchemaId())); //update schemaVersion managed.setSchemaVersion(mergeEntry("Updating record->schemaVersion", managed.getSchemaVersion(), provided.getSchemaVersion())); + // update licenseUri + managed.setLicenseUri(mergeEntry("Updating record->licenseUri", managed.getLicenseUri(), provided.getLicenseUri(), true)); } else { managed = (managed != null) ? managed : provided; } From 31b3ea8eeb1c646b08af1aff420778874ddb941f Mon Sep 17 00:00:00 2001 From: Volker Hartmann Date: Tue, 13 Feb 2024 13:03:46 +0100 Subject: [PATCH 13/50] Add licenseUri as optional field for records to documentation. --- docs/documentation.adoc | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/docs/documentation.adoc b/docs/documentation.adoc index e6fe0300..d362aba5 100644 --- a/docs/documentation.adoc +++ b/docs/documentation.adoc @@ -67,6 +67,7 @@ like this: "sid" : "...", "permission" : "..." } ], + "licenseUri" : "...", "schemaDocumentUri" : "...", "schemaHash" : "...", "locked" : false @@ -81,6 +82,8 @@ At least the following elements are expected to be provided by the user: In addition, ACL may be useful to make schema readable/editable by others. This will be of interest while accessing/updating an existing schema.(if authorization is enabled) +[NOTE] +License URI is optional. It's new since 1.5.0. === Registering a Metadata Schema Document @@ -464,6 +467,7 @@ like this: "sid": "...", "permission": "..." }], + "licenseUri": "...", "metadataDocumentUri": "...", "documentHash": "..." } @@ -479,6 +483,9 @@ In addition, ACL may be useful to make metadata editable by others. (This will b [NOTE] If linked schema is identified by its schemaId the INTERNAL type has to be used. +[NOTE] +License URI is optional. It's new since 1.5.0. + ==== Register/Ingest a Metadata Record with Metadata Document The following example shows the creation of the first metadata record and its metadata only providing mandatory fields mentioned above: @@ -757,6 +764,7 @@ like this: "sid" : "...", "permission" : "..." } ], + "licenseUri" : "...", "schemaDocumentUri" : "...", "schemaHash" : "...", "locked" : false @@ -771,6 +779,9 @@ At least the following elements are expected to be provided by the user: In addition, ACL may be useful to make schema editable by others. (This will be of interest while updating an existing schema) +[NOTE] +License URI is optional. It's new since 1.5.0. + === Registering a Metadata Schema Document The following example shows the creation of the first json schema only providing mandatory fields mentioned above: @@ -1186,6 +1197,7 @@ like this: "sid": "...", "permission": "..." }], + "licenseUri": "...", "metadataDocumentUri": "...", "documentHash": "..." } @@ -1198,6 +1210,9 @@ At least the following elements are expected to be provided by the user: In addition, ACL may be useful to make metadata editable by others. (This will be of interest while updating an existing metadata) +[NOTE] +License URI is optional. It's new since 1.5.0. + ==== Register/Ingest a Metadata Record with Metadata Document The following example shows the creation of the first metadata record and its metadata only providing mandatory fields mentioned above: From 98e6391a2ddb4b737267889538bd2dfcf5c8fedf Mon Sep 17 00:00:00 2001 From: Volker Hartmann Date: Wed, 14 Feb 2024 13:54:41 +0100 Subject: [PATCH 14/50] Use regexp additional to date format in JSON schema files. --- .../metastore2/test/JsonSchemaRegistryControllerTest.java | 4 +++- .../edu/kit/datamanager/metastore2/util/JsonUtilsTest.java | 3 +-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/test/java/edu/kit/datamanager/metastore2/test/JsonSchemaRegistryControllerTest.java b/src/test/java/edu/kit/datamanager/metastore2/test/JsonSchemaRegistryControllerTest.java index 6775d6ee..bf7a2933 100644 --- a/src/test/java/edu/kit/datamanager/metastore2/test/JsonSchemaRegistryControllerTest.java +++ b/src/test/java/edu/kit/datamanager/metastore2/test/JsonSchemaRegistryControllerTest.java @@ -114,6 +114,7 @@ public class JsonSchemaRegistryControllerTest { + " \"date\": {\n" + " \"type\": \"string\",\n" + " \"format\": \"date\",\n" + + " \"pattern\": \"^[0-9]{4}-[01][0-9]-[0-3][0-9]$\",\n" + " \"title\": \"Date\",\n" + " \"description\": \"Date of object\"\n" + " }\n" @@ -139,6 +140,7 @@ public class JsonSchemaRegistryControllerTest { + " \"date\": {\n" + " \"type\": \"string\",\n" + " \"format\": \"date\",\n" + + " \"pattern\": \"^[0-9]{4}-[01][0-9]-[0-3][0-9]$\",\n" + " \"title\": \"Date\",\n" + " \"description\": \"Date of object\"\n" + " },\n" @@ -164,7 +166,7 @@ public class JsonSchemaRegistryControllerTest { + " } " + "}"; private final static String JSON_DOCUMENT = "{\"title\":\"any string\",\"date\": \"2020-10-16\"}"; - private final static String INVALID_JSON_DOCUMENT = "{\"title\":\"any string\",\"dates\":\"2020-10-16T10:13:24\"}"; + private final static String INVALID_JSON_DOCUMENT = "{\"title\":\"any string\",\"date\":\"2020-10-16T10:13:24\"}"; private final static String DC_DOCUMENT = "\n" + "\n" + " Carbon, Seth\n" diff --git a/src/test/java/edu/kit/datamanager/metastore2/util/JsonUtilsTest.java b/src/test/java/edu/kit/datamanager/metastore2/util/JsonUtilsTest.java index c3ea28f7..b9a2017f 100644 --- a/src/test/java/edu/kit/datamanager/metastore2/util/JsonUtilsTest.java +++ b/src/test/java/edu/kit/datamanager/metastore2/util/JsonUtilsTest.java @@ -18,7 +18,6 @@ import org.junit.BeforeClass; import org.junit.Test; import static org.junit.Assert.*; -import org.junit.Ignore; /** * @@ -74,6 +73,7 @@ public class JsonUtilsTest { + " },\n" + " \"date\": {\n" + " \"type\": \"string\",\n" + + " \"pattern\": \"^[0-9]{4}-[01][0-9]-[0-3][0-9]$\",\n" + " \"format\": \"date\",\n" + " \"title\": \"Date\",\n" + " \"description\": \"Date of object\"\n" @@ -715,7 +715,6 @@ public void testValidateDateJson() { * Test of validateJson method, of class JsonUtils. */ @Test - @Ignore public void testValidateJsonWithInvalidDateDocument() { System.out.println("testValidateJsonWithInvalidDateDocument"); String[] jsonDocuments = {invalidDateDocument}; From aa4ad34611f889f50592cedf7e51a72061cc9f3c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Feb 2024 14:21:50 +0000 Subject: [PATCH 15/50] Bump org.springframework.data:spring-data-elasticsearch Bumps [org.springframework.data:spring-data-elasticsearch](https://github.com/spring-projects/spring-data-elasticsearch) from 5.2.2 to 5.2.3. - [Release notes](https://github.com/spring-projects/spring-data-elasticsearch/releases) - [Commits](https://github.com/spring-projects/spring-data-elasticsearch/compare/5.2.2...5.2.3) --- updated-dependencies: - dependency-name: org.springframework.data:spring-data-elasticsearch dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 59dfe25c..1509fa04 100644 --- a/build.gradle +++ b/build.gradle @@ -113,7 +113,7 @@ dependencies { implementation "edu.kit.datamanager:service-base:1.2.0" // elasticsearch (since service-base 1.1.0) - implementation "org.springframework.data:spring-data-elasticsearch:5.2.2" + implementation "org.springframework.data:spring-data-elasticsearch:5.2.3" // DOIP SDK implementation "net.dona.doip:doip-sdk:2.2.0" From dcbbcf2efbd78b3cfa0bf09c08385e427f9671fd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Feb 2024 14:21:59 +0000 Subject: [PATCH 16/50] Bump com.google.errorprone:error_prone_core from 2.24.1 to 2.25.0 Bumps [com.google.errorprone:error_prone_core](https://github.com/google/error-prone) from 2.24.1 to 2.25.0. - [Release notes](https://github.com/google/error-prone/releases) - [Commits](https://github.com/google/error-prone/compare/v2.24.1...v2.25.0) --- updated-dependencies: - dependency-name: com.google.errorprone:error_prone_core dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 59dfe25c..d31ebd7b 100644 --- a/build.gradle +++ b/build.gradle @@ -20,7 +20,7 @@ ext { springDocVersion = '2.3.0' javersVersion = '7.3.7' keycloakVersion = '19.0.0' - errorproneVersion = '2.24.1' + errorproneVersion = '2.25.0' // directory for generated code snippets during tests snippetsDir = file("build/generated-snippets") } From 89df3beb73007c8cbf594432b6ef1e558a15c226 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Feb 2024 14:22:10 +0000 Subject: [PATCH 17/50] Bump io.freefair.lombok from 8.4 to 8.6 Bumps [io.freefair.lombok](https://github.com/freefair/gradle-plugins) from 8.4 to 8.6. - [Release notes](https://github.com/freefair/gradle-plugins/releases) - [Commits](https://github.com/freefair/gradle-plugins/compare/8.4...8.6) --- updated-dependencies: - dependency-name: io.freefair.lombok dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 59dfe25c..63fa9c15 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ plugins { id 'org.springframework.boot' version '3.2.2' id 'io.spring.dependency-management' version '1.1.4' - id 'io.freefair.lombok' version '8.4' + id 'io.freefair.lombok' version '8.6' id 'io.freefair.maven-publish-java' version '8.4' id 'org.owasp.dependencycheck' version '9.0.9' id 'org.asciidoctor.jvm.convert' version '4.0.2' From 5d3220032f7e5c3971cef1d7104568bfc6f6f9f4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Feb 2024 06:22:18 +0000 Subject: [PATCH 18/50] Bump io.freefair.maven-publish-java from 8.4 to 8.6 Bumps [io.freefair.maven-publish-java](https://github.com/freefair/gradle-plugins) from 8.4 to 8.6. - [Release notes](https://github.com/freefair/gradle-plugins/releases) - [Commits](https://github.com/freefair/gradle-plugins/compare/8.4...8.6) --- updated-dependencies: - dependency-name: io.freefair.maven-publish-java dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index ce986922..ca102965 100644 --- a/build.gradle +++ b/build.gradle @@ -2,7 +2,7 @@ plugins { id 'org.springframework.boot' version '3.2.2' id 'io.spring.dependency-management' version '1.1.4' id 'io.freefair.lombok' version '8.6' - id 'io.freefair.maven-publish-java' version '8.4' + id 'io.freefair.maven-publish-java' version '8.6' id 'org.owasp.dependencycheck' version '9.0.9' id 'org.asciidoctor.jvm.convert' version '4.0.2' id 'net.ltgt.errorprone' version '3.1.0' From 9f7a9fb04853031e2eda0b890f4681827ade0acc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Feb 2024 14:48:25 +0000 Subject: [PATCH 19/50] Bump org.springframework.boot from 3.2.2 to 3.2.3 Bumps [org.springframework.boot](https://github.com/spring-projects/spring-boot) from 3.2.2 to 3.2.3. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.2...v3.2.3) --- updated-dependencies: - dependency-name: org.springframework.boot dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index f9930788..4cf28048 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'org.springframework.boot' version '3.2.2' + id 'org.springframework.boot' version '3.2.3' id 'io.spring.dependency-management' version '1.1.4' id 'io.freefair.lombok' version '8.6' id 'io.freefair.maven-publish-java' version '8.6' From 9b750dfd3e1c88cb3542633d28fd07b1d27b4701 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Feb 2024 14:48:37 +0000 Subject: [PATCH 20/50] Bump javersVersion from 7.3.7 to 7.3.8 Bumps `javersVersion` from 7.3.7 to 7.3.8. Updates `org.javers:javers-spring-boot-starter-sql` from 7.3.7 to 7.3.8 - [Release notes](https://github.com/javers/javers/releases) - [Commits](https://github.com/javers/javers/compare/javers-7.3.7...javers-7.3.8) Updates `org.javers:javers-core` from 7.3.7 to 7.3.8 - [Release notes](https://github.com/javers/javers/releases) - [Commits](https://github.com/javers/javers/compare/javers-7.3.7...javers-7.3.8) --- updated-dependencies: - dependency-name: org.javers:javers-spring-boot-starter-sql dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.javers:javers-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index f9930788..30f11841 100644 --- a/build.gradle +++ b/build.gradle @@ -18,7 +18,7 @@ group = 'edu.kit.datamanager' ext { // versions of dependencies springDocVersion = '2.3.0' - javersVersion = '7.3.7' + javersVersion = '7.3.8' keycloakVersion = '19.0.0' errorproneVersion = '2.25.0' // directory for generated code snippets during tests From ef441c2e566e35fb258617ba33c4c3495b4cc300 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Feb 2024 14:48:40 +0000 Subject: [PATCH 21/50] Bump org.postgresql:postgresql from 42.7.1 to 42.7.2 Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.1 to 42.7.2. - [Release notes](https://github.com/pgjdbc/pgjdbc/releases) - [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md) - [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.7.1...REL42.7.2) --- updated-dependencies: - dependency-name: org.postgresql:postgresql dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index f9930788..31401f35 100644 --- a/build.gradle +++ b/build.gradle @@ -94,7 +94,7 @@ dependencies { implementation "org.javers:javers-core:${javersVersion}" // driver for postgres - implementation "org.postgresql:postgresql:42.7.1" + implementation "org.postgresql:postgresql:42.7.2" //driver for h2 implementation "com.h2database:h2:2.2.224" From 4046cc3bcf46278da2fb2b37b95cc23d7cb5570e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Mar 2024 14:19:33 +0000 Subject: [PATCH 22/50] Bump org.mockito:mockito-core from 5.10.0 to 5.11.0 Bumps [org.mockito:mockito-core](https://github.com/mockito/mockito) from 5.10.0 to 5.11.0. - [Release notes](https://github.com/mockito/mockito/releases) - [Commits](https://github.com/mockito/mockito/compare/v5.10.0...v5.11.0) --- updated-dependencies: - dependency-name: org.mockito:mockito-core dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 4add3019..dc86663f 100644 --- a/build.gradle +++ b/build.gradle @@ -127,7 +127,7 @@ dependencies { testImplementation "org.springframework.security:spring-security-test" //Java 11 Support - testImplementation "org.mockito:mockito-core:5.10.0" + testImplementation "org.mockito:mockito-core:5.11.0" testImplementation "junit:junit:4.13.2" testImplementation "com.github.stefanbirkner:system-lambda:1.2.1" From 99d301453eecfabf45aa169943ad621ccc25e58d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Mar 2024 14:15:13 +0000 Subject: [PATCH 23/50] Bump javersVersion from 7.3.8 to 7.4.0 Bumps `javersVersion` from 7.3.8 to 7.4.0. Updates `org.javers:javers-spring-boot-starter-sql` from 7.3.8 to 7.4.0 - [Release notes](https://github.com/javers/javers/releases) - [Commits](https://github.com/javers/javers/compare/javers-7.3.8...javers-7.4.0) Updates `org.javers:javers-core` from 7.3.8 to 7.4.0 - [Release notes](https://github.com/javers/javers/releases) - [Commits](https://github.com/javers/javers/compare/javers-7.3.8...javers-7.4.0) --- updated-dependencies: - dependency-name: org.javers:javers-spring-boot-starter-sql dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.javers:javers-core dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 4add3019..c1f5030e 100644 --- a/build.gradle +++ b/build.gradle @@ -18,7 +18,7 @@ group = 'edu.kit.datamanager' ext { // versions of dependencies springDocVersion = '2.3.0' - javersVersion = '7.3.8' + javersVersion = '7.4.0' keycloakVersion = '19.0.0' errorproneVersion = '2.25.0' // directory for generated code snippets during tests From 7b93420551800a5931aa3ccc56a2513ca05bf3d7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Mar 2024 14:36:40 +0000 Subject: [PATCH 24/50] Bump org.postgresql:postgresql from 42.7.2 to 42.7.3 Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.2 to 42.7.3. - [Release notes](https://github.com/pgjdbc/pgjdbc/releases) - [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md) - [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.7.2...REL42.7.3) --- updated-dependencies: - dependency-name: org.postgresql:postgresql dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 4add3019..7e507197 100644 --- a/build.gradle +++ b/build.gradle @@ -94,7 +94,7 @@ dependencies { implementation "org.javers:javers-core:${javersVersion}" // driver for postgres - implementation "org.postgresql:postgresql:42.7.2" + implementation "org.postgresql:postgresql:42.7.3" //driver for h2 implementation "com.h2database:h2:2.2.224" From a3dba03b5158f48c2cb864d791e458f0a0381ca6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Apr 2024 11:16:48 +0000 Subject: [PATCH 25/50] Bump javersVersion from 7.4.0 to 7.4.2 Bumps `javersVersion` from 7.4.0 to 7.4.2. Updates `org.javers:javers-spring-boot-starter-sql` from 7.4.0 to 7.4.2 - [Release notes](https://github.com/javers/javers/releases) - [Commits](https://github.com/javers/javers/compare/javers-7.4.0...javers-7.4.2) Updates `org.javers:javers-core` from 7.4.0 to 7.4.2 - [Release notes](https://github.com/javers/javers/releases) - [Commits](https://github.com/javers/javers/compare/javers-7.4.0...javers-7.4.2) --- updated-dependencies: - dependency-name: org.javers:javers-spring-boot-starter-sql dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.javers:javers-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 6ab3437a..56068079 100644 --- a/build.gradle +++ b/build.gradle @@ -18,7 +18,7 @@ group = 'edu.kit.datamanager' ext { // versions of dependencies springDocVersion = '2.3.0' - javersVersion = '7.4.0' + javersVersion = '7.4.2' keycloakVersion = '19.0.0' errorproneVersion = '2.25.0' // directory for generated code snippets during tests From f04641c4673098128149365a9c063f93033e6226 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Apr 2024 04:29:15 +0000 Subject: [PATCH 26/50] Bump springDocVersion from 2.3.0 to 2.5.0 Bumps `springDocVersion` from 2.3.0 to 2.5.0. Updates `org.springdoc:springdoc-openapi-starter-webmvc-ui` from 2.3.0 to 2.5.0 - [Release notes](https://github.com/springdoc/springdoc-openapi/releases) - [Changelog](https://github.com/springdoc/springdoc-openapi/blob/main/CHANGELOG.md) - [Commits](https://github.com/springdoc/springdoc-openapi/compare/v2.3.0...v2.5.0) Updates `org.springdoc:springdoc-openapi-starter-common` from 2.3.0 to 2.5.0 - [Release notes](https://github.com/springdoc/springdoc-openapi/releases) - [Changelog](https://github.com/springdoc/springdoc-openapi/blob/main/CHANGELOG.md) - [Commits](https://github.com/springdoc/springdoc-openapi/compare/v2.3.0...v2.5.0) Updates `org.springdoc:springdoc-openapi-starter-webmvc-api` from 2.3.0 to 2.5.0 - [Release notes](https://github.com/springdoc/springdoc-openapi/releases) - [Changelog](https://github.com/springdoc/springdoc-openapi/blob/main/CHANGELOG.md) - [Commits](https://github.com/springdoc/springdoc-openapi/compare/v2.3.0...v2.5.0) --- updated-dependencies: - dependency-name: org.springdoc:springdoc-openapi-starter-webmvc-ui dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.springdoc:springdoc-openapi-starter-common dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.springdoc:springdoc-openapi-starter-webmvc-api dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 56068079..ca56e4fd 100644 --- a/build.gradle +++ b/build.gradle @@ -17,7 +17,7 @@ group = 'edu.kit.datamanager' ext { // versions of dependencies - springDocVersion = '2.3.0' + springDocVersion = '2.5.0' javersVersion = '7.4.2' keycloakVersion = '19.0.0' errorproneVersion = '2.25.0' From f8b6a38b20e7468b8f0018007f2974d61a0e0215 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Apr 2024 05:24:09 +0000 Subject: [PATCH 27/50] Bump org.springframework.data:spring-data-elasticsearch Bumps [org.springframework.data:spring-data-elasticsearch](https://github.com/spring-projects/spring-data-elasticsearch) from 5.2.3 to 5.2.4. - [Release notes](https://github.com/spring-projects/spring-data-elasticsearch/releases) - [Commits](https://github.com/spring-projects/spring-data-elasticsearch/compare/5.2.3...5.2.4) --- updated-dependencies: - dependency-name: org.springframework.data:spring-data-elasticsearch dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 0463850b..8cf4a1d8 100644 --- a/build.gradle +++ b/build.gradle @@ -113,7 +113,7 @@ dependencies { implementation "edu.kit.datamanager:service-base:1.2.1" // elasticsearch (since service-base 1.1.0) - implementation "org.springframework.data:spring-data-elasticsearch:5.2.3" + implementation "org.springframework.data:spring-data-elasticsearch:5.2.4" // DOIP SDK implementation "net.dona.doip:doip-sdk:2.2.0" From b2a70b790b67efe149c5cc95fb4b4bac89506136 Mon Sep 17 00:00:00 2001 From: Volker Hartmann Date: Wed, 3 Apr 2024 07:55:23 +0200 Subject: [PATCH 28/50] Improve code coverage. --- .../test/MetadataControllerTest.java | 40 +++++++++++++++++-- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/src/test/java/edu/kit/datamanager/metastore2/test/MetadataControllerTest.java b/src/test/java/edu/kit/datamanager/metastore2/test/MetadataControllerTest.java index f915f3a3..8e99f448 100644 --- a/src/test/java/edu/kit/datamanager/metastore2/test/MetadataControllerTest.java +++ b/src/test/java/edu/kit/datamanager/metastore2/test/MetadataControllerTest.java @@ -115,6 +115,7 @@ public class MetadataControllerTest { private static final String UNKNOWN_RELATED_RESOURCE = "unknownHResourceId"; private static final String RELATED_RESOURCE_STRING = "anyResourceId"; private static final String APACHE_2_LICENSE = "https://spdx.org/licenses/Apache-2.0"; + private static final String MIT_LICENSE = "https://spdx.org/licenses/MIT"; private static final ResourceIdentifier RELATED_RESOURCE = ResourceIdentifier.factoryInternalResourceIdentifier(RELATED_RESOURCE_STRING); private static final ResourceIdentifier RELATED_RESOURCE_URL = ResourceIdentifier.factoryUrlResourceIdentifier(RELATED_RESOURCE_STRING); private static final ResourceIdentifier RELATED_RESOURCE_2 = ResourceIdentifier.factoryInternalResourceIdentifier("anyOtherResourceId"); @@ -1660,9 +1661,8 @@ public void testUpdateRecordWithLicense() throws Exception { etag = result.getResponse().getHeader("ETag"); body = result.getResponse().getContentAsString(); - mapper = new ObjectMapper(); record = mapper.readValue(body, MetadataRecord.class); - record.setLicenseUri(null); + record.setLicenseUri(MIT_LICENSE); recordFile = new MockMultipartFile("record", "metadata-record.json", "application/json", mapper.writeValueAsString(record).getBytes()); result = this.mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/metadata/" + record.getId()). @@ -1685,7 +1685,41 @@ record = mapper.readValue(body, MetadataRecord.class); Assert.assertTrue(record2.getAcl().containsAll(record3.getAcl())); } Assert.assertTrue(record2.getLastUpdate().isBefore(record3.getLastUpdate())); - Assert.assertNull(record3.getLicenseUri()); + Assert.assertNotNull(record3.getLicenseUri()); + Assert.assertTrue(record3.getLicenseUri().equals(MIT_LICENSE)); + result = this.mockMvc.perform(get("/api/v1/metadata/" + metadataRecordId). + header("Accept", MetadataRecord.METADATA_RECORD_MEDIA_TYPE)). + andDo(print()). + andExpect(status().isOk()). + andReturn(); + etag = result.getResponse().getHeader("ETag"); + body = result.getResponse().getContentAsString(); + + record = mapper.readValue(body, MetadataRecord.class); + record.setLicenseUri(null); + recordFile = new MockMultipartFile("record", "metadata-record.json", "application/json", mapper.writeValueAsString(record).getBytes()); + + result = this.mockMvc.perform(MockMvcRequestBuilders.multipart("/api/v1/metadata/" + record.getId()). + file(recordFile). + header("If-Match", etag). + with(putMultipart())). + andDo(print()). + andExpect(status().isOk()). + andReturn(); + +// result = this.mockMvc.perform(put("/api/v1/metadata/dc").header("If-Match", etag).contentType(MetadataRecord.METADATA_RECORD_MEDIA_TYPE).content(mapper.writeValueAsString(record))).andDo(print()).andExpect(status().isOk()).andReturn(); + body = result.getResponse().getContentAsString(); + + MetadataRecord record4 = mapper.readValue(body, MetadataRecord.class); + Assert.assertEquals(record2.getDocumentHash(), record4.getDocumentHash()); + Assert.assertEquals(record2.getCreatedAt(), record4.getCreatedAt()); + Assert.assertEquals(record2.getSchema().getIdentifier(), record4.getSchema().getIdentifier()); + Assert.assertEquals((long) record2.getRecordVersion(), (long)record4.getRecordVersion());// version should be the same + if (record.getAcl() != null) { + Assert.assertTrue(record2.getAcl().containsAll(record4.getAcl())); + } + Assert.assertTrue(record3.getLastUpdate().isBefore(record4.getLastUpdate())); + Assert.assertNull(record4.getLicenseUri()); } From 779836e106c4dcb7046e70dd61241909c9499d3e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Apr 2024 06:18:07 +0000 Subject: [PATCH 29/50] Bump com.google.errorprone:error_prone_core from 2.25.0 to 2.26.1 Bumps [com.google.errorprone:error_prone_core](https://github.com/google/error-prone) from 2.25.0 to 2.26.1. - [Release notes](https://github.com/google/error-prone/releases) - [Commits](https://github.com/google/error-prone/compare/v2.25.0...v2.26.1) --- updated-dependencies: - dependency-name: com.google.errorprone:error_prone_core dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 8cf4a1d8..48d3e32b 100644 --- a/build.gradle +++ b/build.gradle @@ -20,7 +20,7 @@ ext { springDocVersion = '2.5.0' javersVersion = '7.4.2' keycloakVersion = '19.0.0' - errorproneVersion = '2.25.0' + errorproneVersion = '2.26.1' // directory for generated code snippets during tests snippetsDir = file("build/generated-snippets") } From 11d56f9b11c017b1717417c01468f858a5f22718 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Apr 2024 06:18:14 +0000 Subject: [PATCH 30/50] Bump org.springframework.boot from 3.2.3 to 3.2.4 Bumps [org.springframework.boot](https://github.com/spring-projects/spring-boot) from 3.2.3 to 3.2.4. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.3...v3.2.4) --- updated-dependencies: - dependency-name: org.springframework.boot dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 8cf4a1d8..e980ce66 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'org.springframework.boot' version '3.2.3' + id 'org.springframework.boot' version '3.2.4' id 'io.spring.dependency-management' version '1.1.4' id 'io.freefair.lombok' version '8.6' id 'io.freefair.maven-publish-java' version '8.6' From 6ceee4ffc09aff1d1ba55b80107cc167d51d13dd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Apr 2024 06:18:19 +0000 Subject: [PATCH 31/50] Bump org.apache.tika:tika-core from 2.9.1 to 2.9.2 Bumps [org.apache.tika:tika-core](https://github.com/apache/tika) from 2.9.1 to 2.9.2. - [Changelog](https://github.com/apache/tika/blob/main/CHANGES.txt) - [Commits](https://github.com/apache/tika/compare/2.9.1...2.9.2) --- updated-dependencies: - dependency-name: org.apache.tika:tika-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 8cf4a1d8..8af52aa7 100644 --- a/build.gradle +++ b/build.gradle @@ -100,7 +100,7 @@ dependencies { // apache implementation "commons-io:commons-io:2.15.1" - implementation "org.apache.tika:tika-core:2.9.1" + implementation "org.apache.tika:tika-core:2.9.2" // JSON validator implementation "com.networknt:json-schema-validator:1.3.0" From 0626d3bd4bdcbbb4c24b13497372970cf7e2f16b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Apr 2024 06:18:21 +0000 Subject: [PATCH 32/50] Bump commons-io:commons-io from 2.15.1 to 2.16.0 Bumps commons-io:commons-io from 2.15.1 to 2.16.0. --- updated-dependencies: - dependency-name: commons-io:commons-io dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 8cf4a1d8..6288df5d 100644 --- a/build.gradle +++ b/build.gradle @@ -99,7 +99,7 @@ dependencies { implementation "com.h2database:h2:2.2.224" // apache - implementation "commons-io:commons-io:2.15.1" + implementation "commons-io:commons-io:2.16.0" implementation "org.apache.tika:tika-core:2.9.1" // JSON validator From 0f0ee1f478cd4528f1933869f64061cc87594124 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 3 Apr 2024 08:57:56 +0000 Subject: [PATCH 33/50] Create PR for #481 From b3d951e21eca779d92f4900b42172f5303c3b97b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Apr 2024 08:59:47 +0000 Subject: [PATCH 34/50] Bump edu.kit.datamanager:repo-core from 1.2.1 to 1.2.2 Bumps [edu.kit.datamanager:repo-core](https://github.com/kit-data-manager/repo-core) from 1.2.1 to 1.2.2. - [Release notes](https://github.com/kit-data-manager/repo-core/releases) - [Changelog](https://github.com/kit-data-manager/repo-core/blob/main/CHANGELOG.md) - [Commits](https://github.com/kit-data-manager/repo-core/compare/v1.2.1...v1.2.2) --- updated-dependencies: - dependency-name: edu.kit.datamanager:repo-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 3df4a608..ea4cd4d8 100644 --- a/build.gradle +++ b/build.gradle @@ -109,7 +109,7 @@ dependencies { implementation 'xerces:xercesImpl:2.12.2' // datamanager - implementation "edu.kit.datamanager:repo-core:1.2.1" + implementation "edu.kit.datamanager:repo-core:1.2.2" implementation "edu.kit.datamanager:service-base:1.2.1" // elasticsearch (since service-base 1.1.0) From 30d2d3d95494ffca3caaa4d0dc5f9f5d63238fa0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Apr 2024 09:00:02 +0000 Subject: [PATCH 35/50] Bump org.springframework.cloud:spring-cloud-gateway-mvc Bumps [org.springframework.cloud:spring-cloud-gateway-mvc](https://github.com/spring-cloud/spring-cloud-gateway) from 4.1.1 to 4.1.2. - [Release notes](https://github.com/spring-cloud/spring-cloud-gateway/releases) - [Commits](https://github.com/spring-cloud/spring-cloud-gateway/compare/v4.1.1...v4.1.2) --- updated-dependencies: - dependency-name: org.springframework.cloud:spring-cloud-gateway-mvc dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 3df4a608..e403b881 100644 --- a/build.gradle +++ b/build.gradle @@ -50,7 +50,7 @@ if (System.getProperty('profile') == 'minimal') { dependencies { // Spring implementation 'org.springframework:spring-messaging:6.1.1' - implementation 'org.springframework.cloud:spring-cloud-gateway-mvc:4.1.1' + implementation 'org.springframework.cloud:spring-cloud-gateway-mvc:4.1.2' // Spring Boot implementation "org.springframework.boot:spring-boot-starter-data-rest" From 2c2b8a2650eda65c8cf694ba2242b78774befc08 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Apr 2024 09:00:09 +0000 Subject: [PATCH 36/50] Bump com.networknt:json-schema-validator from 1.3.0 to 1.4.0 Bumps [com.networknt:json-schema-validator](https://github.com/networknt/json-schema-validator) from 1.3.0 to 1.4.0. - [Release notes](https://github.com/networknt/json-schema-validator/releases) - [Changelog](https://github.com/networknt/json-schema-validator/blob/master/CHANGELOG.md) - [Commits](https://github.com/networknt/json-schema-validator/compare/1.3.0...1.4.0) --- updated-dependencies: - dependency-name: com.networknt:json-schema-validator dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 3df4a608..e8c4182e 100644 --- a/build.gradle +++ b/build.gradle @@ -103,7 +103,7 @@ dependencies { implementation "org.apache.tika:tika-core:2.9.2" // JSON validator - implementation "com.networknt:json-schema-validator:1.3.0" + implementation "com.networknt:json-schema-validator:1.4.0" // XML validator // https://mvnrepository.com/artifact/xerces/xercesImpl implementation 'xerces:xercesImpl:2.12.2' From f219573bec9d1e717ae5afb53f465d5808e092b6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 5 Apr 2024 04:47:33 +0000 Subject: [PATCH 37/50] Create PR for #486 From c04e7e0ca3315e55522df5ebe29fe1012cb0f818 Mon Sep 17 00:00:00 2001 From: Volker Hartmann Date: Fri, 5 Apr 2024 06:52:59 +0200 Subject: [PATCH 38/50] Bump to gradle from 8.2.1 to 8.7. --- gradle/wrapper/gradle-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 9f4197d5..b82aa23a 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME From 5233128cb704478c61f3d411afd176a127b83887 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Apr 2024 05:13:46 +0000 Subject: [PATCH 39/50] Bump org.owasp.dependencycheck from 9.0.9 to 9.1.0 Bumps org.owasp.dependencycheck from 9.0.9 to 9.1.0. --- updated-dependencies: - dependency-name: org.owasp.dependencycheck dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index ff819c67..13f83509 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ plugins { id 'io.spring.dependency-management' version '1.1.4' id 'io.freefair.lombok' version '8.6' id 'io.freefair.maven-publish-java' version '8.6' - id 'org.owasp.dependencycheck' version '9.0.9' + id 'org.owasp.dependencycheck' version '9.1.0' id 'org.asciidoctor.jvm.convert' version '4.0.2' id 'net.ltgt.errorprone' version '3.1.0' id 'net.researchgate.release' version '3.0.2' From 4e1529e6e39199dc418008c16e7ab6ac0ee8bbdd Mon Sep 17 00:00:00 2001 From: Volker Hartmann Date: Sat, 6 Apr 2024 09:50:04 +0200 Subject: [PATCH 40/50] First steps towards health for elasticsearch. --- .../health/ElasticsearchHealthCheck.java | 68 +++++++++++++++++++ .../metastore2/util/ActuatorUtil.java | 23 +++++++ 2 files changed, 91 insertions(+) create mode 100644 src/main/java/edu/kit/datamanager/metastore2/health/ElasticsearchHealthCheck.java diff --git a/src/main/java/edu/kit/datamanager/metastore2/health/ElasticsearchHealthCheck.java b/src/main/java/edu/kit/datamanager/metastore2/health/ElasticsearchHealthCheck.java new file mode 100644 index 00000000..c44e8dd6 --- /dev/null +++ b/src/main/java/edu/kit/datamanager/metastore2/health/ElasticsearchHealthCheck.java @@ -0,0 +1,68 @@ +/* + * Copyright 2023 Karlsruhe Institute of Technology. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package edu.kit.datamanager.metastore2.health; + +import edu.kit.datamanager.configuration.SearchConfiguration; +import edu.kit.datamanager.metastore2.configuration.MetastoreConfiguration; +import edu.kit.datamanager.metastore2.util.ActuatorUtil; +import edu.kit.datamanager.metastore2.util.MetadataRecordUtil; +import java.net.URL; +import java.util.Map; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.boot.actuate.health.Health; +import org.springframework.boot.actuate.health.HealthIndicator; +import org.springframework.stereotype.Component; + +/** + * Collect information about metadata document repository for health actuator. + */ +@Component("Elasticsearch") +public class ElasticsearchHealthCheck implements HealthIndicator { + + /** + * Logger + */ + private static final Logger LOG = LoggerFactory.getLogger(ElasticsearchHealthCheck.class); + + /** + * Configuration settings of elasticsearch. + */ + private final SearchConfiguration elasticConfig; + + /** + * Constructor for initializing class. + * @param elasticConfig Configuration settings of metadata repo. + */ + public ElasticsearchHealthCheck(SearchConfiguration elasticConfig) { + this.elasticConfig = elasticConfig; + } + + @Override + public Health health() { + LOG.trace("Check for Elasticsearch health information..."); + Health health = Health.unknown().build(); + if (elasticConfig.isSearchEnabled()) { + Map details = ActuatorUtil.testElastic(elasticConfig.getUrl()); + if (details.isEmpty()) { + health = Health.down().withDetail("tagline", "-").build(); + } else { + health = Health.up().withDetails(details).build(); + } + } + return health; + } +} diff --git a/src/main/java/edu/kit/datamanager/metastore2/util/ActuatorUtil.java b/src/main/java/edu/kit/datamanager/metastore2/util/ActuatorUtil.java index 2d38061c..b8ba819f 100644 --- a/src/main/java/edu/kit/datamanager/metastore2/util/ActuatorUtil.java +++ b/src/main/java/edu/kit/datamanager/metastore2/util/ActuatorUtil.java @@ -15,6 +15,9 @@ */ package edu.kit.datamanager.metastore2.util; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import edu.kit.datamanager.clients.SimpleServiceClient; import java.io.File; import java.io.IOException; import java.net.URISyntaxException; @@ -60,6 +63,26 @@ public static final Map testDirectory(URL pathUrl) { return properties; } + /** + * Determine all details for given directory. + * + * @param elasticUrl URL of directory + * @return Map with details. + */ + public static final Map testElastic(URL elasticUrl) { + Map properties = new HashMap<>(); + try { + SimpleServiceClient client = SimpleServiceClient.create(elasticUrl.toString()); + String response = client.getResource(String.class); + ObjectMapper objectMapper = new ObjectMapper(); + JsonNode node = objectMapper.readTree(response); + properties.put("elastic", node.get("tagline").asText()); + } catch (Throwable ex) { + LOG.error("Invalid elastic uri of '" + elasticUrl.toString() + "'.", ex); + } + return properties; + } + /** * Determine all details for given directory. * From abd7bd63a4d67505ba986ab0bf0debe2c9598462 Mon Sep 17 00:00:00 2001 From: Volker Hartmann Date: Mon, 8 Apr 2024 10:08:17 +0200 Subject: [PATCH 41/50] Add test for health evaluation of elasticsearch. --- .../health/ElasticsearchHealthCheck.java | 9 +++------ .../datamanager/metastore2/util/ActuatorUtil.java | 2 +- .../datamanager/metastore2/test/ActuatorTest.java | 14 ++++++++++++++ 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/main/java/edu/kit/datamanager/metastore2/health/ElasticsearchHealthCheck.java b/src/main/java/edu/kit/datamanager/metastore2/health/ElasticsearchHealthCheck.java index c44e8dd6..ce162ad4 100644 --- a/src/main/java/edu/kit/datamanager/metastore2/health/ElasticsearchHealthCheck.java +++ b/src/main/java/edu/kit/datamanager/metastore2/health/ElasticsearchHealthCheck.java @@ -16,10 +16,7 @@ package edu.kit.datamanager.metastore2.health; import edu.kit.datamanager.configuration.SearchConfiguration; -import edu.kit.datamanager.metastore2.configuration.MetastoreConfiguration; import edu.kit.datamanager.metastore2.util.ActuatorUtil; -import edu.kit.datamanager.metastore2.util.MetadataRecordUtil; -import java.net.URL; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -57,10 +54,10 @@ public Health health() { Health health = Health.unknown().build(); if (elasticConfig.isSearchEnabled()) { Map details = ActuatorUtil.testElastic(elasticConfig.getUrl()); - if (details.isEmpty()) { - health = Health.down().withDetail("tagline", "-").build(); - } else { + if (!details.isEmpty()) { health = Health.up().withDetails(details).build(); + } else { + health = Health.down().withDetail("tagline", "-").build(); } } return health; diff --git a/src/main/java/edu/kit/datamanager/metastore2/util/ActuatorUtil.java b/src/main/java/edu/kit/datamanager/metastore2/util/ActuatorUtil.java index b8ba819f..dace4206 100644 --- a/src/main/java/edu/kit/datamanager/metastore2/util/ActuatorUtil.java +++ b/src/main/java/edu/kit/datamanager/metastore2/util/ActuatorUtil.java @@ -76,7 +76,7 @@ public static final Map testElastic(URL elasticUrl) { String response = client.getResource(String.class); ObjectMapper objectMapper = new ObjectMapper(); JsonNode node = objectMapper.readTree(response); - properties.put("elastic", node.get("tagline").asText()); + properties.put("tagline", node.get("tagline").asText()); } catch (Throwable ex) { LOG.error("Invalid elastic uri of '" + elasticUrl.toString() + "'.", ex); } diff --git a/src/test/java/edu/kit/datamanager/metastore2/test/ActuatorTest.java b/src/test/java/edu/kit/datamanager/metastore2/test/ActuatorTest.java index dd9b88cc..c2ae9b3e 100644 --- a/src/test/java/edu/kit/datamanager/metastore2/test/ActuatorTest.java +++ b/src/test/java/edu/kit/datamanager/metastore2/test/ActuatorTest.java @@ -5,16 +5,19 @@ */ package edu.kit.datamanager.metastore2.test; +import edu.kit.datamanager.configuration.SearchConfiguration; import edu.kit.datamanager.metastore2.configuration.MetastoreConfiguration; import edu.kit.datamanager.metastore2.dao.IDataRecordDao; import edu.kit.datamanager.metastore2.dao.ILinkedMetadataRecordDao; import edu.kit.datamanager.metastore2.dao.ISchemaRecordDao; +import edu.kit.datamanager.metastore2.util.ActuatorUtil; import edu.kit.datamanager.repo.dao.IAllIdentifiersDao; import edu.kit.datamanager.repo.dao.IContentInformationDao; import edu.kit.datamanager.repo.dao.IDataResourceDao; import java.io.File; import java.io.IOException; import java.net.URI; +import java.net.URL; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; @@ -108,6 +111,8 @@ public class ActuatorTest { private MetastoreConfiguration metadataConfig; @Autowired private MetastoreConfiguration schemaConfig; + @Autowired + private SearchConfiguration elasticConfig; @Rule public JUnitRestDocumentation restDocumentation = new JUnitRestDocumentation(); @@ -191,6 +196,15 @@ public void testActuator() throws Exception { .andExpect(MockMvcResultMatchers.jsonPath("$.components.MetadataRepo.status", is("DOWN"))) .andExpect(MockMvcResultMatchers.jsonPath("$.components.SchemaRepo.status", is("DOWN"))) .andReturn(); + elasticConfig.setSearchEnabled(true); + elasticConfig.setUrl(URI.create("http://localhost:41400/").toURL()); + this.mockMvc.perform(get("/actuator/health")).andDo(print()) + .andExpect(MockMvcResultMatchers.jsonPath("$.components.Elasticsearch.status", is("DOWN"))) + .andReturn(); + elasticConfig.setUrl(URI.create("http://localhost:41416/api/v1/schemas/").toURL()); + this.mockMvc.perform(get("/actuator/health")).andDo(print()) + .andExpect(MockMvcResultMatchers.jsonPath("$.components.Elasticsearch.status", is("DOWN"))) + .andReturn(); } public static synchronized boolean isInitialized() { From 7a543a7fa05976934b6bbcea58e1479bf569adc9 Mon Sep 17 00:00:00 2001 From: Volker Hartmann Date: Mon, 8 Apr 2024 10:09:15 +0200 Subject: [PATCH 42/50] Adopt settings for docker compose. --- .env | 2 +- docker-compose.yml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.env b/.env index 51723ab3..e17c300e 100644 --- a/.env +++ b/.env @@ -7,7 +7,7 @@ RABBIT_MQ_PASSWORD=rabbitpasswd # Only edit the following lines if you # want to update service versions. ######################################## -METASTORE_VERSION=v1.4.1 +METASTORE_VERSION=v1.4.2 FRONTEND_COLLECTION_VERSION=metastore-v1.0.0 INDEXING_SERVICE_VERSION=v1.0.1 ELASTICSEARCH_VERSION=8.11.1 diff --git a/docker-compose.yml b/docker-compose.yml index 3797c6dc..628872c2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -77,6 +77,7 @@ services: - REPO_MESSAGING_ENABLED=true - REPO_MESSAGING_USERNAME=${RABBIT_MQ_USER} - REPO_MESSAGING_PASSWORD=${RABBIT_MQ_PASSWORD} + - MANAGEMENT_HEALTH_RABBIT_ENABLED=true depends_on: rabbitmq: condition: service_started From 6a50b72acd76fcca04f333403a1293afd40542f6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Apr 2024 11:53:59 +0000 Subject: [PATCH 43/50] Bump commons-io:commons-io from 2.16.0 to 2.16.1 Bumps commons-io:commons-io from 2.16.0 to 2.16.1. --- updated-dependencies: - dependency-name: commons-io:commons-io dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 13f83509..09130b44 100644 --- a/build.gradle +++ b/build.gradle @@ -99,7 +99,7 @@ dependencies { implementation "com.h2database:h2:2.2.224" // apache - implementation "commons-io:commons-io:2.16.0" + implementation "commons-io:commons-io:2.16.1" implementation "org.apache.tika:tika-core:2.9.2" // JSON validator From 9326c3760ac88bf7178a400e9cd2cb2a56fba760 Mon Sep 17 00:00:00 2001 From: Volker Hartmann Date: Tue, 9 Apr 2024 15:46:21 +0200 Subject: [PATCH 44/50] Enable AAI for docker compose. --- .env | 5 +++++ docker-compose.yml | 3 +++ 2 files changed, 8 insertions(+) diff --git a/.env b/.env index e17c300e..c06993ac 100644 --- a/.env +++ b/.env @@ -1,4 +1,9 @@ ######################################## +# Set AAI 4 Metastore & Indexing-Service +######################################## +REPO_AUTH_ENABLED=true +JWT_SECRET=Please+add+your+own+long+and+valid+secret+here +######################################## # Adopt authentication for RabbitMQ ######################################## RABBIT_MQ_USER=rabbituser diff --git a/docker-compose.yml b/docker-compose.yml index 628872c2..832d5025 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -57,6 +57,7 @@ services: environment: - REPO_MESSAGING_USERNAME=${RABBIT_MQ_USER} - REPO_MESSAGING_PASSWORD=${RABBIT_MQ_PASSWORD} + - REPO_AUTH_JWTSECRET=${JWT_SECRET} depends_on: rabbitmq: condition: service_started @@ -78,6 +79,8 @@ services: - REPO_MESSAGING_USERNAME=${RABBIT_MQ_USER} - REPO_MESSAGING_PASSWORD=${RABBIT_MQ_PASSWORD} - MANAGEMENT_HEALTH_RABBIT_ENABLED=true + - REPO_AUTH_ENABLED=${REPO_AUTH_ENABLED} + - REPO_AUTH_JWTSECRET=${JWT_SECRET} depends_on: rabbitmq: condition: service_started From 5977da17246cdaaf4cff5d30cef4e2b2768bf46c Mon Sep 17 00:00:00 2001 From: Volker Hartmann Date: Wed, 10 Apr 2024 07:18:29 +0200 Subject: [PATCH 45/50] Disable AAI for docker compose by default --- .env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env b/.env index c06993ac..fb47a369 100644 --- a/.env +++ b/.env @@ -1,7 +1,7 @@ ######################################## # Set AAI 4 Metastore & Indexing-Service ######################################## -REPO_AUTH_ENABLED=true +REPO_AUTH_ENABLED=false JWT_SECRET=Please+add+your+own+long+and+valid+secret+here ######################################## # Adopt authentication for RabbitMQ From eef80cec5df9f8776677740206e3129284f7b698 Mon Sep 17 00:00:00 2001 From: Volker Hartmann Date: Wed, 10 Apr 2024 15:09:14 +0200 Subject: [PATCH 46/50] Edit CHANGELOG.md --- CHANGELOG.md | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e4c13667..77cfcbbf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,40 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed +## [1.4.2] - 2024-04-10 +### Security + +### Added +- Enable AAI for docker compose +- Add licenseUri to metadata records + +### Changed +- Bump to gradle from 8.2.1 to 8.7 + +### Fixed +- Fix health endpoint to evaluate elasticsearch if needed + +### Libs +- Bump com.google.errorprone:error_prone_core from 2.24.1 to 2.26.1 +- Bump com.networknt:json-schema-validator from 1.1.0 to 1.4.0 +- Bump commons-io:commons-io from 2.15.1 to 2.16.1 +- Bump edu.kit.datamanager:repo-core from 1.2.1 to 1.2.2 +- Bump edu.kit.datamanager:service-base from 1.2.0 to 1.2.1 +- Bump io.freefair.lombok from 8.4 to 8.6 +- Bump io.freefair.maven-publish-java from 8.4 to 8.6 +- Bump javersVersion from 7.3.7 to 7.4.2 +- Bump org.apache.tika:tika-core from 2.9.1 to 2.9.2 +- Bump org.mockito:mockito-core from 5.8.0 to 5.11.0 +- Bump org.owasp.dependencycheck from 9.0.8 to 9.1.0 +- Bump org.postgresql:postgresql from 42.7.1 to 42.7.3 +- Bump org.springframework.boot from 3.2.1 to 3.2.4 +- Bump org.springframework.cloud:spring-cloud-gateway-mvc from 4.1.1 to 4.1.2 +- Bump org.springframework.data:spring-data-elasticsearch from 5.2.2 to 5.2.4 +- Bump springDocVersion from 2.3.0 to 2.5.0 + +### Github Actions +- Bump codecov/codecov-action from 3 to 4 + ## [1.4.1] - 2024-01-13 ### Added @@ -413,7 +447,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Registry for XSD files and support for XML metadata -[Unreleased]: https://github.com/kit-data-manager/metastore2/compare/v1.4.1...HEAD +[Unreleased]: https://github.com/kit-data-manager/metastore2/compare/v1.4.2...HEAD +[1.4.2]: https://github.com/kit-data-manager/metastore2/compare/v1.4.1...1.4.2 [1.4.1]: https://github.com/kit-data-manager/metastore2/compare/v1.4.0...v1.4.1 [1.4.0]: https://github.com/kit-data-manager/metastore2/compare/v1.3.0...v1.4.0 [1.3.0]: https://github.com/kit-data-manager/metastore2/compare/v1.2.3...v1.3.0 From 3ce5d32f06067e0527265a9d0fe1a298af290394 Mon Sep 17 00:00:00 2001 From: Volker Hartmann Date: Fri, 12 Apr 2024 10:21:27 +0200 Subject: [PATCH 47/50] Bump frontend-collection to metastore-v1.0.1 --- .env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env b/.env index fb47a369..def05d80 100644 --- a/.env +++ b/.env @@ -13,7 +13,7 @@ RABBIT_MQ_PASSWORD=rabbitpasswd # want to update service versions. ######################################## METASTORE_VERSION=v1.4.2 -FRONTEND_COLLECTION_VERSION=metastore-v1.0.0 +FRONTEND_COLLECTION_VERSION=metastore-v1.0.1 INDEXING_SERVICE_VERSION=v1.0.1 ELASTICSEARCH_VERSION=8.11.1 ######################################## From 7d02fa24c8652bb63a4449e36932fdbf5ff4631b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Apr 2024 08:27:26 +0000 Subject: [PATCH 48/50] Bump edu.kit.datamanager:service-base from 1.2.1 to 1.3.0 Bumps [edu.kit.datamanager:service-base](https://github.com/kit-data-manager/service-base) from 1.2.1 to 1.3.0. - [Release notes](https://github.com/kit-data-manager/service-base/releases) - [Changelog](https://github.com/kit-data-manager/service-base/blob/main/CHANGELOG.md) - [Commits](https://github.com/kit-data-manager/service-base/compare/v1.2.1...v1.3.0) --- updated-dependencies: - dependency-name: edu.kit.datamanager:service-base dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 09130b44..dc99a3d4 100644 --- a/build.gradle +++ b/build.gradle @@ -110,7 +110,7 @@ dependencies { // datamanager implementation "edu.kit.datamanager:repo-core:1.2.2" - implementation "edu.kit.datamanager:service-base:1.2.1" + implementation "edu.kit.datamanager:service-base:1.3.0" // elasticsearch (since service-base 1.1.0) implementation "org.springframework.data:spring-data-elasticsearch:5.2.4" From e870d035ede33fa2894dd041be92d24d8614e6a9 Mon Sep 17 00:00:00 2001 From: Volker Hartmann Date: Fri, 12 Apr 2024 10:34:57 +0200 Subject: [PATCH 49/50] Update CHANGELOG.md due to update to service-base 1.3.0 --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 77cfcbbf..8a94386b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,7 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed -## [1.4.2] - 2024-04-10 +## [1.4.2] - 2024-04-12 ### Security ### Added @@ -31,7 +31,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Bump com.networknt:json-schema-validator from 1.1.0 to 1.4.0 - Bump commons-io:commons-io from 2.15.1 to 2.16.1 - Bump edu.kit.datamanager:repo-core from 1.2.1 to 1.2.2 -- Bump edu.kit.datamanager:service-base from 1.2.0 to 1.2.1 +- Bump edu.kit.datamanager:service-base from 1.2.0 to 1.3.0 - Bump io.freefair.lombok from 8.4 to 8.6 - Bump io.freefair.maven-publish-java from 8.4 to 8.6 - Bump javersVersion from 7.3.7 to 7.4.2 From b0ef4da1e56d2e54f3a61816c891b1ee91622b28 Mon Sep 17 00:00:00 2001 From: Volker Hartmann Date: Fri, 12 Apr 2024 10:43:59 +0200 Subject: [PATCH 50/50] Fix CHANGELOG.md --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a94386b..630cb1f5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,10 +18,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Enable AAI for docker compose -- Add licenseUri to metadata records +- Add licenseUri to metadata (schema) records ### Changed -- Bump to gradle from 8.2.1 to 8.7 +- Bump gradle from 8.2.1 to 8.7 ### Fixed - Fix health endpoint to evaluate elasticsearch if needed