From c2899f9021756d0169ad5f26502906e653373cb3 Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Fri, 31 Oct 2025 19:32:07 +0100 Subject: [PATCH 01/30] convert dbFixtureDir property to list --- .../fairdatapoint/config/properties/BootstrapProperties.java | 4 +++- src/main/resources/application.yml | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/fairdatapoint/config/properties/BootstrapProperties.java b/src/main/java/org/fairdatapoint/config/properties/BootstrapProperties.java index efe2d084d..b6c433d66 100644 --- a/src/main/java/org/fairdatapoint/config/properties/BootstrapProperties.java +++ b/src/main/java/org/fairdatapoint/config/properties/BootstrapProperties.java @@ -28,6 +28,8 @@ import lombok.Setter; import org.springframework.boot.context.properties.ConfigurationProperties; +import java.util.List; + @NoArgsConstructor @AllArgsConstructor @Getter @@ -36,5 +38,5 @@ public class BootstrapProperties { private boolean enabled; // directories relative to project root - private String dbFixturesDir; + private List dbFixturesDirs; } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 7e3d89ec7..0a87793f2 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -113,4 +113,5 @@ server: forward-headers-strategy: framework bootstrap: - db-fixtures-dir: "fixtures" + db-fixtures-dirs: + - "fixtures" From c77dd93ccc0e101a33c578ada78560213272f767 Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Fri, 31 Oct 2025 19:33:11 +0100 Subject: [PATCH 02/30] adapt BootstrapConfig to handle multiple directories --- .../fairdatapoint/config/BootstrapConfig.java | 33 +++++++++++-------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/fairdatapoint/config/BootstrapConfig.java b/src/main/java/org/fairdatapoint/config/BootstrapConfig.java index 4c05478aa..3231aed3f 100644 --- a/src/main/java/org/fairdatapoint/config/BootstrapConfig.java +++ b/src/main/java/org/fairdatapoint/config/BootstrapConfig.java @@ -33,8 +33,10 @@ import java.io.IOException; import java.nio.file.Path; -import java.util.Arrays; +import java.util.ArrayList; import java.util.Comparator; +import java.util.List; +import java.util.stream.Stream; /** * The {@code BootstrapConfig} class configures a repository populator to load initial data into the relational @@ -56,14 +58,14 @@ public class BootstrapConfig { private final ResourcePatternResolver resourceResolver = new PathMatchingResourcePatternResolver(); private final boolean bootstrapEnabled; - private final Path dbFixturesPath; + private final List dbFixturesDirs; public BootstrapConfig( @Value("${bootstrap.enabled:false}") boolean bootstrapEnabled, - @Value("${bootstrap.db-fixtures-dir}") String dbFixturesDir + @Value("${bootstrap.db-fixtures-dirs}") List dbFixturesDirs ) { this.bootstrapEnabled = bootstrapEnabled; - this.dbFixturesPath = Path.of(dbFixturesDir); + this.dbFixturesDirs = dbFixturesDirs; } @Bean @@ -73,17 +75,20 @@ public Jackson2RepositoryPopulatorFactoryBean repositoryPopulator() { log.info("Bootstrap repository populator enabled"); try { // collect fixture resources - final Path fixturesPath = dbFixturesPath.resolve("*.json"); - final Resource[] resources = resourceResolver.getResources("file:" + fixturesPath); + final Stream locationPatterns = this.dbFixturesDirs.stream() + .map(Path::of) + .map(path -> "file:" + path.resolve("*.json")); + final List resources = new ArrayList<>(); +// locationPatterns.forEach(locationPattern -> resources.addAll(resourceResolver.getResources(locationPattern))); + for (String locationPattern : locationPatterns.toList()) { + resources.addAll(List.of(resourceResolver.getResources(locationPattern))); + } // sort resources to guarantee lexicographic order - Arrays.sort( - resources, - Comparator.comparing( - Resource::getFilename, - Comparator.nullsLast(String::compareTo) - ) - ); - factory.setResources(resources); + resources.sort(Comparator.comparing( + Resource::getFilename, + Comparator.nullsLast(String::compareTo) + )); + factory.setResources(resources.toArray(new Resource[0])); } catch (IOException exception) { exception.printStackTrace(); From bbc2b934ef8ebd28d99b52c56e545dd06124c34a Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Fri, 31 Oct 2025 19:58:10 +0100 Subject: [PATCH 03/30] simplify BootstrapConfig resource collection --- .../java/org/fairdatapoint/config/BootstrapConfig.java | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/fairdatapoint/config/BootstrapConfig.java b/src/main/java/org/fairdatapoint/config/BootstrapConfig.java index 3231aed3f..3f7ac6988 100644 --- a/src/main/java/org/fairdatapoint/config/BootstrapConfig.java +++ b/src/main/java/org/fairdatapoint/config/BootstrapConfig.java @@ -36,7 +36,6 @@ import java.util.ArrayList; import java.util.Comparator; import java.util.List; -import java.util.stream.Stream; /** * The {@code BootstrapConfig} class configures a repository populator to load initial data into the relational @@ -75,12 +74,9 @@ public Jackson2RepositoryPopulatorFactoryBean repositoryPopulator() { log.info("Bootstrap repository populator enabled"); try { // collect fixture resources - final Stream locationPatterns = this.dbFixturesDirs.stream() - .map(Path::of) - .map(path -> "file:" + path.resolve("*.json")); final List resources = new ArrayList<>(); -// locationPatterns.forEach(locationPattern -> resources.addAll(resourceResolver.getResources(locationPattern))); - for (String locationPattern : locationPatterns.toList()) { + for (String dir : this.dbFixturesDirs) { + final String locationPattern = "file:" + Path.of(dir).resolve("*.json"); resources.addAll(List.of(resourceResolver.getResources(locationPattern))); } // sort resources to guarantee lexicographic order From 3f5531bf2eab102d631fb80ac95148a51cf35d5e Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Fri, 31 Oct 2025 20:14:40 +0100 Subject: [PATCH 04/30] disable flyway dev data migrations --- src/main/resources/application-development.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/application-development.yml b/src/main/resources/application-development.yml index 359635210..0a3be3bc9 100644 --- a/src/main/resources/application-development.yml +++ b/src/main/resources/application-development.yml @@ -12,6 +12,6 @@ spring: username: fdp password: fdp flyway: - locations: classpath:dev/db/migration,classpath:db/migration + locations: classpath:db/migration fail-on-missing-locations: true clean-disabled: false From a953369aba807157d31c410b8f08ef5164888ddd Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Fri, 31 Oct 2025 20:38:21 +0100 Subject: [PATCH 05/30] disable RdfDevelopmentMigrationRunner --- .../database/rdf/migration/RdfDevelopmentMigrationRunner.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/fairdatapoint/database/rdf/migration/RdfDevelopmentMigrationRunner.java b/src/main/java/org/fairdatapoint/database/rdf/migration/RdfDevelopmentMigrationRunner.java index 59c4aeb2c..0dd48a189 100644 --- a/src/main/java/org/fairdatapoint/database/rdf/migration/RdfDevelopmentMigrationRunner.java +++ b/src/main/java/org/fairdatapoint/database/rdf/migration/RdfDevelopmentMigrationRunner.java @@ -36,7 +36,7 @@ import org.springframework.stereotype.Service; @Service -@Profile(Profiles.NON_PRODUCTION) +@Profile("none") public class RdfDevelopmentMigrationRunner { @Value("${spring.profiles.active}") From b1f001e0682529cd73633754a2cadc6a1fcd1c69 Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Fri, 31 Oct 2025 20:39:52 +0100 Subject: [PATCH 06/30] disable bootstrap by default, enable in development --- .../fairdatapoint/config/properties/BootstrapProperties.java | 2 +- src/main/resources/application-development.yml | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/fairdatapoint/config/properties/BootstrapProperties.java b/src/main/java/org/fairdatapoint/config/properties/BootstrapProperties.java index b6c433d66..d1dc2d8c5 100644 --- a/src/main/java/org/fairdatapoint/config/properties/BootstrapProperties.java +++ b/src/main/java/org/fairdatapoint/config/properties/BootstrapProperties.java @@ -36,7 +36,7 @@ @Setter @ConfigurationProperties(prefix = "bootstrap") public class BootstrapProperties { - private boolean enabled; + private boolean enabled = false; // directories relative to project root private List dbFixturesDirs; } diff --git a/src/main/resources/application-development.yml b/src/main/resources/application-development.yml index 0a3be3bc9..171b64706 100644 --- a/src/main/resources/application-development.yml +++ b/src/main/resources/application-development.yml @@ -15,3 +15,6 @@ spring: locations: classpath:db/migration fail-on-missing-locations: true clean-disabled: false + +bootstrap: + enabled: true From f52109be27454de3bb2ccd0d21bcf5a7ffcfffcc Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Fri, 31 Oct 2025 20:42:07 +0100 Subject: [PATCH 07/30] fix dbFixturesDirs property list assignment in BootstrapConfig --- .../fairdatapoint/config/BootstrapConfig.java | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/main/java/org/fairdatapoint/config/BootstrapConfig.java b/src/main/java/org/fairdatapoint/config/BootstrapConfig.java index 3f7ac6988..dc1ef0a83 100644 --- a/src/main/java/org/fairdatapoint/config/BootstrapConfig.java +++ b/src/main/java/org/fairdatapoint/config/BootstrapConfig.java @@ -23,7 +23,7 @@ package org.fairdatapoint.config; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; +import org.fairdatapoint.config.properties.BootstrapProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.Resource; @@ -56,27 +56,23 @@ @Slf4j public class BootstrapConfig { private final ResourcePatternResolver resourceResolver = new PathMatchingResourcePatternResolver(); - private final boolean bootstrapEnabled; - private final List dbFixturesDirs; + private final BootstrapProperties bootstrap; - public BootstrapConfig( - @Value("${bootstrap.enabled:false}") boolean bootstrapEnabled, - @Value("${bootstrap.db-fixtures-dirs}") List dbFixturesDirs - ) { - this.bootstrapEnabled = bootstrapEnabled; - this.dbFixturesDirs = dbFixturesDirs; + public BootstrapConfig(BootstrapProperties bootstrapProperties) { + this.bootstrap = bootstrapProperties; } @Bean public Jackson2RepositoryPopulatorFactoryBean repositoryPopulator() { final Jackson2RepositoryPopulatorFactoryBean factory = new Jackson2RepositoryPopulatorFactoryBean(); - if (bootstrapEnabled) { + if (this.bootstrap.isEnabled()) { log.info("Bootstrap repository populator enabled"); try { // collect fixture resources + System.out.println(this.bootstrap.getDbFixturesDirs()); final List resources = new ArrayList<>(); - for (String dir : this.dbFixturesDirs) { - final String locationPattern = "file:" + Path.of(dir).resolve("*.json"); + for (String fixturesDir : this.bootstrap.getDbFixturesDirs()) { + final String locationPattern = "file:" + Path.of(fixturesDir).resolve("*.json"); resources.addAll(List.of(resourceResolver.getResources(locationPattern))); } // sort resources to guarantee lexicographic order From b60d4ae57af1625db3c75603bf466a8a478edd3d Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Fri, 31 Oct 2025 21:00:59 +0100 Subject: [PATCH 08/30] undo explicit initialization of bootstrap.enabled otherwise checkstyle complains... --- .../fairdatapoint/config/properties/BootstrapProperties.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/fairdatapoint/config/properties/BootstrapProperties.java b/src/main/java/org/fairdatapoint/config/properties/BootstrapProperties.java index d1dc2d8c5..a7dd4810a 100644 --- a/src/main/java/org/fairdatapoint/config/properties/BootstrapProperties.java +++ b/src/main/java/org/fairdatapoint/config/properties/BootstrapProperties.java @@ -36,7 +36,8 @@ @Setter @ConfigurationProperties(prefix = "bootstrap") public class BootstrapProperties { - private boolean enabled = false; + // boolean defaults to false + private boolean enabled; // directories relative to project root private List dbFixturesDirs; } From e40409cd69cee6ee431636f6619886a64809e368 Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Mon, 10 Nov 2025 20:02:20 +0100 Subject: [PATCH 09/30] debug log fixtures dirs --- src/main/java/org/fairdatapoint/config/BootstrapConfig.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/fairdatapoint/config/BootstrapConfig.java b/src/main/java/org/fairdatapoint/config/BootstrapConfig.java index f3725e881..a42b24cda 100644 --- a/src/main/java/org/fairdatapoint/config/BootstrapConfig.java +++ b/src/main/java/org/fairdatapoint/config/BootstrapConfig.java @@ -79,7 +79,8 @@ public Jackson2RepositoryPopulatorFactoryBean repositoryPopulator() { log.info("Bootstrap repository populator enabled"); try { // collect fixture resources - System.out.println(this.bootstrap.getDbFixturesDirs()); + log.debug("Looking for fixtures in the following directories: {}", + String.join(", ", this.bootstrap.getDbFixturesDirs())); for (String fixturesDir : this.bootstrap.getDbFixturesDirs()) { final String locationPattern = "file:" + Path.of(fixturesDir).resolve("*.json"); resources.addAll(List.of(resourceResolver.getResources(locationPattern))); From c7f43db3b482b566cab0c0c2f772481d114ce875 Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Mon, 10 Nov 2025 21:24:43 +0100 Subject: [PATCH 10/30] log fixtures dirs at info level --- src/main/java/org/fairdatapoint/config/BootstrapConfig.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/fairdatapoint/config/BootstrapConfig.java b/src/main/java/org/fairdatapoint/config/BootstrapConfig.java index a42b24cda..04420eb83 100644 --- a/src/main/java/org/fairdatapoint/config/BootstrapConfig.java +++ b/src/main/java/org/fairdatapoint/config/BootstrapConfig.java @@ -79,7 +79,7 @@ public Jackson2RepositoryPopulatorFactoryBean repositoryPopulator() { log.info("Bootstrap repository populator enabled"); try { // collect fixture resources - log.debug("Looking for fixtures in the following directories: {}", + log.info("Looking for db fixtures in the following directories: {}", String.join(", ", this.bootstrap.getDbFixturesDirs())); for (String fixturesDir : this.bootstrap.getDbFixturesDirs()) { final String locationPattern = "file:" + Path.of(fixturesDir).resolve("*.json"); From a785375ec63a5b00f03f2fd3f756b8c629ba05e6 Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Mon, 10 Nov 2025 21:26:52 +0100 Subject: [PATCH 11/30] remove unused import --- src/main/java/org/fairdatapoint/config/BootstrapConfig.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/org/fairdatapoint/config/BootstrapConfig.java b/src/main/java/org/fairdatapoint/config/BootstrapConfig.java index 04420eb83..e4c38a226 100644 --- a/src/main/java/org/fairdatapoint/config/BootstrapConfig.java +++ b/src/main/java/org/fairdatapoint/config/BootstrapConfig.java @@ -27,7 +27,6 @@ import org.fairdatapoint.config.properties.BootstrapProperties; import org.fairdatapoint.database.db.repository.FixtureHistoryRepository; import org.fairdatapoint.entity.bootstrap.FixtureHistory; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.ApplicationListener; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; From 250646b4359e519247c5508b0174dcab9ea33038 Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Mon, 10 Nov 2025 21:36:40 +0100 Subject: [PATCH 12/30] enable bootstrap by default this is possible because we take history into account, since #797 --- src/main/resources/application-development.yml | 3 --- src/main/resources/application.yml | 1 + 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/resources/application-development.yml b/src/main/resources/application-development.yml index 171b64706..0a3be3bc9 100644 --- a/src/main/resources/application-development.yml +++ b/src/main/resources/application-development.yml @@ -15,6 +15,3 @@ spring: locations: classpath:db/migration fail-on-missing-locations: true clean-disabled: false - -bootstrap: - enabled: true diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 0a87793f2..c58e969cf 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -113,5 +113,6 @@ server: forward-headers-strategy: framework bootstrap: + enabled: true db-fixtures-dirs: - "fixtures" From 060202c68199cda5ba6654484eb80883ec10d5b0 Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Tue, 11 Nov 2025 10:50:50 +0100 Subject: [PATCH 13/30] re-enable RdfDevelopmentMigrationRunner otherwise tests fail because expected rdf statements are not available --- .../database/rdf/migration/RdfDevelopmentMigrationRunner.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/fairdatapoint/database/rdf/migration/RdfDevelopmentMigrationRunner.java b/src/main/java/org/fairdatapoint/database/rdf/migration/RdfDevelopmentMigrationRunner.java index 90c16bc5b..4e825f0eb 100644 --- a/src/main/java/org/fairdatapoint/database/rdf/migration/RdfDevelopmentMigrationRunner.java +++ b/src/main/java/org/fairdatapoint/database/rdf/migration/RdfDevelopmentMigrationRunner.java @@ -37,7 +37,7 @@ import org.springframework.stereotype.Service; @Service -@Profile("none") +@Profile(Profiles.NON_PRODUCTION) public class RdfDevelopmentMigrationRunner { @Value("${spring.profiles.active}") From a79f9c8a51d077c9e54bf6976fb1be4d70f35515 Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Tue, 11 Nov 2025 12:58:34 +0100 Subject: [PATCH 14/30] disable bootstrap for FixtureHistory tests The test assertions expect the db to be empty. Previously, bootstrap.enabled was false by default, but now it is true by default. Therefore we need to disable bootstrap explicitly in these tests. --- .../db/repository/bootstrap/FixtureHistoryRepositoryTests.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/test/java/org/fairdatapoint/database/db/repository/bootstrap/FixtureHistoryRepositoryTests.java b/src/test/java/org/fairdatapoint/database/db/repository/bootstrap/FixtureHistoryRepositoryTests.java index 08b16056d..7bfc3a580 100644 --- a/src/test/java/org/fairdatapoint/database/db/repository/bootstrap/FixtureHistoryRepositoryTests.java +++ b/src/test/java/org/fairdatapoint/database/db/repository/bootstrap/FixtureHistoryRepositoryTests.java @@ -30,6 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.orm.jpa.AutoConfigureTestEntityManager; import org.springframework.dao.DataIntegrityViolationException; +import org.springframework.test.context.TestPropertySource; import java.util.Optional; @@ -38,6 +39,7 @@ @AutoConfigureTestEntityManager @Transactional +@TestPropertySource(properties = "bootstrap.enabled=false") public class FixtureHistoryRepositoryTests extends BaseIntegrationTest { @Autowired FixtureHistoryRepository repository; From 386cc55e6e1280d00d761b5cddcd4abd2dad3e5c Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Wed, 12 Nov 2025 09:18:45 +0100 Subject: [PATCH 15/30] switch to windows-2025 runner (latest) --- .github/workflows/maven-verify.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/maven-verify.yml b/.github/workflows/maven-verify.yml index aca0e4763..caa7028f0 100644 --- a/.github/workflows/maven-verify.yml +++ b/.github/workflows/maven-verify.yml @@ -19,7 +19,7 @@ jobs: matrix: runner: - ubuntu-24.04 - - windows-2022 + - windows-2025 - macos-14 java-version: - 21 From 14712876490126236a8f533b4f0fcc13ce13c0f5 Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Wed, 12 Nov 2025 09:21:28 +0100 Subject: [PATCH 16/30] note about github runner-images --- .github/workflows/maven-verify.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/maven-verify.yml b/.github/workflows/maven-verify.yml index caa7028f0..3b6069386 100644 --- a/.github/workflows/maven-verify.yml +++ b/.github/workflows/maven-verify.yml @@ -18,6 +18,7 @@ jobs: strategy: matrix: runner: + # https://github.com/actions/runner-images - ubuntu-24.04 - windows-2025 - macos-14 From bda58d6babc846b04b6b0aa8a1ea89abe1b6dbc5 Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Wed, 12 Nov 2025 11:55:50 +0100 Subject: [PATCH 17/30] try maven debug output --- .github/workflows/maven-verify.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/maven-verify.yml b/.github/workflows/maven-verify.yml index 912f9d24d..e1a66a788 100644 --- a/.github/workflows/maven-verify.yml +++ b/.github/workflows/maven-verify.yml @@ -33,7 +33,7 @@ jobs: runner: ${{ matrix.runner }} java-version: ${{ matrix.java-version }} # quotes around spring.profiles.active are required for windows - mvn-options: '-D"spring.profiles.active"=testing' + mvn-options: '-D"spring.profiles.active"=testing --debug' # db settings must match testing profile db-type: postgresql db-name: fdp_test From 86f66d32b7af22f3d6c4d7731e34ae368dbc58a8 Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Wed, 12 Nov 2025 14:56:05 +0100 Subject: [PATCH 18/30] Revert "try maven debug output" This reverts commit bda58d6babc846b04b6b0aa8a1ea89abe1b6dbc5. --- .github/workflows/maven-verify.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/maven-verify.yml b/.github/workflows/maven-verify.yml index e1a66a788..912f9d24d 100644 --- a/.github/workflows/maven-verify.yml +++ b/.github/workflows/maven-verify.yml @@ -33,7 +33,7 @@ jobs: runner: ${{ matrix.runner }} java-version: ${{ matrix.java-version }} # quotes around spring.profiles.active are required for windows - mvn-options: '-D"spring.profiles.active"=testing --debug' + mvn-options: '-D"spring.profiles.active"=testing' # db settings must match testing profile db-type: postgresql db-name: fdp_test From e3787859b49ef1e6a8979cf9870fe06b944e0bfa Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Wed, 12 Nov 2025 14:57:09 +0100 Subject: [PATCH 19/30] try disabling bootstrap --- src/test/resources/application-testing.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/test/resources/application-testing.yml b/src/test/resources/application-testing.yml index 5e9440e60..297c90370 100644 --- a/src/test/resources/application-testing.yml +++ b/src/test/resources/application-testing.yml @@ -23,3 +23,6 @@ spring: ping: enabled: false + +bootstrap: + enabled: false From 4029b6de243c7301a2f733f776277f23d2265bcc Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Wed, 12 Nov 2025 15:19:45 +0100 Subject: [PATCH 20/30] Revert "try disabling bootstrap" This reverts commit e3787859b49ef1e6a8979cf9870fe06b944e0bfa. --- src/test/resources/application-testing.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/test/resources/application-testing.yml b/src/test/resources/application-testing.yml index 297c90370..5e9440e60 100644 --- a/src/test/resources/application-testing.yml +++ b/src/test/resources/application-testing.yml @@ -23,6 +23,3 @@ spring: ping: enabled: false - -bootstrap: - enabled: false From f8776688401c2a2cc56795c4a5538bc32fad0f90 Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Wed, 12 Nov 2025 15:22:54 +0100 Subject: [PATCH 21/30] remove sql-based data migrations from test/resources/test/db/migrations --- src/test/resources/application-testing.yml | 2 +- .../db/migration/V0001.1__dev-data-users.sql | 61 --- .../migration/V0001.2__dev-data-schemas.sql | 505 ------------------ .../db/migration/V0001.3__dev-data-rds.sql | 68 --- .../V0001.4__dev-data-membership.sql | 43 -- .../db/migration/V0001.5__dev-settings.sql | 73 --- .../db/migration/V0001.6__test-schemas.sql | 161 ------ 7 files changed, 1 insertion(+), 912 deletions(-) delete mode 100644 src/test/resources/test/db/migration/V0001.1__dev-data-users.sql delete mode 100644 src/test/resources/test/db/migration/V0001.2__dev-data-schemas.sql delete mode 100644 src/test/resources/test/db/migration/V0001.3__dev-data-rds.sql delete mode 100644 src/test/resources/test/db/migration/V0001.4__dev-data-membership.sql delete mode 100644 src/test/resources/test/db/migration/V0001.5__dev-settings.sql delete mode 100644 src/test/resources/test/db/migration/V0001.6__test-schemas.sql diff --git a/src/test/resources/application-testing.yml b/src/test/resources/application-testing.yml index 5e9440e60..f6453d199 100644 --- a/src/test/resources/application-testing.yml +++ b/src/test/resources/application-testing.yml @@ -17,7 +17,7 @@ spring: username: ${FDP_POSTGRES_USERNAME:fdp} password: ${FDP_POSTGRES_PASSWORD:fdp} flyway: - locations: classpath:test/db/migration,classpath:db/migration + locations: classpath:db/migration fail-on-missing-locations: true clean-disabled: false diff --git a/src/test/resources/test/db/migration/V0001.1__dev-data-users.sql b/src/test/resources/test/db/migration/V0001.1__dev-data-users.sql deleted file mode 100644 index cd8e0a967..000000000 --- a/src/test/resources/test/db/migration/V0001.1__dev-data-users.sql +++ /dev/null @@ -1,61 +0,0 @@ --- --- The MIT License --- Copyright © 2016-2024 FAIR Data Team --- --- Permission is hereby granted, free of charge, to any person obtaining a copy --- of this software and associated documentation files (the "Software"), to deal --- in the Software without restriction, including without limitation the rights --- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell --- copies of the Software, and to permit persons to whom the Software is --- furnished to do so, subject to the following conditions: --- --- The above copyright notice and this permission notice shall be included in --- all copies or substantial portions of the Software. --- --- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR --- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, --- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE --- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER --- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, --- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN --- THE SOFTWARE. --- - --- User Accounts -INSERT INTO public.user_account (uuid, first_name, last_name, email, password_hash, user_role, created_at, updated_at) -VALUES ('95589e50-d261-492b-8852-9324e9a66a42', 'Admin', 'von Universe', 'admin@example.com', '$2a$10$L.0OZ8QjV3yLhoCDvU04gu.WP1wGQih41MsBdvtQOshJJntaugBxe', 'ADMIN', NOW(), NOW()); - -INSERT INTO public.user_account (uuid, first_name, last_name, email, password_hash, user_role, created_at, updated_at) -VALUES ('7e64818d-6276-46fb-8bb1-732e6e09f7e9', 'Albert', 'Einstein', 'albert.einstein@example.com', '$2a$10$hZF1abbZ48Tf.3RndC9W6OlDt6gnBoD/2HbzJayTs6be7d.5DbpnW', 'USER', NOW(), NOW()); - -INSERT INTO public.user_account (uuid, first_name, last_name, email, password_hash, user_role, created_at, updated_at) -VALUES ('b5b92c69-5ed9-4054-954d-0121c29b6800', 'Nikola', 'Tesla', 'nikola.tesla@example.com', '$2a$10$tMbZUZg9AbYL514R.hZ0tuzvfZJR5NQhSVeJPTQhNwPf6gv/cvrna', 'USER', NOW(), NOW()); - -INSERT INTO public.user_account (uuid, first_name, last_name, email, password_hash, user_role, created_at, updated_at) -VALUES ('8d1a4c06-bb0e-4d03-a01f-14fa49bbc152', 'Isaac', 'Newton', 'isaac.newton@example.com', '$2a$10$DLkI7NAZDzWVaKG1lVtloeoPNLPoAgDDBqQKQiSAYDZXrf2QKkuHC', 'USER', NOW(), NOW()); - --- API Keys -INSERT INTO public.api_key (uuid, token, user_account_id, created_at, updated_at) -VALUES ('a1c00673-24c5-4e0a-bdbe-22e961ee7548', 'a274793046e34a219fd0ea6362fcca61a001500b71724f4c973a017031653c20', '7e64818d-6276-46fb-8bb1-732e6e09f7e9', NOW(), NOW()); - -INSERT INTO public.api_key (uuid, token, user_account_id, created_at, updated_at) -VALUES ('62657760-21fe-488c-a0ea-f612a70493da', 'dd5dc3b53b6145cfa9f6c58b72ebad21cd2f860ace62451ba4e3c74a0e63540a', 'b5b92c69-5ed9-4054-954d-0121c29b6800', NOW(), NOW()); - --- Saved Search Queries -INSERT INTO public.search_saved_query (uuid, name, description, type, var_prefixes, var_graph_pattern, var_ordering, user_account_id, created_at, updated_at) -VALUES ('d31e3da1-2cfa-4b55-a8cb-71d1acf01aef', 'All datasets', 'Quickly query all datasets (DCAT)', 'PUBLIC', - 'PREFIX dcat: ', '?entity rdf:type dcat:Dataset .', 'ASC(?title)', '7e64818d-6276-46fb-8bb1-732e6e09f7e9', - NOW(), NOW()); - -INSERT INTO public.search_saved_query (uuid, name, description, type, var_prefixes, var_graph_pattern, var_ordering, user_account_id, created_at, updated_at) -VALUES ('c7d0b6a0-5b0a-4b0e-9b0a-9b0a9b0a9b0a', 'All distributions', 'Quickly query all distributions (DCAT)', 'INTERNAL', - 'PREFIX dcat: ', '?entity rdf:type dcat:Distribution .', 'ASC(?title)', '7e64818d-6276-46fb-8bb1-732e6e09f7e9', - NOW(), NOW()); - -INSERT INTO public.search_saved_query (uuid, name, description, type, var_prefixes, var_graph_pattern, var_ordering, user_account_id, created_at, updated_at) -VALUES ('97da9119-834e-4687-8321-3df157547178', 'Things with data', 'This is private query of Nikola Tesla!', 'PRIVATE', - 'PREFIX dcat: ', -'?entity ?relationPredicate ?relationObject . -FILTER isLiteral(?relationObject) -FILTER CONTAINS(LCASE(str(?relationObject)), LCASE("data"))', - 'ASC(?title)', '7e64818d-6276-46fb-8bb1-732e6e09f7e9', NOW(), NOW()); diff --git a/src/test/resources/test/db/migration/V0001.2__dev-data-schemas.sql b/src/test/resources/test/db/migration/V0001.2__dev-data-schemas.sql deleted file mode 100644 index 310c8377f..000000000 --- a/src/test/resources/test/db/migration/V0001.2__dev-data-schemas.sql +++ /dev/null @@ -1,505 +0,0 @@ --- --- The MIT License --- Copyright © 2016-2024 FAIR Data Team --- --- Permission is hereby granted, free of charge, to any person obtaining a copy --- of this software and associated documentation files (the "Software"), to deal --- in the Software without restriction, including without limitation the rights --- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell --- copies of the Software, and to permit persons to whom the Software is --- furnished to do so, subject to the following conditions: --- --- The above copyright notice and this permission notice shall be included in --- all copies or substantial portions of the Software. --- --- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR --- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, --- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE --- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER --- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, --- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN --- THE SOFTWARE. --- - --- Resource -INSERT INTO metadata_schema (uuid, created_at, updated_at) -VALUES ('6a668323-3936-4b53-8380-a4fd2ed082ee', NOW(), NOW()); -INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, - definition, target_classes, type, origin, imported_from, state, published, - abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) -VALUES ('71d77460-f919-4f72-b265-ed26567fe361', - '6a668323-3936-4b53-8380-a4fd2ed082ee', - NULL, - '1.0.0', - 'Resource', - '', - '@prefix : . - @prefix dash: . - @prefix dcat: . - @prefix dct: . - @prefix foaf: . - @prefix sh: . - @prefix xsd: . - - :ResourceShape a sh:NodeShape ; - sh:targetClass dcat:Resource ; - sh:property [ - sh:path dct:title ; - sh:nodeKind sh:Literal ; - sh:minCount 1 ; - sh:maxCount 1 ; - dash:editor dash:TextFieldEditor ; - sh:order 1 ; - ], [ - sh:path dct:description ; - sh:nodeKind sh:Literal ; - sh:maxCount 1 ; - dash:editor dash:TextAreaEditor ; - sh:order 2 ; - ], [ - sh:path dct:publisher ; - sh:node :AgentShape ; - sh:minCount 1 ; - sh:maxCount 1 ; - dash:editor dash:BlankNodeEditor ; - sh:order 3 ; - ], [ - sh:path dcat:version ; - sh:name "version" ; - sh:nodeKind sh:Literal ; - sh:minCount 1 ; - sh:maxCount 1 ; - dash:editor dash:TextFieldEditor ; - dash:viewer dash:LiteralViewer ; - sh:order 4 ; - ], [ - sh:path dct:language ; - sh:nodeKind sh:IRI ; - sh:maxCount 1 ; - dash:editor dash:URIEditor ; - dash:viewer dash:LabelViewer ; - sh:defaultValue ; - sh:order 5 ; - ], [ - sh:path dct:license ; - sh:nodeKind sh:IRI ; - sh:maxCount 1 ; - dash:editor dash:URIEditor ; - dash:viewer dash:LabelViewer ; - sh:defaultValue ; - sh:order 6 ; - ], [ - sh:path dct:rights ; - sh:nodeKind sh:IRI ; - sh:maxCount 1 ; - dash:editor dash:URIEditor ; - dash:viewer dash:LabelViewer ; - sh:order 7 ; - ] . - - :AgentShape a sh:NodeShape ; - sh:targetClass foaf:Agent ; - sh:property [ - sh:path foaf:name ; - sh:nodeKind sh:Literal ; - sh:minCount 1 ; - sh:maxCount 1 ; - dash:editor dash:TextFieldEditor ; - ] . - ', - ARRAY ['http://www.w3.org/ns/dcat#Resource'], - 'INTERNAL', - NULL, - NULL, - 'LATEST', - FALSE, - TRUE, - NULL, - NULL, - NOW(), - NOW()); - --- Data Service -INSERT INTO metadata_schema (uuid, created_at, updated_at) -VALUES ('89d94c1b-f6ff-4545-ba9b-120b2d1921d0', NOW(), NOW()); -INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, - definition, target_classes, type, origin, imported_from, state, published, - abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) -VALUES ('9111d436-fe58-4bd5-97ae-e6f86bc2997a', - '89d94c1b-f6ff-4545-ba9b-120b2d1921d0', - NULL, - '1.0.0', - 'Data Service', - '', - '@prefix : . -@prefix dash: . -@prefix dcat: . -@prefix dct: . -@prefix sh: . -@prefix xsd: . - -:DataServiceShape a sh:NodeShape ; - sh:targetClass dcat:DataService ; - sh:property [ - sh:path dcat:endpointURL ; - sh:nodeKind sh:IRI ; - sh:maxCount 1 ; - sh:order 20 ; - ] , [ - sh:path dcat:endpointDescription ; - sh:nodeKind sh:Literal ; - sh:maxCount 1 ; - dash:editor dash:TextAreaEditor ; - dash:viewer dash:LiteralViewer ; - sh:order 21 ; -] . -', - ARRAY ['http://www.w3.org/ns/dcat#Resource', 'http://www.w3.org/ns/dcat#DataService'], - 'INTERNAL', - NULL, - NULL, - 'LATEST', - FALSE, - FALSE, - NULL, - NULL, - NOW(), - NOW()); -INSERT INTO metadata_schema_extension (uuid, metadata_schema_version_id, extended_metadata_schema_id, order_priority) -VALUES ('2efc8366-541d-493f-8661-69ad8f72dfa1', '9111d436-fe58-4bd5-97ae-e6f86bc2997a', '6a668323-3936-4b53-8380-a4fd2ed082ee', 0); - --- Metadata Service -INSERT INTO metadata_schema (uuid, created_at, updated_at) -VALUES ('6f7a5a76-6185-4bd0-9fe9-62ecc90c9bad', NOW(), NOW()); -INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, - definition, target_classes, type, origin, imported_from, state, published, - abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) -VALUES ('36b22b70-6203-4dd2-9fb6-b39a776bf467', - '6f7a5a76-6185-4bd0-9fe9-62ecc90c9bad', - NULL, - '1.0.0', - 'Metadata Service', - '', - '@prefix : . -@prefix fdp: . -@prefix sh: . - -:MetadataServiceShape a sh:NodeShape ; - sh:targetClass fdp:MetadataService . -', - ARRAY ['http://www.w3.org/ns/dcat#Resource', 'http://www.w3.org/ns/dcat#DataService', 'https://w3id.org/fdp/fdp-o#MetadataService'], - 'INTERNAL', - NULL, - NULL, - 'LATEST', - FALSE, - FALSE, - NULL, - NULL, - NOW(), - NOW()); -INSERT INTO metadata_schema_extension (uuid, metadata_schema_version_id, extended_metadata_schema_id, order_priority) -VALUES ('8742361b-cd00-4167-b859-e45fa36d0cb7', '36b22b70-6203-4dd2-9fb6-b39a776bf467', '89d94c1b-f6ff-4545-ba9b-120b2d1921d0', 0); - --- FAIR Data Point -INSERT INTO metadata_schema (uuid, created_at, updated_at) -VALUES ('a92958ab-a414-47e6-8e17-68ba96ba3a2b', NOW(), NOW()); -INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, - definition, target_classes, type, origin, imported_from, state, published, - abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) -VALUES ('4e64208d-f102-45a0-96e3-17b002e6213e', - 'a92958ab-a414-47e6-8e17-68ba96ba3a2b', - NULL, - '1.0.0', - 'FAIR Data Point', - '', - '@prefix : . -@prefix dash: . -@prefix dct: . -@prefix fdp: . -@prefix sh: . -@prefix xsd: . - -:FDPShape a sh:NodeShape ; - sh:targetClass fdp:FAIRDataPoint ; - sh:property [ - sh:path fdp:startDate ; - sh:datatype xsd:dateTime ; - sh:maxCount 1 ; - dash:editor dash:DatePickerEditor ; - dash:viewer dash:LiteralViewer ; - sh:order 40 ; - ] , [ - sh:path fdp:endDate ; - sh:datatype xsd:dateTime ; - sh:maxCount 1 ; - dash:editor dash:DatePickerEditor ; - dash:viewer dash:LiteralViewer ; - sh:order 41 ; - ] , [ - sh:path fdp:uiLanguage ; - sh:nodeKind sh:IRI ; - sh:maxCount 1 ; - sh:defaultValue ; - dash:editor dash:URIEditor ; - dash:viewer dash:LabelViewer ; - sh:order 42 ; - ] , [ - sh:path fdp:metadataIdentifier ; - sh:nodeKind sh:IRI ; - sh:maxCount 1 ; - dash:editor dash:URIEditor ; - dash:viewer dash:LabelViewer ; - sh:order 43 ; - ] , [ - sh:path fdp:metadataIssued ; - sh:datatype xsd:dateTime ; - sh:maxCount 1 ; - dash:viewer dash:LiteralViewer ; - sh:order 44 ; - ] , [ - sh:path fdp:metadataModified ; - sh:datatype xsd:dateTime ; - sh:maxCount 1 ; - dash:viewer dash:LiteralViewer ; - sh:order 45 ; - ] . - ', - ARRAY ['http://www.w3.org/ns/dcat#Resource', 'http://www.w3.org/ns/dcat#DataService', 'https://w3id.org/fdp/fdp-o#MetadataService', 'https://w3id.org/fdp/fdp-o#FAIRDataPoint'], - 'INTERNAL', - NULL, - NULL, - 'LATEST', - FALSE, - FALSE, - NULL, - NULL, - NOW(), - NOW()); -INSERT INTO metadata_schema_extension (uuid, metadata_schema_version_id, extended_metadata_schema_id, order_priority) -VALUES ('afebd441-8aa5-464d-bc3c-033f175449b4', '4e64208d-f102-45a0-96e3-17b002e6213e', '6f7a5a76-6185-4bd0-9fe9-62ecc90c9bad', 0); - --- Catalog -INSERT INTO metadata_schema (uuid, created_at, updated_at) -VALUES ('2aa7ba63-d27a-4c0e-bfa6-3a4e250f4660', NOW(), NOW()); -INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, - definition, target_classes, type, origin, imported_from, state, published, - abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) -VALUES ('c9640671-945d-4114-88fb-e81314cb7ab2', - '2aa7ba63-d27a-4c0e-bfa6-3a4e250f4660', - NULL, - '1.0.0', - 'Catalog', - '', - '@prefix : . -@prefix dash: . -@prefix dcat: . -@prefix dct: . -@prefix foaf: . -@prefix sh: . -@prefix xsd: . - -:CatalogShape a sh:NodeShape ; - sh:targetClass dcat:Catalog ; - sh:property [ - sh:path dct:issued ; - sh:datatype xsd:dateTime ; - sh:maxCount 1 ; - dash:viewer dash:LiteralViewer ; - sh:order 20 ; - ], [ - sh:path dct:modified ; - sh:datatype xsd:dateTime ; - sh:maxCount 1 ; - dash:viewer dash:LiteralViewer ; - sh:order 21 ; - ], [ - sh:path foaf:homePage ; - sh:nodeKind sh:IRI ; - sh:maxCount 1 ; - dash:editor dash:URIEditor ; - dash:viewer dash:LabelViewer ; - sh:order 22 ; - ], [ - sh:path dcat:themeTaxonomy ; - sh:nodeKind sh:IRI ; - dash:viewer dash:LabelViewer ; - sh:order 23 ; - ] . -', - ARRAY ['http://www.w3.org/ns/dcat#Resource', 'http://www.w3.org/ns/dcat#Catalog'], - 'INTERNAL', - NULL, - NULL, - 'LATEST', - FALSE, - FALSE, - NULL, - NULL, - NOW(), - NOW()); -INSERT INTO metadata_schema_extension (uuid, metadata_schema_version_id, extended_metadata_schema_id, order_priority) -VALUES ('e75cb601-318d-41ea-9a8b-32e0749c80a7', 'c9640671-945d-4114-88fb-e81314cb7ab2', '6a668323-3936-4b53-8380-a4fd2ed082ee', 0); - --- Dataset -INSERT INTO metadata_schema (uuid, created_at, updated_at) -VALUES ('866d7fb8-5982-4215-9c7c-18d0ed1bd5f3', NOW(), NOW()); -INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, - definition, target_classes, type, origin, imported_from, state, published, - abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) -VALUES ('9cc3c89a-76cf-4639-a71f-652627af51db', - '866d7fb8-5982-4215-9c7c-18d0ed1bd5f3', - NULL, - '1.0.0', - 'Dataset', - '', - '@prefix : . -@prefix dash: . -@prefix dcat: . -@prefix dct: . -@prefix sh: . -@prefix xsd: . - -:DatasetShape a sh:NodeShape ; - sh:targetClass dcat:Dataset ; - sh:property [ - sh:path dct:issued ; - sh:datatype xsd:dateTime ; - sh:maxCount 1 ; - dash:editor dash:DatePickerEditor ; - dash:viewer dash:LiteralViewer ; - sh:order 20 ; - ], [ - sh:path dct:modified ; - sh:datatype xsd:dateTime ; - sh:maxCount 1 ; - dash:editor dash:DatePickerEditor ; - dash:viewer dash:LiteralViewer ; - sh:order 21 ; - ], [ - sh:path dcat:theme ; - sh:nodeKind sh:IRI ; - sh:minCount 1 ; - dash:editor dash:URIEditor ; - dash:viewer dash:LabelViewer ; - sh:order 22 ; - ], [ - sh:path dcat:contactPoint ; - sh:nodeKind sh:IRI ; - sh:maxCount 1 ; - dash:editor dash:URIEditor ; - dash:viewer dash:LabelViewer ; - sh:order 23 ; - ], [ - sh:path dcat:keyword ; - sh:nodeKind sh:Literal ; - dash:editor dash:TextFieldEditor ; - dash:viewer dash:LiteralViewer ; - sh:order 24 ; - ], [ - sh:path dcat:landingPage ; - sh:nodeKind sh:IRI ; - sh:maxCount 1 ; - dash:editor dash:URIEditor ; - dash:viewer dash:LabelViewer ; - sh:order 25 ; - ] . -', - ARRAY ['http://www.w3.org/ns/dcat#Resource', 'http://www.w3.org/ns/dcat#Dataset'], - 'INTERNAL', - NULL, - NULL, - 'LATEST', - FALSE, - FALSE, - NULL, - NULL, - NOW(), - NOW()); -INSERT INTO metadata_schema_extension (uuid, metadata_schema_version_id, extended_metadata_schema_id, order_priority) -VALUES ('da13ba37-09f8-4937-9055-e3ee3aefc57c', '9cc3c89a-76cf-4639-a71f-652627af51db', '6a668323-3936-4b53-8380-a4fd2ed082ee', 0); - --- Distribution -INSERT INTO metadata_schema (uuid, created_at, updated_at) -VALUES ('ebacbf83-cd4f-4113-8738-d73c0735b0ab', NOW(), NOW()); -INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, - definition, target_classes, type, origin, imported_from, state, published, - abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) -VALUES ('3cda8cd3-b08b-4797-822d-d3f3e83c466a', - 'ebacbf83-cd4f-4113-8738-d73c0735b0ab', - NULL, - '1.0.0', - 'Distribution', - '', - '@prefix : . -@prefix dash: . -@prefix dcat: . -@prefix dct: . -@prefix sh: . -@prefix xsd: . - -:DistributionShape a sh:NodeShape ; - sh:targetClass dcat:Distribution ; - sh:property [ - sh:path dct:issued ; - sh:datatype xsd:dateTime ; - sh:maxCount 1 ; - dash:editor dash:DatePickerEditor ; - dash:viewer dash:LiteralViewer ; - sh:order 20 ; - ] , [ - sh:path dct:modified ; - sh:datatype xsd:dateTime ; - sh:maxCount 1 ; - dash:editor dash:DatePickerEditor ; - dash:viewer dash:LiteralViewer ; - sh:order 21 ; - ] , [ - sh:path dcat:accessURL ; - sh:nodeKind sh:IRI ; - sh:maxCount 1 ; - dash:editor dash:URIEditor ; - sh:order 22 ; - ] , [ - sh:path dcat:downloadURL ; - sh:nodeKind sh:IRI ; - sh:maxCount 1 ; - dash:editor dash:URIEditor ; - sh:order 23 ; - ] , [ - sh:path dcat:mediaType ; - sh:nodeKind sh:Literal ; - sh:minCount 1 ; - sh:maxCount 1 ; - dash:editor dash:TextFieldEditor ; - dash:viewer dash:LiteralViewer ; - sh:order 24 ; - ] , [ - sh:path dcat:format ; - sh:nodeKind sh:Literal ; - sh:maxCount 1 ; - dash:editor dash:TextFieldEditor ; - dash:viewer dash:LiteralViewer ; - sh:order 25 ; - ] , [ - sh:path dcat:byteSize ; - sh:nodeKind sh:Literal ; - sh:maxCount 1 ; - dash:editor dash:TextFieldEditor ; - dash:viewer dash:LiteralViewer ; - sh:order 26 ; - ] . -', - ARRAY ['http://www.w3.org/ns/dcat#Resource', 'http://www.w3.org/ns/dcat#Distribution'], - 'INTERNAL', - NULL, - NULL, - 'LATEST', - FALSE, - FALSE, - NULL, - NULL, - NOW(), - NOW()); -INSERT INTO metadata_schema_extension (uuid, metadata_schema_version_id, extended_metadata_schema_id, order_priority) -VALUES ('a3b16a4e-cac7-4b71-a3de-94bb86714b5b', '3cda8cd3-b08b-4797-822d-d3f3e83c466a', '6a668323-3936-4b53-8380-a4fd2ed082ee', 0); diff --git a/src/test/resources/test/db/migration/V0001.3__dev-data-rds.sql b/src/test/resources/test/db/migration/V0001.3__dev-data-rds.sql deleted file mode 100644 index ed4f047ff..000000000 --- a/src/test/resources/test/db/migration/V0001.3__dev-data-rds.sql +++ /dev/null @@ -1,68 +0,0 @@ --- --- The MIT License --- Copyright © 2016-2024 FAIR Data Team --- --- Permission is hereby granted, free of charge, to any person obtaining a copy --- of this software and associated documentation files (the "Software"), to deal --- in the Software without restriction, including without limitation the rights --- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell --- copies of the Software, and to permit persons to whom the Software is --- furnished to do so, subject to the following conditions: --- --- The above copyright notice and this permission notice shall be included in --- all copies or substantial portions of the Software. --- --- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR --- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, --- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE --- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER --- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, --- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN --- THE SOFTWARE. --- - --- Distribution -INSERT INTO resource_definition (uuid, name, url_prefix, created_at, updated_at) -VALUES ('02c649de-c579-43bb-b470-306abdc808c7', 'Distribution', 'distribution', now(), now()); - -INSERT INTO resource_definition_link (uuid, resource_definition_id, title, property_uri, order_priority, created_at, updated_at) -VALUES ('660a1821-a5d2-48d0-a26b-0c6d5bac3de4', '02c649de-c579-43bb-b470-306abdc808c7', 'Access online', 'http://www.w3.org/ns/dcat#accessURL', 1, now(), now()); - -INSERT INTO resource_definition_link (uuid, resource_definition_id, title, property_uri, order_priority, created_at, updated_at) -VALUES ('c2eaebb8-4d8d-469d-8736-269adeded996', '02c649de-c579-43bb-b470-306abdc808c7', 'Download', 'http://www.w3.org/ns/dcat#downloadURL', 2, now(), now()); - -INSERT INTO metadata_schema_usage (uuid, resource_definition_id, metadata_schema_id, order_priority) -VALUES ('bbf4ecb3-c529-4c02-955c-7160755debf5', '02c649de-c579-43bb-b470-306abdc808c7', 'ebacbf83-cd4f-4113-8738-d73c0735b0ab', 1); - --- Dataset -INSERT INTO resource_definition (uuid, name, url_prefix, created_at, updated_at) -VALUES ('2f08228e-1789-40f8-84cd-28e3288c3604', 'Dataset', 'dataset', now(), now()); - -INSERT INTO resource_definition_child (uuid, source_resource_definition_id, target_resource_definition_id, relation_uri, title, tags_uri, order_priority, created_at, updated_at) -VALUES ('9f138a13-9d45-4371-b763-0a3b9e0ec912', '2f08228e-1789-40f8-84cd-28e3288c3604', '02c649de-c579-43bb-b470-306abdc808c7', 'http://www.w3.org/ns/dcat#distribution', 'Distributions', NULL, 1, now(), now()); - -INSERT INTO resource_definition_child_metadata (uuid, resource_definition_child_id, title, property_uri, order_priority, created_at, updated_at) -VALUES ('723e95d3-1696-45e2-9429-f6e98e3fb893', '9f138a13-9d45-4371-b763-0a3b9e0ec912', 'Media Type', 'http://www.w3.org/ns/dcat#mediaType', 1, now(), now()); - -INSERT INTO metadata_schema_usage (uuid, resource_definition_id, metadata_schema_id, order_priority) -VALUES ('b8a0ed37-42a1-487e-8842-09fe082c4cc6', '2f08228e-1789-40f8-84cd-28e3288c3604', '866d7fb8-5982-4215-9c7c-18d0ed1bd5f3', 1); - --- Catalog -INSERT INTO resource_definition (uuid, name, url_prefix, created_at, updated_at) -VALUES ('a0949e72-4466-4d53-8900-9436d1049a4b', 'Catalog', 'catalog', now(), now()); - -INSERT INTO resource_definition_child (uuid, source_resource_definition_id, target_resource_definition_id, relation_uri, title, tags_uri, order_priority, created_at, updated_at) -VALUES ('e9f0f5d3-2a93-4aa3-9dd0-acb1d76f54fc', 'a0949e72-4466-4d53-8900-9436d1049a4b', '2f08228e-1789-40f8-84cd-28e3288c3604', 'http://www.w3.org/ns/dcat#dataset', 'Datasets', 'http://www.w3.org/ns/dcat#theme', 1, now(), now()); - -INSERT INTO metadata_schema_usage (uuid, resource_definition_id, metadata_schema_id, order_priority) -VALUES ('e4df9510-a3ad-4e3b-a1a9-5fc330d8b1f0', 'a0949e72-4466-4d53-8900-9436d1049a4b', '2aa7ba63-d27a-4c0e-bfa6-3a4e250f4660', 1); - --- FAIR Data Point -INSERT INTO resource_definition (uuid, name, url_prefix, created_at, updated_at) -VALUES ('77aaad6a-0136-4c6e-88b9-07ffccd0ee4c', 'FAIR Data Point', '', now(), now()); - -INSERT INTO resource_definition_child (uuid, source_resource_definition_id, target_resource_definition_id, relation_uri, title, tags_uri, order_priority, created_at, updated_at) -VALUES ('b8648597-8fbd-4b89-9e30-5eab82675e42', '77aaad6a-0136-4c6e-88b9-07ffccd0ee4c', 'a0949e72-4466-4d53-8900-9436d1049a4b', 'https://w3id.org/fdp/fdp-o#metadataCatalog', 'Catalogs', 'http://www.w3.org/ns/dcat#themeTaxonomy', 1, now(), now()); - -INSERT INTO metadata_schema_usage (uuid, resource_definition_id, metadata_schema_id, order_priority) -VALUES ('9b3a32a8-a14c-4eb0-ba02-3aa8e13a8f11', '77aaad6a-0136-4c6e-88b9-07ffccd0ee4c', 'a92958ab-a414-47e6-8e17-68ba96ba3a2b', 1); diff --git a/src/test/resources/test/db/migration/V0001.4__dev-data-membership.sql b/src/test/resources/test/db/migration/V0001.4__dev-data-membership.sql deleted file mode 100644 index 8240e0bfe..000000000 --- a/src/test/resources/test/db/migration/V0001.4__dev-data-membership.sql +++ /dev/null @@ -1,43 +0,0 @@ --- --- The MIT License --- Copyright © 2016-2024 FAIR Data Team --- --- Permission is hereby granted, free of charge, to any person obtaining a copy --- of this software and associated documentation files (the "Software"), to deal --- in the Software without restriction, including without limitation the rights --- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell --- copies of the Software, and to permit persons to whom the Software is --- furnished to do so, subject to the following conditions: --- --- The above copyright notice and this permission notice shall be included in --- all copies or substantial portions of the Software. --- --- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR --- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, --- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE --- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER --- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, --- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN --- THE SOFTWARE. --- - -INSERT INTO membership (uuid, name, allowed_entities, created_at, updated_at) -VALUES ('49f2bcfd-ef0a-4a3a-a1a3-0fc72a6892a8', 'Owner', ARRAY ['a0949e72-4466-4d53-8900-9436d1049a4b', '2f08228e-1789-40f8-84cd-28e3288c3604', '02c649de-c579-43bb-b470-306abdc808c7'], NOW(), NOW()); - -INSERT INTO membership (uuid, name, allowed_entities, created_at, updated_at) -VALUES ('87a2d984-7db2-43f6-805c-6b0040afead5', 'Data Provider', ARRAY ['a0949e72-4466-4d53-8900-9436d1049a4b'], NOW(), NOW()); - -INSERT INTO membership_permission (uuid, membership_id, mask, code, created_at, updated_at) -VALUES ('e0d9f853-637b-4c50-9ad9-07b6349bf76f', '49f2bcfd-ef0a-4a3a-a1a3-0fc72a6892a8', 2, 'W', NOW(), NOW()); - -INSERT INTO membership_permission (uuid, membership_id, mask, code, created_at, updated_at) -VALUES ('de4e4f85-f11d-475b-b6f0-33bdfe5f923a', '49f2bcfd-ef0a-4a3a-a1a3-0fc72a6892a8', 4, 'C', NOW(), NOW()); - -INSERT INTO membership_permission (uuid, membership_id, mask, code, created_at, updated_at) -VALUES ('60bebbf0-210d-4b05-af85-ca1b58546261', '49f2bcfd-ef0a-4a3a-a1a3-0fc72a6892a8', 8, 'D', NOW(), NOW()); - -INSERT INTO membership_permission (uuid, membership_id, mask, code, created_at, updated_at) -VALUES ('36c3b6e9-f2e3-48b7-bae1-4dc3196a3657', '49f2bcfd-ef0a-4a3a-a1a3-0fc72a6892a8', 16, 'A', NOW(), NOW()); - -INSERT INTO membership_permission (uuid, membership_id, mask, code, created_at, updated_at) -VALUES ('589d09d3-1c29-4c6f-97fc-6ea4e007fb85', '87a2d984-7db2-43f6-805c-6b0040afead5', 4, 'C', NOW(), NOW()); diff --git a/src/test/resources/test/db/migration/V0001.5__dev-settings.sql b/src/test/resources/test/db/migration/V0001.5__dev-settings.sql deleted file mode 100644 index 75496e02a..000000000 --- a/src/test/resources/test/db/migration/V0001.5__dev-settings.sql +++ /dev/null @@ -1,73 +0,0 @@ --- --- The MIT License --- Copyright © 2016-2024 FAIR Data Team --- --- Permission is hereby granted, free of charge, to any person obtaining a copy --- of this software and associated documentation files (the "Software"), to deal --- in the Software without restriction, including without limitation the rights --- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell --- copies of the Software, and to permit persons to whom the Software is --- furnished to do so, subject to the following conditions: --- --- The above copyright notice and this permission notice shall be included in --- all copies or substantial portions of the Software. --- --- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR --- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, --- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE --- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER --- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, --- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN --- THE SOFTWARE. --- - --- Settings -INSERT INTO settings (uuid, app_title, app_subtitle, ping_enabled, ping_endpoints, autocomplete_search_ns, created_at, updated_at) -VALUES ('00000000-0000-0000-0000-000000000000', 'FAIR Data Point', 'FDP Development Instance', False, ARRAY ['https://home.fairdatapoint.org'], True, now(), now()); - --- Autocomplete Sources -INSERT INTO settings_autocomplete_source (uuid, settings_id, rdf_type, sparql_endpoint, sparql_query, order_priority, created_at, updated_at) -VALUES ('d4045a98-dd25-493e-a0b1-d704921c0930', '00000000-0000-0000-0000-000000000000', 'http://www.w3.org/2000/01/rdf-schema#Class', 'http://localhost:3030/ds/query', -'SELECT DISTINCT ?uri ?label -WHERE { ?uri a . -?uri ?label . -FILTER regex(?label, ".*%s.*", "i") } -ORDER BY ?label', - 1, now(), now()); - --- Search Filters: Type -INSERT INTO settings_search_filter (uuid, settings_id, type, label, predicate, query_records, order_priority, created_at, updated_at) -VALUES ('57a98728-ce8c-4e7f-b0f8-94e2668b44d3', '00000000-0000-0000-0000-000000000000', 'IRI', 'Type', 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type', False, 1, now(), now()); - -INSERT INTO settings_search_filter_item (uuid, filter_id, label, value, order_priority, created_at, updated_at) -VALUES ('b48c2c7f-d7fb-47ae-a72c-b1b360e16f6e', '57a98728-ce8c-4e7f-b0f8-94e2668b44d3', 'Catalog', 'http://www.w3.org/ns/dcat#Catalog', 1, now(), now()); - -INSERT INTO settings_search_filter_item (uuid, filter_id, label, value, order_priority, created_at, updated_at) -VALUES ('3e1598ac-9d29-47f0-8e7b-3c26ca0134a0', '57a98728-ce8c-4e7f-b0f8-94e2668b44d3', 'Dataset', 'http://www.w3.org/ns/dcat#Dataset', 2, now(), now()); - -INSERT INTO settings_search_filter_item (uuid, filter_id, label, value, order_priority, created_at, updated_at) -VALUES ('5697d8d9-f09d-4ebe-b834-b37eb0624c3f', '57a98728-ce8c-4e7f-b0f8-94e2668b44d3', 'Distribution', 'http://www.w3.org/ns/dcat#Distribution', 3, now(), now()); - -INSERT INTO settings_search_filter_item (uuid, filter_id, label, value, order_priority, created_at, updated_at) -VALUES ('022c3bc6-0598-408c-8d2e-b486dafb73dd', '57a98728-ce8c-4e7f-b0f8-94e2668b44d3', 'Data Service', 'http://www.w3.org/ns/dcat#DataService', 4, now(), now()); - -INSERT INTO settings_search_filter_item (uuid, filter_id, label, value, order_priority, created_at, updated_at) -VALUES ('7cee5591-8620-4fea-b883-a94285012b8d', '57a98728-ce8c-4e7f-b0f8-94e2668b44d3', 'Metadata Service', 'https://w3id.org/fdp/fdp-o#MetadataService', 5, now(), now()); - -INSERT INTO settings_search_filter_item (uuid, filter_id, label, value, order_priority, created_at, updated_at) -VALUES ('9d661dca-8017-4dba-b930-cd2834ea59e8', '57a98728-ce8c-4e7f-b0f8-94e2668b44d3', 'FAIR Data Point', 'https://w3id.org/fdp/fdp-o#FAIRDataPoint', 6, now(), now()); - --- Search Filters: License -INSERT INTO settings_search_filter (uuid, settings_id, type, label, predicate, query_records, order_priority, created_at, updated_at) -VALUES ('26913eb3-67dd-45c9-b8ff-4c97e8162a9b', '00000000-0000-0000-0000-000000000000', 'IRI', 'License', 'http://purl.org/dc/terms/license', True, 2, now(), now()); - --- Search Filters: License -INSERT INTO settings_search_filter (uuid, settings_id, type, label, predicate, query_records, order_priority, created_at, updated_at) -VALUES ('cb25afb4-6169-42f8-bde5-181c803773a8', '00000000-0000-0000-0000-000000000000', 'IRI', 'Version', 'http://www.w3.org/ns/dcat#version', True, 3, now(), now()); - --- Metrics -INSERT INTO settings_metric (uuid, settings_id, metric_uri, resource_uri, order_priority, created_at, updated_at) -VALUES ('8435491b-c16c-4457-ae94-e0f4128603d5', '00000000-0000-0000-0000-000000000000', 'https://purl.org/fair-metrics/FM_F1A', 'https://www.ietf.org/rfc/rfc3986.txt', 1, now(), now()); - -INSERT INTO settings_metric (uuid, settings_id, metric_uri, resource_uri, order_priority, created_at, updated_at) -VALUES ('af93d36a-0af0-4054-8c00-2675d460b231', '00000000-0000-0000-0000-000000000000', 'https://purl.org/fair-metrics/FM_A1.1', 'https://www.wikidata.org/wiki/Q8777', 2, now(), now()); diff --git a/src/test/resources/test/db/migration/V0001.6__test-schemas.sql b/src/test/resources/test/db/migration/V0001.6__test-schemas.sql deleted file mode 100644 index b340329e8..000000000 --- a/src/test/resources/test/db/migration/V0001.6__test-schemas.sql +++ /dev/null @@ -1,161 +0,0 @@ --- --- The MIT License --- Copyright © 2016-2024 FAIR Data Team --- --- Permission is hereby granted, free of charge, to any person obtaining a copy --- of this software and associated documentation files (the "Software"), to deal --- in the Software without restriction, including without limitation the rights --- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell --- copies of the Software, and to permit persons to whom the Software is --- furnished to do so, subject to the following conditions: --- --- The above copyright notice and this permission notice shall be included in --- all copies or substantial portions of the Software. --- --- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR --- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, --- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE --- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER --- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, --- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN --- THE SOFTWARE. --- - --- Custom with one version -INSERT INTO metadata_schema (uuid, created_at, updated_at) -VALUES ('e8b34158-3858-45c7-8e3e-d1e671dd9929', NOW(), NOW()); - -INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, - definition, target_classes, type, origin, imported_from, state, published, - abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) -VALUES ('53619e58-2bb0-4baf-afd8-00c5d01ff8a8', 'e8b34158-3858-45c7-8e3e-d1e671dd9929', NULL, '0.1.0', 'Custom schema', - 'Custom schema V1', - '', ARRAY ['http://www.w3.org/2000/01/rdf-schema#Class'], 'CUSTOM', NULL, NULL, 'LATEST', TRUE, FALSE, NULL, - NULL, NOW(), NOW()); - --- Custom with one draft -INSERT INTO metadata_schema (uuid, created_at, updated_at) -VALUES ('bfa79edf-00b7-4a04-b5a6-a5144f1a77b7', NOW(), NOW()); - -INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, - definition, target_classes, type, origin, imported_from, state, published, - abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) -VALUES ('cb9f6cd7-97af-45d0-b23d-d0aab23607d8', 'bfa79edf-00b7-4a04-b5a6-a5144f1a77b7', NULL, '0.1.0', 'Custom schema', - 'Custom schema V1', - '', ARRAY ['http://www.w3.org/2000/01/rdf-schema#Class'], 'CUSTOM', NULL, NULL, 'DRAFT', FALSE, FALSE, NULL, - NULL, NOW(), NOW()); - - --- Custom with one version INTERNAL -INSERT INTO metadata_schema (uuid, created_at, updated_at) -VALUES ('fe98adbb-6a2c-4c7a-b2b2-a72db5140c61', NOW(), NOW()); - -INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, - definition, target_classes, type, origin, imported_from, state, published, - abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) -VALUES ('f0a4b358-69a3-44e6-9436-c68a56a9f2f2', 'fe98adbb-6a2c-4c7a-b2b2-a72db5140c61', NULL, '0.1.0', 'Custom schema', - 'Custom schema V1', - '', ARRAY ['http://www.w3.org/2000/01/rdf-schema#Class'], 'INTERNAL', NULL, NULL, 'LATEST', TRUE, FALSE, NULL, - NULL, NOW(), NOW()); - --- Custom with multiple versions -INSERT INTO metadata_schema (uuid, created_at, updated_at) -VALUES ('978e5c1c-268d-4822-b60b-07d3eccc6896', NOW(), NOW()); - -INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, - definition, target_classes, type, origin, imported_from, state, published, - abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) -VALUES ('d7acec53-5ac9-4502-9bfa-92d1e9f79a24', '978e5c1c-268d-4822-b60b-07d3eccc6896', NULL, '0.1.0', 'Custom schema', - 'Custom schema V1', - '', ARRAY ['http://www.w3.org/2000/01/rdf-schema#Class'], 'CUSTOM', NULL, NULL, 'LEGACY', FALSE, FALSE, NULL, - NULL, NOW(), NOW()); - -INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, - definition, target_classes, type, origin, imported_from, state, published, - abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) -VALUES ('67896adc-b431-431d-8296-f0b80d8de412', '978e5c1c-268d-4822-b60b-07d3eccc6896', 'd7acec53-5ac9-4502-9bfa-92d1e9f79a24', '0.2.0', 'Custom schema', - 'Custom schema V2', - '', ARRAY ['http://www.w3.org/2000/01/rdf-schema#Class'], 'CUSTOM', NULL, NULL, 'LEGACY', FALSE, FALSE, NULL, - NULL, NOW(), NOW()); - -INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, - definition, target_classes, type, origin, imported_from, state, published, - abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) -VALUES ('c62d4a97-baac-40b8-b6ea-e43b06ec78bd', '978e5c1c-268d-4822-b60b-07d3eccc6896', '67896adc-b431-431d-8296-f0b80d8de412', '0.3.0', 'Custom schema', - 'Custom schema V3', - '', ARRAY ['http://www.w3.org/2000/01/rdf-schema#Class'], 'CUSTOM', NULL, NULL, 'LATEST', FALSE, FALSE, NULL, - NULL, NOW(), NOW()); - --- Custom with draft -INSERT INTO metadata_schema (uuid, created_at, updated_at) -VALUES ('e7078309-cb4c-47b9-9ef8-057487b3da58', NOW(), NOW()); - -INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, - definition, target_classes, type, origin, imported_from, state, published, - abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) -VALUES ('a17c25ad-e8d3-4338-bb3e-eda76d2fc32c', 'e7078309-cb4c-47b9-9ef8-057487b3da58', NULL, '0.0.0', 'Custom schema', - 'Custom schema draft', - '', ARRAY ['http://www.w3.org/2000/01/rdf-schema#Class'], 'CUSTOM', NULL, NULL, 'DRAFT', FALSE, FALSE, NULL, - NULL, NOW(), NOW()); - --- Custom with multiple versions and draft -INSERT INTO metadata_schema (uuid, created_at, updated_at) -VALUES ('123e48d2-9995-4b44-8b2c-9c81bdbf2dd2', NOW(), NOW()); - -INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, - definition, target_classes, type, origin, imported_from, state, published, - abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) -VALUES ('fb24f92b-187f-4d53-b744-73024b537f30', '123e48d2-9995-4b44-8b2c-9c81bdbf2dd2', NULL, '0.1.0', 'Custom schema', - 'Custom schema V1', - '', ARRAY ['http://www.w3.org/2000/01/rdf-schema#Class'], 'CUSTOM', NULL, NULL, 'LEGACY', FALSE, FALSE, NULL, - NULL, NOW(), NOW()); - -INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, - definition, target_classes, type, origin, imported_from, state, published, - abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) -VALUES ('6011adfa-f8da-478d-86ea-84bb644b458b', '123e48d2-9995-4b44-8b2c-9c81bdbf2dd2', 'fb24f92b-187f-4d53-b744-73024b537f30', '0.2.0', 'Custom schema', - 'Custom schema V2', - '', ARRAY ['http://www.w3.org/2000/01/rdf-schema#Class'], 'CUSTOM', NULL, NULL, 'LATEST', FALSE, FALSE, NULL, - NULL, NOW(), NOW()); - -INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, - definition, target_classes, type, origin, imported_from, state, published, - abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) -VALUES ('6b84ec86-2096-48db-bfc7-23506b8c080c', '123e48d2-9995-4b44-8b2c-9c81bdbf2dd2', '6011adfa-f8da-478d-86ea-84bb644b458b', '0.0.0', 'Custom schema', - 'Custom schema draft', - '', ARRAY ['http://www.w3.org/2000/01/rdf-schema#Class'], 'CUSTOM', NULL, NULL, 'DRAFT', FALSE, FALSE, NULL, - NULL, NOW(), NOW()); - --- Custom with multiple versions and draft and extends -INSERT INTO metadata_schema (uuid, created_at, updated_at) -VALUES ('7c8b8699-ca9f-4d14-86e2-2299b27c5711', NOW(), NOW()); - -INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, - definition, target_classes, type, origin, imported_from, state, published, - abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) -VALUES ('4e44fb19-b9e0-46e9-957a-e7aa3adac7bf', '7c8b8699-ca9f-4d14-86e2-2299b27c5711', NULL, '0.1.0', 'Custom schema', - 'Custom schema V1', - '', ARRAY ['http://www.w3.org/2000/01/rdf-schema#Class'], 'CUSTOM', NULL, NULL, 'LEGACY', FALSE, FALSE, NULL, - NULL, NOW(), NOW()); - -INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, - definition, target_classes, type, origin, imported_from, state, published, - abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) -VALUES ('abcf3a21-6f9a-45dc-a71a-4dde4440c81a', '7c8b8699-ca9f-4d14-86e2-2299b27c5711', '4e44fb19-b9e0-46e9-957a-e7aa3adac7bf', '0.2.0', 'Custom schema', - 'Custom schema V2', - '', ARRAY ['http://www.w3.org/2000/01/rdf-schema#Class'], 'CUSTOM', NULL, NULL, 'LATEST', FALSE, FALSE, NULL, - NULL, NOW(), NOW()); -INSERT INTO metadata_schema_extension (uuid, metadata_schema_version_id, extended_metadata_schema_id, order_priority) -VALUES ('1bdca611-c96e-4304-b1f3-030d282ef529', 'abcf3a21-6f9a-45dc-a71a-4dde4440c81a', '6a668323-3936-4b53-8380-a4fd2ed082ee', 0); -INSERT INTO metadata_schema_extension (uuid, metadata_schema_version_id, extended_metadata_schema_id, order_priority) -VALUES ('1bdca611-c96e-4304-b1f3-030d282ef530', 'abcf3a21-6f9a-45dc-a71a-4dde4440c81a', '123e48d2-9995-4b44-8b2c-9c81bdbf2dd2', 1); - -INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, - definition, target_classes, type, origin, imported_from, state, published, - abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) -VALUES ('a6d609ff-905f-4edd-bdb1-2dce000c9a45', '7c8b8699-ca9f-4d14-86e2-2299b27c5711', 'abcf3a21-6f9a-45dc-a71a-4dde4440c81a', '0.0.0', 'Custom schema', - 'Custom schema draft', - '', ARRAY ['http://www.w3.org/2000/01/rdf-schema#Class'], 'CUSTOM', NULL, NULL, 'DRAFT', FALSE, FALSE, NULL, - NULL, NOW(), NOW()); -INSERT INTO metadata_schema_extension (uuid, metadata_schema_version_id, extended_metadata_schema_id, order_priority) -VALUES ('53e3db46-8fe4-47ce-873e-ed7db94e73b3', 'a6d609ff-905f-4edd-bdb1-2dce000c9a45', '6a668323-3936-4b53-8380-a4fd2ed082ee', 0); From 6c868403fa726c3194656d3054f73dfffd6c3730 Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Wed, 12 Nov 2025 16:36:22 +0100 Subject: [PATCH 22/30] try preliminary workflow with surefire reports --- .github/workflows/maven-verify.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/maven-verify.yml b/.github/workflows/maven-verify.yml index 912f9d24d..e2c320d8a 100644 --- a/.github/workflows/maven-verify.yml +++ b/.github/workflows/maven-verify.yml @@ -28,7 +28,7 @@ jobs: - macos-14 java-version: - 21 - uses: FAIRDataTeam/github-workflows/.github/workflows/maven-verify.yml@v2 + uses: FAIRDataTeam/github-workflows/.github/workflows/maven-verify.yml@feature/issue36-surefire-logs with: runner: ${{ matrix.runner }} java-version: ${{ matrix.java-version }} From 3db1f4e89778e06542322ae226886529536aabe8 Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Wed, 12 Nov 2025 16:48:13 +0100 Subject: [PATCH 23/30] Revert "try preliminary workflow with surefire reports" This reverts commit 6c868403fa726c3194656d3054f73dfffd6c3730. --- .github/workflows/maven-verify.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/maven-verify.yml b/.github/workflows/maven-verify.yml index e2c320d8a..912f9d24d 100644 --- a/.github/workflows/maven-verify.yml +++ b/.github/workflows/maven-verify.yml @@ -28,7 +28,7 @@ jobs: - macos-14 java-version: - 21 - uses: FAIRDataTeam/github-workflows/.github/workflows/maven-verify.yml@feature/issue36-surefire-logs + uses: FAIRDataTeam/github-workflows/.github/workflows/maven-verify.yml@v2 with: runner: ${{ matrix.runner }} java-version: ${{ matrix.java-version }} From 44b5fe4e3ec299890e8248ef4b5f005723fa0628 Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Thu, 13 Nov 2025 10:24:50 +0100 Subject: [PATCH 24/30] Revert "remove sql-based data migrations from test/resources/test/db/migrations" This reverts commit f8776688401c2a2cc56795c4a5538bc32fad0f90. --- src/test/resources/application-testing.yml | 2 +- .../db/migration/V0001.1__dev-data-users.sql | 61 +++ .../migration/V0001.2__dev-data-schemas.sql | 505 ++++++++++++++++++ .../db/migration/V0001.3__dev-data-rds.sql | 68 +++ .../V0001.4__dev-data-membership.sql | 43 ++ .../db/migration/V0001.5__dev-settings.sql | 73 +++ .../db/migration/V0001.6__test-schemas.sql | 161 ++++++ 7 files changed, 912 insertions(+), 1 deletion(-) create mode 100644 src/test/resources/test/db/migration/V0001.1__dev-data-users.sql create mode 100644 src/test/resources/test/db/migration/V0001.2__dev-data-schemas.sql create mode 100644 src/test/resources/test/db/migration/V0001.3__dev-data-rds.sql create mode 100644 src/test/resources/test/db/migration/V0001.4__dev-data-membership.sql create mode 100644 src/test/resources/test/db/migration/V0001.5__dev-settings.sql create mode 100644 src/test/resources/test/db/migration/V0001.6__test-schemas.sql diff --git a/src/test/resources/application-testing.yml b/src/test/resources/application-testing.yml index f6453d199..5e9440e60 100644 --- a/src/test/resources/application-testing.yml +++ b/src/test/resources/application-testing.yml @@ -17,7 +17,7 @@ spring: username: ${FDP_POSTGRES_USERNAME:fdp} password: ${FDP_POSTGRES_PASSWORD:fdp} flyway: - locations: classpath:db/migration + locations: classpath:test/db/migration,classpath:db/migration fail-on-missing-locations: true clean-disabled: false diff --git a/src/test/resources/test/db/migration/V0001.1__dev-data-users.sql b/src/test/resources/test/db/migration/V0001.1__dev-data-users.sql new file mode 100644 index 000000000..cd8e0a967 --- /dev/null +++ b/src/test/resources/test/db/migration/V0001.1__dev-data-users.sql @@ -0,0 +1,61 @@ +-- +-- The MIT License +-- Copyright © 2016-2024 FAIR Data Team +-- +-- Permission is hereby granted, free of charge, to any person obtaining a copy +-- of this software and associated documentation files (the "Software"), to deal +-- in the Software without restriction, including without limitation the rights +-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +-- copies of the Software, and to permit persons to whom the Software is +-- furnished to do so, subject to the following conditions: +-- +-- The above copyright notice and this permission notice shall be included in +-- all copies or substantial portions of the Software. +-- +-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +-- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +-- THE SOFTWARE. +-- + +-- User Accounts +INSERT INTO public.user_account (uuid, first_name, last_name, email, password_hash, user_role, created_at, updated_at) +VALUES ('95589e50-d261-492b-8852-9324e9a66a42', 'Admin', 'von Universe', 'admin@example.com', '$2a$10$L.0OZ8QjV3yLhoCDvU04gu.WP1wGQih41MsBdvtQOshJJntaugBxe', 'ADMIN', NOW(), NOW()); + +INSERT INTO public.user_account (uuid, first_name, last_name, email, password_hash, user_role, created_at, updated_at) +VALUES ('7e64818d-6276-46fb-8bb1-732e6e09f7e9', 'Albert', 'Einstein', 'albert.einstein@example.com', '$2a$10$hZF1abbZ48Tf.3RndC9W6OlDt6gnBoD/2HbzJayTs6be7d.5DbpnW', 'USER', NOW(), NOW()); + +INSERT INTO public.user_account (uuid, first_name, last_name, email, password_hash, user_role, created_at, updated_at) +VALUES ('b5b92c69-5ed9-4054-954d-0121c29b6800', 'Nikola', 'Tesla', 'nikola.tesla@example.com', '$2a$10$tMbZUZg9AbYL514R.hZ0tuzvfZJR5NQhSVeJPTQhNwPf6gv/cvrna', 'USER', NOW(), NOW()); + +INSERT INTO public.user_account (uuid, first_name, last_name, email, password_hash, user_role, created_at, updated_at) +VALUES ('8d1a4c06-bb0e-4d03-a01f-14fa49bbc152', 'Isaac', 'Newton', 'isaac.newton@example.com', '$2a$10$DLkI7NAZDzWVaKG1lVtloeoPNLPoAgDDBqQKQiSAYDZXrf2QKkuHC', 'USER', NOW(), NOW()); + +-- API Keys +INSERT INTO public.api_key (uuid, token, user_account_id, created_at, updated_at) +VALUES ('a1c00673-24c5-4e0a-bdbe-22e961ee7548', 'a274793046e34a219fd0ea6362fcca61a001500b71724f4c973a017031653c20', '7e64818d-6276-46fb-8bb1-732e6e09f7e9', NOW(), NOW()); + +INSERT INTO public.api_key (uuid, token, user_account_id, created_at, updated_at) +VALUES ('62657760-21fe-488c-a0ea-f612a70493da', 'dd5dc3b53b6145cfa9f6c58b72ebad21cd2f860ace62451ba4e3c74a0e63540a', 'b5b92c69-5ed9-4054-954d-0121c29b6800', NOW(), NOW()); + +-- Saved Search Queries +INSERT INTO public.search_saved_query (uuid, name, description, type, var_prefixes, var_graph_pattern, var_ordering, user_account_id, created_at, updated_at) +VALUES ('d31e3da1-2cfa-4b55-a8cb-71d1acf01aef', 'All datasets', 'Quickly query all datasets (DCAT)', 'PUBLIC', + 'PREFIX dcat: ', '?entity rdf:type dcat:Dataset .', 'ASC(?title)', '7e64818d-6276-46fb-8bb1-732e6e09f7e9', + NOW(), NOW()); + +INSERT INTO public.search_saved_query (uuid, name, description, type, var_prefixes, var_graph_pattern, var_ordering, user_account_id, created_at, updated_at) +VALUES ('c7d0b6a0-5b0a-4b0e-9b0a-9b0a9b0a9b0a', 'All distributions', 'Quickly query all distributions (DCAT)', 'INTERNAL', + 'PREFIX dcat: ', '?entity rdf:type dcat:Distribution .', 'ASC(?title)', '7e64818d-6276-46fb-8bb1-732e6e09f7e9', + NOW(), NOW()); + +INSERT INTO public.search_saved_query (uuid, name, description, type, var_prefixes, var_graph_pattern, var_ordering, user_account_id, created_at, updated_at) +VALUES ('97da9119-834e-4687-8321-3df157547178', 'Things with data', 'This is private query of Nikola Tesla!', 'PRIVATE', + 'PREFIX dcat: ', +'?entity ?relationPredicate ?relationObject . +FILTER isLiteral(?relationObject) +FILTER CONTAINS(LCASE(str(?relationObject)), LCASE("data"))', + 'ASC(?title)', '7e64818d-6276-46fb-8bb1-732e6e09f7e9', NOW(), NOW()); diff --git a/src/test/resources/test/db/migration/V0001.2__dev-data-schemas.sql b/src/test/resources/test/db/migration/V0001.2__dev-data-schemas.sql new file mode 100644 index 000000000..310c8377f --- /dev/null +++ b/src/test/resources/test/db/migration/V0001.2__dev-data-schemas.sql @@ -0,0 +1,505 @@ +-- +-- The MIT License +-- Copyright © 2016-2024 FAIR Data Team +-- +-- Permission is hereby granted, free of charge, to any person obtaining a copy +-- of this software and associated documentation files (the "Software"), to deal +-- in the Software without restriction, including without limitation the rights +-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +-- copies of the Software, and to permit persons to whom the Software is +-- furnished to do so, subject to the following conditions: +-- +-- The above copyright notice and this permission notice shall be included in +-- all copies or substantial portions of the Software. +-- +-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +-- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +-- THE SOFTWARE. +-- + +-- Resource +INSERT INTO metadata_schema (uuid, created_at, updated_at) +VALUES ('6a668323-3936-4b53-8380-a4fd2ed082ee', NOW(), NOW()); +INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, + definition, target_classes, type, origin, imported_from, state, published, + abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) +VALUES ('71d77460-f919-4f72-b265-ed26567fe361', + '6a668323-3936-4b53-8380-a4fd2ed082ee', + NULL, + '1.0.0', + 'Resource', + '', + '@prefix : . + @prefix dash: . + @prefix dcat: . + @prefix dct: . + @prefix foaf: . + @prefix sh: . + @prefix xsd: . + + :ResourceShape a sh:NodeShape ; + sh:targetClass dcat:Resource ; + sh:property [ + sh:path dct:title ; + sh:nodeKind sh:Literal ; + sh:minCount 1 ; + sh:maxCount 1 ; + dash:editor dash:TextFieldEditor ; + sh:order 1 ; + ], [ + sh:path dct:description ; + sh:nodeKind sh:Literal ; + sh:maxCount 1 ; + dash:editor dash:TextAreaEditor ; + sh:order 2 ; + ], [ + sh:path dct:publisher ; + sh:node :AgentShape ; + sh:minCount 1 ; + sh:maxCount 1 ; + dash:editor dash:BlankNodeEditor ; + sh:order 3 ; + ], [ + sh:path dcat:version ; + sh:name "version" ; + sh:nodeKind sh:Literal ; + sh:minCount 1 ; + sh:maxCount 1 ; + dash:editor dash:TextFieldEditor ; + dash:viewer dash:LiteralViewer ; + sh:order 4 ; + ], [ + sh:path dct:language ; + sh:nodeKind sh:IRI ; + sh:maxCount 1 ; + dash:editor dash:URIEditor ; + dash:viewer dash:LabelViewer ; + sh:defaultValue ; + sh:order 5 ; + ], [ + sh:path dct:license ; + sh:nodeKind sh:IRI ; + sh:maxCount 1 ; + dash:editor dash:URIEditor ; + dash:viewer dash:LabelViewer ; + sh:defaultValue ; + sh:order 6 ; + ], [ + sh:path dct:rights ; + sh:nodeKind sh:IRI ; + sh:maxCount 1 ; + dash:editor dash:URIEditor ; + dash:viewer dash:LabelViewer ; + sh:order 7 ; + ] . + + :AgentShape a sh:NodeShape ; + sh:targetClass foaf:Agent ; + sh:property [ + sh:path foaf:name ; + sh:nodeKind sh:Literal ; + sh:minCount 1 ; + sh:maxCount 1 ; + dash:editor dash:TextFieldEditor ; + ] . + ', + ARRAY ['http://www.w3.org/ns/dcat#Resource'], + 'INTERNAL', + NULL, + NULL, + 'LATEST', + FALSE, + TRUE, + NULL, + NULL, + NOW(), + NOW()); + +-- Data Service +INSERT INTO metadata_schema (uuid, created_at, updated_at) +VALUES ('89d94c1b-f6ff-4545-ba9b-120b2d1921d0', NOW(), NOW()); +INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, + definition, target_classes, type, origin, imported_from, state, published, + abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) +VALUES ('9111d436-fe58-4bd5-97ae-e6f86bc2997a', + '89d94c1b-f6ff-4545-ba9b-120b2d1921d0', + NULL, + '1.0.0', + 'Data Service', + '', + '@prefix : . +@prefix dash: . +@prefix dcat: . +@prefix dct: . +@prefix sh: . +@prefix xsd: . + +:DataServiceShape a sh:NodeShape ; + sh:targetClass dcat:DataService ; + sh:property [ + sh:path dcat:endpointURL ; + sh:nodeKind sh:IRI ; + sh:maxCount 1 ; + sh:order 20 ; + ] , [ + sh:path dcat:endpointDescription ; + sh:nodeKind sh:Literal ; + sh:maxCount 1 ; + dash:editor dash:TextAreaEditor ; + dash:viewer dash:LiteralViewer ; + sh:order 21 ; +] . +', + ARRAY ['http://www.w3.org/ns/dcat#Resource', 'http://www.w3.org/ns/dcat#DataService'], + 'INTERNAL', + NULL, + NULL, + 'LATEST', + FALSE, + FALSE, + NULL, + NULL, + NOW(), + NOW()); +INSERT INTO metadata_schema_extension (uuid, metadata_schema_version_id, extended_metadata_schema_id, order_priority) +VALUES ('2efc8366-541d-493f-8661-69ad8f72dfa1', '9111d436-fe58-4bd5-97ae-e6f86bc2997a', '6a668323-3936-4b53-8380-a4fd2ed082ee', 0); + +-- Metadata Service +INSERT INTO metadata_schema (uuid, created_at, updated_at) +VALUES ('6f7a5a76-6185-4bd0-9fe9-62ecc90c9bad', NOW(), NOW()); +INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, + definition, target_classes, type, origin, imported_from, state, published, + abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) +VALUES ('36b22b70-6203-4dd2-9fb6-b39a776bf467', + '6f7a5a76-6185-4bd0-9fe9-62ecc90c9bad', + NULL, + '1.0.0', + 'Metadata Service', + '', + '@prefix : . +@prefix fdp: . +@prefix sh: . + +:MetadataServiceShape a sh:NodeShape ; + sh:targetClass fdp:MetadataService . +', + ARRAY ['http://www.w3.org/ns/dcat#Resource', 'http://www.w3.org/ns/dcat#DataService', 'https://w3id.org/fdp/fdp-o#MetadataService'], + 'INTERNAL', + NULL, + NULL, + 'LATEST', + FALSE, + FALSE, + NULL, + NULL, + NOW(), + NOW()); +INSERT INTO metadata_schema_extension (uuid, metadata_schema_version_id, extended_metadata_schema_id, order_priority) +VALUES ('8742361b-cd00-4167-b859-e45fa36d0cb7', '36b22b70-6203-4dd2-9fb6-b39a776bf467', '89d94c1b-f6ff-4545-ba9b-120b2d1921d0', 0); + +-- FAIR Data Point +INSERT INTO metadata_schema (uuid, created_at, updated_at) +VALUES ('a92958ab-a414-47e6-8e17-68ba96ba3a2b', NOW(), NOW()); +INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, + definition, target_classes, type, origin, imported_from, state, published, + abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) +VALUES ('4e64208d-f102-45a0-96e3-17b002e6213e', + 'a92958ab-a414-47e6-8e17-68ba96ba3a2b', + NULL, + '1.0.0', + 'FAIR Data Point', + '', + '@prefix : . +@prefix dash: . +@prefix dct: . +@prefix fdp: . +@prefix sh: . +@prefix xsd: . + +:FDPShape a sh:NodeShape ; + sh:targetClass fdp:FAIRDataPoint ; + sh:property [ + sh:path fdp:startDate ; + sh:datatype xsd:dateTime ; + sh:maxCount 1 ; + dash:editor dash:DatePickerEditor ; + dash:viewer dash:LiteralViewer ; + sh:order 40 ; + ] , [ + sh:path fdp:endDate ; + sh:datatype xsd:dateTime ; + sh:maxCount 1 ; + dash:editor dash:DatePickerEditor ; + dash:viewer dash:LiteralViewer ; + sh:order 41 ; + ] , [ + sh:path fdp:uiLanguage ; + sh:nodeKind sh:IRI ; + sh:maxCount 1 ; + sh:defaultValue ; + dash:editor dash:URIEditor ; + dash:viewer dash:LabelViewer ; + sh:order 42 ; + ] , [ + sh:path fdp:metadataIdentifier ; + sh:nodeKind sh:IRI ; + sh:maxCount 1 ; + dash:editor dash:URIEditor ; + dash:viewer dash:LabelViewer ; + sh:order 43 ; + ] , [ + sh:path fdp:metadataIssued ; + sh:datatype xsd:dateTime ; + sh:maxCount 1 ; + dash:viewer dash:LiteralViewer ; + sh:order 44 ; + ] , [ + sh:path fdp:metadataModified ; + sh:datatype xsd:dateTime ; + sh:maxCount 1 ; + dash:viewer dash:LiteralViewer ; + sh:order 45 ; + ] . + ', + ARRAY ['http://www.w3.org/ns/dcat#Resource', 'http://www.w3.org/ns/dcat#DataService', 'https://w3id.org/fdp/fdp-o#MetadataService', 'https://w3id.org/fdp/fdp-o#FAIRDataPoint'], + 'INTERNAL', + NULL, + NULL, + 'LATEST', + FALSE, + FALSE, + NULL, + NULL, + NOW(), + NOW()); +INSERT INTO metadata_schema_extension (uuid, metadata_schema_version_id, extended_metadata_schema_id, order_priority) +VALUES ('afebd441-8aa5-464d-bc3c-033f175449b4', '4e64208d-f102-45a0-96e3-17b002e6213e', '6f7a5a76-6185-4bd0-9fe9-62ecc90c9bad', 0); + +-- Catalog +INSERT INTO metadata_schema (uuid, created_at, updated_at) +VALUES ('2aa7ba63-d27a-4c0e-bfa6-3a4e250f4660', NOW(), NOW()); +INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, + definition, target_classes, type, origin, imported_from, state, published, + abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) +VALUES ('c9640671-945d-4114-88fb-e81314cb7ab2', + '2aa7ba63-d27a-4c0e-bfa6-3a4e250f4660', + NULL, + '1.0.0', + 'Catalog', + '', + '@prefix : . +@prefix dash: . +@prefix dcat: . +@prefix dct: . +@prefix foaf: . +@prefix sh: . +@prefix xsd: . + +:CatalogShape a sh:NodeShape ; + sh:targetClass dcat:Catalog ; + sh:property [ + sh:path dct:issued ; + sh:datatype xsd:dateTime ; + sh:maxCount 1 ; + dash:viewer dash:LiteralViewer ; + sh:order 20 ; + ], [ + sh:path dct:modified ; + sh:datatype xsd:dateTime ; + sh:maxCount 1 ; + dash:viewer dash:LiteralViewer ; + sh:order 21 ; + ], [ + sh:path foaf:homePage ; + sh:nodeKind sh:IRI ; + sh:maxCount 1 ; + dash:editor dash:URIEditor ; + dash:viewer dash:LabelViewer ; + sh:order 22 ; + ], [ + sh:path dcat:themeTaxonomy ; + sh:nodeKind sh:IRI ; + dash:viewer dash:LabelViewer ; + sh:order 23 ; + ] . +', + ARRAY ['http://www.w3.org/ns/dcat#Resource', 'http://www.w3.org/ns/dcat#Catalog'], + 'INTERNAL', + NULL, + NULL, + 'LATEST', + FALSE, + FALSE, + NULL, + NULL, + NOW(), + NOW()); +INSERT INTO metadata_schema_extension (uuid, metadata_schema_version_id, extended_metadata_schema_id, order_priority) +VALUES ('e75cb601-318d-41ea-9a8b-32e0749c80a7', 'c9640671-945d-4114-88fb-e81314cb7ab2', '6a668323-3936-4b53-8380-a4fd2ed082ee', 0); + +-- Dataset +INSERT INTO metadata_schema (uuid, created_at, updated_at) +VALUES ('866d7fb8-5982-4215-9c7c-18d0ed1bd5f3', NOW(), NOW()); +INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, + definition, target_classes, type, origin, imported_from, state, published, + abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) +VALUES ('9cc3c89a-76cf-4639-a71f-652627af51db', + '866d7fb8-5982-4215-9c7c-18d0ed1bd5f3', + NULL, + '1.0.0', + 'Dataset', + '', + '@prefix : . +@prefix dash: . +@prefix dcat: . +@prefix dct: . +@prefix sh: . +@prefix xsd: . + +:DatasetShape a sh:NodeShape ; + sh:targetClass dcat:Dataset ; + sh:property [ + sh:path dct:issued ; + sh:datatype xsd:dateTime ; + sh:maxCount 1 ; + dash:editor dash:DatePickerEditor ; + dash:viewer dash:LiteralViewer ; + sh:order 20 ; + ], [ + sh:path dct:modified ; + sh:datatype xsd:dateTime ; + sh:maxCount 1 ; + dash:editor dash:DatePickerEditor ; + dash:viewer dash:LiteralViewer ; + sh:order 21 ; + ], [ + sh:path dcat:theme ; + sh:nodeKind sh:IRI ; + sh:minCount 1 ; + dash:editor dash:URIEditor ; + dash:viewer dash:LabelViewer ; + sh:order 22 ; + ], [ + sh:path dcat:contactPoint ; + sh:nodeKind sh:IRI ; + sh:maxCount 1 ; + dash:editor dash:URIEditor ; + dash:viewer dash:LabelViewer ; + sh:order 23 ; + ], [ + sh:path dcat:keyword ; + sh:nodeKind sh:Literal ; + dash:editor dash:TextFieldEditor ; + dash:viewer dash:LiteralViewer ; + sh:order 24 ; + ], [ + sh:path dcat:landingPage ; + sh:nodeKind sh:IRI ; + sh:maxCount 1 ; + dash:editor dash:URIEditor ; + dash:viewer dash:LabelViewer ; + sh:order 25 ; + ] . +', + ARRAY ['http://www.w3.org/ns/dcat#Resource', 'http://www.w3.org/ns/dcat#Dataset'], + 'INTERNAL', + NULL, + NULL, + 'LATEST', + FALSE, + FALSE, + NULL, + NULL, + NOW(), + NOW()); +INSERT INTO metadata_schema_extension (uuid, metadata_schema_version_id, extended_metadata_schema_id, order_priority) +VALUES ('da13ba37-09f8-4937-9055-e3ee3aefc57c', '9cc3c89a-76cf-4639-a71f-652627af51db', '6a668323-3936-4b53-8380-a4fd2ed082ee', 0); + +-- Distribution +INSERT INTO metadata_schema (uuid, created_at, updated_at) +VALUES ('ebacbf83-cd4f-4113-8738-d73c0735b0ab', NOW(), NOW()); +INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, + definition, target_classes, type, origin, imported_from, state, published, + abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) +VALUES ('3cda8cd3-b08b-4797-822d-d3f3e83c466a', + 'ebacbf83-cd4f-4113-8738-d73c0735b0ab', + NULL, + '1.0.0', + 'Distribution', + '', + '@prefix : . +@prefix dash: . +@prefix dcat: . +@prefix dct: . +@prefix sh: . +@prefix xsd: . + +:DistributionShape a sh:NodeShape ; + sh:targetClass dcat:Distribution ; + sh:property [ + sh:path dct:issued ; + sh:datatype xsd:dateTime ; + sh:maxCount 1 ; + dash:editor dash:DatePickerEditor ; + dash:viewer dash:LiteralViewer ; + sh:order 20 ; + ] , [ + sh:path dct:modified ; + sh:datatype xsd:dateTime ; + sh:maxCount 1 ; + dash:editor dash:DatePickerEditor ; + dash:viewer dash:LiteralViewer ; + sh:order 21 ; + ] , [ + sh:path dcat:accessURL ; + sh:nodeKind sh:IRI ; + sh:maxCount 1 ; + dash:editor dash:URIEditor ; + sh:order 22 ; + ] , [ + sh:path dcat:downloadURL ; + sh:nodeKind sh:IRI ; + sh:maxCount 1 ; + dash:editor dash:URIEditor ; + sh:order 23 ; + ] , [ + sh:path dcat:mediaType ; + sh:nodeKind sh:Literal ; + sh:minCount 1 ; + sh:maxCount 1 ; + dash:editor dash:TextFieldEditor ; + dash:viewer dash:LiteralViewer ; + sh:order 24 ; + ] , [ + sh:path dcat:format ; + sh:nodeKind sh:Literal ; + sh:maxCount 1 ; + dash:editor dash:TextFieldEditor ; + dash:viewer dash:LiteralViewer ; + sh:order 25 ; + ] , [ + sh:path dcat:byteSize ; + sh:nodeKind sh:Literal ; + sh:maxCount 1 ; + dash:editor dash:TextFieldEditor ; + dash:viewer dash:LiteralViewer ; + sh:order 26 ; + ] . +', + ARRAY ['http://www.w3.org/ns/dcat#Resource', 'http://www.w3.org/ns/dcat#Distribution'], + 'INTERNAL', + NULL, + NULL, + 'LATEST', + FALSE, + FALSE, + NULL, + NULL, + NOW(), + NOW()); +INSERT INTO metadata_schema_extension (uuid, metadata_schema_version_id, extended_metadata_schema_id, order_priority) +VALUES ('a3b16a4e-cac7-4b71-a3de-94bb86714b5b', '3cda8cd3-b08b-4797-822d-d3f3e83c466a', '6a668323-3936-4b53-8380-a4fd2ed082ee', 0); diff --git a/src/test/resources/test/db/migration/V0001.3__dev-data-rds.sql b/src/test/resources/test/db/migration/V0001.3__dev-data-rds.sql new file mode 100644 index 000000000..ed4f047ff --- /dev/null +++ b/src/test/resources/test/db/migration/V0001.3__dev-data-rds.sql @@ -0,0 +1,68 @@ +-- +-- The MIT License +-- Copyright © 2016-2024 FAIR Data Team +-- +-- Permission is hereby granted, free of charge, to any person obtaining a copy +-- of this software and associated documentation files (the "Software"), to deal +-- in the Software without restriction, including without limitation the rights +-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +-- copies of the Software, and to permit persons to whom the Software is +-- furnished to do so, subject to the following conditions: +-- +-- The above copyright notice and this permission notice shall be included in +-- all copies or substantial portions of the Software. +-- +-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +-- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +-- THE SOFTWARE. +-- + +-- Distribution +INSERT INTO resource_definition (uuid, name, url_prefix, created_at, updated_at) +VALUES ('02c649de-c579-43bb-b470-306abdc808c7', 'Distribution', 'distribution', now(), now()); + +INSERT INTO resource_definition_link (uuid, resource_definition_id, title, property_uri, order_priority, created_at, updated_at) +VALUES ('660a1821-a5d2-48d0-a26b-0c6d5bac3de4', '02c649de-c579-43bb-b470-306abdc808c7', 'Access online', 'http://www.w3.org/ns/dcat#accessURL', 1, now(), now()); + +INSERT INTO resource_definition_link (uuid, resource_definition_id, title, property_uri, order_priority, created_at, updated_at) +VALUES ('c2eaebb8-4d8d-469d-8736-269adeded996', '02c649de-c579-43bb-b470-306abdc808c7', 'Download', 'http://www.w3.org/ns/dcat#downloadURL', 2, now(), now()); + +INSERT INTO metadata_schema_usage (uuid, resource_definition_id, metadata_schema_id, order_priority) +VALUES ('bbf4ecb3-c529-4c02-955c-7160755debf5', '02c649de-c579-43bb-b470-306abdc808c7', 'ebacbf83-cd4f-4113-8738-d73c0735b0ab', 1); + +-- Dataset +INSERT INTO resource_definition (uuid, name, url_prefix, created_at, updated_at) +VALUES ('2f08228e-1789-40f8-84cd-28e3288c3604', 'Dataset', 'dataset', now(), now()); + +INSERT INTO resource_definition_child (uuid, source_resource_definition_id, target_resource_definition_id, relation_uri, title, tags_uri, order_priority, created_at, updated_at) +VALUES ('9f138a13-9d45-4371-b763-0a3b9e0ec912', '2f08228e-1789-40f8-84cd-28e3288c3604', '02c649de-c579-43bb-b470-306abdc808c7', 'http://www.w3.org/ns/dcat#distribution', 'Distributions', NULL, 1, now(), now()); + +INSERT INTO resource_definition_child_metadata (uuid, resource_definition_child_id, title, property_uri, order_priority, created_at, updated_at) +VALUES ('723e95d3-1696-45e2-9429-f6e98e3fb893', '9f138a13-9d45-4371-b763-0a3b9e0ec912', 'Media Type', 'http://www.w3.org/ns/dcat#mediaType', 1, now(), now()); + +INSERT INTO metadata_schema_usage (uuid, resource_definition_id, metadata_schema_id, order_priority) +VALUES ('b8a0ed37-42a1-487e-8842-09fe082c4cc6', '2f08228e-1789-40f8-84cd-28e3288c3604', '866d7fb8-5982-4215-9c7c-18d0ed1bd5f3', 1); + +-- Catalog +INSERT INTO resource_definition (uuid, name, url_prefix, created_at, updated_at) +VALUES ('a0949e72-4466-4d53-8900-9436d1049a4b', 'Catalog', 'catalog', now(), now()); + +INSERT INTO resource_definition_child (uuid, source_resource_definition_id, target_resource_definition_id, relation_uri, title, tags_uri, order_priority, created_at, updated_at) +VALUES ('e9f0f5d3-2a93-4aa3-9dd0-acb1d76f54fc', 'a0949e72-4466-4d53-8900-9436d1049a4b', '2f08228e-1789-40f8-84cd-28e3288c3604', 'http://www.w3.org/ns/dcat#dataset', 'Datasets', 'http://www.w3.org/ns/dcat#theme', 1, now(), now()); + +INSERT INTO metadata_schema_usage (uuid, resource_definition_id, metadata_schema_id, order_priority) +VALUES ('e4df9510-a3ad-4e3b-a1a9-5fc330d8b1f0', 'a0949e72-4466-4d53-8900-9436d1049a4b', '2aa7ba63-d27a-4c0e-bfa6-3a4e250f4660', 1); + +-- FAIR Data Point +INSERT INTO resource_definition (uuid, name, url_prefix, created_at, updated_at) +VALUES ('77aaad6a-0136-4c6e-88b9-07ffccd0ee4c', 'FAIR Data Point', '', now(), now()); + +INSERT INTO resource_definition_child (uuid, source_resource_definition_id, target_resource_definition_id, relation_uri, title, tags_uri, order_priority, created_at, updated_at) +VALUES ('b8648597-8fbd-4b89-9e30-5eab82675e42', '77aaad6a-0136-4c6e-88b9-07ffccd0ee4c', 'a0949e72-4466-4d53-8900-9436d1049a4b', 'https://w3id.org/fdp/fdp-o#metadataCatalog', 'Catalogs', 'http://www.w3.org/ns/dcat#themeTaxonomy', 1, now(), now()); + +INSERT INTO metadata_schema_usage (uuid, resource_definition_id, metadata_schema_id, order_priority) +VALUES ('9b3a32a8-a14c-4eb0-ba02-3aa8e13a8f11', '77aaad6a-0136-4c6e-88b9-07ffccd0ee4c', 'a92958ab-a414-47e6-8e17-68ba96ba3a2b', 1); diff --git a/src/test/resources/test/db/migration/V0001.4__dev-data-membership.sql b/src/test/resources/test/db/migration/V0001.4__dev-data-membership.sql new file mode 100644 index 000000000..8240e0bfe --- /dev/null +++ b/src/test/resources/test/db/migration/V0001.4__dev-data-membership.sql @@ -0,0 +1,43 @@ +-- +-- The MIT License +-- Copyright © 2016-2024 FAIR Data Team +-- +-- Permission is hereby granted, free of charge, to any person obtaining a copy +-- of this software and associated documentation files (the "Software"), to deal +-- in the Software without restriction, including without limitation the rights +-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +-- copies of the Software, and to permit persons to whom the Software is +-- furnished to do so, subject to the following conditions: +-- +-- The above copyright notice and this permission notice shall be included in +-- all copies or substantial portions of the Software. +-- +-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +-- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +-- THE SOFTWARE. +-- + +INSERT INTO membership (uuid, name, allowed_entities, created_at, updated_at) +VALUES ('49f2bcfd-ef0a-4a3a-a1a3-0fc72a6892a8', 'Owner', ARRAY ['a0949e72-4466-4d53-8900-9436d1049a4b', '2f08228e-1789-40f8-84cd-28e3288c3604', '02c649de-c579-43bb-b470-306abdc808c7'], NOW(), NOW()); + +INSERT INTO membership (uuid, name, allowed_entities, created_at, updated_at) +VALUES ('87a2d984-7db2-43f6-805c-6b0040afead5', 'Data Provider', ARRAY ['a0949e72-4466-4d53-8900-9436d1049a4b'], NOW(), NOW()); + +INSERT INTO membership_permission (uuid, membership_id, mask, code, created_at, updated_at) +VALUES ('e0d9f853-637b-4c50-9ad9-07b6349bf76f', '49f2bcfd-ef0a-4a3a-a1a3-0fc72a6892a8', 2, 'W', NOW(), NOW()); + +INSERT INTO membership_permission (uuid, membership_id, mask, code, created_at, updated_at) +VALUES ('de4e4f85-f11d-475b-b6f0-33bdfe5f923a', '49f2bcfd-ef0a-4a3a-a1a3-0fc72a6892a8', 4, 'C', NOW(), NOW()); + +INSERT INTO membership_permission (uuid, membership_id, mask, code, created_at, updated_at) +VALUES ('60bebbf0-210d-4b05-af85-ca1b58546261', '49f2bcfd-ef0a-4a3a-a1a3-0fc72a6892a8', 8, 'D', NOW(), NOW()); + +INSERT INTO membership_permission (uuid, membership_id, mask, code, created_at, updated_at) +VALUES ('36c3b6e9-f2e3-48b7-bae1-4dc3196a3657', '49f2bcfd-ef0a-4a3a-a1a3-0fc72a6892a8', 16, 'A', NOW(), NOW()); + +INSERT INTO membership_permission (uuid, membership_id, mask, code, created_at, updated_at) +VALUES ('589d09d3-1c29-4c6f-97fc-6ea4e007fb85', '87a2d984-7db2-43f6-805c-6b0040afead5', 4, 'C', NOW(), NOW()); diff --git a/src/test/resources/test/db/migration/V0001.5__dev-settings.sql b/src/test/resources/test/db/migration/V0001.5__dev-settings.sql new file mode 100644 index 000000000..75496e02a --- /dev/null +++ b/src/test/resources/test/db/migration/V0001.5__dev-settings.sql @@ -0,0 +1,73 @@ +-- +-- The MIT License +-- Copyright © 2016-2024 FAIR Data Team +-- +-- Permission is hereby granted, free of charge, to any person obtaining a copy +-- of this software and associated documentation files (the "Software"), to deal +-- in the Software without restriction, including without limitation the rights +-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +-- copies of the Software, and to permit persons to whom the Software is +-- furnished to do so, subject to the following conditions: +-- +-- The above copyright notice and this permission notice shall be included in +-- all copies or substantial portions of the Software. +-- +-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +-- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +-- THE SOFTWARE. +-- + +-- Settings +INSERT INTO settings (uuid, app_title, app_subtitle, ping_enabled, ping_endpoints, autocomplete_search_ns, created_at, updated_at) +VALUES ('00000000-0000-0000-0000-000000000000', 'FAIR Data Point', 'FDP Development Instance', False, ARRAY ['https://home.fairdatapoint.org'], True, now(), now()); + +-- Autocomplete Sources +INSERT INTO settings_autocomplete_source (uuid, settings_id, rdf_type, sparql_endpoint, sparql_query, order_priority, created_at, updated_at) +VALUES ('d4045a98-dd25-493e-a0b1-d704921c0930', '00000000-0000-0000-0000-000000000000', 'http://www.w3.org/2000/01/rdf-schema#Class', 'http://localhost:3030/ds/query', +'SELECT DISTINCT ?uri ?label +WHERE { ?uri a . +?uri ?label . +FILTER regex(?label, ".*%s.*", "i") } +ORDER BY ?label', + 1, now(), now()); + +-- Search Filters: Type +INSERT INTO settings_search_filter (uuid, settings_id, type, label, predicate, query_records, order_priority, created_at, updated_at) +VALUES ('57a98728-ce8c-4e7f-b0f8-94e2668b44d3', '00000000-0000-0000-0000-000000000000', 'IRI', 'Type', 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type', False, 1, now(), now()); + +INSERT INTO settings_search_filter_item (uuid, filter_id, label, value, order_priority, created_at, updated_at) +VALUES ('b48c2c7f-d7fb-47ae-a72c-b1b360e16f6e', '57a98728-ce8c-4e7f-b0f8-94e2668b44d3', 'Catalog', 'http://www.w3.org/ns/dcat#Catalog', 1, now(), now()); + +INSERT INTO settings_search_filter_item (uuid, filter_id, label, value, order_priority, created_at, updated_at) +VALUES ('3e1598ac-9d29-47f0-8e7b-3c26ca0134a0', '57a98728-ce8c-4e7f-b0f8-94e2668b44d3', 'Dataset', 'http://www.w3.org/ns/dcat#Dataset', 2, now(), now()); + +INSERT INTO settings_search_filter_item (uuid, filter_id, label, value, order_priority, created_at, updated_at) +VALUES ('5697d8d9-f09d-4ebe-b834-b37eb0624c3f', '57a98728-ce8c-4e7f-b0f8-94e2668b44d3', 'Distribution', 'http://www.w3.org/ns/dcat#Distribution', 3, now(), now()); + +INSERT INTO settings_search_filter_item (uuid, filter_id, label, value, order_priority, created_at, updated_at) +VALUES ('022c3bc6-0598-408c-8d2e-b486dafb73dd', '57a98728-ce8c-4e7f-b0f8-94e2668b44d3', 'Data Service', 'http://www.w3.org/ns/dcat#DataService', 4, now(), now()); + +INSERT INTO settings_search_filter_item (uuid, filter_id, label, value, order_priority, created_at, updated_at) +VALUES ('7cee5591-8620-4fea-b883-a94285012b8d', '57a98728-ce8c-4e7f-b0f8-94e2668b44d3', 'Metadata Service', 'https://w3id.org/fdp/fdp-o#MetadataService', 5, now(), now()); + +INSERT INTO settings_search_filter_item (uuid, filter_id, label, value, order_priority, created_at, updated_at) +VALUES ('9d661dca-8017-4dba-b930-cd2834ea59e8', '57a98728-ce8c-4e7f-b0f8-94e2668b44d3', 'FAIR Data Point', 'https://w3id.org/fdp/fdp-o#FAIRDataPoint', 6, now(), now()); + +-- Search Filters: License +INSERT INTO settings_search_filter (uuid, settings_id, type, label, predicate, query_records, order_priority, created_at, updated_at) +VALUES ('26913eb3-67dd-45c9-b8ff-4c97e8162a9b', '00000000-0000-0000-0000-000000000000', 'IRI', 'License', 'http://purl.org/dc/terms/license', True, 2, now(), now()); + +-- Search Filters: License +INSERT INTO settings_search_filter (uuid, settings_id, type, label, predicate, query_records, order_priority, created_at, updated_at) +VALUES ('cb25afb4-6169-42f8-bde5-181c803773a8', '00000000-0000-0000-0000-000000000000', 'IRI', 'Version', 'http://www.w3.org/ns/dcat#version', True, 3, now(), now()); + +-- Metrics +INSERT INTO settings_metric (uuid, settings_id, metric_uri, resource_uri, order_priority, created_at, updated_at) +VALUES ('8435491b-c16c-4457-ae94-e0f4128603d5', '00000000-0000-0000-0000-000000000000', 'https://purl.org/fair-metrics/FM_F1A', 'https://www.ietf.org/rfc/rfc3986.txt', 1, now(), now()); + +INSERT INTO settings_metric (uuid, settings_id, metric_uri, resource_uri, order_priority, created_at, updated_at) +VALUES ('af93d36a-0af0-4054-8c00-2675d460b231', '00000000-0000-0000-0000-000000000000', 'https://purl.org/fair-metrics/FM_A1.1', 'https://www.wikidata.org/wiki/Q8777', 2, now(), now()); diff --git a/src/test/resources/test/db/migration/V0001.6__test-schemas.sql b/src/test/resources/test/db/migration/V0001.6__test-schemas.sql new file mode 100644 index 000000000..b340329e8 --- /dev/null +++ b/src/test/resources/test/db/migration/V0001.6__test-schemas.sql @@ -0,0 +1,161 @@ +-- +-- The MIT License +-- Copyright © 2016-2024 FAIR Data Team +-- +-- Permission is hereby granted, free of charge, to any person obtaining a copy +-- of this software and associated documentation files (the "Software"), to deal +-- in the Software without restriction, including without limitation the rights +-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +-- copies of the Software, and to permit persons to whom the Software is +-- furnished to do so, subject to the following conditions: +-- +-- The above copyright notice and this permission notice shall be included in +-- all copies or substantial portions of the Software. +-- +-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +-- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +-- THE SOFTWARE. +-- + +-- Custom with one version +INSERT INTO metadata_schema (uuid, created_at, updated_at) +VALUES ('e8b34158-3858-45c7-8e3e-d1e671dd9929', NOW(), NOW()); + +INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, + definition, target_classes, type, origin, imported_from, state, published, + abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) +VALUES ('53619e58-2bb0-4baf-afd8-00c5d01ff8a8', 'e8b34158-3858-45c7-8e3e-d1e671dd9929', NULL, '0.1.0', 'Custom schema', + 'Custom schema V1', + '', ARRAY ['http://www.w3.org/2000/01/rdf-schema#Class'], 'CUSTOM', NULL, NULL, 'LATEST', TRUE, FALSE, NULL, + NULL, NOW(), NOW()); + +-- Custom with one draft +INSERT INTO metadata_schema (uuid, created_at, updated_at) +VALUES ('bfa79edf-00b7-4a04-b5a6-a5144f1a77b7', NOW(), NOW()); + +INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, + definition, target_classes, type, origin, imported_from, state, published, + abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) +VALUES ('cb9f6cd7-97af-45d0-b23d-d0aab23607d8', 'bfa79edf-00b7-4a04-b5a6-a5144f1a77b7', NULL, '0.1.0', 'Custom schema', + 'Custom schema V1', + '', ARRAY ['http://www.w3.org/2000/01/rdf-schema#Class'], 'CUSTOM', NULL, NULL, 'DRAFT', FALSE, FALSE, NULL, + NULL, NOW(), NOW()); + + +-- Custom with one version INTERNAL +INSERT INTO metadata_schema (uuid, created_at, updated_at) +VALUES ('fe98adbb-6a2c-4c7a-b2b2-a72db5140c61', NOW(), NOW()); + +INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, + definition, target_classes, type, origin, imported_from, state, published, + abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) +VALUES ('f0a4b358-69a3-44e6-9436-c68a56a9f2f2', 'fe98adbb-6a2c-4c7a-b2b2-a72db5140c61', NULL, '0.1.0', 'Custom schema', + 'Custom schema V1', + '', ARRAY ['http://www.w3.org/2000/01/rdf-schema#Class'], 'INTERNAL', NULL, NULL, 'LATEST', TRUE, FALSE, NULL, + NULL, NOW(), NOW()); + +-- Custom with multiple versions +INSERT INTO metadata_schema (uuid, created_at, updated_at) +VALUES ('978e5c1c-268d-4822-b60b-07d3eccc6896', NOW(), NOW()); + +INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, + definition, target_classes, type, origin, imported_from, state, published, + abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) +VALUES ('d7acec53-5ac9-4502-9bfa-92d1e9f79a24', '978e5c1c-268d-4822-b60b-07d3eccc6896', NULL, '0.1.0', 'Custom schema', + 'Custom schema V1', + '', ARRAY ['http://www.w3.org/2000/01/rdf-schema#Class'], 'CUSTOM', NULL, NULL, 'LEGACY', FALSE, FALSE, NULL, + NULL, NOW(), NOW()); + +INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, + definition, target_classes, type, origin, imported_from, state, published, + abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) +VALUES ('67896adc-b431-431d-8296-f0b80d8de412', '978e5c1c-268d-4822-b60b-07d3eccc6896', 'd7acec53-5ac9-4502-9bfa-92d1e9f79a24', '0.2.0', 'Custom schema', + 'Custom schema V2', + '', ARRAY ['http://www.w3.org/2000/01/rdf-schema#Class'], 'CUSTOM', NULL, NULL, 'LEGACY', FALSE, FALSE, NULL, + NULL, NOW(), NOW()); + +INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, + definition, target_classes, type, origin, imported_from, state, published, + abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) +VALUES ('c62d4a97-baac-40b8-b6ea-e43b06ec78bd', '978e5c1c-268d-4822-b60b-07d3eccc6896', '67896adc-b431-431d-8296-f0b80d8de412', '0.3.0', 'Custom schema', + 'Custom schema V3', + '', ARRAY ['http://www.w3.org/2000/01/rdf-schema#Class'], 'CUSTOM', NULL, NULL, 'LATEST', FALSE, FALSE, NULL, + NULL, NOW(), NOW()); + +-- Custom with draft +INSERT INTO metadata_schema (uuid, created_at, updated_at) +VALUES ('e7078309-cb4c-47b9-9ef8-057487b3da58', NOW(), NOW()); + +INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, + definition, target_classes, type, origin, imported_from, state, published, + abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) +VALUES ('a17c25ad-e8d3-4338-bb3e-eda76d2fc32c', 'e7078309-cb4c-47b9-9ef8-057487b3da58', NULL, '0.0.0', 'Custom schema', + 'Custom schema draft', + '', ARRAY ['http://www.w3.org/2000/01/rdf-schema#Class'], 'CUSTOM', NULL, NULL, 'DRAFT', FALSE, FALSE, NULL, + NULL, NOW(), NOW()); + +-- Custom with multiple versions and draft +INSERT INTO metadata_schema (uuid, created_at, updated_at) +VALUES ('123e48d2-9995-4b44-8b2c-9c81bdbf2dd2', NOW(), NOW()); + +INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, + definition, target_classes, type, origin, imported_from, state, published, + abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) +VALUES ('fb24f92b-187f-4d53-b744-73024b537f30', '123e48d2-9995-4b44-8b2c-9c81bdbf2dd2', NULL, '0.1.0', 'Custom schema', + 'Custom schema V1', + '', ARRAY ['http://www.w3.org/2000/01/rdf-schema#Class'], 'CUSTOM', NULL, NULL, 'LEGACY', FALSE, FALSE, NULL, + NULL, NOW(), NOW()); + +INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, + definition, target_classes, type, origin, imported_from, state, published, + abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) +VALUES ('6011adfa-f8da-478d-86ea-84bb644b458b', '123e48d2-9995-4b44-8b2c-9c81bdbf2dd2', 'fb24f92b-187f-4d53-b744-73024b537f30', '0.2.0', 'Custom schema', + 'Custom schema V2', + '', ARRAY ['http://www.w3.org/2000/01/rdf-schema#Class'], 'CUSTOM', NULL, NULL, 'LATEST', FALSE, FALSE, NULL, + NULL, NOW(), NOW()); + +INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, + definition, target_classes, type, origin, imported_from, state, published, + abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) +VALUES ('6b84ec86-2096-48db-bfc7-23506b8c080c', '123e48d2-9995-4b44-8b2c-9c81bdbf2dd2', '6011adfa-f8da-478d-86ea-84bb644b458b', '0.0.0', 'Custom schema', + 'Custom schema draft', + '', ARRAY ['http://www.w3.org/2000/01/rdf-schema#Class'], 'CUSTOM', NULL, NULL, 'DRAFT', FALSE, FALSE, NULL, + NULL, NOW(), NOW()); + +-- Custom with multiple versions and draft and extends +INSERT INTO metadata_schema (uuid, created_at, updated_at) +VALUES ('7c8b8699-ca9f-4d14-86e2-2299b27c5711', NOW(), NOW()); + +INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, + definition, target_classes, type, origin, imported_from, state, published, + abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) +VALUES ('4e44fb19-b9e0-46e9-957a-e7aa3adac7bf', '7c8b8699-ca9f-4d14-86e2-2299b27c5711', NULL, '0.1.0', 'Custom schema', + 'Custom schema V1', + '', ARRAY ['http://www.w3.org/2000/01/rdf-schema#Class'], 'CUSTOM', NULL, NULL, 'LEGACY', FALSE, FALSE, NULL, + NULL, NOW(), NOW()); + +INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, + definition, target_classes, type, origin, imported_from, state, published, + abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) +VALUES ('abcf3a21-6f9a-45dc-a71a-4dde4440c81a', '7c8b8699-ca9f-4d14-86e2-2299b27c5711', '4e44fb19-b9e0-46e9-957a-e7aa3adac7bf', '0.2.0', 'Custom schema', + 'Custom schema V2', + '', ARRAY ['http://www.w3.org/2000/01/rdf-schema#Class'], 'CUSTOM', NULL, NULL, 'LATEST', FALSE, FALSE, NULL, + NULL, NOW(), NOW()); +INSERT INTO metadata_schema_extension (uuid, metadata_schema_version_id, extended_metadata_schema_id, order_priority) +VALUES ('1bdca611-c96e-4304-b1f3-030d282ef529', 'abcf3a21-6f9a-45dc-a71a-4dde4440c81a', '6a668323-3936-4b53-8380-a4fd2ed082ee', 0); +INSERT INTO metadata_schema_extension (uuid, metadata_schema_version_id, extended_metadata_schema_id, order_priority) +VALUES ('1bdca611-c96e-4304-b1f3-030d282ef530', 'abcf3a21-6f9a-45dc-a71a-4dde4440c81a', '123e48d2-9995-4b44-8b2c-9c81bdbf2dd2', 1); + +INSERT INTO metadata_schema_version (uuid, metadata_schema_id, previous_version_id, version, name, description, + definition, target_classes, type, origin, imported_from, state, published, + abstract, suggested_resource_name, suggested_url_prefix, created_at, updated_at) +VALUES ('a6d609ff-905f-4edd-bdb1-2dce000c9a45', '7c8b8699-ca9f-4d14-86e2-2299b27c5711', 'abcf3a21-6f9a-45dc-a71a-4dde4440c81a', '0.0.0', 'Custom schema', + 'Custom schema draft', + '', ARRAY ['http://www.w3.org/2000/01/rdf-schema#Class'], 'CUSTOM', NULL, NULL, 'DRAFT', FALSE, FALSE, NULL, + NULL, NOW(), NOW()); +INSERT INTO metadata_schema_extension (uuid, metadata_schema_version_id, extended_metadata_schema_id, order_priority) +VALUES ('53e3db46-8fe4-47ce-873e-ed7db94e73b3', 'a6d609ff-905f-4edd-bdb1-2dce000c9a45', '6a668323-3936-4b53-8380-a4fd2ed082ee', 0); From a6b8d40fa9ca3745c294fbeb5f60f9502161be5b Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Thu, 13 Nov 2025 11:37:53 +0100 Subject: [PATCH 25/30] rename test loggin config so it is picked up automatically --- src/test/resources/log4j2-test.xml | 18 ++++++++++++++++++ src/test/resources/log4j2.xml | 13 ------------- 2 files changed, 18 insertions(+), 13 deletions(-) create mode 100644 src/test/resources/log4j2-test.xml delete mode 100644 src/test/resources/log4j2.xml diff --git a/src/test/resources/log4j2-test.xml b/src/test/resources/log4j2-test.xml new file mode 100644 index 000000000..74e501e10 --- /dev/null +++ b/src/test/resources/log4j2-test.xml @@ -0,0 +1,18 @@ + + + + %d %-4relative [%thread] %-5level %logger{35} - %msg%n + + + + + + + + + + + + + + diff --git a/src/test/resources/log4j2.xml b/src/test/resources/log4j2.xml deleted file mode 100644 index 77fa02165..000000000 --- a/src/test/resources/log4j2.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - From 99b47fd85a51774306dfbd1e84ff17522036b120 Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Thu, 13 Nov 2025 11:39:05 +0100 Subject: [PATCH 26/30] disable mongo autoconfig during tests actually mongo is not used anymore, but spring will try to configure it because it is used in the spring-rdf-migration dependency --- src/test/resources/application-testing.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/test/resources/application-testing.yml b/src/test/resources/application-testing.yml index 5e9440e60..5b3ad65bd 100644 --- a/src/test/resources/application-testing.yml +++ b/src/test/resources/application-testing.yml @@ -20,6 +20,8 @@ spring: locations: classpath:test/db/migration,classpath:db/migration fail-on-missing-locations: true clean-disabled: false + autoconfigure: + exclude: org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration ping: enabled: false From 6fdb3ef57d19532e1bd90917655dc735c6301f3a Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Thu, 13 Nov 2025 13:44:49 +0100 Subject: [PATCH 27/30] workaround for path resolution failure on windows On unix we can simply do Path.resolve(*.json), but on windows that fails with 'Illegal char <*> at index 0: *.json', so we do use Path to handle slashes, but only add the * after converting back to string --- src/main/java/org/fairdatapoint/config/BootstrapConfig.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/fairdatapoint/config/BootstrapConfig.java b/src/main/java/org/fairdatapoint/config/BootstrapConfig.java index e4c38a226..646f28b49 100644 --- a/src/main/java/org/fairdatapoint/config/BootstrapConfig.java +++ b/src/main/java/org/fairdatapoint/config/BootstrapConfig.java @@ -81,7 +81,9 @@ public Jackson2RepositoryPopulatorFactoryBean repositoryPopulator() { log.info("Looking for db fixtures in the following directories: {}", String.join(", ", this.bootstrap.getDbFixturesDirs())); for (String fixturesDir : this.bootstrap.getDbFixturesDirs()) { - final String locationPattern = "file:" + Path.of(fixturesDir).resolve("*.json"); + String locationPattern = "file:" + Path.of(fixturesDir).resolve(".json"); + // ugly workaround for Path.resolve("*.json") failure on windows + locationPattern = locationPattern.replaceAll(".json$", "*.json"); resources.addAll(List.of(resourceResolver.getResources(locationPattern))); } // remove resources that have been applied already From a40a4d331c6bc632849bd2ac9f5224112de283ab Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Thu, 13 Nov 2025 13:55:02 +0100 Subject: [PATCH 28/30] Revert "rename test logging config so it is picked up automatically" This reverts commit a6b8d40fa9ca3745c294fbeb5f60f9502161be5b. --- src/test/resources/log4j2-test.xml | 18 ------------------ src/test/resources/log4j2.xml | 13 +++++++++++++ 2 files changed, 13 insertions(+), 18 deletions(-) delete mode 100644 src/test/resources/log4j2-test.xml create mode 100644 src/test/resources/log4j2.xml diff --git a/src/test/resources/log4j2-test.xml b/src/test/resources/log4j2-test.xml deleted file mode 100644 index 74e501e10..000000000 --- a/src/test/resources/log4j2-test.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - %d %-4relative [%thread] %-5level %logger{35} - %msg%n - - - - - - - - - - - - - - diff --git a/src/test/resources/log4j2.xml b/src/test/resources/log4j2.xml new file mode 100644 index 000000000..77fa02165 --- /dev/null +++ b/src/test/resources/log4j2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + From 24d6cda704e3b6fe0ec5dec2fda3794771f3f3fc Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Thu, 13 Nov 2025 16:03:27 +0100 Subject: [PATCH 29/30] Revert "disable mongo autoconfig during tests" This reverts commit 99b47fd85a51774306dfbd1e84ff17522036b120. --- src/test/resources/application-testing.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/test/resources/application-testing.yml b/src/test/resources/application-testing.yml index 5b3ad65bd..5e9440e60 100644 --- a/src/test/resources/application-testing.yml +++ b/src/test/resources/application-testing.yml @@ -20,8 +20,6 @@ spring: locations: classpath:test/db/migration,classpath:db/migration fail-on-missing-locations: true clean-disabled: false - autoconfigure: - exclude: org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration ping: enabled: false From 81fb68c5557f93a0474c5eb75904d2926dc67a4a Mon Sep 17 00:00:00 2001 From: dennisvang <29799340+dennisvang@users.noreply.github.com> Date: Thu, 13 Nov 2025 17:07:12 +0100 Subject: [PATCH 30/30] concatenate /*.json instead of using Path.resolve This is needed because resolve fails on windows due to invalid path character *. Note that we can safely concatenate /*.json (with the initial slash) because Path.of() removes any trailing slashes. --- src/main/java/org/fairdatapoint/config/BootstrapConfig.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/fairdatapoint/config/BootstrapConfig.java b/src/main/java/org/fairdatapoint/config/BootstrapConfig.java index 646f28b49..8ea83bceb 100644 --- a/src/main/java/org/fairdatapoint/config/BootstrapConfig.java +++ b/src/main/java/org/fairdatapoint/config/BootstrapConfig.java @@ -81,9 +81,9 @@ public Jackson2RepositoryPopulatorFactoryBean repositoryPopulator() { log.info("Looking for db fixtures in the following directories: {}", String.join(", ", this.bootstrap.getDbFixturesDirs())); for (String fixturesDir : this.bootstrap.getDbFixturesDirs()) { - String locationPattern = "file:" + Path.of(fixturesDir).resolve(".json"); - // ugly workaround for Path.resolve("*.json") failure on windows - locationPattern = locationPattern.replaceAll(".json$", "*.json"); + // Path.of() removes trailing slashes, so it is safe to concatenate "/*.json". + // Note that Path.of(fixturesDir).resolve("*.json") could work on unix but fails on windows. + final String locationPattern = "file:" + Path.of(fixturesDir) + "/*.json"; resources.addAll(List.of(resourceResolver.getResources(locationPattern))); } // remove resources that have been applied already