diff --git a/pom.xml b/pom.xml index c32ccb71..a3cdebc8 100644 --- a/pom.xml +++ b/pom.xml @@ -192,7 +192,7 @@ au.org.aodn stacmodel - 0.0.60 + 0.0.63 diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/ActuatorConfig.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/ActuatorConfig.java index f933a837..aa8d9516 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/ActuatorConfig.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/ActuatorConfig.java @@ -1,18 +1,57 @@ package au.org.aodn.ogcapi.server.core.configuration; import au.org.aodn.ogcapi.server.core.model.enumeration.ErrorCode; +import au.org.aodn.ogcapi.server.core.service.das.DasService; +import au.org.aodn.ogcapi.server.core.service.dda.DdaService; +import au.org.aodn.ogcapi.server.core.service.geonetwork.Geonetwork; +import au.org.aodn.ogcapi.server.core.service.indexer.EsIndexer; import co.elastic.clients.elasticsearch.ElasticsearchClient; import co.elastic.clients.elasticsearch._types.HealthStatus; import co.elastic.clients.elasticsearch.indices.ExistsRequest; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.actuate.health.Health; import org.springframework.boot.actuate.health.HealthIndicator; +import org.springframework.boot.actuate.info.InfoContributor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import java.util.HashMap; +import java.util.Map; @Configuration public class ActuatorConfig { + private static final String DEP_SERVICE = "depService"; + + // Define the InfoContributor bean to fill in the missing info in /manage/info endpoint + @Bean + public InfoContributor externalApiInfoContributor( + DasService das, + DdaService dda, + EsIndexer esIndexer, + Geonetwork geonetwork + ) { + return builder -> { + try { + Map> versions = new HashMap<>(); + versions.put(das.getName(), + Map.of("version", das.getVersion(), "description", das.getDescription())); + versions.put(dda.getName(), + Map.of("version", dda.getVersion(), "description", dda.getDescription())); + versions.put(esIndexer.getName(), + Map.of("version", esIndexer.getVersion(), "description", esIndexer.getDescription())); + versions.put(geonetwork.getName(), + Map.of("version", geonetwork.getVersion(), "description", geonetwork.getDescription())); + + builder.withDetail(DEP_SERVICE, versions); + } catch (Exception e) { + builder.withDetail(DEP_SERVICE, Map.of( + "status", "ERROR Query", + "error", e.getMessage() + )); + } + }; + } + @Bean public HealthIndicator ogcApiHealth( @Value("${elasticsearch.vocabs_index.name}") String vocabIndexName, diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/Config.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/Config.java index 84a8ea8d..758a8089 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/Config.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/Config.java @@ -1,5 +1,9 @@ package au.org.aodn.ogcapi.server.core.configuration; +import au.org.aodn.ogcapi.server.core.service.das.DasProperties; +import au.org.aodn.ogcapi.server.core.service.dda.DdaProperties; +import au.org.aodn.ogcapi.server.core.service.geonetwork.GNProperties; +import au.org.aodn.ogcapi.server.core.service.indexer.IndexerProperties; import au.org.aodn.ogcapi.server.core.util.ConstructUtils; import au.org.aodn.ogcapi.server.core.util.GeometryUtils; import au.org.aodn.ogcapi.server.core.util.RestTemplateUtils; @@ -18,7 +22,12 @@ @Configuration @EnableScheduling -@EnableConfigurationProperties(DasProperties.class) +@EnableConfigurationProperties({ + DdaProperties.class, + IndexerProperties.class, + GNProperties.class, + DasProperties.class +}) public class Config { public static final String DAS_REST_TEMPLATE = "dasRestTemplate"; diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/DdaConfig.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/DdaConfig.java new file mode 100644 index 00000000..3e9d6fbc --- /dev/null +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/DdaConfig.java @@ -0,0 +1,16 @@ +package au.org.aodn.ogcapi.server.core.configuration; + +import au.org.aodn.ogcapi.server.core.service.dda.DdaProperties; +import au.org.aodn.ogcapi.server.core.service.dda.DdaService; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.client.RestTemplate; + +@Configuration +public class DdaConfig { + + @Bean + public DdaService createDdaServer(DdaProperties properties, RestTemplate template) { + return new DdaService(properties,template); + } +} diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/GeoNetworkConfig.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/GeoNetworkConfig.java new file mode 100644 index 00000000..050ad728 --- /dev/null +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/GeoNetworkConfig.java @@ -0,0 +1,16 @@ +package au.org.aodn.ogcapi.server.core.configuration; + +import au.org.aodn.ogcapi.server.core.service.geonetwork.GNProperties; +import au.org.aodn.ogcapi.server.core.service.geonetwork.Geonetwork; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.client.RestTemplate; + +@Configuration +public class GeoNetworkConfig { + + @Bean + public Geonetwork createGeonetwork(GNProperties properties, RestTemplate template) { + return new Geonetwork(properties, template); + } +} diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/IndexerConfig.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/IndexerConfig.java new file mode 100644 index 00000000..eaa930e2 --- /dev/null +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/IndexerConfig.java @@ -0,0 +1,16 @@ +package au.org.aodn.ogcapi.server.core.configuration; + +import au.org.aodn.ogcapi.server.core.service.indexer.EsIndexer; +import au.org.aodn.ogcapi.server.core.service.indexer.IndexerProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.client.RestTemplate; + +@Configuration +public class IndexerConfig { + + @Bean + public EsIndexer createEsIndexer(IndexerProperties properties, RestTemplate template) { + return new EsIndexer(properties, template); + } +} diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/service/ApplicationInfo.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/service/ApplicationInfo.java new file mode 100644 index 00000000..e2bc3305 --- /dev/null +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/service/ApplicationInfo.java @@ -0,0 +1,45 @@ +package au.org.aodn.ogcapi.server.core.service; + +import org.springframework.core.ParameterizedTypeReference; +import org.springframework.http.HttpMethod; +import org.springframework.http.ResponseEntity; +import org.springframework.web.client.RestTemplate; + +import java.util.Collections; +import java.util.Map; + +public interface ApplicationInfo { + /** + * Query this is repeat code to query the info path + * @param restTemplate - The template of the service + * @param host - Host + * @param path - query path + * @return - Map of value + */ + default Map> queryInfo(RestTemplate restTemplate, String host, String path) { + if(path != null) { + try { + String das = String.format("%s/%s", host, path); + ResponseEntity>> response = restTemplate.exchange( + das, + HttpMethod.GET, + null, + new ParameterizedTypeReference<>() { + } + ); + + if (response.getStatusCode().is2xxSuccessful()) { + return response.getBody(); + } + } catch (Exception e) { + // Do not throw exception that impacts start, UI will use health endpoint to decide level of + // service, for example if geonetwork is not work, we can still provide service + } + } + return Collections.emptyMap(); + } + + String getName(); + String getVersion(); + String getDescription(); +} diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/DasProperties.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/service/das/DasProperties.java similarity index 78% rename from server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/DasProperties.java rename to server/src/main/java/au/org/aodn/ogcapi/server/core/service/das/DasProperties.java index 474bdce5..fd0f8f9f 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/DasProperties.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/service/das/DasProperties.java @@ -1,4 +1,4 @@ -package au.org.aodn.ogcapi.server.core.configuration; +package au.org.aodn.ogcapi.server.core.service.das; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.bind.DefaultValue; @@ -8,6 +8,7 @@ @ConfigurationProperties(prefix = "data-access-service") public record DasProperties( String host, + @DefaultValue("api/v1/das/manage/info") String infoPath, String secret, String internal, @DefaultValue("5s") Duration connectTimeout, diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/service/das/DasService.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/service/das/DasService.java index 1abf091a..661e4c27 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/service/das/DasService.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/service/das/DasService.java @@ -1,8 +1,8 @@ package au.org.aodn.ogcapi.server.core.service.das; import au.org.aodn.ogcapi.server.core.configuration.Config; -import au.org.aodn.ogcapi.server.core.configuration.DasProperties; import au.org.aodn.ogcapi.server.core.model.DatasetMetadata; +import au.org.aodn.ogcapi.server.core.service.ApplicationInfo; import au.org.aodn.ogcapi.server.core.util.SseResponseParser; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.beans.factory.annotation.Qualifier; @@ -11,18 +11,18 @@ import org.springframework.web.client.RestTemplate; import org.springframework.web.util.UriComponentsBuilder; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @Service("DataAccessService") -public class DasService { +public class DasService implements ApplicationInfo { protected final DasProperties dasProperties; - protected final RestTemplate httpClient; - protected final ObjectMapper objectMapper; + protected final Map> appInfo; public DasService( DasProperties dasProperties, @@ -31,6 +31,7 @@ public DasService( this.dasProperties = dasProperties; this.httpClient = httpClient; this.objectMapper = objectMapper; + this.appInfo = queryInfo(httpClient, dasProperties.host(), dasProperties.infoPath()); } /** @@ -130,4 +131,19 @@ public ResponseEntity getDatasetMetadata(String datasetId) { .contentType(MediaType.APPLICATION_JSON) .body(response.getBody()); } + + @Override + public String getName() { + return this.appInfo.getOrDefault("application", Collections.emptyMap()).get("name").toString(); + } + + @Override + public String getVersion() { + return this.appInfo.getOrDefault("application", Collections.emptyMap()).get("version").toString(); + } + + @Override + public String getDescription() { + return this.appInfo.getOrDefault("application", Collections.emptyMap()).get("description").toString(); + } } diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/service/das/DasTilerService.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/service/das/DasTilerService.java index 1e94c6ec..07bca18d 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/service/das/DasTilerService.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/service/das/DasTilerService.java @@ -1,6 +1,5 @@ package au.org.aodn.ogcapi.server.core.service.das; -import au.org.aodn.ogcapi.server.core.configuration.DasProperties; import au.org.aodn.ogcapi.server.core.configuration.Config; import au.org.aodn.ogcapi.server.core.exception.DasUpstreamException; import au.org.aodn.ogcapi.server.core.service.Search; diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/service/dda/DdaProperties.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/service/dda/DdaProperties.java new file mode 100644 index 00000000..94a56944 --- /dev/null +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/service/dda/DdaProperties.java @@ -0,0 +1,11 @@ +package au.org.aodn.ogcapi.server.core.service.dda; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.context.properties.bind.DefaultValue; + +@ConfigurationProperties(prefix = "data-discovery-ai") +public record DdaProperties( + String host, + @DefaultValue("api/v1/ml/manage/info") String infoPath +) { +} diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/service/dda/DdaService.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/service/dda/DdaService.java new file mode 100644 index 00000000..d9dacbc2 --- /dev/null +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/service/dda/DdaService.java @@ -0,0 +1,29 @@ +package au.org.aodn.ogcapi.server.core.service.dda; + +import au.org.aodn.ogcapi.server.core.service.ApplicationInfo; +import org.springframework.web.client.RestTemplate; +import java.util.Collections; +import java.util.Map; + +public class DdaService implements ApplicationInfo { + protected final Map> appInfo; + + public DdaService(DdaProperties properties, RestTemplate template) { + this.appInfo = queryInfo(template, properties.host(), properties.infoPath()); + } + + @Override + public String getName() { + return this.appInfo.getOrDefault("application", Collections.emptyMap()).get("name").toString(); + } + + @Override + public String getVersion() { + return this.appInfo.getOrDefault("application", Collections.emptyMap()).get("version").toString(); + } + + @Override + public String getDescription() { + return this.appInfo.getOrDefault("application", Collections.emptyMap()).get("description").toString(); + } +} diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/service/geonetwork/GNProperties.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/service/geonetwork/GNProperties.java new file mode 100644 index 00000000..55dce221 --- /dev/null +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/service/geonetwork/GNProperties.java @@ -0,0 +1,11 @@ +package au.org.aodn.ogcapi.server.core.service.geonetwork; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.context.properties.bind.DefaultValue; + +@ConfigurationProperties(prefix = "geonetwork4") +public record GNProperties ( + String host, + @DefaultValue("geonetwork/srv/api/manage/info") String infoPath +) { +} diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/service/geonetwork/Geonetwork.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/service/geonetwork/Geonetwork.java new file mode 100644 index 00000000..ea4edfa1 --- /dev/null +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/service/geonetwork/Geonetwork.java @@ -0,0 +1,34 @@ +package au.org.aodn.ogcapi.server.core.service.geonetwork; + +import au.org.aodn.ogcapi.server.core.service.ApplicationInfo; +import org.springframework.web.client.RestTemplate; + +import java.util.Collections; +import java.util.Map; + +/** + * This Geonetwork is use by portal to store data catalog, it is not use to remotely access external geonetwork + */ +public class Geonetwork implements ApplicationInfo { + + protected final Map> appInfo; + + public Geonetwork(GNProperties properties, RestTemplate template) { + this.appInfo = queryInfo(template, properties.host(), properties.infoPath()); + } + + @Override + public String getName() { + return this.appInfo.getOrDefault("application", Collections.emptyMap()).get("name").toString(); + } + + @Override + public String getVersion() { + return this.appInfo.getOrDefault("application", Collections.emptyMap()).get("version").toString(); + } + + @Override + public String getDescription() { + return this.appInfo.getOrDefault("application", Collections.emptyMap()).get("description").toString(); + } +} diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/service/indexer/EsIndexer.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/service/indexer/EsIndexer.java new file mode 100644 index 00000000..713532c0 --- /dev/null +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/service/indexer/EsIndexer.java @@ -0,0 +1,31 @@ +package au.org.aodn.ogcapi.server.core.service.indexer; + +import au.org.aodn.ogcapi.server.core.service.ApplicationInfo; +import org.springframework.web.client.RestTemplate; + +import java.util.Collections; +import java.util.Map; + +public class EsIndexer implements ApplicationInfo { + + protected final Map> appInfo; + + public EsIndexer(IndexerProperties properties, RestTemplate template) { + this.appInfo = queryInfo(template, properties.host(), properties.infoPath()); + } + + @Override + public String getName() { + return this.appInfo.getOrDefault("application", Collections.emptyMap()).get("name").toString(); + } + + @Override + public String getVersion() { + return this.appInfo.getOrDefault("application", Collections.emptyMap()).get("version").toString(); + } + + @Override + public String getDescription() { + return this.appInfo.getOrDefault("application", Collections.emptyMap()).get("description").toString(); + } +} diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/service/indexer/IndexerProperties.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/service/indexer/IndexerProperties.java new file mode 100644 index 00000000..6660d32f --- /dev/null +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/service/indexer/IndexerProperties.java @@ -0,0 +1,11 @@ +package au.org.aodn.ogcapi.server.core.service.indexer; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.context.properties.bind.DefaultValue; + +@ConfigurationProperties(prefix = "es-indexer") +public record IndexerProperties( + String host, + @DefaultValue("manage/info") String infoPath +) { +} diff --git a/server/src/main/resources/application-dev.yaml b/server/src/main/resources/application-dev.yaml index 63749f0e..cffa88d1 100644 --- a/server/src/main/resources/application-dev.yaml +++ b/server/src/main/resources/application-dev.yaml @@ -7,3 +7,12 @@ management: ogcapi: debug: elasticsearch-explain-enabled: true + +data-discovery-ai: + host: https://data-discovery-ai.edge.aodn.org.au + +es-indexer: + host: https://es-indexer.edge.aodn.org.au + +geonetwork4: + host: https://geonetwork.edge.aodn.org.au diff --git a/server/src/main/resources/application.yaml b/server/src/main/resources/application.yaml index 5237f136..d63fd46c 100644 --- a/server/src/main/resources/application.yaml +++ b/server/src/main/resources/application.yaml @@ -498,6 +498,7 @@ info: name: '@project.name@' description: '@project.description@' version: '@project.version@' + depServiceVersion: {} logging: level: diff --git a/server/src/test/java/au/org/aodn/ogcapi/server/core/configuration/ConfigTest.java b/server/src/test/java/au/org/aodn/ogcapi/server/core/configuration/ConfigTest.java index 8882c58e..3b49f452 100644 --- a/server/src/test/java/au/org/aodn/ogcapi/server/core/configuration/ConfigTest.java +++ b/server/src/test/java/au/org/aodn/ogcapi/server/core/configuration/ConfigTest.java @@ -1,5 +1,6 @@ package au.org.aodn.ogcapi.server.core.configuration; +import au.org.aodn.ogcapi.server.core.service.das.DasProperties; import org.junit.jupiter.api.Test; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; @@ -25,7 +26,7 @@ public class ConfigTest { private static final DasProperties DAS_PROPERTIES = new DasProperties( - "http://localhost:5000", "test-secret", "internal-secret", + "http://localhost:5000", null,"test-secret", "internal-secret", Duration.ofSeconds(5), Duration.ofSeconds(30)); private final Config config = new Config(); @@ -67,7 +68,7 @@ public void testApplicationWideTemplateCarriesNoDasCredentials() throws IOExcept @Test public void testInternalSecretOmittedWhenNotConfigured() throws IOException { DasProperties noInternal = new DasProperties( - "http://localhost:5000", "test-secret", null, + "http://localhost:5000", null,"test-secret", null, Duration.ofSeconds(5), Duration.ofSeconds(30)); HttpHeaders headers = headersAfterInterceptors(config.createDasRestTemplate(noInternal)); diff --git a/server/src/test/java/au/org/aodn/ogcapi/server/core/service/das/DasServiceHeadersTest.java b/server/src/test/java/au/org/aodn/ogcapi/server/core/service/das/DasServiceHeadersTest.java index ce08abc3..f5b56170 100644 --- a/server/src/test/java/au/org/aodn/ogcapi/server/core/service/das/DasServiceHeadersTest.java +++ b/server/src/test/java/au/org/aodn/ogcapi/server/core/service/das/DasServiceHeadersTest.java @@ -1,7 +1,6 @@ package au.org.aodn.ogcapi.server.core.service.das; import au.org.aodn.ogcapi.server.core.configuration.Config; -import au.org.aodn.ogcapi.server.core.configuration.DasProperties; import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -28,16 +27,15 @@ public class DasServiceHeadersTest { private static final DasProperties PROPS = new DasProperties( - "http://localhost:5000", "test-secret", "internal-secret", + "http://localhost:5000", null,"test-secret", "internal-secret", Duration.ofSeconds(5), Duration.ofSeconds(30)); - private RestTemplate template; private MockRestServiceServer server; private DasService dasService; @BeforeEach public void setUp() { - template = new Config().createDasRestTemplate(PROPS); + RestTemplate template = new Config().createDasRestTemplate(PROPS); server = MockRestServiceServer.bindTo(template).build(); dasService = new DasService(PROPS, template, new ObjectMapper()); } @@ -84,7 +82,7 @@ public void testFeatureCollectionCarriesCredentials() { @Test public void testInternalSecretIsOmittedWhenNotConfigured() { DasProperties noInternal = new DasProperties( - "http://localhost:5000", "test-secret", null, + "http://localhost:5000", null,"test-secret", null, Duration.ofSeconds(5), Duration.ofSeconds(30)); RestTemplate noInternalTemplate = new Config().createDasRestTemplate(noInternal); MockRestServiceServer noInternalServer = MockRestServiceServer.bindTo(noInternalTemplate).build(); diff --git a/server/src/test/java/au/org/aodn/ogcapi/server/core/service/das/DasServiceTest.java b/server/src/test/java/au/org/aodn/ogcapi/server/core/service/das/DasServiceTest.java index f32da0ce..466fc73f 100644 --- a/server/src/test/java/au/org/aodn/ogcapi/server/core/service/das/DasServiceTest.java +++ b/server/src/test/java/au/org/aodn/ogcapi/server/core/service/das/DasServiceTest.java @@ -1,6 +1,5 @@ package au.org.aodn.ogcapi.server.core.service.das; -import au.org.aodn.ogcapi.server.core.configuration.DasProperties; import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -43,7 +42,7 @@ public void setUp() { httpClient = mock(RestTemplate.class); DasProperties config = new DasProperties( - HOST, "test-secret", "", + HOST, null,"test-secret", "", Duration.ofSeconds(5), Duration.ofSeconds(30) ); @@ -149,7 +148,7 @@ private HttpEntity> callEstimateAndCaptureEntity(String uuid assertEquals("{\"estimated_output_bytes\":123}", result, "The estimate dict should be unwrapped from the stream"); ArgumentCaptor urlCaptor = ArgumentCaptor.forClass(String.class); - ArgumentCaptor entityCaptor = ArgumentCaptor.forClass(HttpEntity.class); + ArgumentCaptor entityCaptor = ArgumentCaptor.forClass(HttpEntity.class); ArgumentCaptor> uriVarsCaptor = ArgumentCaptor.forClass(Map.class); verify(httpClient).postForObject(urlCaptor.capture(), entityCaptor.capture(), eq(String.class), uriVarsCaptor.capture()); diff --git a/server/src/test/java/au/org/aodn/ogcapi/server/core/service/das/DasTilerServiceTest.java b/server/src/test/java/au/org/aodn/ogcapi/server/core/service/das/DasTilerServiceTest.java index c3cca504..ea708db8 100644 --- a/server/src/test/java/au/org/aodn/ogcapi/server/core/service/das/DasTilerServiceTest.java +++ b/server/src/test/java/au/org/aodn/ogcapi/server/core/service/das/DasTilerServiceTest.java @@ -1,6 +1,5 @@ package au.org.aodn.ogcapi.server.core.service.das; -import au.org.aodn.ogcapi.server.core.configuration.DasProperties; import au.org.aodn.ogcapi.server.core.exception.DasUpstreamException; import au.org.aodn.ogcapi.server.core.service.ElasticSearchBase; import au.org.aodn.ogcapi.server.core.service.Search; @@ -55,7 +54,7 @@ public void setUp() { search = mock(Search.class); DasProperties config = new DasProperties( - HOST, "test-secret", "internal-secret", + HOST, null,"test-secret", "internal-secret", Duration.ofSeconds(5), Duration.ofSeconds(30) );