From 70389f7e2bdd96991d8b90ccccf85e520ea38302 Mon Sep 17 00:00:00 2001 From: Hans-christian Date: Thu, 22 Jan 2026 15:51:31 +0100 Subject: [PATCH] fix load settings --- Dockerfile | 1 + .../fdp/uploadschema/SchemaTools.java | 19 +++++++++++++++++-- .../dto/settings/SettingsResponseDto.java | 12 +++++++++--- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index d2948b9..0b0197f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,4 +7,5 @@ RUN mvn -q package -DskipTests=true FROM eclipse-temurin:24 WORKDIR /opt/app COPY --from=build /tmp/target/FairDataPointSchemaTool-1.0.jar /opt/app +COPY --from=build /tmp/FdpSettings.json /opt/app ENTRYPOINT ["java", "-jar", "FairDataPointSchemaTool-1.0.jar"] diff --git a/src/main/java/nl/healthri/fdp/uploadschema/SchemaTools.java b/src/main/java/nl/healthri/fdp/uploadschema/SchemaTools.java index 3518daa..22cbef4 100644 --- a/src/main/java/nl/healthri/fdp/uploadschema/SchemaTools.java +++ b/src/main/java/nl/healthri/fdp/uploadschema/SchemaTools.java @@ -75,7 +75,8 @@ public void run() { fdpService.authenticate(this.username, this.password); - final Settings newFdpSettings = Settings.GetSettings(settingsFile); + final File resolvedSettingsFile = resolveSettingsFile(settingsFile); + final Settings newFdpSettings = Settings.GetSettings(resolvedSettingsFile); fdpService.updateSettings(newFdpSettings); switch (command) { @@ -98,6 +99,20 @@ public void run() { } } + private File resolveSettingsFile(File configuredFile) { + if (configuredFile != null && configuredFile.exists() && configuredFile.isFile()) { + return configuredFile; + } + + File defaultFile = new File("./FdpSettings.json"); + if (configuredFile == null) { + logger.warn("Settings file not provided. Falling back to default: {}", defaultFile.getAbsolutePath()); + } else { + logger.warn("Settings file not found: {}. Falling back to default: {}", configuredFile.getAbsolutePath(), defaultFile.getAbsolutePath()); + } + return defaultFile; + } + public enum CommandEnum { SCHEMA, RESOURCE, BOTH, TEMPLATE } @@ -125,4 +140,4 @@ public URI convert(String value) { } } -} \ No newline at end of file +} diff --git a/src/main/java/nl/healthri/fdp/uploadschema/dto/settings/SettingsResponseDto.java b/src/main/java/nl/healthri/fdp/uploadschema/dto/settings/SettingsResponseDto.java index 69e67ed..45efbf1 100644 --- a/src/main/java/nl/healthri/fdp/uploadschema/dto/settings/SettingsResponseDto.java +++ b/src/main/java/nl/healthri/fdp/uploadschema/dto/settings/SettingsResponseDto.java @@ -1,10 +1,10 @@ package nl.healthri.fdp.uploadschema.dto.settings; -import com.fasterxml.jackson.databind.ObjectMapper; -import nl.healthri.fdp.uploadschema.config.fdp.Settings; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import java.util.List; +@JsonIgnoreProperties(ignoreUnknown = true) public record SettingsResponseDto( String clientUrl, String persistentUrl, @@ -18,11 +18,13 @@ public record SettingsResponseDto( Search search, Forms forms ) { + @JsonIgnoreProperties(ignoreUnknown = true) public record MetadataMetric( String metricUri, String resourceUri ) {} + @JsonIgnoreProperties(ignoreUnknown = true) public record Ping( boolean enabled, List endpoints, @@ -30,21 +32,26 @@ public record Ping( String interval ) {} + @JsonIgnoreProperties(ignoreUnknown = true) public record Repository( String type ) {} + @JsonIgnoreProperties(ignoreUnknown = true) public record Search( List filters ) {} + @JsonIgnoreProperties(ignoreUnknown = true) public record Forms( Autocomplete autocomplete ) { + @JsonIgnoreProperties(ignoreUnknown = true) public record Autocomplete( boolean searchNamespace, List sources ) { + @JsonIgnoreProperties(ignoreUnknown = true) public record Source( String rdfType, String sparqlEndpoint, @@ -55,4 +62,3 @@ public record Source( } -