From 79a5e547d9fb4fbe2fc904c6363882f41f3e36e2 Mon Sep 17 00:00:00 2001 From: Reijer Copier Date: Thu, 17 Dec 2020 18:30:23 +0100 Subject: [PATCH] Add support for GML 3.2.2 --- .../src/main/java/org/deegree/gml/GMLVersion.java | 6 +++--- .../src/test/java/org/deegree/gml/VersionFromMimeTest.java | 5 +++++ .../featureinfo/serializing/FeatureInfoGmlWriter.java | 2 +- .../java/org/deegree/services/wfs/TransactionHandler.java | 2 ++ .../java/org/deegree/services/wfs/WebFeatureService.java | 2 ++ 5 files changed, 13 insertions(+), 4 deletions(-) diff --git a/deegree-core/deegree-core-base/src/main/java/org/deegree/gml/GMLVersion.java b/deegree-core/deegree-core-base/src/main/java/org/deegree/gml/GMLVersion.java index 03c8f998aa..754007bbc5 100644 --- a/deegree-core/deegree-core-base/src/main/java/org/deegree/gml/GMLVersion.java +++ b/deegree-core/deegree-core-base/src/main/java/org/deegree/gml/GMLVersion.java @@ -58,8 +58,8 @@ public enum GMLVersion { GML_30( GMLNS, "3.0", "3.0.1" ), /** GML 3.1 versions (either 3.1.0 or 3.1.1) */ GML_31( GMLNS, "3.1", "3.1.1" ), - /** GML 3.2 versions (3.2.1) */ - GML_32( GML3_2_NS, "3.2", "3.2.1" ); + /** GML 3.2 versions (either 3.2.1 or 3.2.2) */ + GML_32( GML3_2_NS, "3.2", "3.2.2" ); private final String ns; @@ -139,7 +139,7 @@ public static GMLVersion fromMimeType( String mimeType, GMLVersion defaultVersio result = GML_30; } else if ( v.compareTo( new Version( 3, 1, 1 ) ) <= 0 ) { result = GML_31; - } else if ( v.compareTo( new Version( 3, 2, 1 ) ) <= 0 ) { + } else if ( v.compareTo( new Version( 3, 2, 2 ) ) <= 0 ) { result = GML_32; } } diff --git a/deegree-core/deegree-core-base/src/test/java/org/deegree/gml/VersionFromMimeTest.java b/deegree-core/deegree-core-base/src/test/java/org/deegree/gml/VersionFromMimeTest.java index 12c6f43db9..d53bedaa1d 100644 --- a/deegree-core/deegree-core-base/src/test/java/org/deegree/gml/VersionFromMimeTest.java +++ b/deegree-core/deegree-core-base/src/test/java/org/deegree/gml/VersionFromMimeTest.java @@ -109,6 +109,11 @@ public void gml3_2_1() { assertEquals( GMLVersion.GML_32, fromMimeType( "text/xml; subtype=gml/3.2.1", null ) ); } + @Test + public void gml3_2_2() { + assertEquals( GMLVersion.GML_32, fromMimeType( "text/xml; subtype=gml/3.2.2", null ) ); + } + @Test public void noGML() { assertEquals( null, fromMimeType( "text/xml", null ) ); diff --git a/deegree-core/deegree-core-featureinfo/src/main/java/org/deegree/featureinfo/serializing/FeatureInfoGmlWriter.java b/deegree-core/deegree-core-featureinfo/src/main/java/org/deegree/featureinfo/serializing/FeatureInfoGmlWriter.java index 9f100b0f91..7add48eabb 100644 --- a/deegree-core/deegree-core-featureinfo/src/main/java/org/deegree/featureinfo/serializing/FeatureInfoGmlWriter.java +++ b/deegree-core/deegree-core-featureinfo/src/main/java/org/deegree/featureinfo/serializing/FeatureInfoGmlWriter.java @@ -208,7 +208,7 @@ public void serialize( FeatureInfoParams params, FeatureInfoContext context ) if ( format.endsWith( "3.1" ) || format.endsWith( "3.1.1" ) ) { gmlVersion = GMLVersion.GML_31; } - if ( format.endsWith( "3.2" ) || format.endsWith( "3.2.1" ) ) { + if ( format.endsWith( "3.2" ) || format.endsWith( "3.2.1" ) || format.endsWith( "3.2.2" ) ) { gmlVersion = GMLVersion.GML_32; } diff --git a/deegree-services/deegree-services-wfs/src/main/java/org/deegree/services/wfs/TransactionHandler.java b/deegree-services/deegree-services-wfs/src/main/java/org/deegree/services/wfs/TransactionHandler.java index 9f1092e381..25664da372 100644 --- a/deegree-services/deegree-services-wfs/src/main/java/org/deegree/services/wfs/TransactionHandler.java +++ b/deegree-services/deegree-services-wfs/src/main/java/org/deegree/services/wfs/TransactionHandler.java @@ -911,6 +911,8 @@ private GMLVersion determineFormat( Version requestVersion, String format ) { gmlVersion = GMLVersion.GML_31; } else if ( "text/xml; subtype=gml/3.2.1".equals( format ) ) { gmlVersion = GMLVersion.GML_32; + } else if ( "text/xml; subtype=gml/3.2.2".equals( format ) ) { + gmlVersion = GMLVersion.GML_32; } } return gmlVersion; diff --git a/deegree-services/deegree-services-wfs/src/main/java/org/deegree/services/wfs/WebFeatureService.java b/deegree-services/deegree-services-wfs/src/main/java/org/deegree/services/wfs/WebFeatureService.java index b6e62d7a52..de5a20870d 100644 --- a/deegree-services/deegree-services-wfs/src/main/java/org/deegree/services/wfs/WebFeatureService.java +++ b/deegree-services/deegree-services-wfs/src/main/java/org/deegree/services/wfs/WebFeatureService.java @@ -559,10 +559,12 @@ private void initFormats( List> format mimeTypeToFormat.put( "text/xml; subtype=gml/3.0.1", gml30 ); mimeTypeToFormat.put( "text/xml; subtype=gml/3.1.1", gml31 ); mimeTypeToFormat.put( "text/xml; subtype=gml/3.2.1", gml32 ); + mimeTypeToFormat.put( "text/xml; subtype=gml/3.2.2", gml32 ); mimeTypeToFormat.put( "text/xml; subtype=\"gml/2.1.2\"", gml21 ); mimeTypeToFormat.put( "text/xml; subtype=\"gml/3.0.1\"", gml30 ); mimeTypeToFormat.put( "text/xml; subtype=\"gml/3.1.1\"", gml31 ); mimeTypeToFormat.put( "text/xml; subtype=\"gml/3.2.1\"", gml32 ); + mimeTypeToFormat.put( "text/xml; subtype=\"gml/3.2.2\"", gml32 ); } else { LOG.debug( "Using customized format configuration." ); for ( JAXBElement formatEl : formatList ) {