diff --git a/deegree-client/deegree-jsf-core/pom.xml b/deegree-client/deegree-jsf-core/pom.xml
index 1add8acab5..6f6329c387 100644
--- a/deegree-client/deegree-jsf-core/pom.xml
+++ b/deegree-client/deegree-jsf-core/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-client
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-client/deegree-wps-webclient/pom.xml b/deegree-client/deegree-wps-webclient/pom.xml
index 4c2d5027ad..975b75e264 100644
--- a/deegree-client/deegree-wps-webclient/pom.xml
+++ b/deegree-client/deegree-wps-webclient/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-client
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-client/deegree-wpsprinter-webclient/pom.xml b/deegree-client/deegree-wpsprinter-webclient/pom.xml
index ca11324078..77674f8624 100644
--- a/deegree-client/deegree-wpsprinter-webclient/pom.xml
+++ b/deegree-client/deegree-wpsprinter-webclient/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-client
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-client/pom.xml b/deegree-client/pom.xml
index fa1ddd2bbf..9c0e383083 100644
--- a/deegree-client/pom.xml
+++ b/deegree-client/pom.xml
@@ -9,7 +9,7 @@
org.deegree
deegree
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-connectionprovider-datasource/pom.xml b/deegree-core/deegree-connectionprovider-datasource/pom.xml
index 1670806e03..ec8eb2a404 100644
--- a/deegree-core/deegree-connectionprovider-datasource/pom.xml
+++ b/deegree-core/deegree-connectionprovider-datasource/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-3d/pom.xml b/deegree-core/deegree-core-3d/pom.xml
index 73b9313620..78082d5048 100644
--- a/deegree-core/deegree-core-3d/pom.xml
+++ b/deegree-core/deegree-core-3d/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-annotations/pom.xml b/deegree-core/deegree-core-annotations/pom.xml
index 203df9dd8d..01b5a240d4 100644
--- a/deegree-core/deegree-core-annotations/pom.xml
+++ b/deegree-core/deegree-core-annotations/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-base/pom.xml b/deegree-core/deegree-core-base/pom.xml
index f9eabeb532..19a957aec8 100644
--- a/deegree-core/deegree-core-base/pom.xml
+++ b/deegree-core/deegree-core-base/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-base/src/main/java/org/deegree/geojson/GeoJsonWriter.java b/deegree-core/deegree-core-base/src/main/java/org/deegree/geojson/GeoJsonWriter.java
index 0d1fe55b3e..ec118a8939 100644
--- a/deegree-core/deegree-core-base/src/main/java/org/deegree/geojson/GeoJsonWriter.java
+++ b/deegree-core/deegree-core-base/src/main/java/org/deegree/geojson/GeoJsonWriter.java
@@ -29,7 +29,6 @@
import java.util.Collections;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import java.util.stream.Collectors;
/**
@@ -44,7 +43,7 @@ public class GeoJsonWriter extends JsonWriter implements GeoJsonFeatureWriter, G
private static final Logger LOG = LoggerFactory.getLogger(GeoJsonWriter.class);
- private final GeoJsonGeometryWriter geoJsonGeometryWriter;
+ private GeoJsonGeometryWriter geoJsonGeometryWriter;
private final ICRS crs;
@@ -58,10 +57,25 @@ public class GeoJsonWriter extends JsonWriter implements GeoJsonFeatureWriter, G
* @throws UnknownCRSException if "crs:84" is not known as CRS (should never happen)
*/
public GeoJsonWriter(Writer writer, ICRS crs) throws UnknownCRSException {
+ this(writer, crs, false);
+ }
+
+ /**
+ * Instantiates a new {@link GeoJsonWriter}.
+ * @param writer the writer to write the GeoJSON into, never null
+ * @param crs the target crs of the geometries, may be null
, then
+ * "EPSG:4326" will be used
+ * @param skipGeometries true
if geometries should not be exported,
+ * false
otherwise
+ * @throws UnknownCRSException if "crs:84" is not known as CRS (should never happen)
+ */
+ public GeoJsonWriter(Writer writer, ICRS crs, boolean skipGeometries) throws UnknownCRSException {
super(writer);
setIndent(" ");
setHtmlSafe(true);
- this.geoJsonGeometryWriter = new GeoJsonGeometryWriter(this, crs);
+ if (!skipGeometries) {
+ this.geoJsonGeometryWriter = new GeoJsonGeometryWriter(this, crs);
+ }
this.crs = crs;
}
@@ -119,6 +133,8 @@ public void writeSingleFeature(Feature feature) throws IOException, UnknownCRSEx
}
private void writeGeometry(Feature feature) throws IOException, UnknownCRSException, TransformationException {
+ if (geoJsonGeometryWriter == null)
+ return;
List geometryProperties = feature.getGeometryProperties();
if (geometryProperties.isEmpty()) {
name("geometry").nullValue();
diff --git a/deegree-core/deegree-core-base/src/test/java/org/deegree/geojson/GeoJsonFeatureWriterTest.java b/deegree-core/deegree-core-base/src/test/java/org/deegree/geojson/GeoJsonFeatureWriterTest.java
index 818e1e1f93..f9029054ba 100644
--- a/deegree-core/deegree-core-base/src/test/java/org/deegree/geojson/GeoJsonFeatureWriterTest.java
+++ b/deegree-core/deegree-core-base/src/test/java/org/deegree/geojson/GeoJsonFeatureWriterTest.java
@@ -16,6 +16,7 @@
import static com.jayway.jsonpath.matchers.JsonPathMatchers.hasNoJsonPath;
import static org.hamcrest.CoreMatchers.hasItem;
import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.not;
import static org.junit.Assert.assertThat;
/**
@@ -56,6 +57,39 @@ public void testWrite() throws Exception {
}
+ @Test
+ public void testWrite_skipGeometries() throws Exception {
+ StringWriter featureAsJson = new StringWriter();
+ GeoJsonWriter geoJsonFeatureWriter = new GeoJsonWriter(featureAsJson, null, true);
+ Feature cadastralZoning = parseFeature("CadastralZoning.gml");
+
+ geoJsonFeatureWriter.startFeatureCollection();
+ geoJsonFeatureWriter.write(cadastralZoning);
+ geoJsonFeatureWriter.endFeatureCollection();
+
+ String featureCollection = featureAsJson.toString();
+
+ assertThat(featureCollection, JsonPathMatchers.isJson());
+ assertThat(featureCollection, hasJsonPath("$.type", is("FeatureCollection")));
+ assertThat(featureCollection, hasJsonPath("$.features.length()", is(1)));
+ assertThat(featureCollection, hasJsonPath("$.features[0].type", is("Feature")));
+ assertThat(featureCollection, hasNoJsonPath("$.features[0].srsName"));
+ assertThat(featureCollection, hasJsonPath("$.features[0].id", is("CP_CADASTRALZONING_Bundesland_02")));
+ assertThat(featureCollection, not(hasJsonPath("$.features[0].geometry")));
+ assertThat(featureCollection, hasJsonPath("$.features[0].properties.label", is("02")));
+ assertThat(featureCollection, hasJsonPath("$.features[0].properties.originalMapScaleDenominator", is(10)));
+ assertThat(featureCollection,
+ hasJsonPath("$.features[0].properties.beginLifespanVersion", is("2009-12-15T08:04:54Z")));
+ assertThat(featureCollection, hasJsonPath("$.features[0].properties.estimatedAccuracy.uom", is("m")));
+ assertThat(featureCollection, hasJsonPath("$.features[0].properties.inspireId.Identifier.localId",
+ is("urn:adv:oid:DEHHALKA10000005")));
+ assertThat(featureCollection, hasJsonPath(
+ "$.features[0].properties.name.GeographicalName.spelling.SpellingOfName.text", is("Hamburg")));
+ assertThat(featureCollection,
+ hasJsonPath("$.features[0].properties.levelName.LocalisedCharacterString.value", is("Bundesland")));
+
+ }
+
@Test
public void testWrite_SingleFeature() throws Exception {
StringWriter featureAsJson = new StringWriter();
diff --git a/deegree-core/deegree-core-commons/pom.xml b/deegree-core/deegree-core-commons/pom.xml
index 96f58afa43..d7aaa0a5ad 100644
--- a/deegree-core/deegree-core-commons/pom.xml
+++ b/deegree-core/deegree-core-commons/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-coverage/pom.xml b/deegree-core/deegree-core-coverage/pom.xml
index d22298fde2..2658db3bb8 100644
--- a/deegree-core/deegree-core-coverage/pom.xml
+++ b/deegree-core/deegree-core-coverage/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-cs/pom.xml b/deegree-core/deegree-core-cs/pom.xml
index b8ed323ae8..c7ba197b9b 100644
--- a/deegree-core/deegree-core-cs/pom.xml
+++ b/deegree-core/deegree-core-cs/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-db/pom.xml b/deegree-core/deegree-core-db/pom.xml
index a68db3c846..9a3d7cfde2 100644
--- a/deegree-core/deegree-core-db/pom.xml
+++ b/deegree-core/deegree-core-db/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-featureinfo/pom.xml b/deegree-core/deegree-core-featureinfo/pom.xml
index 4a0b44ba6b..afe3d73f4f 100644
--- a/deegree-core/deegree-core-featureinfo/pom.xml
+++ b/deegree-core/deegree-core-featureinfo/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-featureinfo/src/main/java/org/deegree/featureinfo/FeatureInfoContext.java b/deegree-core/deegree-core-featureinfo/src/main/java/org/deegree/featureinfo/FeatureInfoContext.java
index af701a69f1..bf993f5db0 100644
--- a/deegree-core/deegree-core-featureinfo/src/main/java/org/deegree/featureinfo/FeatureInfoContext.java
+++ b/deegree-core/deegree-core-featureinfo/src/main/java/org/deegree/featureinfo/FeatureInfoContext.java
@@ -42,6 +42,7 @@
import java.io.IOException;
import java.io.OutputStream;
+import java.io.Writer;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamWriter;
@@ -52,6 +53,8 @@ public interface FeatureInfoContext {
XMLStreamWriter getXmlWriter() throws IOException, XMLStreamException;
+ Writer getWriter() throws IOException;
+
void sendRedirect(String location) throws IOException;
}
diff --git a/deegree-core/deegree-core-featureinfo/src/main/java/org/deegree/featureinfo/FeatureInfoManager.java b/deegree-core/deegree-core-featureinfo/src/main/java/org/deegree/featureinfo/FeatureInfoManager.java
index 142727e708..a45f7dec64 100644
--- a/deegree-core/deegree-core-featureinfo/src/main/java/org/deegree/featureinfo/FeatureInfoManager.java
+++ b/deegree-core/deegree-core-featureinfo/src/main/java/org/deegree/featureinfo/FeatureInfoManager.java
@@ -40,18 +40,9 @@ Occam Labs UG (haftungsbeschränkt)
----------------------------------------------------------------------------*/
package org.deegree.featureinfo;
-import static org.slf4j.LoggerFactory.getLogger;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.Set;
-
-import javax.xml.stream.XMLStreamException;
-
import org.deegree.featureinfo.serializing.FeatureInfoGmlWriter;
import org.deegree.featureinfo.serializing.FeatureInfoSerializer;
+import org.deegree.featureinfo.serializing.GeoJsonFeatureInfoSerializer;
import org.deegree.featureinfo.serializing.PlainTextFeatureInfoSerializer;
import org.deegree.featureinfo.serializing.TemplateFeatureInfoSerializer;
import org.deegree.featureinfo.serializing.XsltFeatureInfoSerializer;
@@ -59,6 +50,15 @@ Occam Labs UG (haftungsbeschränkt)
import org.deegree.workspace.Workspace;
import org.slf4j.Logger;
+import javax.xml.stream.XMLStreamException;
+import java.io.IOException;
+import java.net.URL;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Set;
+
+import static org.slf4j.LoggerFactory.getLogger;
+
/**
* Responsible for managing feature info output formats and their serializers.
*
@@ -112,6 +112,14 @@ public void addOrReplaceXsltFormat(String format, URL xsltUrl, GMLVersion versio
featureInfoSerializers.put(format, xslt);
}
+ public void addOrReplaceGeoJsonFormat(String format, boolean allowOtherCrsThanWGS84,
+ boolean allowExportOfGeometries) {
+ LOG.debug("Adding GeoJson feature info format");
+ GeoJsonFeatureInfoSerializer geoJsonSerializer = new GeoJsonFeatureInfoSerializer(allowOtherCrsThanWGS84,
+ allowExportOfGeometries);
+ featureInfoSerializers.put(format, geoJsonSerializer);
+ }
+
public Set getSupportedFormats() {
return featureInfoSerializers.keySet();
}
diff --git a/deegree-core/deegree-core-featureinfo/src/main/java/org/deegree/featureinfo/FeatureInfoParams.java b/deegree-core/deegree-core-featureinfo/src/main/java/org/deegree/featureinfo/FeatureInfoParams.java
index fe01d2f422..8f8b80015d 100644
--- a/deegree-core/deegree-core-featureinfo/src/main/java/org/deegree/featureinfo/FeatureInfoParams.java
+++ b/deegree-core/deegree-core-featureinfo/src/main/java/org/deegree/featureinfo/FeatureInfoParams.java
@@ -68,8 +68,10 @@ public class FeatureInfoParams {
private ICRS crs;
+ private final ICRS infoCrs;
+
public FeatureInfoParams(Map nsBindings, FeatureCollection col, String format,
- boolean withGeometries, String schemaLocation, FeatureType type, ICRS crs) {
+ boolean withGeometries, String schemaLocation, FeatureType type, ICRS crs, ICRS infoCrs) {
this.nsBindings = nsBindings;
this.featureCollection = col;
this.format = format;
@@ -77,6 +79,7 @@ public FeatureInfoParams(Map nsBindings, FeatureCollection col,
this.schemaLocation = schemaLocation;
this.featureType = type;
this.crs = crs;
+ this.infoCrs = infoCrs;
}
/**
@@ -128,4 +131,11 @@ public ICRS getCrs() {
return crs;
}
+ /**
+ * @return the CRS of the values to return
+ */
+ public ICRS getInfoCrs() {
+ return infoCrs;
+ }
+
}
diff --git a/deegree-core/deegree-core-featureinfo/src/main/java/org/deegree/featureinfo/serializing/GeoJsonFeatureInfoSerializer.java b/deegree-core/deegree-core-featureinfo/src/main/java/org/deegree/featureinfo/serializing/GeoJsonFeatureInfoSerializer.java
new file mode 100644
index 0000000000..eeadbc261b
--- /dev/null
+++ b/deegree-core/deegree-core-featureinfo/src/main/java/org/deegree/featureinfo/serializing/GeoJsonFeatureInfoSerializer.java
@@ -0,0 +1,91 @@
+/*----------------------------------------------------------------------------
+ This file is part of deegree
+ Copyright (C) 2001-2024 by:
+ - Department of Geography, University of Bonn -
+ and
+ - lat/lon GmbH -
+ and others
+
+ This library is free software; you can redistribute it and/or modify it under
+ the terms of the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 2.1 of the License, or (at your option)
+ any later version.
+ This library is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ details.
+ You should have received a copy of the GNU Lesser General Public License
+ along with this library; if not, write to the Free Software Foundation, Inc.,
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ Contact information:
+
+ e-mail: info@deegree.org
+ website: http://www.deegree.org/
+----------------------------------------------------------------------------*/
+package org.deegree.featureinfo.serializing;
+
+import org.deegree.cs.coordinatesystems.ICRS;
+import org.deegree.cs.exceptions.TransformationException;
+import org.deegree.cs.exceptions.UnknownCRSException;
+import org.deegree.feature.Feature;
+import org.deegree.feature.FeatureCollection;
+import org.deegree.featureinfo.FeatureInfoContext;
+import org.deegree.featureinfo.FeatureInfoParams;
+import org.deegree.geojson.GeoJsonFeatureWriter;
+import org.deegree.geojson.GeoJsonWriter;
+import org.slf4j.Logger;
+
+import java.io.IOException;
+
+import static org.slf4j.LoggerFactory.getLogger;
+
+/**
+ * {@link FeatureInfoSerializer} to serialize feature info result as GeoJson.
+ *
+ * @author Lyn Goltz
+ */
+public class GeoJsonFeatureInfoSerializer implements FeatureInfoSerializer {
+
+ private static final Logger LOG = getLogger(GeoJsonFeatureInfoSerializer.class);
+
+ private final boolean allowOtherCrsThanWGS84;
+
+ private final boolean allowExportOfGeometries;
+
+ public GeoJsonFeatureInfoSerializer(boolean allowOtherCrsThanWGS84, boolean allowExportOfGeometries) {
+ this.allowExportOfGeometries = allowExportOfGeometries;
+ this.allowOtherCrsThanWGS84 = allowOtherCrsThanWGS84;
+ }
+
+ @Override
+ public void serialize(FeatureInfoParams params, FeatureInfoContext context) {
+ ICRS crs = detectCrs(params);
+ boolean skipGeometries = detectSkipGeometries(params);
+ try (GeoJsonFeatureWriter geoJsonStreamWriter = new GeoJsonWriter(context.getWriter(), crs, skipGeometries)) {
+ geoJsonStreamWriter.startFeatureCollection();
+ FeatureCollection featureCollection = params.getFeatureCollection();
+ for (Feature feature : featureCollection) {
+ geoJsonStreamWriter.write(feature);
+ }
+ geoJsonStreamWriter.endFeatureCollection();
+ }
+ catch (IOException | TransformationException | UnknownCRSException e) {
+ LOG.error("GeoJson GFI response could not be written", e);
+ }
+ }
+
+ private boolean detectSkipGeometries(FeatureInfoParams params) {
+ if (allowExportOfGeometries && params.isWithGeometries())
+ return false;
+ return true;
+ }
+
+ private ICRS detectCrs(FeatureInfoParams params) {
+ if (allowOtherCrsThanWGS84 && params.getInfoCrs() != null) {
+ return params.getInfoCrs();
+ }
+ return null;
+ }
+
+}
diff --git a/deegree-core/deegree-core-featureinfo/src/test/java/org/deegree/featureinfo/serializing/GeoJsonFeatureInfoSerializerTest.java b/deegree-core/deegree-core-featureinfo/src/test/java/org/deegree/featureinfo/serializing/GeoJsonFeatureInfoSerializerTest.java
new file mode 100644
index 0000000000..41250b4acd
--- /dev/null
+++ b/deegree-core/deegree-core-featureinfo/src/test/java/org/deegree/featureinfo/serializing/GeoJsonFeatureInfoSerializerTest.java
@@ -0,0 +1,149 @@
+/*----------------------------------------------------------------------------
+ This file is part of deegree
+ Copyright (C) 2001-2024 by:
+ - Department of Geography, University of Bonn -
+ and
+ - lat/lon GmbH -
+ and others
+
+ This library is free software; you can redistribute it and/or modify it under
+ the terms of the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 2.1 of the License, or (at your option)
+ any later version.
+ This library is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ details.
+ You should have received a copy of the GNU Lesser General Public License
+ along with this library; if not, write to the Free Software Foundation, Inc.,
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ Contact information:
+
+ e-mail: info@deegree.org
+ website: http://www.deegree.org/
+----------------------------------------------------------------------------*/
+package org.deegree.featureinfo.serializing;
+
+import org.deegree.cs.coordinatesystems.ICRS;
+import org.deegree.cs.persistence.CRSManager;
+import org.deegree.feature.FeatureCollection;
+import org.deegree.featureinfo.FeatureInfoContext;
+import org.deegree.featureinfo.FeatureInfoParams;
+import org.deegree.gml.GMLInputFactory;
+import org.deegree.gml.GMLStreamReader;
+import org.deegree.gml.GMLVersion;
+import org.junit.Test;
+
+import java.io.IOException;
+import java.io.StringWriter;
+import java.io.Writer;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+/**
+ * @author Lyn Goltz
+ */
+public class GeoJsonFeatureInfoSerializerTest {
+
+ @Test
+ public void testSerialize() throws Exception {
+ StringWriter writer = new StringWriter();
+ GeoJsonFeatureInfoSerializer serializer = new GeoJsonFeatureInfoSerializer(false, true);
+ FeatureInfoParams params = createParams();
+ FeatureInfoContext context = mockContext(writer);
+ serializer.serialize(params, context);
+
+ String geoJson = writer.toString();
+ assertTrue(geoJson.contains("\"type\":"));
+ assertTrue(geoJson.contains("\"FeatureCollection\""));
+ assertTrue(geoJson.contains("AdministrativeUnit_10044117"));
+ assertTrue(geoJson.contains("6.910811280489623"));
+ }
+
+ @Test
+ public void testSerialize_withInfoCrsNotAllowed() throws Exception {
+ StringWriter writer = new StringWriter();
+ GeoJsonFeatureInfoSerializer serializer = new GeoJsonFeatureInfoSerializer(false, true);
+ FeatureInfoParams params = createParams("EPSG:25832");
+ FeatureInfoContext context = mockContext(writer);
+ serializer.serialize(params, context);
+
+ String geoJson = writer.toString();
+ assertTrue(geoJson.contains("\"type\":"));
+ assertTrue(geoJson.contains("\"FeatureCollection\""));
+ assertTrue(geoJson.contains("AdministrativeUnit_10044117"));
+ assertTrue(geoJson.contains("6.910811280489623"));
+ }
+
+ @Test
+ public void testSerialize_allowOtherCrs_InfoCrs() throws Exception {
+ StringWriter writer = new StringWriter();
+ GeoJsonFeatureInfoSerializer serializer = new GeoJsonFeatureInfoSerializer(true, true);
+ FeatureInfoParams params = createParams("EPSG:25832");
+ FeatureInfoContext context = mockContext(writer);
+ serializer.serialize(params, context);
+
+ String geoJson = writer.toString();
+ assertTrue(geoJson.contains("\"type\":"));
+ assertTrue(geoJson.contains("\"FeatureCollection\""));
+ assertTrue(geoJson.contains("AdministrativeUnit_10044117"));
+ assertTrue(geoJson.contains("348736.888"));
+ }
+
+ @Test
+ public void testSerialize_allowOtherCrs_SkipGeometries() throws Exception {
+ StringWriter writer = new StringWriter();
+ GeoJsonFeatureInfoSerializer serializer = new GeoJsonFeatureInfoSerializer(false, false);
+ FeatureInfoParams params = createParams();
+ FeatureInfoContext context = mockContext(writer);
+ serializer.serialize(params, context);
+
+ String geoJson = writer.toString();
+ assertTrue(geoJson.contains("\"type\":"));
+ assertTrue(geoJson.contains("\"FeatureCollection\""));
+ assertTrue(geoJson.contains("AdministrativeUnit_10044117"));
+ assertFalse(geoJson.contains("geometries"));
+ }
+
+ @Test
+ public void testSerialize_allowOtherCrs_InfoCrsAndSkipGeometries() throws Exception {
+ StringWriter writer = new StringWriter();
+ GeoJsonFeatureInfoSerializer serializer = new GeoJsonFeatureInfoSerializer(true, false);
+ FeatureInfoParams params = createParams("EPSG:25832");
+ FeatureInfoContext context = mockContext(writer);
+ serializer.serialize(params, context);
+
+ String geoJson = writer.toString();
+ assertTrue(geoJson.contains("\"type\":"));
+ assertTrue(geoJson.contains("\"FeatureCollection\""));
+ assertTrue(geoJson.contains("AdministrativeUnit_10044117"));
+ assertFalse(geoJson.contains("geometries"));
+ }
+
+ private FeatureInfoParams createParams() throws Exception {
+ return createParams(null);
+ }
+
+ private FeatureInfoParams createParams(String crs) throws Exception {
+ URL resource = TemplateFeatureInfoSerializer.class.getResource("featurecollection.gml");
+ GMLStreamReader gmlStreamReader = GMLInputFactory.createGMLStreamReader(GMLVersion.GML_32, resource);
+ Map nsBindings = new HashMap<>();
+ FeatureCollection col = gmlStreamReader.readFeatureCollection();
+ ICRS infoCrs = crs != null ? CRSManager.lookup(crs) : null;
+ return new FeatureInfoParams(nsBindings, col, "text/html", true, null, null, null, infoCrs);
+ }
+
+ private FeatureInfoContext mockContext(Writer writer) throws IOException {
+ FeatureInfoContext mock = mock(FeatureInfoContext.class);
+ when(mock.getWriter()).thenReturn(writer);
+ return mock;
+ }
+
+}
diff --git a/deegree-core/deegree-core-featureinfo/src/test/java/org/deegree/featureinfo/serializing/TemplateFeatureInfoSerializerTest.java b/deegree-core/deegree-core-featureinfo/src/test/java/org/deegree/featureinfo/serializing/TemplateFeatureInfoSerializerTest.java
index c8fe4c7776..1c622eb748 100644
--- a/deegree-core/deegree-core-featureinfo/src/test/java/org/deegree/featureinfo/serializing/TemplateFeatureInfoSerializerTest.java
+++ b/deegree-core/deegree-core-featureinfo/src/test/java/org/deegree/featureinfo/serializing/TemplateFeatureInfoSerializerTest.java
@@ -44,7 +44,7 @@ private FeatureInfoParams createParams() throws Exception {
GMLStreamReader gmlStreamReader = GMLInputFactory.createGMLStreamReader(GMLVersion.GML_32, resource);
Map nsBindings = new HashMap<>();
FeatureCollection col = gmlStreamReader.readFeatureCollection();
- return new FeatureInfoParams(nsBindings, col, "text/html", true, null, null, null);
+ return new FeatureInfoParams(nsBindings, col, "text/html", true, null, null, null, null);
}
private FeatureInfoContext mockContext(OutputStream os) throws IOException {
diff --git a/deegree-core/deegree-core-featureinfo/src/test/resources/org/deegree/featureinfo/serializing/featurecollection.gml b/deegree-core/deegree-core-featureinfo/src/test/resources/org/deegree/featureinfo/serializing/featurecollection.gml
index c5e330ecb1..aba355900f 100644
--- a/deegree-core/deegree-core-featureinfo/src/test/resources/org/deegree/featureinfo/serializing/featurecollection.gml
+++ b/deegree-core/deegree-core-featureinfo/src/test/resources/org/deegree/featureinfo/serializing/featurecollection.gml
@@ -168,7 +168,7 @@
-
+
diff --git a/deegree-core/deegree-core-filterfunctions/pom.xml b/deegree-core/deegree-core-filterfunctions/pom.xml
index 1e1e749013..be6710eeb5 100644
--- a/deegree-core/deegree-core-filterfunctions/pom.xml
+++ b/deegree-core/deegree-core-filterfunctions/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-gdal/pom.xml b/deegree-core/deegree-core-gdal/pom.xml
index e430b6247a..3eadf5c019 100644
--- a/deegree-core/deegree-core-gdal/pom.xml
+++ b/deegree-core/deegree-core-gdal/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-geometry/pom.xml b/deegree-core/deegree-core-geometry/pom.xml
index 2981cb709c..946466b613 100644
--- a/deegree-core/deegree-core-geometry/pom.xml
+++ b/deegree-core/deegree-core-geometry/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-geometry/src/main/java/org/deegree/geometry/standard/primitive/DefaultSurface.java b/deegree-core/deegree-core-geometry/src/main/java/org/deegree/geometry/standard/primitive/DefaultSurface.java
index 2b05263573..143323027f 100644
--- a/deegree-core/deegree-core-geometry/src/main/java/org/deegree/geometry/standard/primitive/DefaultSurface.java
+++ b/deegree-core/deegree-core-geometry/src/main/java/org/deegree/geometry/standard/primitive/DefaultSurface.java
@@ -37,6 +37,8 @@
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
import org.deegree.commons.uom.Measure;
import org.deegree.commons.uom.Unit;
@@ -55,6 +57,7 @@
import org.locationtech.jts.algorithm.InteriorPointArea;
import org.locationtech.jts.geom.Coordinate;
import org.locationtech.jts.geom.LinearRing;
+import org.locationtech.jts.geom.Polygon;
/**
* Default implementation of {@link Surface}.
@@ -155,13 +158,28 @@ public List getInteriorRingsCoordinates() {
@Override
protected org.locationtech.jts.geom.Geometry buildJTSGeometry() {
-
- if (patches.size() < 1 || !(patches.get(0) instanceof PolygonPatch)) {
+ if (patches.size() < 1 || containsNonPolygonPatches()) {
throw new IllegalArgumentException(Messages.getMessage("SURFACE_NOT_EQUIVALENT_TO_POLYGON"));
}
+ if (patches.size() == 1) {
+ PolygonPatch patch = (PolygonPatch) patches.get(0);
+ return createJtsPolygon(patch);
+ }
+ Polygon[] jtsPolygons = patches.stream()
+ .map(patch -> createJtsPolygon((PolygonPatch) patch))
+ .collect(Collectors.toList())
+ .toArray(Polygon[]::new);
+ return jtsFactory.createMultiPolygon(jtsPolygons);
+ }
+
+ private boolean containsNonPolygonPatches() {
+ Optional extends SurfacePatch> nonPolygonPatch = patches.stream()
+ .filter(patch -> !(patch instanceof PolygonPatch))
+ .findAny();
+ return nonPolygonPatch.isPresent();
+ }
- // TODO handle the other patches as well
- PolygonPatch patch = (PolygonPatch) patches.get(0);
+ private static Polygon createJtsPolygon(PolygonPatch patch) {
Ring exteriorRing = patch.getExteriorRing();
List interiorRings = patch.getInteriorRings();
diff --git a/deegree-core/deegree-core-layer/pom.xml b/deegree-core/deegree-core-layer/pom.xml
index 9e183ff116..43ce9af470 100644
--- a/deegree-core/deegree-core-layer/pom.xml
+++ b/deegree-core/deegree-core-layer/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-metadata/pom.xml b/deegree-core/deegree-core-metadata/pom.xml
index 947502d9cb..5d6551e912 100644
--- a/deegree-core/deegree-core-metadata/pom.xml
+++ b/deegree-core/deegree-core-metadata/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-protocol/deegree-protocol-commons/pom.xml b/deegree-core/deegree-core-protocol/deegree-protocol-commons/pom.xml
index 3cdd9eb27c..13bf0e1dc7 100644
--- a/deegree-core/deegree-core-protocol/deegree-protocol-commons/pom.xml
+++ b/deegree-core/deegree-core-protocol/deegree-protocol-commons/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core-protocol
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-protocol/deegree-protocol-csw/pom.xml b/deegree-core/deegree-core-protocol/deegree-protocol-csw/pom.xml
index 722305a066..19b5d108e5 100644
--- a/deegree-core/deegree-core-protocol/deegree-protocol-csw/pom.xml
+++ b/deegree-core/deegree-core-protocol/deegree-protocol-csw/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core-protocol
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-protocol/deegree-protocol-wfs/pom.xml b/deegree-core/deegree-core-protocol/deegree-protocol-wfs/pom.xml
index 41a79dd1f1..c410c1bde9 100644
--- a/deegree-core/deegree-core-protocol/deegree-protocol-wfs/pom.xml
+++ b/deegree-core/deegree-core-protocol/deegree-protocol-wfs/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core-protocol
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-protocol/deegree-protocol-wms/pom.xml b/deegree-core/deegree-core-protocol/deegree-protocol-wms/pom.xml
index bfc9878088..d7a3a7c3f8 100644
--- a/deegree-core/deegree-core-protocol/deegree-protocol-wms/pom.xml
+++ b/deegree-core/deegree-core-protocol/deegree-protocol-wms/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core-protocol
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-protocol/deegree-protocol-wms/src/main/java/org/deegree/protocol/wms/ops/GetFeatureInfo.java b/deegree-core/deegree-core-protocol/deegree-protocol-wms/src/main/java/org/deegree/protocol/wms/ops/GetFeatureInfo.java
index 8ecdcebd51..904a27d868 100644
--- a/deegree-core/deegree-core-protocol/deegree-protocol-wms/src/main/java/org/deegree/protocol/wms/ops/GetFeatureInfo.java
+++ b/deegree-core/deegree-core-protocol/deegree-protocol-wms/src/main/java/org/deegree/protocol/wms/ops/GetFeatureInfo.java
@@ -35,25 +35,6 @@
package org.deegree.protocol.wms.ops;
-import static java.lang.Integer.parseInt;
-import static java.util.Arrays.asList;
-import static org.deegree.commons.ows.exception.OWSException.INVALID_PARAMETER_VALUE;
-import static org.deegree.commons.ows.exception.OWSException.INVALID_POINT;
-import static org.deegree.commons.ows.exception.OWSException.MISSING_PARAMETER_VALUE;
-import static org.deegree.commons.utils.ArrayUtils.splitAsDoubles;
-import static org.deegree.commons.utils.CollectionUtils.map;
-import static org.deegree.commons.utils.MapUtils.DEFAULT_PIXEL_SIZE;
-import static org.deegree.layer.LayerRef.FROM_NAMES;
-import static org.deegree.protocol.wms.WMSConstants.VERSION_111;
-import static org.deegree.protocol.wms.WMSConstants.VERSION_130;
-import static org.slf4j.LoggerFactory.getLogger;
-
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.Map;
-
import org.deegree.commons.ows.exception.OWSException;
import org.deegree.commons.tom.ows.Version;
import org.deegree.cs.CRSUtils;
@@ -67,6 +48,24 @@
import org.deegree.style.StyleRef;
import org.slf4j.Logger;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.Map;
+
+import static java.lang.Integer.parseInt;
+import static java.util.Arrays.asList;
+import static org.deegree.commons.ows.exception.OWSException.INVALID_PARAMETER_VALUE;
+import static org.deegree.commons.ows.exception.OWSException.INVALID_POINT;
+import static org.deegree.commons.ows.exception.OWSException.MISSING_PARAMETER_VALUE;
+import static org.deegree.commons.utils.ArrayUtils.splitAsDoubles;
+import static org.deegree.commons.utils.CollectionUtils.map;
+import static org.deegree.layer.LayerRef.FROM_NAMES;
+import static org.deegree.protocol.wms.WMSConstants.VERSION_111;
+import static org.deegree.protocol.wms.WMSConstants.VERSION_130;
+import static org.slf4j.LoggerFactory.getLogger;
+
/**
* GetFeatureInfo
*
@@ -96,6 +95,8 @@ public class GetFeatureInfo extends RequestBase {
private String infoFormat;
+ private ICRS infoCrs;
+
private int featureCount = 1;
private boolean returnGeometries;
@@ -330,6 +331,7 @@ private double[] handleCommon(Map map) throws OWSException {
}
returnGeometries = map.get("GEOMETRIES") != null && map.get("GEOMETRIES").equalsIgnoreCase("true");
+ infoCrs = map.get("INFO_CRS") != null ? CRSManager.getCRSRef(map.get("INFO_CRS")) : null;
return vals;
}
@@ -363,6 +365,13 @@ public String getInfoFormat() {
return infoFormat;
}
+ /**
+ * @return the CRS of the values to return
+ */
+ public ICRS getInfoCrs() {
+ return infoCrs;
+ }
+
/**
* @return the max feature count
*/
diff --git a/deegree-core/deegree-core-protocol/deegree-protocol-wmts/pom.xml b/deegree-core/deegree-core-protocol/deegree-protocol-wmts/pom.xml
index 78b9907f5a..9dcf6b3d8d 100644
--- a/deegree-core/deegree-core-protocol/deegree-protocol-wmts/pom.xml
+++ b/deegree-core/deegree-core-protocol/deegree-protocol-wmts/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core-protocol
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-protocol/pom.xml b/deegree-core/deegree-core-protocol/pom.xml
index 5c53462f44..222a841987 100644
--- a/deegree-core/deegree-core-protocol/pom.xml
+++ b/deegree-core/deegree-core-protocol/pom.xml
@@ -8,7 +8,7 @@
org.deegree
deegree-core
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-remoteows/deegree-remoteows-commons/pom.xml b/deegree-core/deegree-core-remoteows/deegree-remoteows-commons/pom.xml
index 9258a41eea..a3dcb89437 100644
--- a/deegree-core/deegree-core-remoteows/deegree-remoteows-commons/pom.xml
+++ b/deegree-core/deegree-core-remoteows/deegree-remoteows-commons/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core-remoteows
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-remoteows/deegree-remoteows-wfs/pom.xml b/deegree-core/deegree-core-remoteows/deegree-remoteows-wfs/pom.xml
index 8b4a1ebc0f..d291f7c574 100644
--- a/deegree-core/deegree-core-remoteows/deegree-remoteows-wfs/pom.xml
+++ b/deegree-core/deegree-core-remoteows/deegree-remoteows-wfs/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core-remoteows
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-remoteows/deegree-remoteows-wms/pom.xml b/deegree-core/deegree-core-remoteows/deegree-remoteows-wms/pom.xml
index 879337b521..ee37e712ed 100644
--- a/deegree-core/deegree-core-remoteows/deegree-remoteows-wms/pom.xml
+++ b/deegree-core/deegree-core-remoteows/deegree-remoteows-wms/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core-remoteows
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-remoteows/deegree-remoteows-wmts/pom.xml b/deegree-core/deegree-core-remoteows/deegree-remoteows-wmts/pom.xml
index 653e08eaa6..93dea0596c 100644
--- a/deegree-core/deegree-core-remoteows/deegree-remoteows-wmts/pom.xml
+++ b/deegree-core/deegree-core-remoteows/deegree-remoteows-wmts/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core-remoteows
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-remoteows/pom.xml b/deegree-core/deegree-core-remoteows/pom.xml
index c2ad1c6198..15737caa46 100644
--- a/deegree-core/deegree-core-remoteows/pom.xml
+++ b/deegree-core/deegree-core-remoteows/pom.xml
@@ -8,7 +8,7 @@
org.deegree
deegree-core
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-rendering-2d/pom.xml b/deegree-core/deegree-core-rendering-2d/pom.xml
index 66db83a135..d79828f8e6 100644
--- a/deegree-core/deegree-core-rendering-2d/pom.xml
+++ b/deegree-core/deegree-core-rendering-2d/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-schema/pom.xml b/deegree-core/deegree-core-schema/pom.xml
index 60ea40f56b..43c0ccc581 100644
--- a/deegree-core/deegree-core-schema/pom.xml
+++ b/deegree-core/deegree-core-schema/pom.xml
@@ -8,7 +8,7 @@
org.deegree
deegree-core
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-commons/pom.xml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-commons/pom.xml
index 1f978d47ba..dd5049ab7d 100644
--- a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-commons/pom.xml
+++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-commons/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core-sqldialect
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-mssql/pom.xml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-mssql/pom.xml
index bcb9b47270..038bb73678 100644
--- a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-mssql/pom.xml
+++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-mssql/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core-sqldialect
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/pom.xml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/pom.xml
index 03ea0e4865..f184cc91e7 100644
--- a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/pom.xml
+++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-oracle/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core-sqldialect
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-postgis/pom.xml b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-postgis/pom.xml
index 1d25db72cd..593ad9dcfc 100644
--- a/deegree-core/deegree-core-sqldialect/deegree-sqldialect-postgis/pom.xml
+++ b/deegree-core/deegree-core-sqldialect/deegree-sqldialect-postgis/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core-sqldialect
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-sqldialect/pom.xml b/deegree-core/deegree-core-sqldialect/pom.xml
index a6e6bc837a..8dc0b21549 100644
--- a/deegree-core/deegree-core-sqldialect/pom.xml
+++ b/deegree-core/deegree-core-sqldialect/pom.xml
@@ -8,7 +8,7 @@
org.deegree
deegree-core
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-style/pom.xml b/deegree-core/deegree-core-style/pom.xml
index f36a736975..d04fe52544 100644
--- a/deegree-core/deegree-core-style/pom.xml
+++ b/deegree-core/deegree-core-style/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-theme/pom.xml b/deegree-core/deegree-core-theme/pom.xml
index 6a21e115d3..338bf19a5c 100644
--- a/deegree-core/deegree-core-theme/pom.xml
+++ b/deegree-core/deegree-core-theme/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-tile/pom.xml b/deegree-core/deegree-core-tile/pom.xml
index 1f77dd2097..f6c28c7357 100644
--- a/deegree-core/deegree-core-tile/pom.xml
+++ b/deegree-core/deegree-core-tile/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/deegree-core-workspace/pom.xml b/deegree-core/deegree-core-workspace/pom.xml
index 2e4e78c0ba..086b453550 100644
--- a/deegree-core/deegree-core-workspace/pom.xml
+++ b/deegree-core/deegree-core-workspace/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-core
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-core/pom.xml b/deegree-core/pom.xml
index 143349a85c..5e11fe81ac 100644
--- a/deegree-core/pom.xml
+++ b/deegree-core/pom.xml
@@ -8,7 +8,7 @@
org.deegree
deegree
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-datastores/deegree-coveragestores/deegree-coveragestore-oracle-georaster/pom.xml b/deegree-datastores/deegree-coveragestores/deegree-coveragestore-oracle-georaster/pom.xml
index c348f4318d..8458a7adf8 100644
--- a/deegree-datastores/deegree-coveragestores/deegree-coveragestore-oracle-georaster/pom.xml
+++ b/deegree-datastores/deegree-coveragestores/deegree-coveragestore-oracle-georaster/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-coveragestores
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-datastores/deegree-coveragestores/pom.xml b/deegree-datastores/deegree-coveragestores/pom.xml
index 04dfb41181..2a01850a64 100644
--- a/deegree-datastores/deegree-coveragestores/pom.xml
+++ b/deegree-datastores/deegree-coveragestores/pom.xml
@@ -8,7 +8,7 @@
org.deegree
deegree-datastores
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-datastores/deegree-featurestores/deegree-featurestore-commons/pom.xml b/deegree-datastores/deegree-featurestores/deegree-featurestore-commons/pom.xml
index 1bb0996166..bff5aea088 100644
--- a/deegree-datastores/deegree-featurestores/deegree-featurestore-commons/pom.xml
+++ b/deegree-datastores/deegree-featurestores/deegree-featurestore-commons/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-featurestores
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-datastores/deegree-featurestores/deegree-featurestore-memory/pom.xml b/deegree-datastores/deegree-featurestores/deegree-featurestore-memory/pom.xml
index 98e4d217d4..468ce82d8a 100644
--- a/deegree-datastores/deegree-featurestores/deegree-featurestore-memory/pom.xml
+++ b/deegree-datastores/deegree-featurestores/deegree-featurestore-memory/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-featurestores
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-datastores/deegree-featurestores/deegree-featurestore-remotewfs/pom.xml b/deegree-datastores/deegree-featurestores/deegree-featurestore-remotewfs/pom.xml
index ec3d45cd47..132d7e975b 100644
--- a/deegree-datastores/deegree-featurestores/deegree-featurestore-remotewfs/pom.xml
+++ b/deegree-datastores/deegree-featurestores/deegree-featurestore-remotewfs/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-featurestores
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-datastores/deegree-featurestores/deegree-featurestore-shape/pom.xml b/deegree-datastores/deegree-featurestores/deegree-featurestore-shape/pom.xml
index 7692bae688..7882b5a138 100644
--- a/deegree-datastores/deegree-featurestores/deegree-featurestore-shape/pom.xml
+++ b/deegree-datastores/deegree-featurestores/deegree-featurestore-shape/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-featurestores
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-datastores/deegree-featurestores/deegree-featurestore-simplesql/pom.xml b/deegree-datastores/deegree-featurestores/deegree-featurestore-simplesql/pom.xml
index dd7a287a31..15806d0965 100644
--- a/deegree-datastores/deegree-featurestores/deegree-featurestore-simplesql/pom.xml
+++ b/deegree-datastores/deegree-featurestores/deegree-featurestore-simplesql/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-featurestores
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-datastores/deegree-featurestores/deegree-featurestore-sql/pom.xml b/deegree-datastores/deegree-featurestores/deegree-featurestore-sql/pom.xml
index dcd4c25a2a..1eb0b4bc3e 100644
--- a/deegree-datastores/deegree-featurestores/deegree-featurestore-sql/pom.xml
+++ b/deegree-datastores/deegree-featurestores/deegree-featurestore-sql/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-featurestores
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-datastores/deegree-featurestores/deegree-featurestore-sql/src/main/java/org/deegree/feature/persistence/sql/mapper/GmlReferenceData.java b/deegree-datastores/deegree-featurestores/deegree-featurestore-sql/src/main/java/org/deegree/feature/persistence/sql/mapper/GmlReferenceData.java
index e2c4a009f1..fefae0613f 100644
--- a/deegree-datastores/deegree-featurestores/deegree-featurestore-sql/src/main/java/org/deegree/feature/persistence/sql/mapper/GmlReferenceData.java
+++ b/deegree-datastores/deegree-featurestores/deegree-featurestore-sql/src/main/java/org/deegree/feature/persistence/sql/mapper/GmlReferenceData.java
@@ -18,6 +18,7 @@
import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -31,12 +32,36 @@
*/
public class GmlReferenceData implements ReferenceData {
- private Map> features;
+ private Map> features = new HashMap<>();
public GmlReferenceData(URL referenceData) throws IOException, XMLStreamException, UnknownCRSException {
GMLStreamReader gmlStreamReader = GMLInputFactory.createGMLStreamReader(GMLVersion.GML_32, referenceData);
FeatureCollection featureCollection = gmlStreamReader.readFeatureCollection();
- this.features = featureCollection.stream().collect(Collectors.groupingBy(Feature::getName));
+ addFeatures(featureCollection);
+ }
+
+ private void addFeatures(FeatureCollection featureCollection) {
+ Iterator iterator = featureCollection.iterator();
+ while (iterator.hasNext()) {
+ Feature feature = iterator.next();
+ addFeature(feature);
+ List properties = feature.getProperties();
+ for (Property prop : properties) {
+ // add inline features
+ if (prop.getValue() instanceof GenericFeature) {
+ Feature inlineFeature = (Feature) prop.getValue();
+ addFeature(inlineFeature);
+ }
+ }
+ }
+ }
+
+ private void addFeature(Feature feature) {
+ QName name = feature.getName();
+ if (!features.containsKey(name)) {
+ features.put(name, new ArrayList<>());
+ }
+ features.get(name).add(feature);
}
@Override
diff --git a/deegree-datastores/deegree-featurestores/deegree-featurestore-sql/src/test/java/org/deegree/feature/persistence/sql/mapper/GmlReferenceDataTest.java b/deegree-datastores/deegree-featurestores/deegree-featurestore-sql/src/test/java/org/deegree/feature/persistence/sql/mapper/GmlReferenceDataTest.java
index 0a94d05d21..9a98003930 100644
--- a/deegree-datastores/deegree-featurestores/deegree-featurestore-sql/src/test/java/org/deegree/feature/persistence/sql/mapper/GmlReferenceDataTest.java
+++ b/deegree-datastores/deegree-featurestores/deegree-featurestore-sql/src/test/java/org/deegree/feature/persistence/sql/mapper/GmlReferenceDataTest.java
@@ -128,7 +128,7 @@ public void test_Reference_1() throws Exception {
assertThat(hasMaxOneA1, is(false));
boolean hasMaxOneA3 = gmlReferenceData.hasZeroOrOneProperty(FEATURETYPE_A_NAME, asPathStep(PROP_A3_NAME));
- assertThat(hasMaxOneA3, is(false));
+ assertThat(hasMaxOneA3, is(true));
}
@Test
@@ -249,4 +249,21 @@ private PathStep asPathStep(String nsUrl, String localPart, String prefix, boole
return new PathStep(new QName(nsUrl, localPart, prefix), isTypeDefinition);
}
+ @Test
+ public void test_Inspire_shouldFeatureTypeMapped_withInlinedFeture() throws Exception {
+ URL resource = getClass().getResource("data/Inspire-Adress_withInlineFeature.xml");
+ GmlReferenceData gmlReferenceData = new GmlReferenceData(resource);
+
+ QName AdressFeatureTypeName = new QName("http://inspire.ec.europa.eu/schemas/ad/4.0", "Address", "ad");
+ QName AdminUnitNameFeatureTypeName = new QName("http://inspire.ec.europa.eu/schemas/ad/4.0", "AdminUnitName",
+ "ad");
+
+ boolean explicitFeatureTypeShouldBeMapped = gmlReferenceData.shouldFeatureTypeMapped(AdressFeatureTypeName);
+ assertThat(explicitFeatureTypeShouldBeMapped, is(true));
+
+ boolean referencedFeatureTypeShouldBeMapped = gmlReferenceData
+ .shouldFeatureTypeMapped(AdminUnitNameFeatureTypeName);
+ assertThat(referencedFeatureTypeShouldBeMapped, is(true));
+ }
+
}
\ No newline at end of file
diff --git a/deegree-datastores/deegree-featurestores/deegree-featurestore-sql/src/test/resources/org/deegree/feature/persistence/sql/mapper/data/Inspire-Adress_withInlineFeature.xml b/deegree-datastores/deegree-featurestores/deegree-featurestore-sql/src/test/resources/org/deegree/feature/persistence/sql/mapper/data/Inspire-Adress_withInlineFeature.xml
new file mode 100644
index 0000000000..f45d6d78a7
--- /dev/null
+++ b/deegree-datastores/deegree-featurestores/deegree-featurestore-sql/src/test/resources/org/deegree/feature/persistence/sql/mapper/data/Inspire-Adress_withInlineFeature.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+ Address_1
+ https://registry.gdi-de.org/id
+
+
+
+
+
+
+
+ 49.119752 7.046397
+
+
+
+
+ true
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ deu
+
+
+
+
+
+
+ Test
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/deegree-datastores/deegree-featurestores/pom.xml b/deegree-datastores/deegree-featurestores/pom.xml
index b056afefed..6645b0fa73 100644
--- a/deegree-datastores/deegree-featurestores/pom.xml
+++ b/deegree-datastores/deegree-featurestores/pom.xml
@@ -8,7 +8,7 @@
org.deegree
deegree-datastores
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-datastores/deegree-mdstores/deegree-mdstore-commons/pom.xml b/deegree-datastores/deegree-mdstores/deegree-mdstore-commons/pom.xml
index 503cf0e376..098081d2a3 100644
--- a/deegree-datastores/deegree-mdstores/deegree-mdstore-commons/pom.xml
+++ b/deegree-datastores/deegree-mdstores/deegree-mdstore-commons/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-mdstores
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-datastores/deegree-mdstores/deegree-mdstore-ebrim-eo/pom.xml b/deegree-datastores/deegree-mdstores/deegree-mdstore-ebrim-eo/pom.xml
index e1b2fc3644..622bb5d49a 100644
--- a/deegree-datastores/deegree-mdstores/deegree-mdstore-ebrim-eo/pom.xml
+++ b/deegree-datastores/deegree-mdstores/deegree-mdstore-ebrim-eo/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-mdstores
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-datastores/deegree-mdstores/deegree-mdstore-iso-memory/pom.xml b/deegree-datastores/deegree-mdstores/deegree-mdstore-iso-memory/pom.xml
index caf3cff811..a7317cd68e 100644
--- a/deegree-datastores/deegree-mdstores/deegree-mdstore-iso-memory/pom.xml
+++ b/deegree-datastores/deegree-mdstores/deegree-mdstore-iso-memory/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-mdstores
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-datastores/deegree-mdstores/deegree-mdstore-iso/pom.xml b/deegree-datastores/deegree-mdstores/deegree-mdstore-iso/pom.xml
index 6ab14483b1..1c43522e03 100644
--- a/deegree-datastores/deegree-mdstores/deegree-mdstore-iso/pom.xml
+++ b/deegree-datastores/deegree-mdstores/deegree-mdstore-iso/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-mdstores
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-datastores/deegree-mdstores/pom.xml b/deegree-datastores/deegree-mdstores/pom.xml
index 7f453cfbc1..a24b190351 100644
--- a/deegree-datastores/deegree-mdstores/pom.xml
+++ b/deegree-datastores/deegree-mdstores/pom.xml
@@ -9,7 +9,7 @@
org.deegree
deegree-datastores
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-datastores/deegree-tilestores/deegree-tilestore-cache/pom.xml b/deegree-datastores/deegree-tilestores/deegree-tilestore-cache/pom.xml
index ef4c14e547..29e5a1bd94 100644
--- a/deegree-datastores/deegree-tilestores/deegree-tilestore-cache/pom.xml
+++ b/deegree-datastores/deegree-tilestores/deegree-tilestore-cache/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-tilestores
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-datastores/deegree-tilestores/deegree-tilestore-commons/pom.xml b/deegree-datastores/deegree-tilestores/deegree-tilestore-commons/pom.xml
index bbebf3db14..7572546b33 100644
--- a/deegree-datastores/deegree-tilestores/deegree-tilestore-commons/pom.xml
+++ b/deegree-datastores/deegree-tilestores/deegree-tilestore-commons/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-tilestores
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-datastores/deegree-tilestores/deegree-tilestore-filesystem/pom.xml b/deegree-datastores/deegree-tilestores/deegree-tilestore-filesystem/pom.xml
index fa82f065cc..02e42c29b6 100644
--- a/deegree-datastores/deegree-tilestores/deegree-tilestore-filesystem/pom.xml
+++ b/deegree-datastores/deegree-tilestores/deegree-tilestore-filesystem/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-tilestores
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-datastores/deegree-tilestores/deegree-tilestore-gdal/pom.xml b/deegree-datastores/deegree-tilestores/deegree-tilestore-gdal/pom.xml
index 1909c99385..107b8fb199 100644
--- a/deegree-datastores/deegree-tilestores/deegree-tilestore-gdal/pom.xml
+++ b/deegree-datastores/deegree-tilestores/deegree-tilestore-gdal/pom.xml
@@ -7,7 +7,7 @@
org.deegree
deegree-tilestores
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-datastores/deegree-tilestores/deegree-tilestore-geotiff/pom.xml b/deegree-datastores/deegree-tilestores/deegree-tilestore-geotiff/pom.xml
index 254c2b581b..58fe26e387 100644
--- a/deegree-datastores/deegree-tilestores/deegree-tilestore-geotiff/pom.xml
+++ b/deegree-datastores/deegree-tilestores/deegree-tilestore-geotiff/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-tilestores
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-datastores/deegree-tilestores/deegree-tilestore-merge/pom.xml b/deegree-datastores/deegree-tilestores/deegree-tilestore-merge/pom.xml
index e4aadcaf50..f8a9997afb 100644
--- a/deegree-datastores/deegree-tilestores/deegree-tilestore-merge/pom.xml
+++ b/deegree-datastores/deegree-tilestores/deegree-tilestore-merge/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-tilestores
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-datastores/deegree-tilestores/deegree-tilestore-remotewms/pom.xml b/deegree-datastores/deegree-tilestores/deegree-tilestore-remotewms/pom.xml
index 34a23df518..4ea09219f5 100644
--- a/deegree-datastores/deegree-tilestores/deegree-tilestore-remotewms/pom.xml
+++ b/deegree-datastores/deegree-tilestores/deegree-tilestore-remotewms/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-tilestores
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-datastores/deegree-tilestores/deegree-tilestore-remotewmts/pom.xml b/deegree-datastores/deegree-tilestores/deegree-tilestore-remotewmts/pom.xml
index cb7a5dd539..6ecde712e0 100644
--- a/deegree-datastores/deegree-tilestores/deegree-tilestore-remotewmts/pom.xml
+++ b/deegree-datastores/deegree-tilestores/deegree-tilestore-remotewmts/pom.xml
@@ -11,7 +11,7 @@
org.deegree
deegree-tilestores
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-datastores/deegree-tilestores/pom.xml b/deegree-datastores/deegree-tilestores/pom.xml
index d072c4e7d7..65511b3fbe 100644
--- a/deegree-datastores/deegree-tilestores/pom.xml
+++ b/deegree-datastores/deegree-tilestores/pom.xml
@@ -8,7 +8,7 @@
org.deegree
deegree-datastores
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-datastores/pom.xml b/deegree-datastores/pom.xml
index 9ada0c4a33..ce7cbf447b 100644
--- a/deegree-datastores/pom.xml
+++ b/deegree-datastores/pom.xml
@@ -9,7 +9,7 @@
org.deegree
deegree
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-layers/deegree-layers-coverage/pom.xml b/deegree-layers/deegree-layers-coverage/pom.xml
index 1aa9508a4b..db907d57d0 100644
--- a/deegree-layers/deegree-layers-coverage/pom.xml
+++ b/deegree-layers/deegree-layers-coverage/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-layers
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-layers/deegree-layers-feature/pom.xml b/deegree-layers/deegree-layers-feature/pom.xml
index 514c98d196..e823a0905c 100644
--- a/deegree-layers/deegree-layers-feature/pom.xml
+++ b/deegree-layers/deegree-layers-feature/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-layers
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-layers/deegree-layers-gdal/pom.xml b/deegree-layers/deegree-layers-gdal/pom.xml
index 5bb92fb62c..86bc14eb51 100644
--- a/deegree-layers/deegree-layers-gdal/pom.xml
+++ b/deegree-layers/deegree-layers-gdal/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-layers
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-layers/deegree-layers-remotewms/pom.xml b/deegree-layers/deegree-layers-remotewms/pom.xml
index ad704f92ab..49172c0a8e 100644
--- a/deegree-layers/deegree-layers-remotewms/pom.xml
+++ b/deegree-layers/deegree-layers-remotewms/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-layers
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-layers/deegree-layers-tile/pom.xml b/deegree-layers/deegree-layers-tile/pom.xml
index dad76077ee..052a0048c3 100644
--- a/deegree-layers/deegree-layers-tile/pom.xml
+++ b/deegree-layers/deegree-layers-tile/pom.xml
@@ -13,7 +13,7 @@
org.deegree
deegree-layers
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-layers/pom.xml b/deegree-layers/pom.xml
index 7ae7c389f3..2a700687bf 100644
--- a/deegree-layers/pom.xml
+++ b/deegree-layers/pom.xml
@@ -8,7 +8,7 @@
org.deegree
deegree
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-processproviders/deegree-processprovider-example/pom.xml b/deegree-processproviders/deegree-processprovider-example/pom.xml
index d6d0e93651..4896136295 100644
--- a/deegree-processproviders/deegree-processprovider-example/pom.xml
+++ b/deegree-processproviders/deegree-processprovider-example/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-processproviders
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-processproviders/deegree-processprovider-fme/pom.xml b/deegree-processproviders/deegree-processprovider-fme/pom.xml
index e938b9fac4..3270c828ef 100644
--- a/deegree-processproviders/deegree-processprovider-fme/pom.xml
+++ b/deegree-processproviders/deegree-processprovider-fme/pom.xml
@@ -6,7 +6,7 @@
org.deegree
deegree-processproviders
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-processproviders/deegree-processprovider-style/pom.xml b/deegree-processproviders/deegree-processprovider-style/pom.xml
index 99838c285e..261018e425 100644
--- a/deegree-processproviders/deegree-processprovider-style/pom.xml
+++ b/deegree-processproviders/deegree-processprovider-style/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-processproviders
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-processproviders/pom.xml b/deegree-processproviders/pom.xml
index f462da57fe..ce669a04bf 100644
--- a/deegree-processproviders/pom.xml
+++ b/deegree-processproviders/pom.xml
@@ -8,7 +8,7 @@
org.deegree
deegree
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-services/deegree-services-commons/pom.xml b/deegree-services/deegree-services-commons/pom.xml
index a97b19469e..3ace385622 100644
--- a/deegree-services/deegree-services-commons/pom.xml
+++ b/deegree-services/deegree-services-commons/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-services
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-services/deegree-services-commons/src/main/java/org/deegree/services/controller/utils/StandardFeatureInfoContext.java b/deegree-services/deegree-services-commons/src/main/java/org/deegree/services/controller/utils/StandardFeatureInfoContext.java
index d2dd6aa51a..b2f5a1efef 100644
--- a/deegree-services/deegree-services-commons/src/main/java/org/deegree/services/controller/utils/StandardFeatureInfoContext.java
+++ b/deegree-services/deegree-services-commons/src/main/java/org/deegree/services/controller/utils/StandardFeatureInfoContext.java
@@ -42,6 +42,7 @@
import java.io.IOException;
import java.io.OutputStream;
+import java.io.Writer;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamWriter;
@@ -56,6 +57,8 @@ public class StandardFeatureInfoContext implements FeatureInfoContext {
private XMLStreamWriter xmlWriter = null;
+ private Writer writer = null;
+
private boolean redirected = false;
public StandardFeatureInfoContext(HttpResponseBuffer response) {
@@ -98,6 +101,20 @@ public XMLStreamWriter getXmlWriter() throws IOException, XMLStreamException {
return xmlWriter = response.getXMLWriter();
}
+ @Override
+ public Writer getWriter() throws IOException {
+ if (writer != null) {
+ return writer;
+ }
+ if (redirected) {
+ throw new IllegalStateException("sendRedirect() already called for FeatureInfoContext");
+ }
+ if (outputStream != null) {
+ throw new IllegalStateException("getOutputStream() already called for FeatureInfoContext");
+ }
+ return writer = response.getWriter();
+ }
+
@Override
public void sendRedirect(String location) throws IOException {
diff --git a/deegree-services/deegree-services-config/pom.xml b/deegree-services/deegree-services-config/pom.xml
index 549d044f8b..e4dd7b60a3 100644
--- a/deegree-services/deegree-services-config/pom.xml
+++ b/deegree-services/deegree-services-config/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-services
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-services/deegree-services-csw/pom.xml b/deegree-services/deegree-services-csw/pom.xml
index 70bdf64f07..11e2317008 100644
--- a/deegree-services/deegree-services-csw/pom.xml
+++ b/deegree-services/deegree-services-csw/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-services
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-services/deegree-services-wcs/pom.xml b/deegree-services/deegree-services-wcs/pom.xml
index 593bf2ef96..98488f2e9b 100644
--- a/deegree-services/deegree-services-wcs/pom.xml
+++ b/deegree-services/deegree-services-wcs/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-services
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-services/deegree-services-wfs/pom.xml b/deegree-services/deegree-services-wfs/pom.xml
index 8de5bef616..65dd46f402 100644
--- a/deegree-services/deegree-services-wfs/pom.xml
+++ b/deegree-services/deegree-services-wfs/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-services
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-services/deegree-services-wms/pom.xml b/deegree-services/deegree-services-wms/pom.xml
index 5c1b2ac11b..6532c2aedb 100644
--- a/deegree-services/deegree-services-wms/pom.xml
+++ b/deegree-services/deegree-services-wms/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-services
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-services/deegree-services-wms/src/main/java/org/deegree/services/wms/controller/WMSController.java b/deegree-services/deegree-services-wms/src/main/java/org/deegree/services/wms/controller/WMSController.java
index 40dbf0b0b6..180d08bbc9 100644
--- a/deegree-services/deegree-services-wms/src/main/java/org/deegree/services/wms/controller/WMSController.java
+++ b/deegree-services/deegree-services-wms/src/main/java/org/deegree/services/wms/controller/WMSController.java
@@ -103,6 +103,7 @@
import org.deegree.commons.xml.XMLAdapter;
import org.deegree.commons.xml.stax.XMLStreamUtils;
import org.deegree.cs.coordinatesystems.ICRS;
+import org.deegree.cs.exceptions.UnknownCRSException;
import org.deegree.cs.refs.coordinatesystem.CRSRef;
import org.deegree.feature.FeatureCollection;
import org.deegree.feature.types.FeatureType;
@@ -523,7 +524,7 @@ private void getLegendGraphic(Map map, HttpResponseBuffer respon
private void getFeatureInfo(Map map, final HttpResponseBuffer response, Version version)
throws OWSException, IOException, MissingDimensionValue, InvalidDimensionValue {
org.deegree.protocol.wms.ops.GetFeatureInfo fi = new org.deegree.protocol.wms.ops.GetFeatureInfo(map, version);
- doGetFeatureInfo(map, response, version, fi);
+ doGetFeatureInfo(response, version, fi);
}
private void getFeatureInfoSchema(Map map, HttpResponseBuffer response) throws IOException {
@@ -682,8 +683,7 @@ public void doXML(XMLStreamReader xmlStream, HttpServletRequest request, HttpRes
case GetFeatureInfo:
GetFeatureInfoParser getFeatureInfoParser = new GetFeatureInfoParser();
GetFeatureInfo getFeatureInfo = getFeatureInfoParser.parse(xmlStream);
- Map gfiMap = new HashMap();
- doGetFeatureInfo(gfiMap, response, VERSION_130, getFeatureInfo);
+ doGetFeatureInfo(response, VERSION_130, getFeatureInfo);
break;
default:
String msg = "XML request handling is currently not supported for operation " + requestName;
@@ -738,8 +738,7 @@ public void doSOAP(org.apache.axiom.soap.SOAPEnvelope soapDoc, HttpServletReques
case GetFeatureInfo:
GetFeatureInfoParser getFeatureInfoParser = new GetFeatureInfoParser();
GetFeatureInfo getFeatureInfo = getFeatureInfoParser.parse(xmlStream);
- Map gfiMap = new HashMap();
- doGetFeatureInfo(gfiMap, response, VERSION_130, getFeatureInfo);
+ doGetFeatureInfo(response, VERSION_130, getFeatureInfo);
break;
default:
String msg = "SOAP request handling is currently not supported for operation " + requestName;
@@ -923,7 +922,7 @@ private LinkedList doGetMap(GetMap getMap, Map map, Vers
return headers;
}
- private void doGetFeatureInfo(Map map, final HttpResponseBuffer response, Version version,
+ private void doGetFeatureInfo(final HttpResponseBuffer response, Version version,
org.deegree.protocol.wms.ops.GetFeatureInfo fi) throws OWSException, IOException {
checkGetFeatureInfo(version, fi);
ICRS crs = fi.getCoordinateSystem();
@@ -931,6 +930,7 @@ private void doGetFeatureInfo(Map map, final HttpResponseBuffer
List queryLayers = map(fi.getQueryLayers(), CollectionUtils.getToStringMapper());
String format = fi.getInfoFormat();
+ ICRS infoCrs = fi.getInfoCrs();
LinkedList headers = new LinkedList();
FeatureCollection col = getFeatureInfoProvider.query(this, service, fi, queryLayers, headers);
addHeaders(response, headers);
@@ -955,7 +955,8 @@ private void doGetFeatureInfo(Map map, final HttpResponseBuffer
String loc = getHttpGetURL() + "request=GetFeatureInfoSchema&layers=" + join(",", queryLayers);
try {
- FeatureInfoParams params = new FeatureInfoParams(nsBindings, col, format, geometries, loc, type, crs);
+ FeatureInfoParams params = new FeatureInfoParams(nsBindings, col, format, geometries, loc, type, crs,
+ infoCrs);
featureInfoManager.serializeFeatureInfo(params, new StandardFeatureInfoContext(response));
response.flushBuffer();
}
@@ -1012,7 +1013,8 @@ private void addSupportedImageFormats(DeegreeWMS conf) {
}
}
- private void addSupportedFeatureInfoFormats(DeegreeWMS conf) throws InstantiationException, IllegalAccessException {
+ private void addSupportedFeatureInfoFormats(DeegreeWMS conf)
+ throws InstantiationException, IllegalAccessException, UnknownCRSException {
if (conf.getFeatureInfoFormats() != null) {
for (GetFeatureInfoFormat t : conf.getFeatureInfoFormats().getGetFeatureInfoFormat()) {
if (t.getFile() != null) {
@@ -1025,6 +1027,10 @@ else if (t.getXSLTFile() != null) {
featureInfoManager.addOrReplaceXsltFormat(t.getFormat(),
metadata.getLocation().resolveToUrl(xsltFile.getValue()), version, workspace);
}
+ else if (t.getGeoJSON() != null) {
+ featureInfoManager.addOrReplaceGeoJsonFormat(t.getFormat(),
+ t.getGeoJSON().isAllowOtherCrsThanWGS84(), t.getGeoJSON().isAllowExportOfGeometries());
+ }
else if (t.getSerializer() != null) {
Serializer serializer = t.getSerializer();
diff --git a/deegree-services/deegree-services-wms/src/main/resources/META-INF/schemas/services/wms/wms_configuration.xsd b/deegree-services/deegree-services-wms/src/main/resources/META-INF/schemas/services/wms/wms_configuration.xsd
index d4510132c4..deadc0c39b 100644
--- a/deegree-services/deegree-services-wms/src/main/resources/META-INF/schemas/services/wms/wms_configuration.xsd
+++ b/deegree-services/deegree-services-wms/src/main/resources/META-INF/schemas/services/wms/wms_configuration.xsd
@@ -109,6 +109,12 @@
+
+
+
+
+
+
@@ -145,7 +151,7 @@
-
+
diff --git a/deegree-services/deegree-services-wmts/pom.xml b/deegree-services/deegree-services-wmts/pom.xml
index 63f0b9fea0..35a23f213e 100644
--- a/deegree-services/deegree-services-wmts/pom.xml
+++ b/deegree-services/deegree-services-wmts/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-services
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-services/deegree-services-wmts/src/main/java/org/deegree/services/wmts/controller/FeatureInfoFetcher.java b/deegree-services/deegree-services-wmts/src/main/java/org/deegree/services/wmts/controller/FeatureInfoFetcher.java
index 8ec366699d..ad41d8f67a 100644
--- a/deegree-services/deegree-services-wmts/src/main/java/org/deegree/services/wmts/controller/FeatureInfoFetcher.java
+++ b/deegree-services/deegree-services-wmts/src/main/java/org/deegree/services/wmts/controller/FeatureInfoFetcher.java
@@ -40,14 +40,6 @@ Occam Labs UG (haftungsbeschränkt)
----------------------------------------------------------------------------*/
package org.deegree.services.wmts.controller;
-import static org.deegree.commons.ows.exception.OWSException.INVALID_PARAMETER_VALUE;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.List;
-
-import javax.xml.stream.XMLStreamException;
-
import org.deegree.commons.ows.exception.OWSException;
import org.deegree.cs.coordinatesystems.ICRS;
import org.deegree.feature.FeatureCollection;
@@ -61,6 +53,13 @@ Occam Labs UG (haftungsbeschränkt)
import org.deegree.tile.TileDataLevel;
import org.deegree.tile.TileDataSet;
+import javax.xml.stream.XMLStreamException;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
+
+import static org.deegree.commons.ows.exception.OWSException.INVALID_PARAMETER_VALUE;
+
/**
* Responsible for fetching features from tile layers, prepared to immediately be
* serialized.
@@ -105,7 +104,8 @@ void fetch(FeatureInfoManager featureInfoManager, HttpResponseBuffer response)
ICRS crs = tds.getTileMatrixSet().getSpatialMetadata().getEnvelope().getCoordinateSystem();
HashMap nsBindings = new HashMap();
- FeatureInfoParams params = new FeatureInfoParams(nsBindings, col, gfi.getInfoFormat(), false, null, null, crs);
+ FeatureInfoParams params = new FeatureInfoParams(nsBindings, col, gfi.getInfoFormat(), false, null, null, crs,
+ null);
featureInfoManager.serializeFeatureInfo(params, new StandardFeatureInfoContext(response));
}
diff --git a/deegree-services/deegree-services-wps/pom.xml b/deegree-services/deegree-services-wps/pom.xml
index d68b09c6a4..742abce8f7 100644
--- a/deegree-services/deegree-services-wps/pom.xml
+++ b/deegree-services/deegree-services-wps/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-services
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-services/deegree-services-wpvs/pom.xml b/deegree-services/deegree-services-wpvs/pom.xml
index 74b1281c2e..f34dcc7515 100644
--- a/deegree-services/deegree-services-wpvs/pom.xml
+++ b/deegree-services/deegree-services-wpvs/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-services
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-services/deegree-webservices-handbook/pom.xml b/deegree-services/deegree-webservices-handbook/pom.xml
index e245857b93..4b4e122ffc 100644
--- a/deegree-services/deegree-webservices-handbook/pom.xml
+++ b/deegree-services/deegree-webservices-handbook/pom.xml
@@ -8,7 +8,7 @@
org.deegree
deegree-services
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-services/deegree-webservices-handbook/src/main/asciidoc/webservices.adoc b/deegree-services/deegree-webservices-handbook/src/main/asciidoc/webservices.adoc
index e3efdeb724..6e72f5c610 100644
--- a/deegree-services/deegree-webservices-handbook/src/main/asciidoc/webservices.adoc
+++ b/deegree-services/deegree-webservices-handbook/src/main/asciidoc/webservices.adoc
@@ -665,13 +665,13 @@ would be generated by the WFS:
==== Adding GeoJSON output formats
-Using option element _GeoJSONFormat, it possible to enable GeoJSON as GetFeature output format.
+Using element _GeoJSONFormat_ enables GeoJSON as GetFeature output format.
The _GeoJSON_ option has the following sub-options:
[width="100%",cols="15%,15%,10%,60%",options="header",]
|===
|Option |Cardinality |Value |Description
-| @allowOtherCrsThanWGS84 | 0..1 | Boolean | GeoJson only allows geometries in WGS84. With this option the default behaviour of a WFS can be enabled: the CRS of the requested geometries are written in the requested CRS of the DefaultCRS of the WFS. Default: false
+| @allowOtherCrsThanWGS84 | 0..1 | Boolean | GeoJSON only allows geometries in WGS84. With this option the default behaviour of a WFS can be enabled: the CRS of the requested geometries are written in the requested CRS of the DefaultCRS of the WFS. Default: false
| MimeType | 1..n | String | Mime types associated with this format configuration
|===
@@ -1268,6 +1268,31 @@ _GML_32_.
If you want to learn more about the templating format, read the
following sections.
+[[geojson-featureinfo-configuration]]
+==== GeoJSON feature info format
+
+Besides XML, Text and HTML, deegree supports GeoJSON as output format:
+
+[source,xml]
+----
+
+
+
+ application/geo+json
+
+
+----
+
+Using the element _GeoJSON_ enables GeoJSON as GetFeatureInfo output format.
+The _GeoJSON_ option has the following sub-options:
+
+[width="100%",cols="15%,15%,10%,60%",options="header",]
+|===
+|Option |Cardinality |Value |Description
+| @allowExportOfGeometries| 0..1 | Boolean | Per default, geometries are not written. With this option, the geometries are written if the vendor-specific parameter _GEOMETRIES_ is set to true in the request. Default: false
+| @allowOtherCrsThanWGS84 | 0..1 | Boolean | GeoJSON only allows geometries in WGS84. With this option, the geometries are written in the requested CRS. The vendor-specific parameter _INFO_CRS_ can be used in the request to control the CRS of the geometries in the response. Default: false
+|===
+
==== FeatureInfo templating format
The templating format can be used to create text based output formats
@@ -1661,6 +1686,11 @@ total).
With the two vendorspecific parameter FILTERPROPERTY and FILTERVALUE you can request rendering just a defined list of features. Each feature to be rendered will be identified by the value of a given property. The name of the property is defined by the parameter filterproperty. The name of the property is not qualified so all properties with the given local name will be considered. A list of valid property values will be defined using parameter filtervalue, multiple values must be comma separated. Each layer - or better its underlying data source - requested by a GeMap will evaluated for having a feature with a property with given name and one of the defined values. Just the features matching this filter condition will be rendered. It's quite natural that only layer with an underlying Feature-DataSource can be filtered. The other parameters addressed in the GetMap (e.g. the style) request are not effected by this parameters. If the filter cannot be applied to the layer, e.g. cause it is a raster layer or the data source does not have a matching property, the filter will be ignored. If one the parameters is missing or the value empty, the filter is not applied.
Example: FILTERPROPERTY=type&FILTERVALUE=stone,wood
+
+
+In a GetFeatureInfo request the parameter GEOMETRIES can be used to return the geometries of a feature in GML and GeoJSON output. The default is false. The parameter INFO_CRS can be used in the GetFeatureInfo request to control the CRS of the geometries in the GeoJSON response. Default is WGS84. For GeoJSON output both parameters applies only if it is enabled in the configuration (<>).
+
+
[[anchor-xml-request-encoding]]
==== XML request encoding
diff --git a/deegree-services/deegree-webservices/pom.xml b/deegree-services/deegree-webservices/pom.xml
index 8225c33964..498f08031e 100644
--- a/deegree-services/deegree-webservices/pom.xml
+++ b/deegree-services/deegree-webservices/pom.xml
@@ -10,7 +10,7 @@
org.deegree
deegree-services
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
@@ -278,12 +278,12 @@
org.primefaces
primefaces
- 13.0.3
+ 13.0.6
org.primefaces.extensions
primefaces-extensions
- 13.0.3
+ 13.0.6
org.slf4j
diff --git a/deegree-services/pom.xml b/deegree-services/pom.xml
index 9117feecd0..9bb260d5ba 100644
--- a/deegree-services/pom.xml
+++ b/deegree-services/pom.xml
@@ -9,7 +9,7 @@
org.deegree
deegree
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-tests/deegree-compliance-tests/pom.xml b/deegree-tests/deegree-compliance-tests/pom.xml
index 633a59b4bb..bc40036692 100644
--- a/deegree-tests/deegree-compliance-tests/pom.xml
+++ b/deegree-tests/deegree-compliance-tests/pom.xml
@@ -13,7 +13,7 @@
org.deegree
deegree-tests
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-tests/deegree-integration-tests/pom.xml b/deegree-tests/deegree-integration-tests/pom.xml
index 5723bf54f2..0bf2a7f459 100644
--- a/deegree-tests/deegree-integration-tests/pom.xml
+++ b/deegree-tests/deegree-integration-tests/pom.xml
@@ -8,7 +8,7 @@
org.deegree
deegree-tests
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-tests/deegree-resource-deps-tests/pom.xml b/deegree-tests/deegree-resource-deps-tests/pom.xml
index a20b2a5e61..230493da4d 100644
--- a/deegree-tests/deegree-resource-deps-tests/pom.xml
+++ b/deegree-tests/deegree-resource-deps-tests/pom.xml
@@ -8,7 +8,7 @@
org.deegree
deegree-tests
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-tests/deegree-testservice/pom.xml b/deegree-tests/deegree-testservice/pom.xml
index f5a9d73e5c..3f6191b917 100644
--- a/deegree-tests/deegree-testservice/pom.xml
+++ b/deegree-tests/deegree-testservice/pom.xml
@@ -10,7 +10,7 @@
org.deegree
deegree-client
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
../../deegree-client
diff --git a/deegree-tests/deegree-wms-remoteows-tests/pom.xml b/deegree-tests/deegree-wms-remoteows-tests/pom.xml
index 0435734e4c..b75773988a 100644
--- a/deegree-tests/deegree-wms-remoteows-tests/pom.xml
+++ b/deegree-tests/deegree-wms-remoteows-tests/pom.xml
@@ -8,7 +8,7 @@
org.deegree
deegree-tests
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-tests/deegree-wms-similarity-tests/pom.xml b/deegree-tests/deegree-wms-similarity-tests/pom.xml
index 9b76732ae2..68d9564759 100644
--- a/deegree-tests/deegree-wms-similarity-tests/pom.xml
+++ b/deegree-tests/deegree-wms-similarity-tests/pom.xml
@@ -8,7 +8,7 @@
org.deegree
deegree-tests
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-tests/deegree-wms-tiling-tests/pom.xml b/deegree-tests/deegree-wms-tiling-tests/pom.xml
index eeb51bebcc..29b2157523 100644
--- a/deegree-tests/deegree-wms-tiling-tests/pom.xml
+++ b/deegree-tests/deegree-wms-tiling-tests/pom.xml
@@ -8,7 +8,7 @@
org.deegree
deegree-tests
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-tests/deegree-wmts-tests/pom.xml b/deegree-tests/deegree-wmts-tests/pom.xml
index e21e2c9445..08e8152754 100644
--- a/deegree-tests/deegree-wmts-tests/pom.xml
+++ b/deegree-tests/deegree-wmts-tests/pom.xml
@@ -8,7 +8,7 @@
org.deegree
deegree-tests
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-tests/deegree-workspace-tests/pom.xml b/deegree-tests/deegree-workspace-tests/pom.xml
index 31dd84c648..2b86a8248a 100644
--- a/deegree-tests/deegree-workspace-tests/pom.xml
+++ b/deegree-tests/deegree-workspace-tests/pom.xml
@@ -8,7 +8,7 @@
org.deegree
deegree-tests
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-tests/pom.xml b/deegree-tests/pom.xml
index 0a38c7d9be..31a95da34f 100644
--- a/deegree-tests/pom.xml
+++ b/deegree-tests/pom.xml
@@ -8,7 +8,7 @@
org.deegree
deegree
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-themes/deegree-themes-remotewms/pom.xml b/deegree-themes/deegree-themes-remotewms/pom.xml
index f82cfc2168..924b5f6683 100644
--- a/deegree-themes/deegree-themes-remotewms/pom.xml
+++ b/deegree-themes/deegree-themes-remotewms/pom.xml
@@ -2,7 +2,7 @@
4.0.0
deegree-themes-remotewms
jar
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
deegree-themes-remotewms
Map layer theme implementation for remote Web Map Services
@@ -13,7 +13,7 @@
org.deegree
deegree-themes
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-themes/pom.xml b/deegree-themes/pom.xml
index 616c1423c8..7126791262 100644
--- a/deegree-themes/pom.xml
+++ b/deegree-themes/pom.xml
@@ -8,7 +8,7 @@
org.deegree
deegree
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-tools/deegree-tools-3d/pom.xml b/deegree-tools/deegree-tools-3d/pom.xml
index d1af3834f2..442610b4ee 100644
--- a/deegree-tools/deegree-tools-3d/pom.xml
+++ b/deegree-tools/deegree-tools-3d/pom.xml
@@ -13,7 +13,7 @@
org.deegree
deegree-tools
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-tools/deegree-tools-alkis/pom.xml b/deegree-tools/deegree-tools-alkis/pom.xml
index 7c4a2f0230..abaf51c4a5 100644
--- a/deegree-tools/deegree-tools-alkis/pom.xml
+++ b/deegree-tools/deegree-tools-alkis/pom.xml
@@ -13,7 +13,7 @@
org.deegree
deegree-tools
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-tools/deegree-tools-base/pom.xml b/deegree-tools/deegree-tools-base/pom.xml
index 9e3b5087e1..85284dd878 100644
--- a/deegree-tools/deegree-tools-base/pom.xml
+++ b/deegree-tools/deegree-tools-base/pom.xml
@@ -13,7 +13,7 @@
org.deegree
deegree-tools
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-tools/deegree-tools-gml/pom.xml b/deegree-tools/deegree-tools-gml/pom.xml
index b1ec6dce04..e787fe2070 100755
--- a/deegree-tools/deegree-tools-gml/pom.xml
+++ b/deegree-tools/deegree-tools-gml/pom.xml
@@ -7,7 +7,7 @@
org.deegree
deegree-tools
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
2016
diff --git a/deegree-tools/deegree-tools-migration/pom.xml b/deegree-tools/deegree-tools-migration/pom.xml
index 350699fc90..6c8b7711d5 100644
--- a/deegree-tools/deegree-tools-migration/pom.xml
+++ b/deegree-tools/deegree-tools-migration/pom.xml
@@ -13,7 +13,7 @@
org.deegree
deegree-tools
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-tools/pom.xml b/deegree-tools/pom.xml
index 195e05b000..2ed11f7d67 100644
--- a/deegree-tools/pom.xml
+++ b/deegree-tools/pom.xml
@@ -8,7 +8,7 @@
org.deegree
deegree
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-workspaces/deegree-workspace-aixm/pom.xml b/deegree-workspaces/deegree-workspace-aixm/pom.xml
index 3f375fdf45..bd3af5969e 100644
--- a/deegree-workspaces/deegree-workspace-aixm/pom.xml
+++ b/deegree-workspaces/deegree-workspace-aixm/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-workspaces
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-workspaces/deegree-workspace-compliance-tests/pom.xml b/deegree-workspaces/deegree-workspace-compliance-tests/pom.xml
index f012f1f9cd..89152f0ccd 100644
--- a/deegree-workspaces/deegree-workspace-compliance-tests/pom.xml
+++ b/deegree-workspaces/deegree-workspace-compliance-tests/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-workspaces
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-workspaces/deegree-workspace-csw-memory-tests/pom.xml b/deegree-workspaces/deegree-workspace-csw-memory-tests/pom.xml
index b23a2c2b3a..4ee0cd85dc 100644
--- a/deegree-workspaces/deegree-workspace-csw-memory-tests/pom.xml
+++ b/deegree-workspaces/deegree-workspace-csw-memory-tests/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-workspaces
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-workspaces/deegree-workspace-csw/pom.xml b/deegree-workspaces/deegree-workspace-csw/pom.xml
index 9bf1bf3167..e0fb79c0e8 100644
--- a/deegree-workspaces/deegree-workspace-csw/pom.xml
+++ b/deegree-workspaces/deegree-workspace-csw/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-workspaces
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-workspaces/deegree-workspace-fme/pom.xml b/deegree-workspaces/deegree-workspace-fme/pom.xml
index 435361e15a..d03b5569ee 100644
--- a/deegree-workspaces/deegree-workspace-fme/pom.xml
+++ b/deegree-workspaces/deegree-workspace-fme/pom.xml
@@ -6,7 +6,7 @@
org.deegree
deegree-workspaces
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-workspaces/deegree-workspace-geosciml/pom.xml b/deegree-workspaces/deegree-workspace-geosciml/pom.xml
index 4f206b724b..f0e3342f38 100644
--- a/deegree-workspaces/deegree-workspace-geosciml/pom.xml
+++ b/deegree-workspaces/deegree-workspace-geosciml/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-workspaces
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-workspaces/deegree-workspace-utah/pom.xml b/deegree-workspaces/deegree-workspace-utah/pom.xml
index acff25adcd..f125b70e41 100644
--- a/deegree-workspaces/deegree-workspace-utah/pom.xml
+++ b/deegree-workspaces/deegree-workspace-utah/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-workspaces
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-workspaces/deegree-workspace-wcts/pom.xml b/deegree-workspaces/deegree-workspace-wcts/pom.xml
index fba4137cc7..66181172a4 100644
--- a/deegree-workspaces/deegree-workspace-wcts/pom.xml
+++ b/deegree-workspaces/deegree-workspace-wcts/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-workspaces
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-workspaces/deegree-workspace-wps/pom.xml b/deegree-workspaces/deegree-workspace-wps/pom.xml
index 1f50889faa..25e597407e 100644
--- a/deegree-workspaces/deegree-workspace-wps/pom.xml
+++ b/deegree-workspaces/deegree-workspace-wps/pom.xml
@@ -12,7 +12,7 @@
org.deegree
deegree-workspaces
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/deegree-workspaces/pom.xml b/deegree-workspaces/pom.xml
index bdfc5efa6c..771fbf2ce5 100644
--- a/deegree-workspaces/pom.xml
+++ b/deegree-workspaces/pom.xml
@@ -8,7 +8,7 @@
org.deegree
deegree
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
diff --git a/pom.xml b/pom.xml
index 00450dba00..2d98eafb18 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
org.deegree
deegree
pom
- 3.5.6-SNAPSHOT
+ 3.5.7-SNAPSHOT
deegree
Framework for OGC Web Service implementations and geospatial applications
http://www.deegree.org/
@@ -528,7 +528,7 @@
commons-io
commons-io
- 2.7
+ 2.15.1
commons-beanutils
@@ -549,7 +549,7 @@
org.apache.commons
commons-collections4
- 4.3
+ 4.4
commons-lang
@@ -559,7 +559,7 @@
commons-codec
commons-codec
- 1.16.0
+ 1.16.1
commons-fileupload
@@ -828,7 +828,7 @@
org.postgresql
postgresql
- 42.5.4
+ 42.7.2
@@ -1155,7 +1155,7 @@
com.google.code.gson
gson
- 2.8.9
+ 2.10.1
org.apache.commons
@@ -1222,11 +1222,11 @@
11
3.5.3
19.9.0.0
- 2.17.2
+ 2.23.0
1.7.36
2.7.18
4.3.10
- 5.3.31
+ 5.3.32
1.17
1.2.22
2.7.0
@@ -1258,7 +1258,7 @@
com.github.spotbugs
spotbugs-maven-plugin
- 4.4.2
+ 4.8.3.1
true
true
@@ -1313,7 +1313,7 @@
org.owasp
dependency-check-maven
- 8.4.3
+ 9.0.9
24
false