diff --git a/README.md b/README.md index f5101dd13..7299c818f 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,7 @@ Only a curated list of the [vast amount](http://geoserver.org/release/stable/) o - vectortiles - flatgeobuf - dxf +- geopkg-output - cog - importer - imagepyramid diff --git a/compose/compose.yml b/compose/compose.yml index 0cb8a0834..53b396faa 100644 --- a/compose/compose.yml +++ b/compose/compose.yml @@ -7,7 +7,7 @@ volumes: driver_opts: type: none o: bind - device: $PWD/../config + device: C:\\temp\\config driver: local x-gs-dependencies: &gs-dependencies diff --git a/config b/config index 3cd0890a6..e5540755c 160000 --- a/config +++ b/config @@ -1 +1 @@ -Subproject commit 3cd0890a60a9c00f61d05b7f5e5ff911b5317462 +Subproject commit e5540755cc134c5a8e036914530907f321b23155 diff --git a/src/apps/geoserver/webui/pom.xml b/src/apps/geoserver/webui/pom.xml index 33512e602..777689558 100644 --- a/src/apps/geoserver/webui/pom.xml +++ b/src/apps/geoserver/webui/pom.xml @@ -120,6 +120,20 @@ org.geoserver.extension gs-dxf-wps + + org.geoserver.extension + gs-geopkg-output + + + org.geoserver + gs-wms + + + org.geoserver + gs-gwc + + + org.geoserver gs-wms diff --git a/src/apps/geoserver/webui/src/main/java/org/geoserver/cloud/autoconfigure/web/wfs/WfsConfiguration.java b/src/apps/geoserver/webui/src/main/java/org/geoserver/cloud/autoconfigure/web/wfs/WfsConfiguration.java index 2dffd299d..fdf0d4110 100644 --- a/src/apps/geoserver/webui/src/main/java/org/geoserver/cloud/autoconfigure/web/wfs/WfsConfiguration.java +++ b/src/apps/geoserver/webui/src/main/java/org/geoserver/cloud/autoconfigure/web/wfs/WfsConfiguration.java @@ -15,7 +15,8 @@ "jar:gs-web-wfs-.*!/applicationContext.xml", // "jar:gs-wfs-.*!/applicationContext.xml", "jar:gs-flatgeobuf-.*!/applicationContext.xml#name=.*", - "jar:gs-dxf-core-.*!/applicationContext.xml#name=.*" + "jar:gs-dxf-core-.*!/applicationContext.xml#name=.*", + "jar:gs-geopkg-output-.*!/applicationContext.xml#name=.*" } // ) public class WfsConfiguration {} diff --git a/src/apps/geoserver/wfs/pom.xml b/src/apps/geoserver/wfs/pom.xml index b72b0989f..3c85dd7e3 100644 --- a/src/apps/geoserver/wfs/pom.xml +++ b/src/apps/geoserver/wfs/pom.xml @@ -34,6 +34,20 @@ org.geoserver.extension gs-dxf-core + + org.geoserver.extension + gs-geopkg-output + + + org.geoserver + gs-wms + + + org.geoserver + gs-gwc + + + org.testcontainers junit-jupiter diff --git a/src/apps/geoserver/wfs/src/main/java/org/geoserver/cloud/wfs/config/WfsAutoConfiguration.java b/src/apps/geoserver/wfs/src/main/java/org/geoserver/cloud/wfs/config/WfsAutoConfiguration.java index 06503d42f..5889ddf78 100644 --- a/src/apps/geoserver/wfs/src/main/java/org/geoserver/cloud/wfs/config/WfsAutoConfiguration.java +++ b/src/apps/geoserver/wfs/src/main/java/org/geoserver/cloud/wfs/config/WfsAutoConfiguration.java @@ -19,7 +19,8 @@ locations = { "jar:gs-wfs-.*!/applicationContext.xml#name=.*", "jar:gs-flatgeobuf-.*!/applicationContext.xml#name=.*", - "jar:gs-dxf-core-.*!/applicationContext.xml#name=.*" + "jar:gs-dxf-core-.*!/applicationContext.xml#name=.*", + "jar:gs-geopkg-output-.*!/applicationContext.xml#name=.*" } // ) public class WfsAutoConfiguration { diff --git a/src/pom.xml b/src/pom.xml index 8d890cf24..2eb9088e8 100644 --- a/src/pom.xml +++ b/src/pom.xml @@ -597,6 +597,11 @@ gs-dxf-wps ${gs.version} + + org.geoserver.extension + gs-geopkg-output + ${gs.version} + org.geoserver.extension gs-web-resource diff --git a/src/starters/wms-extensions/pom.xml b/src/starters/wms-extensions/pom.xml index 3aba10bea..e3b484980 100644 --- a/src/starters/wms-extensions/pom.xml +++ b/src/starters/wms-extensions/pom.xml @@ -32,6 +32,16 @@ + + org.geoserver.extension + gs-geopkg-output + + + org.geoserver + gs-wfs + + + org.geoserver.extension gs-vectortiles diff --git a/src/starters/wms-extensions/src/main/java/org/geoserver/cloud/autoconfigure/wms/extensions/GeoPkgOutputConfiguration.java b/src/starters/wms-extensions/src/main/java/org/geoserver/cloud/autoconfigure/wms/extensions/GeoPkgOutputConfiguration.java new file mode 100644 index 000000000..08a43a63f --- /dev/null +++ b/src/starters/wms-extensions/src/main/java/org/geoserver/cloud/autoconfigure/wms/extensions/GeoPkgOutputConfiguration.java @@ -0,0 +1,36 @@ +/* + * (c) 2021 Open Source Geospatial Foundation - all rights reserved This code is licensed under the + * GPL 2.0 license, available at the root application directory. + */ +package org.geoserver.cloud.autoconfigure.wms.extensions; + +import org.geoserver.cloud.autoconfigure.wms.extensions.WmsExtensionsConfigProperties.Wms.WmsOutputFormatsConfigProperties.VectorTilesConfigProperties; +import org.geoserver.cloud.config.factory.FilteringXmlBeanDefinitionReader; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.ImportResource; + +/** + * @since 1.0 + */ +@Configuration +@EnableConfigurationProperties(WmsExtensionsConfigProperties.class) +@ImportResource( // + reader = FilteringXmlBeanDefinitionReader.class, // + locations = {"jar:gs-geopkg-output-.*!/applicationContext.xml"}) +class GeoPkgOutputConfiguration { + + @ConditionalOnProperty( + name = "geoserver.wms.output-formats.geopkg.enabled", + havingValue = "true", + matchIfMissing = true) + @ImportResource( // + reader = FilteringXmlBeanDefinitionReader.class, // + locations = { + "jar:gs-geopkg-output-.*!/applicationContext.xml" + }) + static class Enabled {} +} diff --git a/src/starters/wms-extensions/src/main/java/org/geoserver/cloud/autoconfigure/wms/extensions/WmsExtensionsAutoConfiguration.java b/src/starters/wms-extensions/src/main/java/org/geoserver/cloud/autoconfigure/wms/extensions/WmsExtensionsAutoConfiguration.java index 363b78d77..9cdae541a 100644 --- a/src/starters/wms-extensions/src/main/java/org/geoserver/cloud/autoconfigure/wms/extensions/WmsExtensionsAutoConfiguration.java +++ b/src/starters/wms-extensions/src/main/java/org/geoserver/cloud/autoconfigure/wms/extensions/WmsExtensionsAutoConfiguration.java @@ -22,7 +22,8 @@ value = { CssStylingConfiguration.class, MapBoxStylingConfiguration.class, - VectorTilesConfiguration.class + VectorTilesConfiguration.class, + GeoPkgOutputConfiguration.class }) public class WmsExtensionsAutoConfiguration { public @PostConstruct void log() { diff --git a/src/starters/wms-extensions/src/main/java/org/geoserver/cloud/autoconfigure/wms/extensions/WmsExtensionsConfigProperties.java b/src/starters/wms-extensions/src/main/java/org/geoserver/cloud/autoconfigure/wms/extensions/WmsExtensionsConfigProperties.java index 7d2d0a627..582bc69fd 100644 --- a/src/starters/wms-extensions/src/main/java/org/geoserver/cloud/autoconfigure/wms/extensions/WmsExtensionsConfigProperties.java +++ b/src/starters/wms-extensions/src/main/java/org/geoserver/cloud/autoconfigure/wms/extensions/WmsExtensionsConfigProperties.java @@ -22,6 +22,7 @@ * mapbox.enabled: true * wms: * outputFormats: + * geopkg.enabled: true * vectorTiles: * mapbox.enabled: true * geojson.enabled: true @@ -50,6 +51,9 @@ new WmsOutputFormatsConfigProperties(); public static @Data class WmsOutputFormatsConfigProperties { + + private EnabledProperty geopkg = new EnabledProperty(); + private VectorTilesConfigProperties vectorTiles = new VectorTilesConfigProperties(); public static @Data class VectorTilesConfigProperties {