From fe28566cf3d2779b93b5696746b8f08e51add8f0 Mon Sep 17 00:00:00 2001 From: Bertrik Sikken Date: Sat, 27 Jan 2024 00:43:04 +0100 Subject: [PATCH] Add time zone to configuration --- configuration.yaml | 2 ++ docker/configuration.yaml | 2 ++ .../verkeersdrukte/app/VerkeersDrukteApp.java | 2 +- .../app/VerkeersDrukteAppConfig.java | 10 +++++++++- .../app/VerkeersDrukteResource.java | 5 +++-- .../verkeersdrukte/traffic/TrafficConfig.java | 19 +++++++++++++++++++ 6 files changed, 36 insertions(+), 4 deletions(-) create mode 100644 verkeersdrukte/src/main/java/nl/bertriksikken/verkeersdrukte/traffic/TrafficConfig.java diff --git a/configuration.yaml b/configuration.yaml index 6db02ac..94538b2 100644 --- a/configuration.yaml +++ b/configuration.yaml @@ -2,6 +2,8 @@ ndw: host: "https://opendata.ndw.nu/" timeout: 30 +traffic: + timeZone: "Europe/Amsterdam" logging: ! level: "INFO" loggers: {} diff --git a/docker/configuration.yaml b/docker/configuration.yaml index 6db02ac..94538b2 100644 --- a/docker/configuration.yaml +++ b/docker/configuration.yaml @@ -2,6 +2,8 @@ ndw: host: "https://opendata.ndw.nu/" timeout: 30 +traffic: + timeZone: "Europe/Amsterdam" logging: ! level: "INFO" loggers: {} diff --git a/verkeersdrukte/src/main/java/nl/bertriksikken/verkeersdrukte/app/VerkeersDrukteApp.java b/verkeersdrukte/src/main/java/nl/bertriksikken/verkeersdrukte/app/VerkeersDrukteApp.java index a7dc53e..8ec0409 100644 --- a/verkeersdrukte/src/main/java/nl/bertriksikken/verkeersdrukte/app/VerkeersDrukteApp.java +++ b/verkeersdrukte/src/main/java/nl/bertriksikken/verkeersdrukte/app/VerkeersDrukteApp.java @@ -29,7 +29,7 @@ public void initialize(Bootstrap bootstrap) { @Override public void run(VerkeersDrukteAppConfig configuration, Environment environment) { TrafficHandler ndwHandler = new TrafficHandler(configuration.getNdwConfig()); - VerkeersDrukteResource resource = new VerkeersDrukteResource(ndwHandler); + VerkeersDrukteResource resource = new VerkeersDrukteResource(ndwHandler, configuration.getTrafficConfig()); environment.healthChecks().register("ndw", new VerkeersDrukteHealthCheck(ndwHandler)); environment.jersey().register(resource); environment.lifecycle().manage(ndwHandler); diff --git a/verkeersdrukte/src/main/java/nl/bertriksikken/verkeersdrukte/app/VerkeersDrukteAppConfig.java b/verkeersdrukte/src/main/java/nl/bertriksikken/verkeersdrukte/app/VerkeersDrukteAppConfig.java index d96c085..d94f471 100644 --- a/verkeersdrukte/src/main/java/nl/bertriksikken/verkeersdrukte/app/VerkeersDrukteAppConfig.java +++ b/verkeersdrukte/src/main/java/nl/bertriksikken/verkeersdrukte/app/VerkeersDrukteAppConfig.java @@ -4,14 +4,22 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.dropwizard.core.Configuration; import nl.bertriksikken.verkeersdrukte.ndw.NdwConfig; +import nl.bertriksikken.verkeersdrukte.traffic.TrafficConfig; @JsonIgnoreProperties(ignoreUnknown = true) final class VerkeersDrukteAppConfig extends Configuration { @JsonProperty("ndw") - public final NdwConfig ndwConfig = new NdwConfig(); + private final NdwConfig ndwConfig = new NdwConfig(); + @JsonProperty("traffic") + private TrafficConfig trafficConfig; public NdwConfig getNdwConfig() { return ndwConfig; } + + public TrafficConfig getTrafficConfig() { + return trafficConfig; + } + } diff --git a/verkeersdrukte/src/main/java/nl/bertriksikken/verkeersdrukte/app/VerkeersDrukteResource.java b/verkeersdrukte/src/main/java/nl/bertriksikken/verkeersdrukte/app/VerkeersDrukteResource.java index 67ac392..445f936 100644 --- a/verkeersdrukte/src/main/java/nl/bertriksikken/verkeersdrukte/app/VerkeersDrukteResource.java +++ b/verkeersdrukte/src/main/java/nl/bertriksikken/verkeersdrukte/app/VerkeersDrukteResource.java @@ -16,6 +16,7 @@ import jakarta.ws.rs.sse.SseEventSink; import nl.bertriksikken.verkeersdrukte.traffic.AggregateMeasurement; import nl.bertriksikken.verkeersdrukte.traffic.ITrafficHandler; +import nl.bertriksikken.verkeersdrukte.traffic.TrafficConfig; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -43,10 +44,10 @@ public final class VerkeersDrukteResource { private final ZoneId zoneId; - VerkeersDrukteResource(ITrafficHandler handler) { + VerkeersDrukteResource(ITrafficHandler handler, TrafficConfig config) { this.handler = handler; mapper.findAndRegisterModules(); - zoneId = ZoneId.of("Europe/Amsterdam"); + zoneId = config.getTimeZone(); } @GET diff --git a/verkeersdrukte/src/main/java/nl/bertriksikken/verkeersdrukte/traffic/TrafficConfig.java b/verkeersdrukte/src/main/java/nl/bertriksikken/verkeersdrukte/traffic/TrafficConfig.java new file mode 100644 index 0000000..f1947c5 --- /dev/null +++ b/verkeersdrukte/src/main/java/nl/bertriksikken/verkeersdrukte/traffic/TrafficConfig.java @@ -0,0 +1,19 @@ +package nl.bertriksikken.verkeersdrukte.traffic; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.time.ZoneId; +import java.util.TimeZone; + +@JsonAutoDetect(getterVisibility = JsonAutoDetect.Visibility.NONE) +public final class TrafficConfig { + + @JsonProperty("timeZone") + private String timeZone = "Europe/Amsterdam"; + + public ZoneId getTimeZone() { + return ZoneId.of(timeZone); + } +}