From 3772280f55b0d9cba7ea503c42ea74c546d06ba3 Mon Sep 17 00:00:00 2001 From: latlon team <info@lat-lon.de> Date: Mon, 16 Dec 2024 05:25:49 +0000 Subject: [PATCH] Code drop - XPLANBOX-3506 - Add lower cases to parameters (d4ee90571) - XPLANBOX-3438 - upgrade to PostgreSQL 15 (746e1799c) - XPLANBOX-3393 - updated assertions (49ebda025) - XPLANBOX-3506 - case insensitiv SERVICE param in XPlanGateway (43f8b3437) - XPLANBOX-3393 - added route /xplan-ows/getAttachment, use XPlanGateway in html.gfi (2e231380c) - XPLANBOX-3393 - replaced XPlanWMS/XPlanValidatorWMS Urls with XPlanGatewayUrls in map preview of XPlanValidatorWeb and XPlanManagerWeb (d89f4cf4a) - XPLANBOX-3354 - execute xplan-gateway-soapui with mvn and docker, enhanced jenkinsfile (f64803c26) - XPLANBOX-3354 - added new soapui project xplan-gateway-soapui-project.xml (194d72a20) - XPLANBOX-3393 - enhanced gateway: /xplan-ows/syn-archive/planwerk -> [xplan-services]/xplan-wms/services/planwerkwmsarchive (eed4d70fb) - XPLANBOX-3393 - create links with xplan-gateway syntax (2e874cd90) - XPLANBOX-3393 - added xplan-validator-wms to xplan-gateway (de15e0b44) Co-authored-by: Dirk Stenger <stenger@lat-lon.de> Co-authored-by: Lyn Elisa Goltz <goltz@lat-lon.de> Dropped from commit: 91cf95439eb67a8fd943fe8ca5e943d8b9ddcc3e --- jenkinsfiles/tests-soapui.Jenkinsfile | 11 + .../api/commons/config/ApiConfiguration.java | 26 +- .../configuration/ValidatorConfiguration.java | 21 +- .../ValidatorConfigurationParser.java | 36 +- .../validator/wms/MapPreviewManager.java | 25 +- .../wms/config/ValidatorWmsContext.java | 10 - .../validatorConfiguration.properties | 5 - .../validatorConfiguration.properties | 5 - .../xplan-database-docker/Dockerfile | 4 +- .../xplan-docker-volume-init/setupVolumes.sh | 9 +- xplan-gateway/README.md | 3 +- ...InsensitiveQueryRoutePredicateFactory.java | 109 + .../xplanbox/gateway/Configuration.java | 59 +- .../gateway/XPlanGatewayApplication.java | 2 +- .../src/main/resources/application.properties | 1 + .../xplanbox/gateway/ConfigurationTest.java | 94 +- .../xplanbox/api/manager/PlanInfoBuilder.java | 36 +- .../manager/config/ApplicationContext.java | 6 +- .../config/ManagerApiConfiguration.java | 16 +- .../src/main/resources/application.properties | 4 +- .../api/manager/PlanInfoBuilderTest.java | 6 +- .../managerApiConfiguration.properties | 6 +- .../managerWebConfiguration.properties | 4 - .../manager/web/client/utils/WmsUrlUtils.java | 113 +- .../ManagerWebConfigurationRetriever.java | 34 +- .../ManagerWebConfigurationServiceImpl.java | 6 +- .../web/shared/MapPreviewConfiguration.java | 75 +- .../managerWebConfiguration.properties | 4 - .../web/client/utils/WmsUrlUtilsTest.java | 189 +- .../ManagerWebConfigurationRetrieverTest.java | 27 +- ...anagerWebConfigurationServiceImplTest.java | 13 +- xplan-tests/xplan-tests-soapui/README.md | 7 + xplan-tests/xplan-tests-soapui/pom.xml | 2 + .../xplan-tests-soapui/runAllSoapUiTests.sh | 4 + .../xplan-gateway-soapui-project.xml | 3035 +++++++++++++++++ .../xplan-manager-api-soapui-project.xml | 68 +- .../executor/handler/ValidationHandler.java | 19 +- .../src/main/resources/application.properties | 4 +- xplan-validator/xplan-validator-web/pom.xml | 4 + .../config/XPlanValidatorWebSpringConfig.java | 11 +- .../main/resources/validator-web.properties | 1 + .../src/main/workspace/services/html.gfi | 6 +- 42 files changed, 3587 insertions(+), 533 deletions(-) create mode 100644 xplan-gateway/src/main/java/de/latlon/xplanbox/gateway/CaseInsensitiveQueryRoutePredicateFactory.java create mode 100644 xplan-tests/xplan-tests-soapui/src/main/resources/xplan-gateway-soapui-project.xml create mode 100644 xplan-validator/xplan-validator-web/src/main/resources/validator-web.properties diff --git a/jenkinsfiles/tests-soapui.Jenkinsfile b/jenkinsfiles/tests-soapui.Jenkinsfile index 5dddc4bf5..f9f99c1a5 100644 --- a/jenkinsfiles/tests-soapui.Jenkinsfile +++ b/jenkinsfiles/tests-soapui.Jenkinsfile @@ -15,6 +15,7 @@ pipeline { string(name: 'BASE_URL_INSPIRE_PLU', defaultValue: "https://xplanbox.lat-lon.de", description: 'Set base URL of INSPIRE PLU') string(name: 'BASE_URL_MAPSERVER', defaultValue: "https://xplanbox.lat-lon.de", description: 'Set base URL of MapServer') string(name: 'BASE_URL_MAPPROXY', defaultValue: "https://xplanbox.lat-lon.de", description: 'Set base URL of MapProxy') + string(name: 'BASE_URL_GATEWAY', defaultValue: "https://xplanbox.lat-lon.de", description: 'Set base URL of XPlanGateway') string(name: 'JWT_URL', description: 'URL to retrieve a JSON Web Token') string(name: 'JWT_CLIENTID', defaultValue: "xplanbox-api", description: 'ID of the Client configured in Keycloak') string(name: 'SLACK_CHANNEL', defaultValue: "#installationen", description: 'Set slack channel') @@ -82,6 +83,16 @@ pipeline { } } } + stage('SoapUI-Test XPlanGateway') { + steps { + withCredentials([ + usernamePassword(credentialsId:"${CREDENTIALS_ID}", passwordVariable: 'Password', usernameVariable: 'Username') + ]) { + sh 'mvn test -pl :xplan-tests-soapui -Psystem-tests -DtestFileName=xplan-gateway-soapui-project.xml \ + -DbaseUrlGateway=${BASE_URL_GATEWAY} -Dusername=$Username -Dpassword=$Password' + } + } + } stage('Results') { steps{ junit '**/**/target/soapui/TEST-*.xml' diff --git a/xplan-core/xplan-core-api/src/main/java/de/latlon/xplanbox/api/commons/config/ApiConfiguration.java b/xplan-core/xplan-core-api/src/main/java/de/latlon/xplanbox/api/commons/config/ApiConfiguration.java index 1fdf4751e..de0b8c949 100644 --- a/xplan-core/xplan-core-api/src/main/java/de/latlon/xplanbox/api/commons/config/ApiConfiguration.java +++ b/xplan-core/xplan-core-api/src/main/java/de/latlon/xplanbox/api/commons/config/ApiConfiguration.java @@ -131,23 +131,33 @@ public abstract class ApiConfiguration { } /** - * Parse the property as URL. + * Parse the property as URI. * @param properties never <code>null</code> * @param propName the name of the property, never <code>null</code> - * @return the parsed url, <code>null</code> if no property is set - * @throws ConfigurationException if the property is not a valid URL + * @return the parsed uri, <code>null</code> if no property is set + * @throws ConfigurationException if the property is not a valid uri */ protected URI parseUri(Properties properties, String propName) throws ConfigurationException { String property = properties.getProperty(propName); - if (property == null || property.isEmpty()) + return parseUri(property); + } + + /** + * Parse the passed uri as URI. + * @param uri never <code>null</code> + * @return the parsed uri, <code>null</code> if no property is set + * @throws ConfigurationException if the property is not a valid uri + */ + protected static URI parseUri(String uri) throws ConfigurationException { + if (uri == null || uri.isEmpty()) return null; try { - if (!property.endsWith("/")) - property = property + "/"; - return new URI(property); + if (!uri.endsWith("/")) + uri = uri + "/"; + return new URI(uri); } catch (URISyntaxException e) { - throw new ConfigurationException("Could not parse property " + property + " as URI.", e); + throw new ConfigurationException("Could not parse uri " + uri + " as URI.", e); } } diff --git a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/configuration/ValidatorConfiguration.java b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/configuration/ValidatorConfiguration.java index 11aa66ca3..14c3878e3 100644 --- a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/configuration/ValidatorConfiguration.java +++ b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/configuration/ValidatorConfiguration.java @@ -35,22 +35,18 @@ public class ValidatorConfiguration { private final Path validationRulesDirectory; - private String validatorWmsEndpoint; - - private List<ValidatorProfile> validatorProfiles; + private final List<ValidatorProfile> validatorProfiles; /** * @param validationReportDirectory directory where validation reports are saved, * never <code>null</code> * @param validationRulesDirectory directory where validation rules are stored, never * <code>null</code> - * @param validatorWmsEndpoint XPlanValidatorWMS endpoint, may be <code>null</code> * @param validatorProfiles configured validator profiles, may be <code>empty</code> * but never <code>null</code> */ public ValidatorConfiguration(Path validationReportDirectory, Path validationRulesDirectory, - String validatorWmsEndpoint, List<ValidatorProfile> validatorProfiles) { - this.validatorWmsEndpoint = validatorWmsEndpoint; + List<ValidatorProfile> validatorProfiles) { checkParameters(validationReportDirectory); this.validationReportDirectory = validationReportDirectory; this.validationRulesDirectory = validationRulesDirectory; @@ -74,16 +70,6 @@ public class ValidatorConfiguration { return validationRulesDirectory; } - /** - * Returns the configured XPlanValidatorWMS endpoint. - * @return XPlanValidatorWMS endpoint, may be <code>null</code> - * @deprecated XPlanValidatorWMS is deprecated and will be removed in a future version - */ - @Deprecated - public String getValidatorWmsEndpoint() { - return validatorWmsEndpoint; - } - /** * Returns the configured validator profiles * @return validatorProfiles may be <code>empty</code> but never <code>null</code> @@ -100,8 +86,7 @@ public class ValidatorConfiguration { @Override public String toString() { return "ValidatorConfiguration{" + "validationReportDirectory=" + validationReportDirectory - + ", validationRulesDirectory=" + validationRulesDirectory + ", validatorWmsEndpoint='" - + validatorWmsEndpoint + '\'' + '}'; + + ", validationRulesDirectory=" + validationRulesDirectory + '}'; } } diff --git a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/configuration/ValidatorConfigurationParser.java b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/configuration/ValidatorConfigurationParser.java index a9b9c5b7a..fa60030e3 100644 --- a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/configuration/ValidatorConfigurationParser.java +++ b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/configuration/ValidatorConfigurationParser.java @@ -20,15 +20,7 @@ */ package de.latlon.xplan.validator.configuration; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.type.CollectionType; -import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; -import de.latlon.xplan.commons.configuration.PropertiesLoader; -import de.latlon.xplan.manager.web.shared.ConfigurationException; -import org.apache.commons.lang3.StringUtils; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import static java.nio.file.Files.createTempDirectory; import java.io.File; import java.io.IOException; @@ -41,7 +33,15 @@ import java.util.List; import java.util.Properties; import java.util.stream.Collectors; -import static java.nio.file.Files.createTempDirectory; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.type.CollectionType; +import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; +import de.latlon.xplan.commons.configuration.PropertiesLoader; +import de.latlon.xplan.manager.web.shared.ConfigurationException; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Parses validator configuration and returns {@link ValidatorConfiguration}. @@ -59,8 +59,6 @@ public class ValidatorConfigurationParser { private static final String VALIDATION_RULES_DIRECTORY = "validationRulesDirectory"; - private static final String VALIDATOR_WMS_ENDPOINT = "validatorWmsEndpoint"; - /** * Parse validator configuration. * @param propertiesLoader properties loader used to load properties from @@ -83,9 +81,8 @@ public class ValidatorConfigurationParser { Properties properties = propertiesLoader.loadProperties(VALIDATOR_CONFIGURATION_PROPERTIES); Path reportDirectory = createReportDirectory(properties); Path rulesDirectory = createRulesDirectory(properties); - String validatorWmsEndpoint = parseValidatorWmsEndpoint(properties); List<ValidatorProfile> validatorProfiles = parseValidatorProfiles(propertiesLoader); - return new ValidatorConfiguration(reportDirectory, rulesDirectory, validatorWmsEndpoint, validatorProfiles); + return new ValidatorConfiguration(reportDirectory, rulesDirectory, validatorProfiles); } private void logConfiguration(ValidatorConfiguration configuration) { @@ -97,8 +94,6 @@ public class ValidatorConfigurationParser { LOG.info(" validation rules directory"); LOG.info(" - {}", configuration.getValidationRulesDirectory() != null ? configuration.getValidationRulesDirectory() : "internal rules are used"); - LOG.info(" XPlanValidatorWMS Endpoint"); - LOG.info(" - {} (deprecated)", configuration.getValidatorWmsEndpoint()); LOG.info("-------------------------------------------"); if (!configuration.getValidatorProfiles().isEmpty()) { LOG.info(" validation profiles"); @@ -126,15 +121,6 @@ public class ValidatorConfigurationParser { return null; } - /** - * @deprecated XPlanValidatorWMS is deprecated and will be removed in a future version - */ - @Deprecated - private String parseValidatorWmsEndpoint(Properties properties) { - String validatorWmsEndpoint = properties.getProperty(VALIDATOR_WMS_ENDPOINT); - return validatorWmsEndpoint == null || validatorWmsEndpoint.trim().isEmpty() ? null : validatorWmsEndpoint; - } - private List<ValidatorProfile> parseValidatorProfiles(PropertiesLoader propertiesLoader) throws IOException, ConfigurationException { Path profileDirectory = propertiesLoader.resolveDirectory("profiles"); diff --git a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/MapPreviewManager.java b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/MapPreviewManager.java index 55a7ba1d9..4df136068 100644 --- a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/MapPreviewManager.java +++ b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/MapPreviewManager.java @@ -23,12 +23,10 @@ package de.latlon.xplan.validator.wms; import javax.xml.stream.XMLStreamException; import java.io.File; -import de.latlon.xplan.commons.XPlanSchemas; import de.latlon.xplan.commons.archive.XPlanArchive; import de.latlon.xplan.commons.archive.XPlanArchiveCreator; import de.latlon.xplan.commons.feature.XPlanFeatureCollection; import de.latlon.xplan.commons.feature.XPlanGmlParserBuilder; -import de.latlon.xplan.validator.geometric.GeometricValidator; import de.latlon.xplan.validator.web.shared.MapPreviewMetadata; import de.latlon.xplan.validator.web.shared.XPlanEnvelope; import org.deegree.cs.coordinatesystems.ICRS; @@ -55,24 +53,16 @@ public class MapPreviewManager { private final MasterportalConfigWriter configWriter; - private final GeometricValidator geometricValidator; - - private final XPlanSchemas schemas; - /** * @param validatorWmsManager used to create wms configuration, never * <code>null</code> - * @param geometricValidator used to parse the gml, never <code>null</code> - * @param validatorWmsEndpoint the base URL of the XPlanValidatorWMS, never - * <code>null</code> + * @param xplanGatewayUrl the base URL of the XPlanGateway, never <code>null</code> * @throws MapPreviewCreationException if instantiation failed */ - public MapPreviewManager(ValidatorWmsManager validatorWmsManager, GeometricValidator geometricValidator, - String validatorWmsEndpoint) throws MapPreviewCreationException { - this.geometricValidator = geometricValidator; + public MapPreviewManager(ValidatorWmsManager validatorWmsManager, String xplanGatewayUrl) + throws MapPreviewCreationException { this.validatorWmsManager = validatorWmsManager; - this.configWriter = new MasterportalConfigWriter(validatorWmsEndpoint); - this.schemas = XPlanSchemas.getInstance(); + this.configWriter = new MasterportalConfigWriter(createValidatorWmsUrl(xplanGatewayUrl)); } @@ -101,7 +91,6 @@ public class MapPreviewManager { } } - // TODO private Envelope transformBboxTo25832(Envelope envelopeIn4326) { try { if (envelopeIn4326 != null) { @@ -116,4 +105,10 @@ public class MapPreviewManager { return envelopeIn4326; } + private String createValidatorWmsUrl(String xplanGatewayUrl) { + if (!xplanGatewayUrl.endsWith("/")) + xplanGatewayUrl = xplanGatewayUrl + "/"; + return xplanGatewayUrl + "xplan-ows/validator"; + } + } diff --git a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/config/ValidatorWmsContext.java b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/config/ValidatorWmsContext.java index 32c053440..7c59cb699 100644 --- a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/config/ValidatorWmsContext.java +++ b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/config/ValidatorWmsContext.java @@ -22,7 +22,6 @@ package de.latlon.xplan.validator.wms.config; import de.latlon.xplan.manager.synthesizer.XPlanSynthesizer; import de.latlon.xplan.manager.synthesizer.rules.SynRulesAccessor; -import de.latlon.xplan.validator.configuration.ValidatorConfiguration; import de.latlon.xplan.validator.wms.ValidatorWmsManager; import de.latlon.xplan.validator.wms.storage.PlanStorage; import org.slf4j.Logger; @@ -46,21 +45,12 @@ public class ValidatorWmsContext { @Autowired(required = false) private PlanStorage planStorage; - @Autowired - private ValidatorConfiguration validatorConfiguration; - @Bean public ValidatorWmsManager validatorWmsManager(XPlanSynthesizer synthesizer) { if (planStorage == null) { LOG.warn("PlanStorage is not available. Map preview will not be available."); return null; } - LOG.trace("Using validatorConfiguration: " + validatorConfiguration); - String validatorWmsEndpoint = validatorConfiguration.getValidatorWmsEndpoint(); - if (validatorWmsEndpoint == null) { - LOG.warn("XPlanValidatorWMS endpoint URL is not configured. Map preview will not be available."); - return null; - } try { return new ValidatorWmsManager(synthesizer, planStorage); } diff --git a/xplan-core/xplan-core-validator/src/main/resources/de/latlon/xplan/validator/configuration/validatorConfiguration.properties b/xplan-core/xplan-core-validator/src/main/resources/de/latlon/xplan/validator/configuration/validatorConfiguration.properties index 44f45d8eb..51cee88a2 100644 --- a/xplan-core/xplan-core-validator/src/main/resources/de/latlon/xplan/validator/configuration/validatorConfiguration.properties +++ b/xplan-core/xplan-core-validator/src/main/resources/de/latlon/xplan/validator/configuration/validatorConfiguration.properties @@ -25,8 +25,3 @@ validationReportDirectory= # Verzeichnis in dem die semantischen Validierungsregel liegen, die für die Validierung verwendet werden sollen. # Default: Der interne Regelsatz wird verwendet validationRulesDirectory= - -# URL des XPlanValidatorWMS Endpunkts für die Anzeige der Kartenvorschau -# Default: keine URL, die Kartenvorschau ist nicht verfügbar -# XPlanValidatorWMS is deprecated and will be removed in a future version -validatorWmsEndpoint= diff --git a/xplan-core/xplan-core-validator/src/test/resources/de/latlon/xplan/validator/configuration/validatorConfiguration.properties b/xplan-core/xplan-core-validator/src/test/resources/de/latlon/xplan/validator/configuration/validatorConfiguration.properties index 339fd3c50..79ecb5f72 100644 --- a/xplan-core/xplan-core-validator/src/test/resources/de/latlon/xplan/validator/configuration/validatorConfiguration.properties +++ b/xplan-core/xplan-core-validator/src/test/resources/de/latlon/xplan/validator/configuration/validatorConfiguration.properties @@ -25,8 +25,3 @@ validationReportDirectory=/home/xplanbox/file/configuration/report/ # Verzeichnis in dem die semantischen Validierungsregel liegen, die für die Validierung verwendet werden sollen. # Default: Der interne Regelsatz wird verwendet validationRulesDirectory= - -# URL des XPlanValidatorWMS Endpunkts für die Anzeige der Kartenvorschau -# Default: keine URL, die Kartenvorschau ist nicht verfügbar -# XPlanValidatorWMS is deprecated and will be removed in a future version -validatorWmsEndpoint= diff --git a/xplan-database/xplan-database-docker/Dockerfile b/xplan-database/xplan-database-docker/Dockerfile index 26e9779a1..6bcfcb9f6 100644 --- a/xplan-database/xplan-database-docker/Dockerfile +++ b/xplan-database/xplan-database-docker/Dockerfile @@ -1,5 +1,5 @@ -# latest postgis/postgis:14-3.4 on 24.09.24 -FROM postgis/postgis@sha256:70e61250ca30ae0b18bebf1a528b026e39f99a55d276f3daa5eac3a7ed15f3e9 +# latest postgis/postgis:15-3.4 on 10.12.24 +FROM postgis/postgis@sha256:3f4a5d48e0be9580ed70ed618cd039ce57bbb2dd113053d3836e28513f1f87cd ARG BUILD_DATE=? ARG DOCKER_IMAGE_NAME=? diff --git a/xplan-docker/xplan-docker-volume-init/setupVolumes.sh b/xplan-docker/xplan-docker-volume-init/setupVolumes.sh index 127dc2b50..2c6fe0ec9 100755 --- a/xplan-docker/xplan-docker-volume-init/setupVolumes.sh +++ b/xplan-docker/xplan-docker-volume-init/setupVolumes.sh @@ -45,8 +45,7 @@ fi cp -r /xplan-volume-init/xplan-docker-volumes/* $XPLANBOX_VOLUMES chmod -R a+w $XPLANBOX_VOLUMES/* -XPLAN_WMS_URL_PUBLIC="${XPLAN_WMS_URL_PUBLIC:-tobedefined}" -XPLAN_VALIDATORWMS_URL_PUBLIC="${XPLAN_VALIDATORWMS_URL_PUBLIC:-tobedefined}" +XPLAN_GATEWAY_URL_PUBLIC="${XPLAN_GATEWAY_URL_PUBLIC:-tobedefined}" XPLAN_MANAGERAPI_URL_PUBLIC=${XPLAN_MANAGERAPI_URL_PUBLIC:-xplan-manager-api} XPLAN_VALIDATORAPI_URL_PUBLIC=${XPLAN_VALIDATORAPI_URL_PUBLIC:-xplan-validator-api} XPLAN_DOKUMENTEAPI_URL_PUBLIC=${XPLAN_DOKUMENTEAPI_URL_PUBLIC:-xplan-dokumente-api} @@ -99,11 +98,9 @@ cd $XPLANBOX_VOLUMES sed -i 's|apiUrl=|apiUrl='$XPLAN_VALIDATORAPI_URL_PUBLIC'|g' xplan-validator-config/validatorApiConfiguration.properties sed -i 's|apiUrl=|apiUrl='$XPLAN_MANAGERAPI_URL_PUBLIC'|g' xplan-manager-config/managerApiConfiguration.properties sed -i 's|apiUrl=|apiUrl='$XPLAN_DOKUMENTEAPI_URL_PUBLIC'|g' xplan-dokumente-config/dokumenteApiConfiguration.properties -sed -i 's|wmsUrl=|wmsUrl='$XPLAN_WMS_URL_PUBLIC'/xplan-wms|g' xplan-manager-config/managerApiConfiguration.properties sed -i 's|workspaceReloadUrls=|workspaceReloadUrls='$XPLAN_SERVICES_URL_INTERNAL'/xplan-wms|g' xplan-manager-config/managerConfiguration.properties sed -i 's/workspaceReloadApiKey=/workspaceReloadApiKey='$XPLAN_SERVICES_API_KEY'/g' xplan-manager-config/managerConfiguration.properties sed -i 's/pathToHaleCli=/pathToHaleCli=\/hale\/bin\/hale/g' xplan-manager-config/managerConfiguration.properties -sed -i 's|http://localhost:8080|'$XPLAN_WMS_URL_PUBLIC'|g' xplan-manager-config/managerWebConfiguration.properties if [ $XPLAN_INIT_INSPIREPLU = "enabled" ] then @@ -122,7 +119,7 @@ sed -i 's|localhost:5432/xplanbox|'$XPLAN_DB'|g' xplan-workspaces/xplan-manager- sed -i 's|name="username" value="xplanbox"|name="username" value="'$XPLAN_DB_USER'"|g' xplan-workspaces/xplan-manager-workspace/jdbc/inspireplucp.xml sed -i 's|name="password" value="xplanbox"|name="password" value="'$XPLAN_DB_PASSWORD'"|g' xplan-workspaces/xplan-manager-workspace/jdbc/inspireplucp.xml -sed -i 's|http://localhost:8080/xplan-wms|'$XPLAN_WMS_URL_PUBLIC'/xplan-wms|g' xplan-workspaces/xplan-services-wms-workspace/services/html.gfi +sed -i 's|http://localhost:8080/xplan-ows|'$XPLAN_GATEWAY_URL_PUBLIC'/xplan-ows|g' xplan-workspaces/xplan-services-wms-workspace/services/html.gfi sed -i 's|localhost:5432/xplanbox|'$XPLAN_DB'|g' xplan-inspireplu-workspaces/xplan-webservices-inspireplu-workspace/jdbc/inspireplu.xml sed -i 's|name="username" value="xplanbox"|name="username" value="'$XPLAN_DB_USER'"|g' xplan-inspireplu-workspaces/xplan-webservices-inspireplu-workspace/jdbc/inspireplu.xml @@ -191,8 +188,6 @@ echo $XPLAN_SERVICES_API_KEY >> xplan-workspaces/config.apikey echo "[$(date -Iseconds)] Configure rastertype mapserver" sed -i 's|http://localhost:8080/mapserver|'$XPLAN_MAPSERVER_URL_INTERNAL'/mapserver|g' xplan-workspaces/xplan-services-wms-workspace/datasources/remoteows/mapserver.xml -sed -i 's|validatorWmsEndpoint=|validatorWmsEndpoint='$XPLAN_VALIDATORWMS_URL_PUBLIC'\/xplan-validator-wms\/services\/wms|g' xplan-validator-config/validatorConfiguration.properties - #copy example external codelist XPLAN_INIT_EXAMPLE_CODELIST="${XPLAN_INIT_EXAMPLE_CODELIST:-disabled}" if [ $XPLAN_INIT_EXAMPLE_CODELIST = "enabled" ] diff --git a/xplan-gateway/README.md b/xplan-gateway/README.md index 065d6da8c..f389843eb 100644 --- a/xplan-gateway/README.md +++ b/xplan-gateway/README.md @@ -17,4 +17,5 @@ Folgende Umgebungsvariable können für die Konfiguration der Anwendung verwende - `LOG4J_LAYOUT`: das Logging Format `plain` oder `json` (Default: `plain`) - `XPLAN_MAPSERVER_URL_INTERNAL`: die interne root Url von `xplan-mapserver` (Default: `http://xplan-mapserver:8080`) - `XPLAN_MAPPROXY_URL_INTERNAL`: die interne root Url von `xplan-mapproxy` (Default: `http://xplan-mapproxy:8080`) -- `XPLAN_SERVICES_URL_INTERNAL`: die internre root Url von `xplan-services` (Default: `http://xplan-services`) +- `XPLAN_SERVICES_URL_INTERNAL`: die interne root Url von `xplan-services` (Default: `http://xplan-services`) +- `XPLAN_VALIDATOR_WMS_URL_INTERNAL`: die interne root Url von `xplan-services` (Default: `http://xplan-validator-wms:8080`) diff --git a/xplan-gateway/src/main/java/de/latlon/xplanbox/gateway/CaseInsensitiveQueryRoutePredicateFactory.java b/xplan-gateway/src/main/java/de/latlon/xplanbox/gateway/CaseInsensitiveQueryRoutePredicateFactory.java new file mode 100644 index 000000000..801cc10b9 --- /dev/null +++ b/xplan-gateway/src/main/java/de/latlon/xplanbox/gateway/CaseInsensitiveQueryRoutePredicateFactory.java @@ -0,0 +1,109 @@ +package de.latlon.xplanbox.gateway; + +import java.util.Arrays; +import java.util.Iterator; +import java.util.List; +import java.util.Optional; +import java.util.function.Predicate; + +import jakarta.validation.constraints.NotEmpty; +import org.springframework.cloud.gateway.handler.predicate.AbstractRoutePredicateFactory; +import org.springframework.cloud.gateway.handler.predicate.GatewayPredicate; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.server.ServerWebExchange; + +/** + * @author <a href="mailto:goltz@lat-lon.de">Lyn Goltz</a> + * @since 8.0 + */ +@Component +public class CaseInsensitiveQueryRoutePredicateFactory + extends AbstractRoutePredicateFactory<CaseInsensitiveQueryRoutePredicateFactory.Config> { + + public CaseInsensitiveQueryRoutePredicateFactory() { + super(Config.class); + } + + public List<String> shortcutFieldOrder() { + return Arrays.asList("param", "regexp"); + } + + public Predicate<ServerWebExchange> apply(final Config config) { + return new GatewayPredicate() { + public boolean test(ServerWebExchange exchange) { + if (!StringUtils.hasText(config.regexp)) { + return exchange.getRequest().getQueryParams().containsKey(config.param); + } + else { + List<String> headerValues = retrieveHeaderValuesCaseInsensitive(exchange); + if (headerValues == null) { + return false; + } + else { + Iterator<String> headerValueIterator = headerValues.iterator(); + String value; + do { + if (!headerValueIterator.hasNext()) { + return false; + } + value = headerValueIterator.next(); + } + while (value == null || !value.matches(config.regexp)); + return true; + } + } + } + + private List<String> retrieveHeaderValuesCaseInsensitive(ServerWebExchange exchange) { + Optional<String> key = exchange.getRequest() + .getQueryParams() + .keySet() + .stream() + .filter(k -> k.equalsIgnoreCase(config.param)) + .findFirst(); + return key.map(k -> exchange.getRequest().getQueryParams().get(k)).orElse(null); + } + + public Object getConfig() { + return config; + } + + public String toString() { + return String.format("Query: param=%s regexp=%s", config.getParam(), config.getRegexp()); + } + }; + } + + @Validated + public static class Config { + + private @NotEmpty String param; + + private String regexp; + + public Config() { + } + + public String getParam() { + return this.param; + } + + public Config setParam(String param) { + this.param = param; + return this; + } + + public String getRegexp() { + return this.regexp; + } + + public Config setRegexp(String regexp) { + this.regexp = regexp; + return this; + } + + } + +} diff --git a/xplan-gateway/src/main/java/de/latlon/xplanbox/gateway/Configuration.java b/xplan-gateway/src/main/java/de/latlon/xplanbox/gateway/Configuration.java index 1f881cd9a..c26d74999 100644 --- a/xplan-gateway/src/main/java/de/latlon/xplanbox/gateway/Configuration.java +++ b/xplan-gateway/src/main/java/de/latlon/xplanbox/gateway/Configuration.java @@ -23,13 +23,16 @@ package de.latlon.xplanbox.gateway; import java.net.URI; import java.util.function.Function; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.cloud.gateway.handler.AsyncPredicate; import org.springframework.cloud.gateway.route.Route; import org.springframework.cloud.gateway.route.RouteLocator; import org.springframework.cloud.gateway.route.builder.Buildable; import org.springframework.cloud.gateway.route.builder.PredicateSpec; import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder; import org.springframework.context.annotation.Bean; +import org.springframework.web.server.ServerWebExchange; /** * @author <a href="mailto:guillemot@lat-lon.de">Marc Guillemot</a> @@ -46,10 +49,31 @@ public class Configuration { @Value("${xplanbox.gateway.rewrite.backend.xplan-services.uri}") private URI backendXplanServices; + @Value("${xplanbox.gateway.rewrite.backend.xplan-validator-wms.uri}") + private URI backendXplanValidatorWms; + + @Autowired + private CaseInsensitiveQueryRoutePredicateFactory caseInsensitiveQueryRoutePredicateFactory; + @Bean public RouteLocator customRouteLocator(RouteLocatorBuilder builder) { return builder.routes() + // xplan-validator-wms: + // /xplan-ows/validator?SERVICE=WMS -> /xplan-validator-wms/services/wms + .route("/xplan-ows/validator?SERVICE=WMS -> /xplan-validator-wms/services/wms", + r -> r.asyncPredicate(caseInsensitiveServiceParam("WMS")) + .and() + .path("/xplan-ows/validator") + .filters(f -> f.rewritePath("/xplan-ows/validator", "/xplan-validator-wms/services/wms")) + .uri(backendXplanValidatorWms)) + // xplan-services: + // getAttachment - temporal route until GetAttachmentHandler is removed + // /xplan-ows/getAttachment -> /xplan-wms/getAttachment + .route("/xplan-ows/getAttachment -> /xplan-wms/getAttachment", + r -> r.path("/xplan-ows/getAttachment") + .filters(f -> f.rewritePath("/xplan-ows/getAttachment", "/xplan-wms/getAttachment")) + .uri(backendXplanServices)) // /xplan-ows/syn?SERVICE=WMS -> /xplan-wms/services/wms .route("/xplan-ows/syn?SERVICE=WMS -> /xplan-wms/services/wms", pathWithWmsServiceToUri("/xplan-ows/syn", "/xplan-wms/services/wms")) @@ -57,7 +81,7 @@ public class Configuration { .route("/xplan-ows/syn-pre?SERVICE=WMS -> /xplan-wms/services/wmspre", pathWithWmsServiceToUri("/xplan-ows/syn-pre", "/xplan-wms/services/wmspre")) // /xplan-ows/syn-archive?SERVICE=WMS-> /xplan-wms/services/wmsarchive - .route("/xplan-ows/syn-archive?SERVICE=WMS-> /xplan-wms/services/wmsarchive", + .route("/xplan-ows/syn-archive?SERVICE=WMS -> /xplan-wms/services/wmsarchive", pathWithWmsServiceToUri("/xplan-ows/syn-archive", "/xplan-wms/services/wmsarchive")) // /xplan-ows/syn/planart/bp?SERVICE=WMS -> /xplan-wms/services/bpwms (analog: // fpwms, lpwms, rpwms, sowms) @@ -101,21 +125,30 @@ public class Configuration { // /xplan-ows/syn/planwerk/{planName}?SERVICE=WMS -> // /xplan-wms/services/planwerkwms/planname/{planName} .route("/xplan-ows/syn/planwerk/{planName}?SERVICE=WMS -> /xplan-wms/services/planwerkwms/planname/{planName}", - r -> r.path("/xplan-ows/syn/planwerk/*") + r -> r.asyncPredicate(caseInsensitiveServiceParam("WMS")) .and() - .query("SERVICE", "WMS") + .path("/xplan-ows/syn/planwerk/*") .filters(f -> f.rewritePath("/xplan-ows/syn/planwerk/(?<planName>.*)", "/xplan-wms/services/planwerkwms/planname/${planName}")) // .uri(backendXplanServices)) // /xplan-ows/syn-pre/planwerk/{planName}?SERVICE=WMS -> // /xplan-wms/services/planwerkwmspre/planname/{planName} .route("/xplan-ows/syn-pre/planwerk/{planName}?SERVICE=WMS -> /xplan-wms/services/planwerkwmspre/planname/{planName}", - r -> r.path("/xplan-ows/syn-pre/planwerk/*") + r -> r.asyncPredicate(caseInsensitiveServiceParam("WMS")) .and() - .query("SERVICE", "WMS") + .path("/xplan-ows/syn-pre/planwerk/*") .filters(f -> f.rewritePath("/xplan-ows/syn-pre/planwerk/(?<planName>.*)", "/xplan-wms/services/planwerkwmspre/planname/${planName}")) // .uri(backendXplanServices)) + // /xplan-ows/syn-archive/planwerk/{planName}?SERVICE=WMS -> + // /xplan-wms/services/planwerkwmsarchive/planname/{planName} + .route("/xplan-ows/syn-archive/planwerk/{planName}?SERVICE=WMS -> /xplan-wms/services/planwerkwmsarchive/planname/{planName}", + r -> r.asyncPredicate(caseInsensitiveServiceParam("WMS")) + .and() + .path("/xplan-ows/syn-archive/planwerk/*") + .filters(f -> f.rewritePath("/xplan-ows/syn-archive/planwerk/(?<planName>.*)", + "/xplan-wms/services/planwerkwmsarchive/planname/${planName}")) // + .uri(backendXplanServices)) // /xplan-ows/syn?SERVICE=WFS -> /xplansyn-wfs/services/xplansynwfs .route("/xplan-ows/syn?SERVICE=WFS -> /xplansyn-wfs/services/xplansynwfs", @@ -225,19 +258,23 @@ public class Configuration { } private Function<PredicateSpec, Buildable<Route>> pathWithWmsServiceToUri(String path, String newPath) { - return r -> r.path(path) + return r -> r.asyncPredicate(caseInsensitiveServiceParam("WMS")) .and() - .query("SERVICE", "WMS") // - .filters(f -> f.rewritePath(path, newPath)) // + .path(path) + .filters(f -> f.rewritePath(path, newPath)) .uri(backendXplanServices); } private Function<PredicateSpec, Buildable<Route>> pathWithWfsServiceToUri(String path, String newPath) { - return r -> r.path(path) + return r -> r.asyncPredicate(caseInsensitiveServiceParam("WFS")) .and() - .query("SERVICE", "WFS") // - .filters(f -> f.rewritePath(path, newPath)) // + .path(path) + .filters(f -> f.rewritePath(path, newPath)) .uri(backendXplanServices); } + private AsyncPredicate<ServerWebExchange> caseInsensitiveServiceParam(String WMS) { + return caseInsensitiveQueryRoutePredicateFactory.applyAsync((c) -> c.setParam("SERVICE").setRegexp(WMS)); + } + } diff --git a/xplan-gateway/src/main/java/de/latlon/xplanbox/gateway/XPlanGatewayApplication.java b/xplan-gateway/src/main/java/de/latlon/xplanbox/gateway/XPlanGatewayApplication.java index 14bb9fa78..6a5b6fd03 100644 --- a/xplan-gateway/src/main/java/de/latlon/xplanbox/gateway/XPlanGatewayApplication.java +++ b/xplan-gateway/src/main/java/de/latlon/xplanbox/gateway/XPlanGatewayApplication.java @@ -29,7 +29,7 @@ import org.springframework.context.annotation.Import; * @since 8.0 */ @SpringBootApplication -@Import(Configuration.class) +@Import({ Configuration.class, CaseInsensitiveQueryRoutePredicateFactory.class }) public class XPlanGatewayApplication { public static void main(String[] args) { diff --git a/xplan-gateway/src/main/resources/application.properties b/xplan-gateway/src/main/resources/application.properties index 8ea924ecf..a4d341cd5 100644 --- a/xplan-gateway/src/main/resources/application.properties +++ b/xplan-gateway/src/main/resources/application.properties @@ -26,3 +26,4 @@ spring.main.banner-mode=off xplanbox.gateway.rewrite.backend.xplan-mapserver.uri=${XPLAN_MAPSERVER_URL_INTERNAL:http://xplan-mapserver:8080} xplanbox.gateway.rewrite.backend.xplan-mapproxy.uri=${XPLAN_MAPPROXY_URL_INTERNAL:http://xplan-mapproxy:8080} xplanbox.gateway.rewrite.backend.xplan-services.uri=${XPLAN_SERVICES_URL_INTERNAL:http://xplan-services} +xplanbox.gateway.rewrite.backend.xplan-validator-wms.uri=${XPLAN_VALIDATOR_WMS_URL_INTERNAL:http://xplan-validator-wms:8080} diff --git a/xplan-gateway/src/test/java/de/latlon/xplanbox/gateway/ConfigurationTest.java b/xplan-gateway/src/test/java/de/latlon/xplanbox/gateway/ConfigurationTest.java index 7eb613f08..f0926a0ad 100644 --- a/xplan-gateway/src/test/java/de/latlon/xplanbox/gateway/ConfigurationTest.java +++ b/xplan-gateway/src/test/java/de/latlon/xplanbox/gateway/ConfigurationTest.java @@ -7,6 +7,7 @@ import java.net.InetSocketAddress; import java.util.ArrayList; import java.util.List; +import com.sun.net.httpserver.HttpServer; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Test; import org.slf4j.Logger; @@ -20,8 +21,6 @@ import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; import org.springframework.test.web.reactive.server.WebTestClient; -import com.sun.net.httpserver.HttpServer; - /** * Inspired from https://www.baeldung.com/spring-cloud-gateway-url-rewriting */ @@ -73,11 +72,10 @@ class ConfigurationTest { @DynamicPropertySource static void registerBackendServer(DynamicPropertyRegistry registry) { - startAndRegister(registry, "xplan-mapserver"); startAndRegister(registry, "xplan-mapproxy"); startAndRegister(registry, "xplan-services"); - + startAndRegister(registry, "xplan-validator-wms"); } private static void startAndRegister(DynamicPropertyRegistry registry, String serviceName) { @@ -93,35 +91,52 @@ class ConfigurationTest { mockServers.forEach((s) -> s.stop(1)); } + // /xplan-ows/validator?SERVICE=WMS -> /xplan-validator-wms/services/wms + @Test + void servicesValidatorWms() { + testForward( + "/xplan-ows/validator?SERVICE=WMS -> [xplan-validator-wms]/xplan-validator-wms/services/wms?SERVICE=WMS"); + testForward( + "/xplan-ows/validator?SERVicE=WMS&foo=123 -> [xplan-validator-wms]/xplan-validator-wms/services/wms?SERVicE=WMS&foo=123"); + } + + // /xplan-ows/getAttachment -> [xplan-services]/xplan-wms/getAttachment + @Test + void servicesGetAttachment() { + testForward("/xplan-ows/getAttachment -> [xplan-services]/xplan-wms/getAttachment"); + } + // /xplan-ows/syn?SERVICE=WMS -> [xplan-services]/xplan-wms/services/wms @Test void servicesSynWms() { testForward("/xplan-ows/syn?SERVICE=WMS -> [xplan-services]/xplan-wms/services/wms?SERVICE=WMS"); testForward( - "/xplan-ows/syn?SERVICE=WMS&foo=123 -> [xplan-services]/xplan-wms/services/wms?SERVICE=WMS&foo=123"); + "/xplan-ows/syn?ServICE=WMS&foo=123 -> [xplan-services]/xplan-wms/services/wms?ServICE=WMS&foo=123"); } // /xplan-ows/syn-pre?SERVICE=WMS -> [xplan-services]/xplan-wms/services/wmspre @Test void servicesSynWmsPreWms() { testForward("/xplan-ows/syn-pre?SERVICE=WMS -> [xplan-services]/xplan-wms/services/wmspre?SERVICE=WMS"); + testForward("/xplan-ows/syn-pre?service=WMS -> [xplan-services]/xplan-wms/services/wmspre?service=WMS"); } // /xplan-ows/syn-archive?SERVICE=WMS-> [xplan-services]/xplan-wms/services/wmsarchive @Test void servicesSynWmsArchiveWms() { testForward("/xplan-ows/syn-archive?SERVICE=WMS -> [xplan-services]/xplan-wms/services/wmsarchive?SERVICE=WMS"); + testForward("/xplan-ows/syn-archive?SErvICE=WMS -> [xplan-services]/xplan-wms/services/wmsarchive?SErvICE=WMS"); } // /xplan-ows/syn/planart/bp?SERVICE=WMS -> [xplan-services]/xplan-wms/services/bpwms // (analog: fpwms, lpwms, rpwms, sowms) @Test void servicesSynWmsPlanart() { - testForward("/xplan-ows/syn/planart/bp?SERVICE=WMS -> [xplan-services]/xplan-wms/services/bpwms?SERVICE=WMS"); - testForward("/xplan-ows/syn/planart/fp?SERVICE=WMS -> [xplan-services]/xplan-wms/services/fpwms?SERVICE=WMS"); - testForward("/xplan-ows/syn/planart/lp?SERVICE=WMS -> [xplan-services]/xplan-wms/services/lpwms?SERVICE=WMS"); - testForward("/xplan-ows/syn/planart/rp?SERVICE=WMS -> [xplan-services]/xplan-wms/services/rpwms?SERVICE=WMS"); - testForward("/xplan-ows/syn/planart/so?SERVICE=WMS -> [xplan-services]/xplan-wms/services/sowms?SERVICE=WMS"); + testForward("/xplan-ows/syn/planart/bp?sERVICE=WMS -> [xplan-services]/xplan-wms/services/bpwms?sERVICE=WMS"); + testForward("/xplan-ows/syn/planart/fp?SeRVICE=WMS -> [xplan-services]/xplan-wms/services/fpwms?SeRVICE=WMS"); + testForward("/xplan-ows/syn/planart/lp?SErVICE=WMS -> [xplan-services]/xplan-wms/services/lpwms?SErVICE=WMS"); + testForward("/xplan-ows/syn/planart/rp?SERvICE=WMS -> [xplan-services]/xplan-wms/services/rpwms?SERvICE=WMS"); + testForward("/xplan-ows/syn/planart/so?SERVicE=WMS -> [xplan-services]/xplan-wms/services/sowms?SERVicE=WMS"); } // /xplan-ows/syn-pre/planart/bp?SERVICE=WMS -> @@ -130,15 +145,15 @@ class ConfigurationTest { @Test void servicesSynPreWmsPlanart() { testForward( - "/xplan-ows/syn-pre/planart/bp?SERVICE=WMS -> [xplan-services]/xplan-wms/services/bpwmspre?SERVICE=WMS"); + "/xplan-ows/syn-pre/planart/bp?SERVICe=WMS -> [xplan-services]/xplan-wms/services/bpwmspre?SERVICe=WMS"); testForward( - "/xplan-ows/syn-pre/planart/fp?SERVICE=WMS -> [xplan-services]/xplan-wms/services/fpwmspre?SERVICE=WMS"); + "/xplan-ows/syn-pre/planart/fp?SERVIcE=WMS -> [xplan-services]/xplan-wms/services/fpwmspre?SERVIcE=WMS"); testForward( - "/xplan-ows/syn-pre/planart/lp?SERVICE=WMS -> [xplan-services]/xplan-wms/services/lpwmspre?SERVICE=WMS"); + "/xplan-ows/syn-pre/planart/lp?SERViCE=WMS -> [xplan-services]/xplan-wms/services/lpwmspre?SERViCE=WMS"); testForward( - "/xplan-ows/syn-pre/planart/rp?SERVICE=WMS -> [xplan-services]/xplan-wms/services/rpwmspre?SERVICE=WMS"); + "/xplan-ows/syn-pre/planart/rp?SERvICE=WMS -> [xplan-services]/xplan-wms/services/rpwmspre?SERvICE=WMS"); testForward( - "/xplan-ows/syn-pre/planart/so?SERVICE=WMS -> [xplan-services]/xplan-wms/services/sowmspre?SERVICE=WMS"); + "/xplan-ows/syn-pre/planart/so?SErVICE=WMS -> [xplan-services]/xplan-wms/services/sowmspre?SErVICE=WMS"); } // /xplan-ows/syn-archive/planart/bp?SERVICE=WMS -> @@ -149,7 +164,7 @@ class ConfigurationTest { testForward( "/xplan-ows/syn-archive/planart/bp?SERVICE=WMS -> [xplan-services]/xplan-wms/services/bpwmsarchive?SERVICE=WMS"); testForward( - "/xplan-ows/syn-archive/planart/fp?SERVICE=WMS -> [xplan-services]/xplan-wms/services/fpwmsarchive?SERVICE=WMS"); + "/xplan-ows/syn-archive/planart/fp?service=WMS -> [xplan-services]/xplan-wms/services/fpwmsarchive?service=WMS"); testForward( "/xplan-ows/syn-archive/planart/lp?SERVICE=WMS -> [xplan-services]/xplan-wms/services/lpwmsarchive?SERVICE=WMS"); testForward( @@ -164,6 +179,8 @@ class ConfigurationTest { void servicesSynWmsPlanwerk() { testForward( "/xplan-ows/syn/planwerk/foo?SERVICE=WMS -> [xplan-services]/xplan-wms/services/planwerkwms/planname/foo?SERVICE=WMS"); + testForward( + "/xplan-ows/syn/planwerk/foo?service=WMS -> [xplan-services]/xplan-wms/services/planwerkwms/planname/foo?service=WMS"); } // /xplan-ows/syn-pre/planwerk/{planName}?SERVICE=WMS -> @@ -172,12 +189,25 @@ class ConfigurationTest { void servicesSynPreWmsPlanwerk() { testForward( "/xplan-ows/syn-pre/planwerk/foo?SERVICE=WMS -> [xplan-services]/xplan-wms/services/planwerkwmspre/planname/foo?SERVICE=WMS"); + testForward( + "/xplan-ows/syn-pre/planwerk/foo?SERviCE=WMS -> [xplan-services]/xplan-wms/services/planwerkwmspre/planname/foo?SERviCE=WMS"); + } + + // /xplan-ows/syn-archive/planwerk/{planName}?SERVICE=WMS -> + // [xplan-services]/xplan-wms/services/planwerkwmsarchive/planname/{planName} + @Test + void servicesSynArchiveWmsPlanwerk() { + testForward( + "/xplan-ows/syn-archive/planwerk/foo?SERVICE=WMS -> [xplan-services]/xplan-wms/services/planwerkwmsarchive/planname/foo?SERVICE=WMS"); + testForward( + "/xplan-ows/syn-archive/planwerk/foo?SERVIce=WMS -> [xplan-services]/xplan-wms/services/planwerkwmsarchive/planname/foo?SERVIce=WMS"); } // /xplan-ows/syn?SERVICE=WFS -> [xplan-services]/xplansyn-wfs/services/xplansynwfs @Test void servicesSynWfs() { testForward("/xplan-ows/syn?SERVICE=WFS -> [xplan-services]/xplansyn-wfs/services/xplansynwfs?SERVICE=WFS"); + testForward("/xplan-ows/syn?SErVICE=WFS -> [xplan-services]/xplansyn-wfs/services/xplansynwfs?SErVICE=WFS"); } // /xplan-ows/syn-pre?SERVICE=WFS -> @@ -186,6 +216,8 @@ class ConfigurationTest { void servicesSynPreWfs() { testForward( "/xplan-ows/syn-pre?SERVICE=WFS -> [xplan-services]/xplansyn-wfs/services/xplansynwfspre?SERVICE=WFS"); + testForward( + "/xplan-ows/syn-pre?service=WFS -> [xplan-services]/xplansyn-wfs/services/xplansynwfspre?service=WFS"); } // /xplan-ows/syn-archive?SERVICE=WFS -> @@ -194,6 +226,8 @@ class ConfigurationTest { void servicesSynArchiveWfs() { testForward( "/xplan-ows/syn-archive?SERVICE=WFS -> [xplan-services]/xplansyn-wfs/services/xplansynwfsarchive?SERVICE=WFS"); + testForward( + "/xplan-ows/syn-archive?SERVice=WFS -> [xplan-services]/xplansyn-wfs/services/xplansynwfsarchive?SERVice=WFS"); } // /xplan-ows/5.1?SERVICE=WFS etc. -> [xplan-services]/xplan-wfs/services/wfs51 @@ -215,13 +249,13 @@ class ConfigurationTest { // (analog: wfs40pre,wfs41pre,wfs50pre,wfs51pre,wfs52pre,wfs53pre,wfs54pre,wfs60pre) @Test void servicesSynPreVersionWfs() { - testForward("/xplan-ows/4.0-pre?SERVICE=WFS -> [xplan-services]/xplan-wfs/services/wfs40pre?SERVICE=WFS"); - testForward("/xplan-ows/4.1-pre?SERVICE=WFS -> [xplan-services]/xplan-wfs/services/wfs41pre?SERVICE=WFS"); - testForward("/xplan-ows/5.0-pre?SERVICE=WFS -> [xplan-services]/xplan-wfs/services/wfs50pre?SERVICE=WFS"); - testForward("/xplan-ows/5.1-pre?SERVICE=WFS -> [xplan-services]/xplan-wfs/services/wfs51pre?SERVICE=WFS"); - testForward("/xplan-ows/5.2-pre?SERVICE=WFS -> [xplan-services]/xplan-wfs/services/wfs52pre?SERVICE=WFS"); - testForward("/xplan-ows/5.3-pre?SERVICE=WFS -> [xplan-services]/xplan-wfs/services/wfs53pre?SERVICE=WFS"); - testForward("/xplan-ows/5.4-pre?SERVICE=WFS -> [xplan-services]/xplan-wfs/services/wfs54pre?SERVICE=WFS"); + testForward("/xplan-ows/4.0-pre?sERVICE=WFS -> [xplan-services]/xplan-wfs/services/wfs40pre?sERVICE=WFS"); + testForward("/xplan-ows/4.1-pre?SeRVICE=WFS -> [xplan-services]/xplan-wfs/services/wfs41pre?SeRVICE=WFS"); + testForward("/xplan-ows/5.0-pre?SErVICE=WFS -> [xplan-services]/xplan-wfs/services/wfs50pre?SErVICE=WFS"); + testForward("/xplan-ows/5.1-pre?SERvICE=WFS -> [xplan-services]/xplan-wfs/services/wfs51pre?SERvICE=WFS"); + testForward("/xplan-ows/5.2-pre?SERViCE=WFS -> [xplan-services]/xplan-wfs/services/wfs52pre?SERViCE=WFS"); + testForward("/xplan-ows/5.3-pre?SERVIcE=WFS -> [xplan-services]/xplan-wfs/services/wfs53pre?SERVIcE=WFS"); + testForward("/xplan-ows/5.4-pre?SERVICe=WFS -> [xplan-services]/xplan-wfs/services/wfs54pre?SERVICe=WFS"); testForward("/xplan-ows/6.0-pre?SERVICE=WFS -> [xplan-services]/xplan-wfs/services/wfs60pre?SERVICE=WFS"); } @@ -231,19 +265,19 @@ class ConfigurationTest { @Test void servicesSynArchiveVersionWfs() { testForward( - "/xplan-ows/4.0-archive?SERVICE=WFS -> [xplan-services]/xplan-wfs/services/wfs40archive?SERVICE=WFS"); + "/xplan-ows/4.0-archive?sERVICE=WFS -> [xplan-services]/xplan-wfs/services/wfs40archive?sERVICE=WFS"); testForward( - "/xplan-ows/4.1-archive?SERVICE=WFS -> [xplan-services]/xplan-wfs/services/wfs41archive?SERVICE=WFS"); + "/xplan-ows/4.1-archive?SeRVICE=WFS -> [xplan-services]/xplan-wfs/services/wfs41archive?SeRVICE=WFS"); testForward( - "/xplan-ows/5.0-archive?SERVICE=WFS -> [xplan-services]/xplan-wfs/services/wfs50archive?SERVICE=WFS"); + "/xplan-ows/5.0-archive?SErVICE=WFS -> [xplan-services]/xplan-wfs/services/wfs50archive?SErVICE=WFS"); testForward( - "/xplan-ows/5.1-archive?SERVICE=WFS -> [xplan-services]/xplan-wfs/services/wfs51archive?SERVICE=WFS"); + "/xplan-ows/5.1-archive?SERvICE=WFS -> [xplan-services]/xplan-wfs/services/wfs51archive?SERvICE=WFS"); testForward( - "/xplan-ows/5.2-archive?SERVICE=WFS -> [xplan-services]/xplan-wfs/services/wfs52archive?SERVICE=WFS"); + "/xplan-ows/5.2-archive?SERViCE=WFS -> [xplan-services]/xplan-wfs/services/wfs52archive?SERViCE=WFS"); testForward( - "/xplan-ows/5.3-archive?SERVICE=WFS -> [xplan-services]/xplan-wfs/services/wfs53archive?SERVICE=WFS"); + "/xplan-ows/5.3-archive?SERVIcE=WFS -> [xplan-services]/xplan-wfs/services/wfs53archive?SERVIcE=WFS"); testForward( - "/xplan-ows/5.4-archive?SERVICE=WFS -> [xplan-services]/xplan-wfs/services/wfs54archive?SERVICE=WFS"); + "/xplan-ows/5.4-archive?SERVICe=WFS -> [xplan-services]/xplan-wfs/services/wfs54archive?SERVICe=WFS"); testForward( "/xplan-ows/6.0-archive?SERVICE=WFS -> [xplan-services]/xplan-wfs/services/wfs60archive?SERVICE=WFS"); } diff --git a/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/PlanInfoBuilder.java b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/PlanInfoBuilder.java index 2dea72d5a..3191335f5 100644 --- a/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/PlanInfoBuilder.java +++ b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/PlanInfoBuilder.java @@ -202,8 +202,8 @@ public class PlanInfoBuilder { }); } - if (managerApiConfiguration.getWmsUrl() != null) { - Link planwerkWmsLink = createWmsEndpointUrl(); + if (managerApiConfiguration.getXPlanGatewayUrl() != null) { + Link planwerkWmsLink = createWmsEndpointUrl(managerApiConfiguration.getXPlanGatewayUrl()); if (planwerkWmsLink != null) links.add(planwerkWmsLink); } @@ -232,17 +232,10 @@ public class PlanInfoBuilder { return null; } - private Link createWmsEndpointUrl() { + private Link createWmsEndpointUrl(URI xplanGatewayUrl) { try { - URIBuilder uriBuilder = new URIBuilder(managerApiConfiguration.getWmsUrl()); - List<String> pathSegments = new ArrayList<>(); - pathSegments.addAll(uriBuilder.getPathSegments()); - pathSegments.add("services"); - pathSegments.add(detectService()); - pathSegments.add("planname"); - pathSegments.add(xPlan.getName().replace("/", "")); - pathSegments.remove(""); - uriBuilder.setPathSegments(pathSegments); + URIBuilder uriBuilder = new URIBuilder(xplanGatewayUrl); + uriBuilder.setPathSegments(createPathSegments(uriBuilder)); URI planwerkWmsRef = uriBuilder.build(); return (Link) new Link().rel(PLANWERKWMS).href(planwerkWmsRef).title(xPlan.getName()); } @@ -252,6 +245,17 @@ public class PlanInfoBuilder { return null; } + private List<String> createPathSegments(URIBuilder uriBuilder) { + List<String> pathSegments = new ArrayList<>(uriBuilder.getPathSegments()); + // /xplan-ows/syn/planwerk/{planName} + pathSegments.add("xplan-ows"); + pathSegments.add(detectSynPathSegmentWithPlanStatus()); + pathSegments.add("planwerk"); + pathSegments.add(xPlan.getName().replace("/", "")); + pathSegments.remove(""); + return pathSegments; + } + private PlanInfoBbox bbox() { XPlanEnvelope bbox = xPlan.getBbox(); if (bbox != null) @@ -263,15 +267,15 @@ public class PlanInfoBuilder { return null; } - private String detectService() { + private String detectSynPathSegmentWithPlanStatus() { if (xPlan.getPlanStatus() != null) switch (xPlan.getPlanStatus()) { case ARCHIVIERT: - return "planwerkwmsarchive"; + return "syn-archive"; case IN_AUFSTELLUNG: - return "planwerkwmspre"; + return "syn-pre"; } - return "planwerkwms"; + return "syn"; } } diff --git a/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/config/ApplicationContext.java b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/config/ApplicationContext.java index cd4cc2fb8..5962461d7 100644 --- a/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/config/ApplicationContext.java +++ b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/config/ApplicationContext.java @@ -309,9 +309,9 @@ public class ApplicationContext { } @Bean - public ManagerApiConfiguration managerApiConfiguration(PropertiesLoader managerPropertiesLoader) - throws ConfigurationException { - return new ManagerApiConfiguration(managerPropertiesLoader); + public ManagerApiConfiguration managerApiConfiguration(PropertiesLoader managerPropertiesLoader, + @Value("${xplanbox.gateway.url}") String xplanGatewayUrl) throws ConfigurationException { + return new ManagerApiConfiguration(managerPropertiesLoader, xplanGatewayUrl); } @Bean diff --git a/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/config/ManagerApiConfiguration.java b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/config/ManagerApiConfiguration.java index 6fe49104e..d8f92aafb 100644 --- a/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/config/ManagerApiConfiguration.java +++ b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/config/ManagerApiConfiguration.java @@ -38,22 +38,22 @@ public class ManagerApiConfiguration extends ApiConfiguration { private static final String MANAGER_API_CONFIGURATION_PROPERTIES = "managerApiConfiguration.properties"; - private static final String WMS_URL = "wmsUrl"; - - private URI wmsUrl; + private final URI xplanGatewayUrl; private DefaultValidationConfiguration defaultValidationConfiguration; - public ManagerApiConfiguration(PropertiesLoader propertiesLoader) throws ConfigurationException { + public ManagerApiConfiguration(PropertiesLoader propertiesLoader, String xplanGatewayUrl) + throws ConfigurationException { super(propertiesLoader, MANAGER_API_CONFIGURATION_PROPERTIES); + this.xplanGatewayUrl = parseUri(xplanGatewayUrl); logProperties(); } /** * @return the configured WMS url, may be <code>null</code> */ - public URI getWmsUrl() { - return this.wmsUrl; + public URI getXPlanGatewayUrl() { + return this.xplanGatewayUrl; } /** @@ -65,7 +65,7 @@ public class ManagerApiConfiguration extends ApiConfiguration { @Override protected void loadProperties(Properties properties) throws ConfigurationException { - wmsUrl = parseUri(properties, WMS_URL); + defaultValidationConfiguration = parseDefaultValidationConfiguration(properties); } @@ -79,7 +79,7 @@ public class ManagerApiConfiguration extends ApiConfiguration { LOG.info("Configuration of the XPlanManagerApi:"); LOG.info("-------------------------------------------"); LOG.info(" API URL: {}", getApiUrl()); - LOG.info(" WMS URL: {}", wmsUrl); + LOG.info(" XPlanGateway URL: {}", xplanGatewayUrl); LOG.info("-------------------------------------------"); LOG.info(" default validation configuration"); LOG.info(" - skip semantisch: {}", defaultValidationConfiguration.isSkipSemantisch()); diff --git a/xplan-manager/xplan-manager-api/src/main/resources/application.properties b/xplan-manager/xplan-manager-api/src/main/resources/application.properties index 4297b6a58..df0ec93fc 100644 --- a/xplan-manager/xplan-manager-api/src/main/resources/application.properties +++ b/xplan-manager/xplan-manager-api/src/main/resources/application.properties @@ -48,4 +48,6 @@ xplanbox.s3.secretKey=${XPLAN_S3_SECRET_ACCESS_KEY} xplanbox.validation.profiles=${XPLAN_VALIDATION_PROFILES:} xplanbox.s3.bucket.validation=${XPLAN_S3_BUCKET_VALIDATION:validation} -xplanbox.services.crs=${XPLAN_SERVICES_DEFAULT_CRS:EPSG:25832} \ No newline at end of file +xplanbox.services.crs=${XPLAN_SERVICES_DEFAULT_CRS:EPSG:25832} + +xplanbox.gateway.url=${XPLAN_GATEWAY_URL_PUBLIC:} \ No newline at end of file diff --git a/xplan-manager/xplan-manager-api/src/test/java/de/latlon/xplanbox/api/manager/PlanInfoBuilderTest.java b/xplan-manager/xplan-manager-api/src/test/java/de/latlon/xplanbox/api/manager/PlanInfoBuilderTest.java index 830602514..d18ec385f 100644 --- a/xplan-manager/xplan-manager-api/src/test/java/de/latlon/xplanbox/api/manager/PlanInfoBuilderTest.java +++ b/xplan-manager/xplan-manager-api/src/test/java/de/latlon/xplanbox/api/manager/PlanInfoBuilderTest.java @@ -59,7 +59,7 @@ public class PlanInfoBuilderTest { .findFirst(); assertThat(planwerkWms.isPresent()).isTrue(); assertThat(planwerkWms.get().getHref().toString()) - .isEqualTo("http://example.org/xplan-services-wms/services/planwerkwms/planname/plan"); + .isEqualTo("http://xplan-gateway/xplan-ows/syn/planwerk/plan"); de.latlon.xplanbox.api.manager.v2.model.PlanInfoXplanModelData xplanModelData = planInfo.getXplanModelData(); assertThat(xplanModelData.getBereich().get(0).getName()).isEqualTo("testbereich"); @@ -98,8 +98,8 @@ public class PlanInfoBuilderTest { private static ManagerApiConfiguration createManagerApiConfiguration() throws URISyntaxException { ManagerApiConfiguration managerApiConfiguration = mock(ManagerApiConfiguration.class); - when(managerApiConfiguration.getApiUrl()).thenReturn(new URI("http://example.org/xplan-manager-api")); - when(managerApiConfiguration.getWmsUrl()).thenReturn(new URI("http://example.org/xplan-services-wms/")); + when(managerApiConfiguration.getApiUrl()).thenReturn(new URI("http://xplan-manager-api/xplan-manager-api")); + when(managerApiConfiguration.getXPlanGatewayUrl()).thenReturn(new URI("http://xplan-gateway")); return managerApiConfiguration; } diff --git a/xplan-manager/xplan-manager-config/src/main/resources/managerApiConfiguration.properties b/xplan-manager/xplan-manager-config/src/main/resources/managerApiConfiguration.properties index cf9f44f8c..0042656a2 100644 --- a/xplan-manager/xplan-manager-config/src/main/resources/managerApiConfiguration.properties +++ b/xplan-manager/xplan-manager-config/src/main/resources/managerApiConfiguration.properties @@ -18,7 +18,7 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. # #L% ### -# URL der XPlanManagerAPI, die im OpenAPI Dokument ausgegeben wird und für die Erstellung der self- bzw. alternate-Links verwendet wird +# URL der XPlanManagerAPI, die im OpenAPI Dokument ausgegeben wird und fuer die Erstellung der self- bzw. alternate-Links verwendet wird # Die Angabe ist verpflichtend. apiUrl= @@ -31,10 +31,6 @@ termsOfServiceUrl= # URL zur Dokumentation der xPlanBox (wenn diese Option fehlt, erfolgt keine Ausgabe) documentationUrl= -# URL des XPlanPlanwerkWMS -# Default: keine URL -wmsUrl= - # Standard-Validierungslevel skipSemantisch=false skipGeometrisch=false diff --git a/xplan-manager/xplan-manager-config/src/main/resources/managerWebConfiguration.properties b/xplan-manager/xplan-manager-config/src/main/resources/managerWebConfiguration.properties index 551909d1e..7bffc66a7 100644 --- a/xplan-manager/xplan-manager-config/src/main/resources/managerWebConfiguration.properties +++ b/xplan-manager/xplan-manager-config/src/main/resources/managerWebConfiguration.properties @@ -29,10 +29,6 @@ activatePublishingInspirePlu=${isPublishingInspirePluActivated} hiddenColumns=${hiddenColumns} ## map preview ## -wmsUrl=${wmsUrl} -wmsEndpoint=${wmsEndpoint} -wmsPreEndpoint=${wmsPreEndpoint} -wmsArchiveEndpoint=${wmsArchiveEndpoint} basemapUrl=${basemapUrl} basemapName=${basemapName} basemapLayer=${basemapLayer} diff --git a/xplan-manager/xplan-manager-web/src/main/java/de/latlon/xplan/manager/web/client/utils/WmsUrlUtils.java b/xplan-manager/xplan-manager-web/src/main/java/de/latlon/xplan/manager/web/client/utils/WmsUrlUtils.java index 3780bd8cf..2954d64fc 100644 --- a/xplan-manager/xplan-manager-web/src/main/java/de/latlon/xplan/manager/web/client/utils/WmsUrlUtils.java +++ b/xplan-manager/xplan-manager-web/src/main/java/de/latlon/xplan/manager/web/client/utils/WmsUrlUtils.java @@ -8,29 +8,25 @@ * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * This program 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 General Public License for more details. - * + * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * #L% */ package de.latlon.xplan.manager.web.client.utils; +import static de.latlon.xplan.manager.web.shared.PlanStatus.ARCHIVIERT; +import static de.latlon.xplan.manager.web.shared.PlanStatus.IN_AUFSTELLUNG; + import de.latlon.xplan.manager.web.shared.MapPreviewConfiguration; import de.latlon.xplan.manager.web.shared.PlanStatus; import org.gwtopenmaps.openlayers.client.Bounds; -import java.io.UnsupportedEncodingException; -import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; - -import static de.latlon.xplan.manager.web.shared.PlanStatus.ARCHIVIERT; -import static de.latlon.xplan.manager.web.shared.PlanStatus.IN_AUFSTELLUNG; - /** * Contains some useful methods to create WMS urls. * @@ -43,44 +39,48 @@ public final class WmsUrlUtils { } /** - * Determines the correct WMS url. If the configured wms url ends with a '?' the - * configured url is returned (plan status is ignored). If the configured wms url ends - * not with 'services' a '?' is appended to the configured url (plan status is - * ignored). Otherwise the correct endpoint and a '?' is appenden. + * Determines the correct XPlanWMS url via XPlanGateway: + * <ul> + * <li>/xplan-ows/syn</li> + * <li>/xplan-ows/syn-pre</li> + * <li>/xplan-ows/syn-archive</li> + * </ul> * @param planStatus status of the plan, may be <code>null</code> (means * PlanStatus.FESTGESTELLT) * @param configuration never <code>null</code> * @return the url of the wms (ending with a '?'), never <code>null</code> */ public static String determineWmsUrl(PlanStatus planStatus, MapPreviewConfiguration configuration) { - String wmsUrl = configuration.getWmsUrl(); - if (wmsUrl.endsWith("?")) - return wmsUrl; - if (wmsUrl.endsWith("/")) - wmsUrl = wmsUrl.substring(0, wmsUrl.length() - 1); - if (!wmsUrl.endsWith("services")) - return wmsUrl + "?"; - String endpointToAdd = detectEndpointToAdd(configuration, planStatus); - if (endpointToAdd == null) - return wmsUrl + "?"; - return wmsUrl + "/" + endpointToAdd + "?"; + String xplanGatewayUrl = retrieveXPlanWerkUrl(configuration); + String synStep = detectSynStepToAdd(planStatus); + return xplanGatewayUrl + "xplan-ows/" + synStep + "?"; } + /** + * Determines the correct XPlanWerkWMS url via XPlanGateway: + * <ul> + * <li>/xplan-ows/syn/planwerk/{planName}</li> + * <li>/xplan-ows/syn-pre/planwerk/{planName}</li> + * <li>/xplan-ows/syn-archive/planwerk/{planName}</li> + * </ul> + * @param planStatus status of the plan, may be <code>null</code> (means + * PlanStatus.FESTGESTELLT) + * @param configuration never <code>null</code> + * @return the url of the wms (ending with a '?'), never <code>null</code> + */ public static String createPlanwerkWmsUrl(String planname, MapPreviewConfiguration configuration, PlanStatus planStatus) { - String wmsUrl = determineWmsUrl(null, configuration); - int servicesIndex = wmsUrl.lastIndexOf("services"); - if (servicesIndex < 0) - return null; - wmsUrl = wmsUrl.substring(0, servicesIndex); - StringBuilder planwerkWmsUrl = new StringBuilder(); - planwerkWmsUrl.append(wmsUrl); - planwerkWmsUrl.append("services/"); - planwerkWmsUrl.append(planwerkWmsPath(planStatus)); - planwerkWmsUrl.append("/planname/"); - planwerkWmsUrl.append(planname); - planwerkWmsUrl.append("?request=GetCapabilities&service=WMS&version=1.3.0"); - return planwerkWmsUrl.toString(); + String xplanGatewayUrl = retrieveXPlanWerkUrl(configuration); + String synStep = detectSynStepToAdd(planStatus); + return xplanGatewayUrl + "xplan-ows/" + synStep + "/planwerk/" + planname + + "?REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.3.0"; + } + + private static String retrieveXPlanWerkUrl(MapPreviewConfiguration configuration) { + String xplanGatewayUrl = configuration.getXPlanGatewayUrl(); + if (xplanGatewayUrl.endsWith("/")) + return xplanGatewayUrl; + return xplanGatewayUrl + "/"; } public static String createUrl(final MapPreviewConfiguration configuration, final String planType, @@ -102,35 +102,12 @@ public final class WmsUrlUtils { return urlBuilder.toString(); } - private static String planwerkWmsPath(PlanStatus planStatus) { - switch (planStatus) { - case ARCHIVIERT: - return "planwerkwmsarchive"; - case IN_AUFSTELLUNG: - return "planwerkwmspre"; - default: - return "planwerkwms"; - } - } - - private static String detectEndpointToAdd(MapPreviewConfiguration configuration, PlanStatus planStatus) { - String wmsEndpoint = configuration.getWmsEndpoint(); - String wmsPreEndpoint = configuration.getWmsPreEndpoint(); - String wmsArchiveEndpoint = configuration.getWmsArchiveEndpoint(); - boolean isWmsEndpointConfigured = isConfigured(wmsEndpoint); - boolean isWmsPreEndpointConfigured = isConfigured(wmsPreEndpoint); - boolean isWmsArchiveEndpointConfigured = isConfigured(wmsArchiveEndpoint); - if (IN_AUFSTELLUNG.equals(planStatus) && isWmsPreEndpointConfigured) - return wmsPreEndpoint; - if (ARCHIVIERT.equals(planStatus) && isWmsArchiveEndpointConfigured) - return wmsArchiveEndpoint; - if (isWmsEndpointConfigured) - return wmsEndpoint; - if (isWmsPreEndpointConfigured) - return wmsPreEndpoint; - if (isWmsArchiveEndpointConfigured) - return wmsArchiveEndpoint; - return null; + private static String detectSynStepToAdd(PlanStatus planStatus) { + if (IN_AUFSTELLUNG.equals(planStatus)) + return "syn-pre"; + if (ARCHIVIERT.equals(planStatus)) + return "syn-archive"; + return "syn"; } private static String createLayerValue(String planType) { @@ -159,8 +136,4 @@ public final class WmsUrlUtils { return bboxBuilder.toString(); } - private static boolean isConfigured(String string) { - return string != null && !string.isEmpty(); - } - } diff --git a/xplan-manager/xplan-manager-web/src/main/java/de/latlon/xplan/manager/web/server/configuration/ManagerWebConfigurationRetriever.java b/xplan-manager/xplan-manager-web/src/main/java/de/latlon/xplan/manager/web/server/configuration/ManagerWebConfigurationRetriever.java index 4bf15d386..13ef0368a 100644 --- a/xplan-manager/xplan-manager-web/src/main/java/de/latlon/xplan/manager/web/server/configuration/ManagerWebConfigurationRetriever.java +++ b/xplan-manager/xplan-manager-web/src/main/java/de/latlon/xplan/manager/web/server/configuration/ManagerWebConfigurationRetriever.java @@ -20,6 +20,10 @@ */ package de.latlon.xplan.manager.web.server.configuration; +import static java.lang.Double.parseDouble; + +import java.util.Properties; + import de.latlon.xplan.commons.configuration.SystemPropertyPropertiesLoader; import de.latlon.xplan.manager.web.shared.ConfigurationException; import de.latlon.xplan.manager.web.shared.ManagerWebConfiguration; @@ -28,10 +32,6 @@ import de.latlon.xplan.manager.web.shared.RasterLayerConfiguration; import de.latlon.xplan.manager.web.shared.VectorLayerConfiguration; import de.latlon.xplan.validator.web.shared.XPlanEnvelope; -import java.util.Properties; - -import static java.lang.Double.parseDouble; - /** * Reads the managerWebConfiguration.properties configuration file. * @@ -42,6 +42,8 @@ public class ManagerWebConfigurationRetriever { private static final String MANAGER_WEB_CONFIGURATION_PROPERTIES = "managerWebConfiguration.properties"; + public static final String XPLAN_GATEWAY_URL_PUBLIC = "XPLAN_GATEWAY_URL_PUBLIC"; + /** * Sets up an instance of <link>ManagerWebConfiguration</link> * @return the web configuration, never <code>null</code> @@ -82,15 +84,12 @@ public class ManagerWebConfigurationRetriever { String basemapUrl = retrieveMandatoryPropertyValue(props, "basemapUrl"); String basemapName = retrieveMandatoryPropertyValue(props, "basemapName"); String basemapLayer = retrieveMandatoryPropertyValue(props, "basemapLayer"); - String wmsUrl = retrieveMandatoryPropertyValue(props, "wmsUrl"); - String wmsEndpoint = props.getProperty("wmsEndpoint"); - String wmsPreEndpoint = props.getProperty("wmsPreEndpoint"); - String wmsArchiveEndpoint = props.getProperty("wmsArchiveEndpoint"); XPlanEnvelope maxExtent = parseMaxExtent(props); VectorLayerConfiguration vectorLayerConfiguration = createVectorLayerConfigurationFromProperties(props); RasterLayerConfiguration rasterLayerConfiguration = createRasterLayerConfigurationFromProperties(props); - return new MapPreviewConfiguration(basemapUrl, basemapName, basemapLayer, wmsUrl, wmsEndpoint, wmsPreEndpoint, - wmsArchiveEndpoint, maxExtent, vectorLayerConfiguration, rasterLayerConfiguration); + String wmsUrl = getMandatoryEnv(XPLAN_GATEWAY_URL_PUBLIC); + return new MapPreviewConfiguration(basemapUrl, basemapName, basemapLayer, wmsUrl, maxExtent, + vectorLayerConfiguration, rasterLayerConfiguration); } private VectorLayerConfiguration createVectorLayerConfigurationFromProperties(Properties props) @@ -117,15 +116,15 @@ public class ManagerWebConfigurationRetriever { soRasterLayer); } - private boolean parseActivateLegislationStatusDialog(Properties props) throws ConfigurationException { + private boolean parseActivateLegislationStatusDialog(Properties props) { return "true".equals(props.getProperty("activateLegislationStatusDialog")); } - private boolean parseActivateEditor(Properties props) throws ConfigurationException { + private boolean parseActivateEditor(Properties props) { return "true".equals(props.getProperty("activateEditor")); } - private boolean parseActivatePublishingInspirePlu(Properties props) throws ConfigurationException { + private boolean parseActivatePublishingInspirePlu(Properties props) { return "true".equals(props.getProperty("activatePublishingInspirePlu")); } @@ -165,4 +164,13 @@ public class ManagerWebConfigurationRetriever { return prop; } + private static String getMandatoryEnv(String key) throws ConfigurationException { + String value = System.getenv(key); + if (value == null || value.isBlank()) + value = System.getProperty(key); + if (value == null || value.isBlank()) + throw new ConfigurationException("Env " + key + " could not be found!"); + return value; + } + } diff --git a/xplan-manager/xplan-manager-web/src/main/java/de/latlon/xplan/manager/web/server/service/ManagerWebConfigurationServiceImpl.java b/xplan-manager/xplan-manager-web/src/main/java/de/latlon/xplan/manager/web/server/service/ManagerWebConfigurationServiceImpl.java index 6c1143a66..189d00514 100644 --- a/xplan-manager/xplan-manager-web/src/main/java/de/latlon/xplan/manager/web/server/service/ManagerWebConfigurationServiceImpl.java +++ b/xplan-manager/xplan-manager-web/src/main/java/de/latlon/xplan/manager/web/server/service/ManagerWebConfigurationServiceImpl.java @@ -20,6 +20,8 @@ */ package de.latlon.xplan.manager.web.server.service; +import static java.lang.String.format; + import com.google.gwt.user.server.rpc.jakarta.XsrfProtectedServiceServlet; import de.latlon.xplan.manager.web.client.service.ManagerWebConfigurationService; import de.latlon.xplan.manager.web.server.configuration.ManagerWebConfigurationRetriever; @@ -31,8 +33,6 @@ import de.latlon.xplan.manager.web.shared.VectorLayerConfiguration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import static java.lang.String.format; - /** * Retrieves configuration for manager web and map preview * @@ -102,7 +102,7 @@ public class ManagerWebConfigurationServiceImpl extends XsrfProtectedServiceServ LOG.info("Basemap URL: {}", configuration.getBasemapUrl()); LOG.info("Basemap Name: {}", configuration.getBasemapName()); LOG.info("Basemap Layer: {}", configuration.getBasemapLayer()); - LOG.info("XPlan WMS URL: {}", configuration.getWmsUrl()); + LOG.info("XPlanGateway URL: {}", configuration.getXPlanGatewayUrl()); LOG.info("-------------------------------------------"); } diff --git a/xplan-manager/xplan-manager-web/src/main/java/de/latlon/xplan/manager/web/shared/MapPreviewConfiguration.java b/xplan-manager/xplan-manager-web/src/main/java/de/latlon/xplan/manager/web/shared/MapPreviewConfiguration.java index 1765714bf..47493fb38 100644 --- a/xplan-manager/xplan-manager-web/src/main/java/de/latlon/xplan/manager/web/shared/MapPreviewConfiguration.java +++ b/xplan-manager/xplan-manager-web/src/main/java/de/latlon/xplan/manager/web/shared/MapPreviewConfiguration.java @@ -20,10 +20,10 @@ */ package de.latlon.xplan.manager.web.shared; -import de.latlon.xplan.validator.web.shared.XPlanEnvelope; - import java.io.Serializable; +import de.latlon.xplan.validator.web.shared.XPlanEnvelope; + /** * Encapsulates a map preview configuration * @@ -40,13 +40,7 @@ public class MapPreviewConfiguration implements Serializable { private String basemapLayer; - private String wmsUrl; - - private String wmsEndpoint; - - private String wmsPreEndpoint; - - private String wmsArchiveEndpoint; + private String xplanGatewayUrl; private XPlanEnvelope mapExtent; @@ -64,35 +58,20 @@ public class MapPreviewConfiguration implements Serializable { * }&layers={layername} * @param basemapName the name of the basemap, may be <code>null</code> * @param basemapLayer the layer of the basemap, never <code>null</code> - * @param wmsUrl the xplan wms url, never <code>null</code> must be of the following - * template format: http://{host}/{service}. If the url ends with '?' or not with - * 'services', the configured url is used as wms url, otherwise the wmsEndpoint or - * wmsPreEndpoint is appended (if configured). - * @param wmsEndpoint endpoint of the default wms, providing the plans with status - * 'FESTGESTELLT', may be <code>null</code> (if the service only provides one wms or - * the wmsUrl is configured as complete endpoint) - * @param wmsPreEndpoint endpoint of the default wms, providing the plans with status - * 'IN_AUFSTELLUNG', may be <code>null</code> (if the service only provides one wms or - * the wmsUrl is configured as complete endpoint) - * @param wmsArchiveEndpoint endpoint of the default wms, providing the plans with - * status 'ARCHIVIERT', may be <code>null</code> (if the service only provides one wms - * or the wmsUrl is configured as complete endpoint) + * @param xplanGatewayUrl the XPlanGateway URL, never <code>null</code> * @param mapExtent the max extent of the map (with crs), never <code>null</code> * @param vectorLayerConfiguration the vector layer configuration, never * <code>null</code> * @param rasterLayerConfiguration the raster layer configuration, never * <code>null</code> */ - public MapPreviewConfiguration(String basemapUrl, String basemapName, String basemapLayer, String wmsUrl, - String wmsEndpoint, String wmsPreEndpoint, String wmsArchiveEndpoint, XPlanEnvelope mapExtent, - VectorLayerConfiguration vectorLayerConfiguration, RasterLayerConfiguration rasterLayerConfiguration) { + public MapPreviewConfiguration(String basemapUrl, String basemapName, String basemapLayer, String xplanGatewayUrl, + XPlanEnvelope mapExtent, VectorLayerConfiguration vectorLayerConfiguration, + RasterLayerConfiguration rasterLayerConfiguration) { this.basemapUrl = basemapUrl; this.basemapName = basemapName; this.basemapLayer = basemapLayer; - this.wmsUrl = wmsUrl; - this.wmsEndpoint = wmsEndpoint; - this.wmsPreEndpoint = wmsPreEndpoint; - this.wmsArchiveEndpoint = wmsArchiveEndpoint; + this.xplanGatewayUrl = xplanGatewayUrl; this.mapExtent = mapExtent; this.vectorLayerConfiguration = vectorLayerConfiguration; this.rasterLayerConfiguration = rasterLayerConfiguration; @@ -110,20 +89,8 @@ public class MapPreviewConfiguration implements Serializable { return basemapLayer; } - public String getWmsUrl() { - return wmsUrl; - } - - public String getWmsEndpoint() { - return wmsEndpoint; - } - - public String getWmsPreEndpoint() { - return wmsPreEndpoint; - } - - public String getWmsArchiveEndpoint() { - return wmsArchiveEndpoint; + public String getXPlanGatewayUrl() { + return xplanGatewayUrl; } public XPlanEnvelope getMapExtent() { @@ -148,9 +115,7 @@ public class MapPreviewConfiguration implements Serializable { result = prime * result + ((mapExtent == null) ? 0 : mapExtent.hashCode()); result = prime * result + ((rasterLayerConfiguration == null) ? 0 : rasterLayerConfiguration.hashCode()); result = prime * result + ((vectorLayerConfiguration == null) ? 0 : vectorLayerConfiguration.hashCode()); - result = prime * result + ((wmsEndpoint == null) ? 0 : wmsEndpoint.hashCode()); - result = prime * result + ((wmsPreEndpoint == null) ? 0 : wmsPreEndpoint.hashCode()); - result = prime * result + ((wmsUrl == null) ? 0 : wmsUrl.hashCode()); + result = prime * result + ((xplanGatewayUrl == null) ? 0 : xplanGatewayUrl.hashCode()); return result; } @@ -199,23 +164,11 @@ public class MapPreviewConfiguration implements Serializable { } else if (!vectorLayerConfiguration.equals(other.vectorLayerConfiguration)) return false; - if (wmsEndpoint == null) { - if (other.wmsEndpoint != null) - return false; - } - else if (!wmsEndpoint.equals(other.wmsEndpoint)) - return false; - if (wmsPreEndpoint == null) { - if (other.wmsPreEndpoint != null) - return false; - } - else if (!wmsPreEndpoint.equals(other.wmsPreEndpoint)) - return false; - if (wmsUrl == null) { - if (other.wmsUrl != null) + if (xplanGatewayUrl == null) { + if (other.xplanGatewayUrl != null) return false; } - else if (!wmsUrl.equals(other.wmsUrl)) + else if (!xplanGatewayUrl.equals(other.xplanGatewayUrl)) return false; return true; } diff --git a/xplan-manager/xplan-manager-web/src/main/resources/de/latlon/xplan/manager/web/server/configuration/managerWebConfiguration.properties b/xplan-manager/xplan-manager-web/src/main/resources/de/latlon/xplan/manager/web/server/configuration/managerWebConfiguration.properties index c16089fa0..593d341e8 100644 --- a/xplan-manager/xplan-manager-web/src/main/resources/de/latlon/xplan/manager/web/server/configuration/managerWebConfiguration.properties +++ b/xplan-manager/xplan-manager-web/src/main/resources/de/latlon/xplan/manager/web/server/configuration/managerWebConfiguration.properties @@ -29,10 +29,6 @@ activatePublishingInspirePlu=false hiddenColumns= ## map preview ## -wmsUrl=http://localhost:8080/xplan-wms/services -wmsEndpoint=wms -wmsPreEndpoint=wmspre -wmsArchiveEndpoint=wmsarchive basemapUrl=http://sg.geodatenzentrum.de/wms_dtk250? basemapName=Basiskarte basemapLayer=dtk250 diff --git a/xplan-manager/xplan-manager-web/src/test/java/de/latlon/xplan/manager/web/client/utils/WmsUrlUtilsTest.java b/xplan-manager/xplan-manager-web/src/test/java/de/latlon/xplan/manager/web/client/utils/WmsUrlUtilsTest.java index 73ff249dd..8a966cd3c 100644 --- a/xplan-manager/xplan-manager-web/src/test/java/de/latlon/xplan/manager/web/client/utils/WmsUrlUtilsTest.java +++ b/xplan-manager/xplan-manager-web/src/test/java/de/latlon/xplan/manager/web/client/utils/WmsUrlUtilsTest.java @@ -26,11 +26,10 @@ import static de.latlon.xplan.manager.web.shared.PlanStatus.IN_AUFSTELLUNG; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.when; +import de.latlon.xplan.manager.web.shared.MapPreviewConfiguration; import org.junit.jupiter.api.Test; import org.mockito.Mockito; -import de.latlon.xplan.manager.web.shared.MapPreviewConfiguration; - /** * @author <a href="mailto:goltz@lat-lon.de">Lyn Goltz</a> * @version $Revision: $, $Date: $ @@ -38,195 +37,105 @@ import de.latlon.xplan.manager.web.shared.MapPreviewConfiguration; class WmsUrlUtilsTest { @Test - void testDetermineWmsUrlWithEndpointAndQuestionmark() throws Exception { - String wmsBaseUrl = "http://localhost:8080/xplan-wms/services/wms?"; - String wmsUrl = WmsUrlUtils.determineWmsUrl(IN_AUFSTELLUNG, mockConfiguration(wmsBaseUrl)); - - assertEquals(wmsBaseUrl, wmsUrl); - } - - @Test - void testDetermineWmsUrlWithEndpoint() throws Exception { - String wmsBaseUrl = "http://localhost:8080/xplan-wms/services/wms"; - String wmsUrl = WmsUrlUtils.determineWmsUrl(IN_AUFSTELLUNG, mockConfiguration(wmsBaseUrl)); - - assertEquals("http://localhost:8080/xplan-wms/services/wms?", wmsUrl); - } - - @Test - void testDetermineWmsUrlWithoutEndpointAndPlanStatusFestgestellt() throws Exception { - String wmsBaseUrl = "http://localhost:8080/xplan-wms/services/"; - String wmsUrl = WmsUrlUtils.determineWmsUrl(FESTGESTELLT, mockConfiguration(wmsBaseUrl)); - - assertEquals("http://localhost:8080/xplan-wms/services/wms?", wmsUrl); - } - - @Test - void testDetermineWmsUrlWithoutEndpointAndPlanStatusInAufstellung() throws Exception { - String wmsBaseUrl = "http://localhost:8080/xplan-wms/services/"; - String wmsUrl = WmsUrlUtils.determineWmsUrl(IN_AUFSTELLUNG, mockConfiguration(wmsBaseUrl)); - - assertEquals("http://localhost:8080/xplan-wms/services/wmspre?", wmsUrl); - } - - @Test - void testDetermineWmsUrlWithoutEndpointAndNullPlanStatus() throws Exception { - String wmsBaseUrl = "http://localhost:8080/xplan-wms/services/"; - String wmsUrl = WmsUrlUtils.determineWmsUrl(null, mockConfiguration(wmsBaseUrl)); - - assertEquals("http://localhost:8080/xplan-wms/services/wms?", wmsUrl); - } - - @Test - void testDetermineWmsUrlWithoutEndpointAndSlashAndPlanStatusFestgestellt() throws Exception { - String wmsBaseUrl = "http://localhost:8080/xplan-wms/services"; - String wmsUrl = WmsUrlUtils.determineWmsUrl(FESTGESTELLT, mockConfiguration(wmsBaseUrl)); + void testDetermineWmsUrl_PlanstatusPre() { + String xplanGatewayUrl = "http://xplan-gateway"; + String wmsUrl = WmsUrlUtils.determineWmsUrl(IN_AUFSTELLUNG, mockConfiguration(xplanGatewayUrl)); - assertEquals("http://localhost:8080/xplan-wms/services/wms?", wmsUrl); + assertEquals("http://xplan-gateway/xplan-ows/syn-pre?", wmsUrl); } @Test - void testDetermineWmsUrlWithoutEndpointAndSlashAndPlanStatusInAufstellung() throws Exception { - String wmsBaseUrl = "http://localhost:8080/xplan-wms/services"; - String wmsUrl = WmsUrlUtils.determineWmsUrl(IN_AUFSTELLUNG, mockConfiguration(wmsBaseUrl)); + void testDetermineWmsUrlWithTrailingSlash_PlanstatusPre() { + String xplanGatewayUrl = "http://xplan-gateway/"; + String wmsUrl = WmsUrlUtils.determineWmsUrl(IN_AUFSTELLUNG, mockConfiguration(xplanGatewayUrl)); - assertEquals("http://localhost:8080/xplan-wms/services/wmspre?", wmsUrl); + assertEquals("http://xplan-gateway/xplan-ows/syn-pre?", wmsUrl); } @Test - void testDetermineWmsUrlWithoutEndpointAndSlashAndNullPlanStatus() throws Exception { - String wmsBaseUrl = "http://localhost:8080/xplan-wms/services"; - String wmsUrl = WmsUrlUtils.determineWmsUrl(null, mockConfiguration(wmsBaseUrl)); + void testDetermineWmsUrl_PlanstatusFestgestellt() { + String xplanGatewayUrl = "http://xplan-gateway"; + String wmsUrl = WmsUrlUtils.determineWmsUrl(FESTGESTELLT, mockConfiguration(xplanGatewayUrl)); - assertEquals("http://localhost:8080/xplan-wms/services/wms?", wmsUrl); + assertEquals("http://xplan-gateway/xplan-ows/syn?", wmsUrl); } @Test - void testDetermineWmsUrlWithoutEndpointAndPlanStatusFestgestelltNoWmsEndpointConfigured() throws Exception { - String wmsBaseUrl = "http://localhost:8080/xplan-wms/services/"; - String wmsUrl = WmsUrlUtils.determineWmsUrl(FESTGESTELLT, mockConfigurationWithoutWmsEndpoint(wmsBaseUrl)); + void testDetermineWmsUrlWithTrailingSlash_PlanstatusFestgestellt() { + String xplanGatewayUrl = "http://xplan-gateway/"; + String wmsUrl = WmsUrlUtils.determineWmsUrl(FESTGESTELLT, mockConfiguration(xplanGatewayUrl)); - assertEquals("http://localhost:8080/xplan-wms/services/wmspre?", wmsUrl); + assertEquals("http://xplan-gateway/xplan-ows/syn?", wmsUrl); } @Test - void testDetermineWmsUrlWithoutEndpointAndPlanStatusInAufstellungNoWmsEndpointConfigured() throws Exception { - String wmsBaseUrl = "http://localhost:8080/xplan-wms/services/"; - String wmsUrl = WmsUrlUtils.determineWmsUrl(IN_AUFSTELLUNG, mockConfigurationWithoutWmsEndpoint(wmsBaseUrl)); + void testDetermineWmsUrl_PlanstatusArchiviert() { + String xplanGatewayUrl = "http://xplan-gateway"; + String wmsUrl = WmsUrlUtils.determineWmsUrl(ARCHIVIERT, mockConfiguration(xplanGatewayUrl)); - assertEquals("http://localhost:8080/xplan-wms/services/wmspre?", wmsUrl); + assertEquals("http://xplan-gateway/xplan-ows/syn-archive?", wmsUrl); } @Test - void testDetermineWmsUrlWithoutEndpointAndNullPlanStatusNoWmsEndpointConfigured() throws Exception { - String wmsBaseUrl = "http://localhost:8080/xplan-wms/services/"; - String wmsUrl = WmsUrlUtils.determineWmsUrl(null, mockConfigurationWithoutWmsEndpoint(wmsBaseUrl)); + void testDetermineWmsUrlWithTrailingSlash_PlanstatusArchiviert() { + String xplanGatewayUrl = "http://xplan-gateway/"; + String wmsUrl = WmsUrlUtils.determineWmsUrl(ARCHIVIERT, mockConfiguration(xplanGatewayUrl)); - assertEquals("http://localhost:8080/xplan-wms/services/wmspre?", wmsUrl); + assertEquals("http://xplan-gateway/xplan-ows/syn-archive?", wmsUrl); } @Test - void testDetermineWmsUrlWithoutEndpointAndPlanStatusFestgestelltNoWmsPreEndpointConfigured() throws Exception { - String wmsBaseUrl = "http://localhost:8080/xplan-wms/services/"; - String wmsUrl = WmsUrlUtils.determineWmsUrl(FESTGESTELLT, mockConfigurationWithoutWmsPreEndpoint(wmsBaseUrl)); + void testDetermineWmsUrl_PlanstatusNull() { + String xplanGatewayUrl = "http://xplan-gateway"; + String wmsUrl = WmsUrlUtils.determineWmsUrl(null, mockConfiguration(xplanGatewayUrl)); - assertEquals("http://localhost:8080/xplan-wms/services/wms?", wmsUrl); + assertEquals("http://xplan-gateway/xplan-ows/syn?", wmsUrl); } @Test - void testDetermineWmsUrlWithoutEndpointAndPlanStatusInAufstellungNoWmsPreEndpointConfigured() throws Exception { - String wmsBaseUrl = "http://localhost:8080/xplan-wms/services/"; - String wmsUrl = WmsUrlUtils.determineWmsUrl(IN_AUFSTELLUNG, mockConfigurationWithoutWmsPreEndpoint(wmsBaseUrl)); + void testDetermineWmsUrlWithTrailingSlash_PlanstatusNull() { + String xplanGatewayUrl = "http://xplan-gateway/"; + String wmsUrl = WmsUrlUtils.determineWmsUrl(null, mockConfiguration(xplanGatewayUrl)); - assertEquals("http://localhost:8080/xplan-wms/services/wms?", wmsUrl); + assertEquals("http://xplan-gateway/xplan-ows/syn?", wmsUrl); } @Test - void testDetermineWmsUrlWithoutEndpointAndNullPlanStatusNoWmsPreEndpointConfigured() throws Exception { - String wmsBaseUrl = "http://localhost:8080/xplan-wms/services/"; - String wmsUrl = WmsUrlUtils.determineWmsUrl(null, mockConfigurationWithoutWmsPreEndpoint(wmsBaseUrl)); - - assertEquals("http://localhost:8080/xplan-wms/services/wms?", wmsUrl); - } - - @Test - void testDetermineWmsUrlWithoutEndpointAndPlanStatusFestgestelltNoEndpointConfigured() throws Exception { - String wmsBaseUrl = "http://localhost:8080/xplan-wms/services/"; - String wmsUrl = WmsUrlUtils.determineWmsUrl(FESTGESTELLT, mockConfigurationWithoutEndpoint(wmsBaseUrl)); - - assertEquals("http://localhost:8080/xplan-wms/services?", wmsUrl); - } - - @Test - void testDetermineWmsUrlWithoutEndpointAndPlanStatusInAufstellungNoEndpointConfigured() throws Exception { - String wmsBaseUrl = "http://localhost:8080/xplan-wms/services/"; - String wmsUrl = WmsUrlUtils.determineWmsUrl(IN_AUFSTELLUNG, mockConfigurationWithoutEndpoint(wmsBaseUrl)); - - assertEquals("http://localhost:8080/xplan-wms/services?", wmsUrl); - } - - @Test - void testDetermineWmsUrlWithoutEndpointAndNullPlanStatusNoEndpointConfigured() throws Exception { - String wmsBaseUrl = "http://localhost:8080/xplan-wms/services/"; - String wmsUrl = WmsUrlUtils.determineWmsUrl(null, mockConfigurationWithoutEndpoint(wmsBaseUrl)); - - assertEquals("http://localhost:8080/xplan-wms/services?", wmsUrl); - } - - @Test - void testCreatePlanwerkWmsUrl() throws Exception { - String wmsBaseUrl = "http://localhost:8080/xplan-wms/services/wms?"; - String planwerkWmsUrl = WmsUrlUtils.createPlanwerkWmsUrl("PlanName10", mockConfiguration(wmsBaseUrl), + void testCreatePlanwerkWmsUrl() { + String xplanGatewayUrl = "http://xplan-gateway"; + String planwerkWmsUrl = WmsUrlUtils.createPlanwerkWmsUrl("PlanName10", mockConfiguration(xplanGatewayUrl), ARCHIVIERT); assertEquals( - "http://localhost:8080/xplan-wms/services/planwerkwmsarchive/planname/PlanName10?request=GetCapabilities&service=WMS&version=1.3.0", + "http://xplan-gateway/xplan-ows/syn-archive/planwerk/PlanName10?REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.3.0", planwerkWmsUrl); } @Test - void testCreatePlanwerkWmsUrlReplaceRequired() throws Exception { - String wmsBaseUrl = "http://localhost:8080/xplan-wms/services/wms?"; - String planwerkWmsUrl = WmsUrlUtils.createPlanwerkWmsUrl("Plan Name 10 mit /", mockConfiguration(wmsBaseUrl), - FESTGESTELLT); + void testCreatePlanwerkWmsUrlReplaceRequired() { + String xplanGatewayUrl = "http://xplan-gateway"; + String planwerkWmsUrl = WmsUrlUtils.createPlanwerkWmsUrl("Plan Name 10 mit /", + mockConfiguration(xplanGatewayUrl), FESTGESTELLT); assertEquals( - "http://localhost:8080/xplan-wms/services/planwerkwms/planname/Plan Name 10 mit /?request=GetCapabilities&service=WMS&version=1.3.0", + "http://xplan-gateway/xplan-ows/syn/planwerk/Plan Name 10 mit /?REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.3.0", planwerkWmsUrl); } @Test - void testCreatePlanwerkWmsUrlReplaceRequiredWithServices() throws Exception { - String wmsBaseUrl = "http://xplanservices.xplanbox.de/xplan-wms/services/wms?"; - String planwerkWmsUrl = WmsUrlUtils.createPlanwerkWmsUrl("Plan Name 10 mit /", mockConfiguration(wmsBaseUrl), - IN_AUFSTELLUNG); + void testCreatePlanwerkWmsUrlReplaceRequiredWithServices() { + String xplanGatewayUrl = "http://xplan-gateway"; + String planwerkWmsUrl = WmsUrlUtils.createPlanwerkWmsUrl("Plan Name 10 mit /", + mockConfiguration(xplanGatewayUrl), IN_AUFSTELLUNG); assertEquals( - "http://xplanservices.xplanbox.de/xplan-wms/services/planwerkwmspre/planname/Plan Name 10 mit /?request=GetCapabilities&service=WMS&version=1.3.0", + "http://xplan-gateway/xplan-ows/syn-pre/planwerk/Plan Name 10 mit /?REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.3.0", planwerkWmsUrl); } - private MapPreviewConfiguration mockConfigurationWithoutWmsEndpoint(String wmsUrl) { - return mockConfiguration(wmsUrl, null, "wmspre"); - } - - private MapPreviewConfiguration mockConfigurationWithoutWmsPreEndpoint(String wmsUrl) { - return mockConfiguration(wmsUrl, "wms", null); - } - - private MapPreviewConfiguration mockConfigurationWithoutEndpoint(String wmsUrl) { - return mockConfiguration(wmsUrl, null, null); - } - - private MapPreviewConfiguration mockConfiguration(String wmsUrl) { - return mockConfiguration(wmsUrl, "wms", "wmspre"); - } - - private MapPreviewConfiguration mockConfiguration(String wmsUrl, String wmsEndpoint, String wmsPreEndpoint) { + private MapPreviewConfiguration mockConfiguration(String xplanGatewayUrl) { MapPreviewConfiguration mockedConfiguration = Mockito.mock(MapPreviewConfiguration.class); - when(mockedConfiguration.getWmsUrl()).thenReturn(wmsUrl); - when(mockedConfiguration.getWmsEndpoint()).thenReturn(wmsEndpoint); - when(mockedConfiguration.getWmsPreEndpoint()).thenReturn(wmsPreEndpoint); + when(mockedConfiguration.getXPlanGatewayUrl()).thenReturn(xplanGatewayUrl); return mockedConfiguration; } diff --git a/xplan-manager/xplan-manager-web/src/test/java/de/latlon/xplan/manager/web/server/configuration/ManagerWebConfigurationRetrieverTest.java b/xplan-manager/xplan-manager-web/src/test/java/de/latlon/xplan/manager/web/server/configuration/ManagerWebConfigurationRetrieverTest.java index 94393c66b..1464a2173 100644 --- a/xplan-manager/xplan-manager-web/src/test/java/de/latlon/xplan/manager/web/server/configuration/ManagerWebConfigurationRetrieverTest.java +++ b/xplan-manager/xplan-manager-web/src/test/java/de/latlon/xplan/manager/web/server/configuration/ManagerWebConfigurationRetrieverTest.java @@ -20,10 +20,10 @@ */ package de.latlon.xplan.manager.web.server.configuration; -import de.latlon.xplan.manager.web.shared.ManagerWebConfiguration; -import de.latlon.xplan.manager.web.shared.MapPreviewConfiguration; -import de.latlon.xplan.manager.web.shared.RasterLayerConfiguration; -import de.latlon.xplan.manager.web.shared.VectorLayerConfiguration; +import static de.latlon.xplan.commons.configuration.SystemPropertyPropertiesLoader.CONFIG_SYSTEM_PROPERTY; +import static de.latlon.xplan.manager.web.server.configuration.ManagerWebConfigurationRetriever.XPLAN_GATEWAY_URL_PUBLIC; +import static org.apache.commons.io.IOUtils.copy; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.File; import java.io.FileOutputStream; @@ -32,14 +32,14 @@ import java.io.InputStream; import java.nio.file.Files; import java.util.Properties; +import de.latlon.xplan.manager.web.shared.ManagerWebConfiguration; +import de.latlon.xplan.manager.web.shared.MapPreviewConfiguration; +import de.latlon.xplan.manager.web.shared.RasterLayerConfiguration; +import de.latlon.xplan.manager.web.shared.VectorLayerConfiguration; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -import static de.latlon.xplan.commons.configuration.SystemPropertyPropertiesLoader.CONFIG_SYSTEM_PROPERTY; -import static org.apache.commons.io.IOUtils.copy; -import static org.junit.jupiter.api.Assertions.assertEquals; - /** * Please note: This test uses static mocking of the <link>java.lang.System</link>-class, * so the behaviour of this class changes in all tested implementation code! @@ -53,17 +53,26 @@ class ManagerWebConfigurationRetrieverTest { private static String oldProperty; + private static String oldGatewayUrl; + + private static String xplanGatewayUrl; + @BeforeAll static void copyPropertiesFileAndSetProxyConfigSystemVaraiable() throws IOException { File configDir = copyPropertiesFileToNewConfigDir(); oldProperty = System.getProperty(CONFIG_SYSTEM_PROPERTY); System.setProperty(CONFIG_SYSTEM_PROPERTY, configDir.toString()); + oldGatewayUrl = System.getProperty(XPLAN_GATEWAY_URL_PUBLIC); + xplanGatewayUrl = "http://xplan-gateway"; + System.setProperty(XPLAN_GATEWAY_URL_PUBLIC, xplanGatewayUrl); } @AfterAll static void resetProxyConfigSystemProperty() { if (oldProperty != null) System.setProperty(CONFIG_SYSTEM_PROPERTY, oldProperty); + if (oldGatewayUrl != null) + System.setProperty(XPLAN_GATEWAY_URL_PUBLIC, oldGatewayUrl); } @Test @@ -82,7 +91,7 @@ class ManagerWebConfigurationRetrieverTest { assertEquals(properties.getProperty("basemapUrl"), configuration.getBasemapUrl()); assertEquals(properties.getProperty("basemapName"), configuration.getBasemapName()); assertEquals(properties.getProperty("basemapLayer"), configuration.getBasemapLayer()); - assertEquals(properties.getProperty("wmsUrl"), configuration.getWmsUrl()); + assertEquals(xplanGatewayUrl, configuration.getXPlanGatewayUrl()); } @Test diff --git a/xplan-manager/xplan-manager-web/src/test/java/de/latlon/xplan/manager/web/server/configuration/ManagerWebConfigurationServiceImplTest.java b/xplan-manager/xplan-manager-web/src/test/java/de/latlon/xplan/manager/web/server/configuration/ManagerWebConfigurationServiceImplTest.java index 3a91c576d..cafd1cbbf 100644 --- a/xplan-manager/xplan-manager-web/src/test/java/de/latlon/xplan/manager/web/server/configuration/ManagerWebConfigurationServiceImplTest.java +++ b/xplan-manager/xplan-manager-web/src/test/java/de/latlon/xplan/manager/web/server/configuration/ManagerWebConfigurationServiceImplTest.java @@ -20,6 +20,10 @@ */ package de.latlon.xplan.manager.web.server.configuration; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + import de.latlon.xplan.manager.web.server.service.ManagerWebConfigurationServiceImpl; import de.latlon.xplan.manager.web.shared.ConfigurationException; import de.latlon.xplan.manager.web.shared.ManagerWebConfiguration; @@ -30,10 +34,6 @@ import de.latlon.xplan.validator.web.shared.XPlanEnvelope; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - /** * @author <a href="mailto:erben@lat-lon.de">Alexander Erben</a> * @author <a href="mailto:wanhoff@lat-lon.de">Jeronimo Wanhoff</a> @@ -87,9 +87,8 @@ public class ManagerWebConfigurationServiceImplTest { private static MapPreviewConfiguration createMapPreviewConfig() { VectorLayerConfiguration vectorLayerConfiguration = createVectorLayerConfig(); RasterLayerConfiguration rasterLayerConfiguration = createRasterLayerConfig(); - return new MapPreviewConfiguration("basemapUrl", "basemapName", "basemapLayer", "wmsUrl", "wms", "wmspre", - "wmsarchive", new XPlanEnvelope(0, 0, 1, 1, "epsg:4326"), vectorLayerConfiguration, - rasterLayerConfiguration); + return new MapPreviewConfiguration("basemapUrl", "basemapName", "basemapLayer", "xplanGatewayUrl", + new XPlanEnvelope(0, 0, 1, 1, "epsg:4326"), vectorLayerConfiguration, rasterLayerConfiguration); } private static VectorLayerConfiguration createVectorLayerConfig() { diff --git a/xplan-tests/xplan-tests-soapui/README.md b/xplan-tests/xplan-tests-soapui/README.md index 8b083486c..e5eaaab3b 100644 --- a/xplan-tests/xplan-tests-soapui/README.md +++ b/xplan-tests/xplan-tests-soapui/README.md @@ -76,6 +76,12 @@ Bei Nutzung der Absicherung über ein Bearer Token muss zusätzlich die URL von -DjwtUrl=https://xplanbox.lat-lon.de/keycloak/realms/xplanbox/protocol/openid-connect/token -DjwtClientId=xplanbox-api ``` +### xplan-gateway-soapui-project + +``` +mvn clean test -Psystem-tests -DtestFileName=xplan-gateway-soapui-project.xml \ + -DbaseUrlGateway=https://xplanbox.lat-lon.de -Dusername=xplanbox -Dpassword='PWD' + ## Ausführung im Docker container Die SoapUI Tests können in einem Docker Container ausgeführt werden: @@ -106,6 +112,7 @@ docker run --env ... xplanbox/xplan-tests-soapui - `XPLAN_MAPSERVER_PASSWORD` - `XPLAN_SERVICES_API_KEY` - `XPLAN_VALIDATOR_API_BASE_URL` +- `XPLAN_GATEWAY_BASE_URL` - `XPLAN_JWT_URL` - `XPLAN_JWT_CLIENTID` diff --git a/xplan-tests/xplan-tests-soapui/pom.xml b/xplan-tests/xplan-tests-soapui/pom.xml index cba4183c0..29498d62d 100644 --- a/xplan-tests/xplan-tests-soapui/pom.xml +++ b/xplan-tests/xplan-tests-soapui/pom.xml @@ -69,6 +69,7 @@ <usernameMapProxy /> <passwordMapProxy /> <baseUrlValidatorApi /> + <baseUrlGateway /> <username /> <password /> <usernameDortmund /> @@ -132,6 +133,7 @@ <value>usernameMapProxy=${usernameMapProxy}</value> <value>passwordMapProxy=${passwordMapProxy}</value> <value>baseUrlValidatorApi=${baseUrlValidatorApi}</value> + <value>baseUrlGateway=${baseUrlGateway}</value> <value>username=${username}</value> <value>password=${password}</value> <value>usernameDortmund=${usernameDortmund}</value> diff --git a/xplan-tests/xplan-tests-soapui/runAllSoapUiTests.sh b/xplan-tests/xplan-tests-soapui/runAllSoapUiTests.sh index 401cc623c..38223a855 100755 --- a/xplan-tests/xplan-tests-soapui/runAllSoapUiTests.sh +++ b/xplan-tests/xplan-tests-soapui/runAllSoapUiTests.sh @@ -6,6 +6,7 @@ XPLAN_MANAGER_API_BASE_URL=${XPLAN_MANAGER_API_BASE_URL:-http://xplan-manager-ap XPLAN_MAPPROXY_BASE_URL=${XPLAN_MAPPROXY_BASE_URL:-http://xplan-mapproxy:8080} XPLAN_MAPSERVER_BASE_URL=${XPLAN_MAPSERVER_BASE_URL:-http://xplan-mapserver:8080} XPLAN_VALIDATOR_API_BASE_URL=${XPLAN_VALIDATOR_API_BASE_URL:-http://xplan-validator-api/xplan-validator-api} +XPLAN_GATEWAY_BASE_URL=${XPLAN_GATEWAY_BASE_URL:-http://xplan-gateway} MSG_PREFIX=$([ -n "$POD_NAMESPACE" ] && echo "[$POD_NAMESPACE] " || echo "") ############################################ @@ -94,6 +95,9 @@ mvn test -Psystem-tests -DtestFileName=xplan-webservices-soapui-project.xml \ -DapiKey=$XPLAN_SERVICES_API_KEY \ -DjwtUrl=$XPLAN_JWT_URL -DjwtClientId=$XPLAN_JWT_CLIENTID +mvn test -Psystem-tests -DtestFileName=xplan-gateway-soapui-project.xml \ + -DbaseUrlGateway=$XPLAN_XPLAN_GATEWAY_BASE_URL -Dusername=$XPLAN_GATEWAY_USERNAME -Dpassword=$XPLAN_GATEWAY_PASSWORD + echo -e "\n" echo "Results:" results=`find target/soapui/ -name 'TEST-*.xml' | xargs cat | grep "<testsuite" | sed 's/>.*/>/' | sed -e 's/[">]//g' -e 's/.*name=//' | sort` diff --git a/xplan-tests/xplan-tests-soapui/src/main/resources/xplan-gateway-soapui-project.xml b/xplan-tests/xplan-tests-soapui/src/main/resources/xplan-gateway-soapui-project.xml new file mode 100644 index 000000000..87b5c2d80 --- /dev/null +++ b/xplan-tests/xplan-tests-soapui/src/main/resources/xplan-gateway-soapui-project.xml @@ -0,0 +1,3035 @@ +<?xml version="1.0" encoding="UTF-8"?> +<con:soapui-project id="6602f536-6e83-4ac5-8a82-ce0e1be7651a" activeEnvironment="Default" name="xplan-gateway" resourceRoot="" soapui-version="5.7.2" abortOnError="false" runType="SEQUENTIAL" xmlns:con="http://eviware.com/soapui/config"> + <con:description>For local execution enter: + +baseUrlGateway=http://localhost:8095</con:description> + <con:settings/> + <con:testSuite id="523261f9-fe0e-46de-83bf-d1b6f737edc5" name="xplan-ows"> + <con:settings/> + <con:runType>SEQUENTIAL</con:runType> + <con:testCase id="116d7717-e494-4179-a1c2-31667adde3d9" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="validator" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:settings/> + <con:testStep type="httprequest" name="WMS - GetCapabilities" id="03e63c0d-588a-4d6e-ad36-cb5d6fa20d9b"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="WMS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/validator</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wms'; + +exists(/wms:WMS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WMS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:properties/> + </con:testCase> + <con:testCase id="0aba0c25-ce17-495b-9934-5eea6e643376" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="syn" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:settings/> + <con:testStep type="httprequest" name="WMS - GetCapabilities" id="d2a249a8-b99b-4e25-b407-ff1bcbe1c1af"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="WMS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/syn</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wms'; + +exists(/wms:WMS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WMS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="WFS - GetCapabilities" id="a660c842-a8e7-48a0-b4ec-c739af0f07d0"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="WFS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/syn</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wfs/2.0'; + +exists(/wms:WFS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WFS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:properties/> + </con:testCase> + <con:testCase id="5356e56a-7c4a-4ba8-ab7d-90e8f091ecf3" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="syn-pre" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:settings/> + <con:testStep type="httprequest" name="GetCapabilities" id="63665bf2-378e-433b-93d0-fbe481408471"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/syn-pre</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wms'; + +exists(/wms:WMS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WMS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="WFS - GetCapabilities" id="8c3f8e17-5011-417f-9b80-3215cb257eb3"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="WFS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/syn-pre</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wfs/2.0'; + +exists(/wms:WFS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>SERVICE</con:name> + <con:value>WFS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>REQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:properties/> + </con:testCase> + <con:testCase id="b325a2f2-6ff1-40dc-abc0-46657d189440" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="syn-archive" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:settings/> + <con:testStep type="httprequest" name="GetCapabilities" id="73c44265-0ba9-4907-999d-9b86dd3c9fef"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/syn-archive</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="45512384-9bac-4e61-a0c4-fcabd086c179" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wms'; + +exists(/wms:WMS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WMS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="WFS - GetCapabilities" id="87b5bcf7-d297-4dd4-ae0c-decf677aac6d"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="WFS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/syn-archive</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wfs/2.0'; + +exists(/wms:WFS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WFS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:properties/> + </con:testCase> + <con:testCase id="94f52cc9-af75-4403-a0f8-35f553f057a2" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="syn/planart" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:settings/> + <con:testStep type="httprequest" name="bp - GetCapabilities" id="e166dc5b-6ba6-4406-95d4-09dca45299df"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="bp - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/syn/planart/bp</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wms'; + +exists(/wms:WMS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WMS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="fp - GetCapabilities" id="562f222d-9213-49c5-933f-367efa305f83"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="fp - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/syn/planart/fp</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wms'; + +exists(/wms:WMS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WMS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="lp - GetCapabilities" id="329dbcc7-0403-420b-b9dc-5156e8947aa4"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="lp - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/syn/planart/lp</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wms'; + +exists(/wms:WMS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WMS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="rp - GetCapabilities" id="61738818-9f41-4457-a7ec-f1394a6879ad"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="rp - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/syn/planart/rp</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wms'; + +exists(/wms:WMS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WMS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="so - GetCapabilities" id="b046989a-a6d1-4feb-bc37-01b3aeed1266"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="so - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/syn/planart/so</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wms'; + +exists(/wms:WMS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WMS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:properties/> + </con:testCase> + <con:testCase id="249715b5-3610-4b82-98c3-31003c2b4693" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="syn-pre/planart" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:settings/> + <con:testStep type="httprequest" name="bp - GetCapabilities" id="64347cd3-159e-4396-b9da-8b4f17f4c0c9"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="bp - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/syn-pre/planart/bp</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wms'; + +exists(/wms:WMS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WMS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="fp - GetCapabilities" id="e1f18271-4677-4baa-8ebb-fd0955a4f75d"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="fp - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/syn-pre/planart/fp</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wms'; + +exists(/wms:WMS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WMS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="lp - GetCapabilities" id="0ce0a5ce-4b9a-4867-a91d-d07a960bd5cd"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="lp - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/syn-pre/planart/lp</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wms'; + +exists(/wms:WMS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WMS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="rp - GetCapabilities" id="d22a8f8e-36ad-453b-b616-9c6c84bccfa3"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="rp - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/syn-pre/planart/rp</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wms'; + +exists(/wms:WMS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WMS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="so - GetCapabilities" id="8e1587d6-9670-4a99-a6d1-08b330492450"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="so - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/syn-pre/planart/so</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wms'; + +exists(/wms:WMS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WMS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:properties/> + </con:testCase> + <con:testCase id="d6176f53-47d5-474c-b50a-a9bbc776a3f5" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="syn-archive/planart" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:settings/> + <con:testStep type="httprequest" name="bp - GetCapabilities" id="bd76e65f-f320-4aeb-b242-9aea11f1d004"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="bp - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/syn-archive/planart/bp</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wms'; + +exists(/wms:WMS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WMS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="fp - GetCapabilities" id="7996e9b1-93b0-4f80-b867-34459eb832e6"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="fp - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/syn-archive/planart/fp</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wms'; + +exists(/wms:WMS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WMS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="lp - GetCapabilities" id="e4435c5e-783e-42f0-978c-6ec646f5c2f0"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="lp - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/syn-archive/planart/lp</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wms'; + +exists(/wms:WMS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WMS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="rp - GetCapabilities" id="12fdaab7-a1e2-4eed-83c0-76d72cb36aaf"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="rp - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/syn-archive/planart/rp</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wms'; + +exists(/wms:WMS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WMS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="so - GetCapabilities" id="cbaf32c7-fd56-48ae-8ce0-c95c22ba9b14"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="so - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/syn-archive/planart/so</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wms'; + +exists(/wms:WMS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WMS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:properties/> + </con:testCase> + <con:testCase id="eb83486a-384f-43c1-9a7c-a397cd103e92" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="syn/planwerk" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:settings/> + <con:testStep type="httprequest" name="GetCapabilities" id="98ef2e5b-53c3-41b0-981f-f62a984479c1"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/syn/planwerk/unknown</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace ogc='http://www.opengis.net/ogc'; + +exists(/ogc:ServiceExceptionReport)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WMS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:properties/> + </con:testCase> + <con:testCase id="a862b407-57ce-42df-963a-5ede47e65469" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="syn-pre/planwerk" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:settings/> + <con:testStep type="httprequest" name="GetCapabilities" id="f80f914a-90ca-4d06-bb48-483a6c59f943"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/syn-pre/planwerk/unknown</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace ogc='http://www.opengis.net/ogc'; + +exists(/ogc:ServiceExceptionReport)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WMS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:properties/> + </con:testCase> + <con:testCase id="941989f0-fe3a-4d00-8223-26cde8e23a83" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="syn-archive/planwerk" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:settings/> + <con:testStep type="httprequest" name="GetCapabilities" id="5dab7e64-31ff-4bc7-8805-f2a04e8b5d05"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/syn-archive/planwerk/unknown</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace ogc='http://www.opengis.net/ogc'; + +exists(/ogc:ServiceExceptionReport)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WMS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:properties/> + </con:testCase> + <con:testCase id="a38af21b-1de7-46ee-b5ed-37ae4139791d" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="4.0-6.0" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:settings/> + <con:testStep type="httprequest" name="4.0 - WFS - GetCapabilities" id="d880455a-ffec-4fdb-8f47-a19ac3c91901"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="4.0 - WFS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/4.0</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wfs/2.0'; + +exists(/wms:WFS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WFS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="4.1 - WFS - GetCapabilities" id="de71f706-d8f2-44a5-81f6-20596f620dcf"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="4.1 - WFS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/4.1</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wfs/2.0'; + +exists(/wms:WFS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WFS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="5.0 - WFS - GetCapabilities" id="7ded1e9a-85d8-470c-8550-66ad418966e7"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="5.0 - WFS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/5.0</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wfs/2.0'; + +exists(/wms:WFS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WFS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="5.1 - WFS - GetCapabilities" id="75aa9b7a-12af-450f-ba34-865eae21b558"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="5.1 - WFS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/5.1</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wfs/2.0'; + +exists(/wms:WFS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WFS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="5.2 - WFS - GetCapabilities" id="9ce46bdc-0e62-4471-9c66-e79b89d7dd86"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="5.2 - WFS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/5.2</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wfs/2.0'; + +exists(/wms:WFS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WFS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="5.3 - WFS - GetCapabilities" id="f8bfba8f-1f93-495d-af6d-edf0605e802f"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="5.3 - WFS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/5.3</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wfs/2.0'; + +exists(/wms:WFS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WFS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="5.4 - WFS - GetCapabilities" id="b67dbc10-8ffb-480b-ab49-05a910fe6811"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="5.4 - WFS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/5.4</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wfs/2.0'; + +exists(/wms:WFS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WFS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="6.0 - WFS - GetCapabilities" id="4e684b2e-0ca3-4a06-9573-68e34ed7dffc"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="6.0 - WFS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/6.0</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wfs/2.0'; + +exists(/wms:WFS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WFS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:properties/> + </con:testCase> + <con:testCase id="9bd75333-34f7-4fba-bc8f-4412bb3824cd" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="4.0-6.0-pre" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:settings/> + <con:testStep type="httprequest" name="4.0 - WFS - GetCapabilities" id="34e21483-ab0d-471c-b6d1-cff657ee0920"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="4.0 - WFS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/4.0-pre</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wfs/2.0'; + +exists(/wms:WFS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WFS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="4.1 - WFS - GetCapabilities" id="d0ca16a5-3a82-4e4f-8ead-318518eb772c"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="4.1 - WFS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/4.1-pre</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wfs/2.0'; + +exists(/wms:WFS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WFS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="5.0 - WFS - GetCapabilities" id="c9471a11-7ff3-4209-a54e-57fdf523bd6c"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="5.0 - WFS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/5.0-pre</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wfs/2.0'; + +exists(/wms:WFS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WFS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="5.1 - WFS - GetCapabilities" id="362b198f-3aa3-4aa9-b25b-89f7f16dc8cc"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="5.1 - WFS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/5.1-pre</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wfs/2.0'; + +exists(/wms:WFS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WFS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="5.2 - WFS - GetCapabilities" id="ae4a8c5f-9589-4723-bd2c-564d3e5f8b83"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="5.2 - WFS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/5.2-pre</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wfs/2.0'; + +exists(/wms:WFS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WFS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="5.3 - WFS - GetCapabilities" id="5617e87f-aeaa-4271-9771-2ce60c9eac7b"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="5.3 - WFS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/5.3-pre</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wfs/2.0'; + +exists(/wms:WFS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WFS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="5.4 - WFS - GetCapabilities" id="b3346978-28de-4cb8-877b-671d69b61fbf"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="5.4 - WFS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/5.4-pre</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wfs/2.0'; + +exists(/wms:WFS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WFS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="6.0 - WFS - GetCapabilities" id="91d833bf-5d96-4318-ac02-160a15600ba4"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="6.0 - WFS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/6.0-pre</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wfs/2.0'; + +exists(/wms:WFS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WFS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:properties/> + </con:testCase> + <con:testCase id="d081d635-f4cc-4b7b-9e29-01bdc1d8f479" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="4.0-6.0-archive" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:settings/> + <con:testStep type="httprequest" name="4.0 - WFS - GetCapabilities" id="e59fb8bc-e634-4dae-be00-d52b5bc465d9"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="4.0 - WFS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/4.0-archive</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wfs/2.0'; + +exists(/wms:WFS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WFS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="4.1 - WFS - GetCapabilities" id="de60a833-d83f-474a-bfb7-56e28a78bff0"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="4.1 - WFS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/4.1-archive</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wfs/2.0'; + +exists(/wms:WFS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WFS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="5.0 - WFS - GetCapabilities" id="f25756e1-3178-4918-bb28-1f9396826a36"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="5.0 - WFS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/5.0-archive</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wfs/2.0'; + +exists(/wms:WFS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WFS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="5.1 - WFS - GetCapabilities" id="b156b743-63c1-4e2f-b948-5b22147f7ced"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="5.1 - WFS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/5.1-archive</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wfs/2.0'; + +exists(/wms:WFS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WFS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="5.2 - WFS - GetCapabilities" id="8324520a-ab39-4f08-bad0-4eb7b8627c4a"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="5.2 - WFS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/5.2-archive</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wfs/2.0'; + +exists(/wms:WFS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WFS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="5.3 - WFS - GetCapabilities" id="d073d137-426e-463e-be68-c10aadaad284"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="5.3 - WFS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/5.3-archive</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wfs/2.0'; + +exists(/wms:WFS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WFS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="5.4 - WFS - GetCapabilities" id="be58ac1a-6f38-48e1-a9e3-236dc3f42ff8"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="5.4 - WFS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/5.4-archive</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wfs/2.0'; + +exists(/wms:WFS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WFS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="6.0 - WFS - GetCapabilities" id="011da7b0-d6c9-4969-ada2-7d6a07e6e413"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="6.0 - WFS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/6.0-archive</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wfs/2.0'; + +exists(/wms:WFS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WFS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:properties/> + </con:testCase> + <con:testCase id="0a07c547-3052-4bdc-8356-aa9d442af4c5" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="cache" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:settings/> + <con:testStep type="httprequest" name="WMS - GetCapabilities" id="ee112c8e-95c5-4146-b0f5-fedcb77391d7"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="WMS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/cache</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wms'; + +exists(/wms:WMS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WMS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="WMTS - GetCapabilities" id="6146d8f2-7403-48ab-a339-66fe230665c2"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="WMTS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/cache</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wmts='http://www.opengis.net/wmts/1.0'; + +exists(/wmts:Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WMTS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:properties/> + </con:testCase> + <con:testCase id="6b69a20b-120f-4879-9474-79ad32150d9d" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="cache/tiles" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:settings/> + <con:testStep type="httprequest" name="WMTS - GetCapabilities" id="c74ab8d1-1856-4e55-8065-9de0e10bf78f"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="WMTS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/cache/tiles/WMTSCapabilities.xml</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wmts='http://www.opengis.net/wmts/1.0'; + +exists(/wmts:Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:properties/> + </con:testCase> + <con:testCase id="4ded5db4-e7b0-41fe-b74f-5ac65ee39f6d" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="raster" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:settings/> + <con:testStep type="httprequest" name="WMS - GetCapabilities" id="70ee62cb-b966-4751-8900-ee639152ebec"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="WMS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/raster</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wms'; + +exists(/wms:WMS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WMS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:properties/> + </con:testCase> + <con:testCase id="97f43c18-03d4-468d-aea5-c0ca64d4ac9d" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="raster-pre" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:settings/> + <con:testStep type="httprequest" name="WMS - GetCapabilities" id="93645664-fdd0-4cb7-afdc-7a9a47db2f6e"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="WMS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/raster-pre</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="a690f7b6-aa56-450e-93dd-bc93069e852d" name="XPath Match"> + <con:configuration> + <path>declare namespace wms='http://www.opengis.net/wms'; + +exists(/wms:WMS_Capabilities)</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WMS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:properties/> + </con:testCase> + <con:testCase id="9fe019cc-3c12-404d-8f3a-eb513016c68f" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="raster/planwerk" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:settings/> + <con:testStep type="httprequest" name="WMS - GetCapabilities" id="e55a7de7-4457-470a-9a17-53c712b6bb20"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="WMS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/raster/planwerk/unknown</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WMS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:properties/> + </con:testCase> + <con:testCase id="4b934245-82ea-4ccf-b989-385cf1ece70c" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="raster/planart" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:settings/> + <con:testStep type="httprequest" name="WMS - GetCapabilities" id="f5f1c228-6a9d-49e1-873c-ecbb9acd32dc"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="c94db636-c152-447a-94e1-768498fbcd21" name="WMS - GetCapabilities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlGateway}/xplan-ows/raster/planart/bp</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b2dc1c4-d8c4-4308-8c53-f98536940634" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:authType>Global HTTP Settings</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>sERVICE</con:name> + <con:value>WMS</con:value> + <con:style>QUERY</con:style> + <con:default>WMS</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>rEQUEST</con:name> + <con:value>GetCapabilities</con:value> + <con:style>QUERY</con:style> + <con:default>GetCapabilities</con:default> + <con:path xsi:nil="true"/> + <con:description xsi:nil="true"/> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:properties/> + </con:testCase> + <con:properties/> + </con:testSuite> + <con:properties> + <con:property> + <con:name>baseUrlGateway</con:name> + <con:value>http://localhost:8095</con:value> + </con:property> + <con:property> + <con:name>username</con:name> + <con:value/> + </con:property> + <con:property> + <con:name>password</con:name> + <con:value/> + </con:property> + </con:properties> + <con:wssContainer/> + <con:oAuth2ProfileContainer/> + <con:oAuth1ProfileContainer/> + <con:sensitiveInformation/> +</con:soapui-project> \ No newline at end of file diff --git a/xplan-tests/xplan-tests-soapui/src/main/resources/xplan-manager-api-soapui-project.xml b/xplan-tests/xplan-tests-soapui/src/main/resources/xplan-manager-api-soapui-project.xml index 1c07be3e8..48e4188ae 100644 --- a/xplan-tests/xplan-tests-soapui/src/main/resources/xplan-manager-api-soapui-project.xml +++ b/xplan-tests/xplan-tests-soapui/src/main/resources/xplan-manager-api-soapui-project.xml @@ -2546,7 +2546,7 @@ assert actualHeader != null</scriptText> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwmspre/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn-pre/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -2776,7 +2776,7 @@ assert actualHeader != null</scriptText> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwms/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -2948,7 +2948,7 @@ assert actualHeader != null</scriptText> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwms/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -3177,7 +3177,7 @@ assert actualHeader != null</scriptText> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwmspre/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn-pre/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -3390,7 +3390,7 @@ assert actualHeader != null</scriptText> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwms/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -3666,7 +3666,7 @@ assert actualHeader != null</scriptText> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwms/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -3829,7 +3829,7 @@ assert actualHeader != null</scriptText> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwmspre/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn-pre/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -4061,7 +4061,7 @@ assert actualHeader != null</scriptText> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwms/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -4446,7 +4446,7 @@ assert actualHeader != null</scriptText> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwms/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -4614,7 +4614,7 @@ assert actualHeader != null</scriptText> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwmsarchive/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn-archive/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -4832,7 +4832,7 @@ assert actualHeader != null</scriptText> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwmsarchive/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn-archive/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -5000,7 +5000,7 @@ assert actualHeader != null</scriptText> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwms/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -5177,7 +5177,7 @@ assert actualHeader != null</scriptText> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwms/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -5340,7 +5340,7 @@ assert actualHeader != null</scriptText> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwms/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -5510,7 +5510,7 @@ assert actualHeader != null</scriptText> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwmsarchive/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn-archive/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -5678,7 +5678,7 @@ assert actualHeader != null</scriptText> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwms/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -5846,7 +5846,7 @@ assert actualHeader != null</scriptText> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwms/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -6014,7 +6014,7 @@ assert actualHeader != null</scriptText> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwms/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -6173,7 +6173,7 @@ assert actualHeader != null</scriptText> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwms/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -6545,7 +6545,7 @@ assert actualHeader != null</scriptText> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwms/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -6708,7 +6708,7 @@ assert actualHeader != null</scriptText> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwmspre/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn-pre/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -6868,7 +6868,7 @@ assert actualHeader != null</scriptText> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwmspre/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn-pre/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -7039,7 +7039,7 @@ assert actualHeader != null</scriptText> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwms/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -7218,7 +7218,7 @@ assert actualHeader != null</scriptText> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwmspre/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn-pre/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -7788,7 +7788,7 @@ assert actualHeader != null</scriptText> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwms/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -8001,7 +8001,7 @@ assert actualHeader != null</scriptText> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwms/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -8145,7 +8145,7 @@ assert actualHeader != null</scriptText> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwms/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -8280,7 +8280,7 @@ assert actualHeader != null</scriptText> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwms/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -19472,7 +19472,7 @@ if (documentUrl != "null"){ <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwms/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -19607,7 +19607,7 @@ if (documentUrl != "null"){ </con:assertion> <con:assertion type="XPath Match" id="319a5f6f-d339-465f-9f40-a0a0ec856134" name="link planwerkwms"> <con:configuration> - <path>contains(/planInfo/links[rel='PLANWERKWMS']/href, '/services/planwerkwms/planname/')</path> + <path>contains(/planInfo/links[rel='PLANWERKWMS']/href, '/xplan-ows/syn/planwerk/')</path> <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> @@ -19833,7 +19833,7 @@ assert expectedHeader == actualHeader</scriptText> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwmspre/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn-pre/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -24277,7 +24277,7 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwms/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -24383,7 +24383,7 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwms/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -28140,7 +28140,7 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwms/planname/.*$</regEx> + <regEx>^.*/xplan-ows/syn/planwerk/.*$</regEx> </con:configuration> </con:assertion> <con:credentials> diff --git a/xplan-validator/xplan-validator-executor/src/main/java/de/latlon/xplanbox/validator/executor/handler/ValidationHandler.java b/xplan-validator/xplan-validator-executor/src/main/java/de/latlon/xplanbox/validator/executor/handler/ValidationHandler.java index daee7d6e6..011703142 100644 --- a/xplan-validator/xplan-validator-executor/src/main/java/de/latlon/xplanbox/validator/executor/handler/ValidationHandler.java +++ b/xplan-validator/xplan-validator-executor/src/main/java/de/latlon/xplanbox/validator/executor/handler/ValidationHandler.java @@ -32,6 +32,7 @@ import java.net.URI; import java.net.URISyntaxException; import java.nio.file.Files; import java.nio.file.Path; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.UUID; @@ -42,7 +43,6 @@ import de.latlon.xplan.commons.feature.XPlanFeatureCollection; import de.latlon.xplan.commons.feature.XPlanGmlParserBuilder; import de.latlon.xplan.validator.ValidatorException; import de.latlon.xplan.validator.XPlanValidator; -import de.latlon.xplan.validator.configuration.ValidatorConfiguration; import de.latlon.xplan.validator.report.ReportWriter; import de.latlon.xplan.validator.report.ValidatorReport; import de.latlon.xplan.validator.web.shared.ReportFormatType; @@ -55,6 +55,7 @@ import org.deegree.cs.exceptions.UnknownCRSException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; /** @@ -78,8 +79,8 @@ public class ValidationHandler { @Autowired(required = false) private ValidatorWmsManager validatorWmsManager; - @Autowired - private ValidatorConfiguration validatorConfiguration; + @Value("${xplanbox.gateway.url}") + private String xplanGatewayUrl; private XPlanArchiveCreator archiveCreator = new XPlanArchiveCreator(); @@ -152,14 +153,22 @@ public class ValidationHandler { } private URI createWmsUrl(int id) throws URISyntaxException { - String validatorWmsEndpoint = validatorConfiguration.getValidatorWmsEndpoint(); - URIBuilder uriBuilder = new URIBuilder(validatorWmsEndpoint); + URIBuilder uriBuilder = new URIBuilder(xplanGatewayUrl); + uriBuilder.setPathSegments(createPathSegments(uriBuilder)); uriBuilder.addParameter("PLANWERK_MANAGERID", Integer.toString(id)); uriBuilder.addParameter("SERVICE", "WMS"); uriBuilder.addParameter("REQUEST", "GetCapabilities"); return uriBuilder.build(); } + private static List<String> createPathSegments(URIBuilder uriBuilder) { + List<String> pathSegments = new ArrayList<>(uriBuilder.getPathSegments()); + pathSegments.add("xplan-ows"); + pathSegments.add("validator"); + pathSegments.remove(""); + return pathSegments; + } + private Path createWorkDir() throws IOException { String id = UUID.randomUUID().toString(); Path workDir = uploadFolder.resolve(id); diff --git a/xplan-validator/xplan-validator-executor/src/main/resources/application.properties b/xplan-validator/xplan-validator-executor/src/main/resources/application.properties index 75a8a65d9..dd42df710 100644 --- a/xplan-validator/xplan-validator-executor/src/main/resources/application.properties +++ b/xplan-validator/xplan-validator-executor/src/main/resources/application.properties @@ -50,4 +50,6 @@ xplanbox.s3.secretKey=${XPLAN_S3_SECRET_ACCESS_KEY} xplanbox.validation.profiles=${XPLAN_VALIDATION_PROFILES:} xplanbox.s3.bucket.validation=${XPLAN_S3_BUCKET_VALIDATION:validation} -xplanbox.services.crs=${XPLAN_SERVICES_DEFAULT_CRS:EPSG:25832} \ No newline at end of file +xplanbox.services.crs=${XPLAN_SERVICES_DEFAULT_CRS:EPSG:25832} + +xplanbox.gateway.url=${XPLAN_GATEWAY_URL_PUBLIC:} \ No newline at end of file diff --git a/xplan-validator/xplan-validator-web/pom.xml b/xplan-validator/xplan-validator-web/pom.xml index 3a387e529..c98d25cb5 100644 --- a/xplan-validator/xplan-validator-web/pom.xml +++ b/xplan-validator/xplan-validator-web/pom.xml @@ -277,6 +277,10 @@ <artifactId>spring-test</artifactId> <scope>test</scope> </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-context</artifactId> + </dependency> </dependencies> <profiles> diff --git a/xplan-validator/xplan-validator-web/src/main/java/de/latlon/xplan/validator/web/spring/config/XPlanValidatorWebSpringConfig.java b/xplan-validator/xplan-validator-web/src/main/java/de/latlon/xplan/validator/web/spring/config/XPlanValidatorWebSpringConfig.java index a38f8eb70..3f59cbef5 100644 --- a/xplan-validator/xplan-validator-web/src/main/java/de/latlon/xplan/validator/web/spring/config/XPlanValidatorWebSpringConfig.java +++ b/xplan-validator/xplan-validator-web/src/main/java/de/latlon/xplan/validator/web/spring/config/XPlanValidatorWebSpringConfig.java @@ -60,6 +60,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; +import org.springframework.context.annotation.PropertySource; import org.springframework.core.io.ResourceLoader; /** @@ -69,6 +70,7 @@ import org.springframework.core.io.ResourceLoader; */ @Configuration @Import(ValidatorWmsContext.class) +@PropertySource("classpath:validator-web.properties") public class XPlanValidatorWebSpringConfig { private static final Logger LOG = LoggerFactory.getLogger(XPlanValidatorWebSpringConfig.class); @@ -159,18 +161,17 @@ public class XPlanValidatorWebSpringConfig { @Bean public MapPreviewManager mapPreviewManager(Optional<ValidatorWmsManager> validatorWmsManager, - GeometricValidator geometricValidator, ValidatorConfiguration validatorConfiguration) { + @Value("${xplanbox.gateway.url}") String xplanGatewayUrl) { if (!validatorWmsManager.isPresent()) { LOG.warn("ValidatorWmsManager is not configured. Map preview will not be available."); return null; } - String validatorWmsEndpoint = validatorConfiguration.getValidatorWmsEndpoint(); - if (validatorWmsEndpoint == null) { - LOG.warn("XPlanValidatorWMS endpoint URL is not configured. Map preview will not be available."); + if (xplanGatewayUrl == null) { + LOG.warn("XPlanGatewayUrl is not available. Map preview will not be available."); return null; } try { - return new MapPreviewManager(validatorWmsManager.get(), geometricValidator, validatorWmsEndpoint); + return new MapPreviewManager(validatorWmsManager.get(), xplanGatewayUrl); } catch (IllegalArgumentException | MapPreviewCreationException e) { LOG.error("Could not initialise ValidatorWmsManager. WMS resources cannot be created. Reason: {}", diff --git a/xplan-validator/xplan-validator-web/src/main/resources/validator-web.properties b/xplan-validator/xplan-validator-web/src/main/resources/validator-web.properties new file mode 100644 index 000000000..8d04e0409 --- /dev/null +++ b/xplan-validator/xplan-validator-web/src/main/resources/validator-web.properties @@ -0,0 +1 @@ +xplanbox.gateway.url=${XPLAN_GATEWAY_URL_PUBLIC:} \ No newline at end of file diff --git a/xplan-webservices/xplan-webservices-workspaces/src/main/workspace/services/html.gfi b/xplan-webservices/xplan-webservices-workspaces/src/main/workspace/services/html.gfi index 6b5ceb4e7..01de15182 100644 --- a/xplan-webservices/xplan-webservices-workspaces/src/main/workspace/services/html.gfi +++ b/xplan-webservices/xplan-webservices-workspaces/src/main/workspace/services/html.gfi @@ -28,7 +28,7 @@ <body> <script> - var WMS_URL = "http://localhost:8080/xplan-wms"; + var XPLAN_GATEWAY_URL = "http://localhost:8080/xplan-ows"; window.onload = function () { updateComplexProperties(); @@ -98,7 +98,7 @@ referenzProperty.href = referenz; referenzProperty.innerText = label; } else { - referenzProperty.href = WMS_URL + referenz; + referenzProperty.href = XPLAN_GATEWAY_URL + referenz; referenzProperty.innerText = label; } } @@ -107,7 +107,7 @@ if(referenz.startsWith('http')){ referenzProperty.href = referenz; } else { - referenzProperty.href = WMS_URL + referenz; + referenzProperty.href = XPLAN_GATEWAY_URL + referenz; } } -- GitLab