Skip to content

Commit abc0438

Browse files
Add cache
1 parent 36eaf15 commit abc0438

2 files changed

Lines changed: 15 additions & 1 deletion

File tree

server/src/main/java/au/org/aodn/ogcapi/server/core/configuration/CacheConfig.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import au.org.aodn.ogcapi.server.core.util.GeometryUtils;
88
import org.ehcache.config.builders.*;
99
import org.ehcache.config.units.MemoryUnit;
10+
import org.ehcache.impl.config.persistence.DefaultPersistenceConfiguration;
1011
import org.ehcache.jsr107.EhcacheCachingProvider;
1112
import org.locationtech.jts.geom.Geometry;
1213
import org.locationtech.jts.geom.prep.PreparedGeometry;
@@ -19,6 +20,7 @@
1920
import javax.cache.Caching;
2021
import java.io.File;
2122
import java.io.IOException;
23+
import java.math.BigInteger;
2224
import java.nio.file.Files;
2325
import java.nio.file.Path;
2426
import java.time.Duration;
@@ -31,7 +33,10 @@ public class CacheConfig {
3133
public static final String CACHE_WMS_MAP_TILE = "cache-wms-map_tile";
3234
public static final String GET_CAPABILITIES_WMS_LAYERS = "get-capabilities-wms-layers";
3335
public static final String GET_CAPABILITIES_WFS_FEATURE_TYPES = "get-capabilities-wfs-feature-types";
36+
3437
public static final String DOWNLOADABLE_FIELDS = "downloadable-fields";
38+
public static final String DOWNLOADABLE_SIZE = "downloadable-size";
39+
3540
public static final String ALL_NO_LAND_GEOMETRY = "all-noland-geometry";
3641
public static final String ALL_PARAM_VOCABS = "parameter-vocabs";
3742
public static final String ELASTIC_SEARCH_UUID_ONLY = "elastic-search-uuid-only";
@@ -53,7 +58,7 @@ public JCacheCacheManager cacheManager() throws IOException {
5358

5459
org.ehcache.config.Configuration config = ConfigurationBuilder
5560
.newConfigurationBuilder()
56-
.withService(new org.ehcache.impl.config.persistence.DefaultPersistenceConfiguration(storagePath))
61+
.withService(new DefaultPersistenceConfiguration(storagePath))
5762
.withCache(CACHE_WMS_MAP_TILE,
5863
CacheConfigurationBuilder.newCacheConfigurationBuilder(
5964
Object.class, byte[].class,
@@ -81,6 +86,12 @@ public JCacheCacheManager cacheManager() throws IOException {
8186
ResourcePoolsBuilder.heap(200)
8287
).withExpiry(ExpiryPolicyBuilder.timeToLiveExpiration(Duration.ofHours(24)))
8388
)
89+
.withCache(DOWNLOADABLE_SIZE,
90+
CacheConfigurationBuilder.newCacheConfigurationBuilder(
91+
Object.class, BigInteger.class,
92+
ResourcePoolsBuilder.heap(100)
93+
).withExpiry(ExpiryPolicyBuilder.timeToLiveExpiration(Duration.ofHours(24)))
94+
)
8495
.withCache(ELASTIC_SEARCH_UUID_ONLY,
8596
CacheConfigurationBuilder.newCacheConfigurationBuilder(
8697
Object.class, Object.class,

server/src/main/java/au/org/aodn/ogcapi/server/core/service/geoserver/wfs/DownloadWfsDataService.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package au.org.aodn.ogcapi.server.core.service.geoserver.wfs;
22

3+
import au.org.aodn.ogcapi.server.core.configuration.CacheConfig;
34
import au.org.aodn.ogcapi.server.core.model.ogc.FeatureRequest;
45
import au.org.aodn.ogcapi.server.core.util.DatetimeUtils;
56
import lombok.extern.slf4j.Slf4j;
67
import net.opengis.ows10.ExceptionReportType;
78
import net.opengis.wfs.FeatureCollectionType;
89
import org.geotools.wfs.v1_1.WFSConfiguration;
910
import org.geotools.xsd.Parser;
11+
import org.springframework.cache.annotation.Cacheable;
1012
import org.springframework.http.*;
1113
import org.springframework.web.client.RestTemplate;
1214
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
@@ -92,6 +94,7 @@ public String prepareWfsRequestUrl(
9294
* b. Issue a query with data download but then limit the records size, and do a liner interpolation
9395
* @return The estimated file size
9496
*/
97+
@Cacheable(CacheConfig.DOWNLOADABLE_SIZE)
9598
public BigInteger estimateDownloadSize(
9699
String uuid,
97100
String layerName,

0 commit comments

Comments
 (0)