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 {