Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions server/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,10 @@
<groupId>javax.cache</groupId>
<artifactId>cache-api</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.retry</groupId>
<artifactId>spring-retry</artifactId>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ public JCacheCacheManager cacheManager() throws IOException {
CacheConfigurationBuilder.newCacheConfigurationBuilder(
Object.class, Object.class,
ResourcePoolsBuilder.heap(50)
).withExpiry(ExpiryPolicyBuilder.timeToLiveExpiration(Duration.ofMinutes(5)))
).withExpiry(ExpiryPolicyBuilder.timeToLiveExpiration(Duration.ofSeconds(15)))
)
.withCache(STRING_TO_GEOMETRY,
CacheConfigurationBuilder.newCacheConfigurationBuilder(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,23 @@
package au.org.aodn.ogcapi.server.core.configuration;

import au.org.aodn.ogcapi.server.core.service.Search;
import au.org.aodn.ogcapi.server.core.service.wfs.DownloadableFieldsService;
import au.org.aodn.ogcapi.server.core.service.wfs.WfsServer;
import au.org.aodn.ogcapi.server.core.service.wms.WmsServer;
import au.org.aodn.ogcapi.server.core.util.RestTemplateUtils;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class WfsWmsConfig {

@Bean
public WfsServer createWfsServer() {
return new WfsServer();
public WfsServer createWfsServer(Search search,
DownloadableFieldsService downloadableFieldsService,
RestTemplate restTemplate,
RestTemplateUtils restTemplateUtils) {
return new WfsServer(search, downloadableFieldsService, restTemplate, restTemplateUtils);
}

@Bean
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package au.org.aodn.ogcapi.server.core.model.ogc.wms;

import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class BoundingBox {
@JacksonXmlProperty(isAttribute = true)
private String CRS;

@JacksonXmlProperty(isAttribute = true)
private double minx;

@JacksonXmlProperty(isAttribute = true)
private double miny;

@JacksonXmlProperty(isAttribute = true)
private double maxx;

@JacksonXmlProperty(isAttribute = true)
private double maxy;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package au.org.aodn.ogcapi.server.core.model.ogc.wms;

import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class GeographicBoundingBox {
@JacksonXmlProperty(localName = "westBoundLongitude")
private double westBoundLongitude;

@JacksonXmlProperty(localName = "eastBoundLongitude")
private double eastBoundLongitude;

@JacksonXmlProperty(localName = "southBoundLatitude")
private double southBoundLatitude;

@JacksonXmlProperty(localName = "northBoundLatitude")
private double northBoundLatitude;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package au.org.aodn.ogcapi.server.core.model.ogc.wms;

import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class KeywordList {
@JacksonXmlElementWrapper(useWrapping = false)
@JacksonXmlProperty(localName = "Keyword")
private List<String> keyword;
}
Original file line number Diff line number Diff line change
@@ -1,20 +1,51 @@
package au.org.aodn.ogcapi.server.core.model.ogc.wms;

import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@JacksonXmlRootElement(localName = "Layer")
public class LayerInfo {

@JacksonXmlProperty(isAttribute = true)
private String queryable;

@JacksonXmlProperty(isAttribute = true)
private String opaque;

@JacksonXmlProperty(localName = "Name")
protected String name;

@JacksonXmlProperty(localName = "Title")
protected String title;

@JacksonXmlProperty(localName = "Abstract")
private String abstract_;

@JacksonXmlProperty(localName = "KeywordList")
private KeywordList keywordList;

@JacksonXmlElementWrapper(useWrapping = false)
@JacksonXmlProperty(localName = "CRS")
private List<String> crs;

@JacksonXmlProperty(localName = "EX_GeographicBoundingBox")
private GeographicBoundingBox geographicBoundingBox;

@JacksonXmlElementWrapper(useWrapping = false)
@JacksonXmlProperty(localName = "BoundingBox")
private List<BoundingBox> boundingBoxes;

@JacksonXmlProperty(localName = "Style")
private Style style;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package au.org.aodn.ogcapi.server.core.model.ogc.wms;

import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class LegendURL {
@JacksonXmlProperty(isAttribute = true)
private int width;

@JacksonXmlProperty(isAttribute = true)
private int height;

@JacksonXmlProperty(localName = "Format")
private String format;

@JacksonXmlProperty(localName = "OnlineResource")
private OnlineResource onlineResource;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package au.org.aodn.ogcapi.server.core.model.ogc.wms;

import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class OnlineResource {
@JacksonXmlProperty(isAttribute = true, localName = "xlink", namespace = "http://www.w3.org/2000/xmlns/")
private String xlink;

@JacksonXmlProperty(isAttribute = true, localName = "type", namespace = "http://www.w3.org/1999/xlink")
private String type;

@JacksonXmlProperty(isAttribute = true, localName = "href", namespace = "http://www.w3.org/1999/xlink")
private String href;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package au.org.aodn.ogcapi.server.core.model.ogc.wms;

import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Style {
@JacksonXmlProperty(localName = "Name")
private String name;

@JacksonXmlProperty(localName = "Title")
private String title;

@JacksonXmlProperty(localName = "Abstract")
private String abstract_;

@JacksonXmlProperty(localName = "LegendURL")
private LegendURL legendURL;
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@
public class CacheWarm {
// Hardcode server list as not expect to change much overtime, add more if needed
protected List<String> getCapabilitiesUrls = List.of(
"https://data.aad.gov.au/geoserver/underway/wms"
"https://data.aad.gov.au/geoserver/underway/ows"
// "https://www.cmar.csiro.au/geoserver/ows" <- This one super slow and do not return complete XML, need a ticket to fix
);
protected WmsServer wmsServer;
protected GeometryUtils geometryUtils;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ public String prepareWfsRequestUrl(
downloadableFields = wfsServer.getDownloadableFields(uuid, FeatureRequest.builder().layerName(wfsTypeName).build(), wfsServerUrl);
log.info("DownloadableFields by describeLayer: {}", downloadableFields);
} else {
Optional<String> featureServerUrl = wfsServer.getFeatureServerUrl(uuid, layerName);
Optional<String> featureServerUrl = wfsServer.getFeatureServerUrlByTitle(uuid, layerName);

if (featureServerUrl.isPresent()) {
wfsServerUrl = featureServerUrl.get();
Expand Down
Loading