From eefa223a2a99fbd8f59cc610e10306bd53fca562 Mon Sep 17 00:00:00 2001 From: latlon team <info@lat-lon.de> Date: Wed, 14 Feb 2024 12:22:33 +0000 Subject: [PATCH] Code drop - XPLANBOX-2670 - set release date (ede1a582a) - XPLANBOX-2670 - updated changelog and Aktualisierungsanleitung (38babac7e) - XPLANBOX-2659 - fixed merge; removed outdated xplan-cli/xplan-cli-docker (a925e41a9) - XPLANBOX-2494 - simplified date tests to ensure passing until XPLANBOX-2664 is processed (b77e576fa) - XPLANBOX-2682 - fixed internal server error (f2f9560af) - XPLANBOX-2671 - unpack xplan-manager-wenb webapps (ebb89ce84) - XPLANBOX-2666 - simple fix of non integer sonstPlanArt values to avoid internal server error (ef6753e42) - XPLANBOX-2666 - added sonstPlanArt to plan BP_6.0.gml (fb1e1a27f) - XPLANBOX-2640 - implement SpringBootServletInitializer to run the application as deployable WAR (7f8f12399) - XPLANBOX-2658 build and deploy missing docker images (650056145) - XPLANBOX-2659 verify docker context tar file size (fc0981867) Co-authored-by: Lyn Elisa Goltz <goltz@lat-lon.de> Co-authored-by: Marc Guillemot <guillemot@lat-lon.de> Dropped from commit: 4037882778629b5f976b4dfa1fcf767e770173c6 --- .gitlab-ci.yml | 14 +++--- CHANGELOG.md | 7 +++ ci/all-kaniko-builds.gitlab-ci.yml | 32 ++++++++++++ pom.xml | 49 +++++++++++++++++++ xplan-cli/xplan-cli-tools/pom.xml | 4 ++ .../manager/edit/XPlanToEditFactory.java | 9 +++- .../manager/edit/xplan54/BPlan002_5-4.gml | 1 + .../OptimisedFlaechenschlussInspector.java | 8 +-- xplan-database/xplan-database-docker/pom.xml | 1 + xplan-database/xplan-database-scripts/pom.xml | 1 + xplan-docker/xplan-docker-volume-init/pom.xml | 1 + .../xplan-benutzerhandbuch/pom.xml | 1 + .../src/main/asciidoc/aenderungsHistorie.adoc | 8 +++ .../xplan-betriebshandbuch/pom.xml | 1 + .../src/main/asciidoc/aktualisierung.adoc | 15 ++++++ xplan-documentation/xplan-webpages/pom.xml | 1 + xplan-dokumente/xplan-dokumente-api/pom.xml | 1 + .../xplanbox/api/dokumente/SpringBootApp.java | 14 +++++- xplan-manager/xplan-manager-api/pom.xml | 1 + .../xplanbox/api/manager/SpringBootApp.java | 14 +++++- xplan-manager/xplan-manager-web/Dockerfile | 12 +++-- .../xplan-manager-web/DockerfileHale | 29 ++++++++--- xplan-manager/xplan-manager-web/pom.xml | 1 + xplan-tests/xplan-tests-soapui/pom.xml | 1 + .../xplan-manager-api-soapui-project.xml | 26 +++++++--- .../xplan-manager-api/plans/BP_6.0.gml | 1 + xplan-validator/xplan-validator-api/pom.xml | 1 + .../xplanbox/api/validator/SpringBootApp.java | 18 +++++-- xplan-validator/xplan-validator-web/pom.xml | 1 + .../xplan-webservices-inspireplu/pom.xml | 1 + .../xplan-services-docker/pom.xml | 1 + .../xplan-webservices-validator-wms/pom.xml | 1 + 32 files changed, 244 insertions(+), 32 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5caba09f81..978c18303f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -69,7 +69,7 @@ maven-prepare-docker-contexts-apis-and-inspire-plu: variables: mvnProjects: ':xplan-validator-api,:xplan-manager-api,:xplan-dokumente-api,:xplan-webservices-inspireplu' artifacts: - paths: + paths: # 2024.02.02: ~387M - './xplan-validator/xplan-validator-api/target/docker/**/tmp/docker-build.tar.gz' - './xplan-manager/xplan-manager-api/target/docker/**/tmp/docker-build.tar.gz' - './xplan-dokumente/xplan-dokumente-api/target/docker/**/tmp/docker-build.tar.gz' @@ -78,17 +78,19 @@ maven-prepare-docker-contexts-apis-and-inspire-plu: maven-prepare-docker-contexts-cli: extends: .maven-prepare-docker-contexts variables: - mvnProjects: ':xplan-cli-docker' + mvnProjects: ':xplan-benutzerhandbuch,:xplan-betriebshandbuch,:xplan-cli-docker,:xplan-database-docker,:xplan-webpages' artifacts: - paths: - - './xplan-cli/**/target/docker/**/tmp/docker-build.tar.gz' + paths: # 2024.02.02: ~371M + - './xplan-cli/xplan-cli-docker/target/docker/**/docker-build.tar.gz' + - './xplan-documentation/**/target/docker/**/docker-build.tar.gz' + - './xplan-database/xplan-database-docker/target/docker/**/docker-build.tar.gz' maven-prepare-docker-contexts-web-apps: extends: .maven-prepare-docker-contexts variables: mvnProjects: ':xplan-manager-web,:xplan-validator-web,:xplan-webpages' artifacts: - paths: + paths: # 2024.02.02: ~481M - './xplan-manager/xplan-manager-web/target/docker/**/tmp/docker-build.tar.gz' - './xplan-validator/xplan-validator-web/target/docker/**/tmp/docker-build.tar.gz' - './xplan-documentation/xplan-webpages/target/docker/**/tmp/docker-build.tar.gz' @@ -98,7 +100,7 @@ maven-prepare-docker-contexts-others: variables: mvnProjects: ':xplan-docker-tomcat,:xplan-docker-tomcat-gdal,:xplan-database-scripts,:xplan-mapproxy-docker,:xplan-mapserver-docker,:xplan-webservices-validator-wms,:xplan-services-docker,:xplan-tests-soapui' artifacts: - paths: + paths: # 2024.02.02: ~432M - './xplan-docker/**/target/docker/**/tmp/docker-build.tar.gz' - './xplan-database/xplan-database-scripts/target/docker/**/tmp/docker-build.tar.gz' - './xplan-tests/xplan-tests-soapui/target/docker/**/tmp/docker-build.tar.gz' diff --git a/CHANGELOG.md b/CHANGELOG.md index 77e3d3869e..cf5d9a1d39 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ Alle nennenswerten Änderungen an diesem Projekt werden in dieser Datei dokumentiert. +## Version 7.1.1 (2024-02-09) + +### Fehlerbehebungen +- Fehler bei der Installation der XPlanManagerAPI, XPlanValidatorAPI und XPlanDokumenteAPI im Tomcat behoben +- Fehler beim Editieren eines Plans, bei dem sonstPlanArt gesetzt ist und keine Ganzzahl beinhaltet behoben +- Fehler bei der Flächenschlussprüfung, wenn der Geltungsbereich von Bereich und PlanFeature nicht übereinstimmen behoben + ## Version 7.1 (2023-12-13) ### Erweiterungen diff --git a/ci/all-kaniko-builds.gitlab-ci.yml b/ci/all-kaniko-builds.gitlab-ci.yml index 7655554e0b..8038a7f1cd 100644 --- a/ci/all-kaniko-builds.gitlab-ci.yml +++ b/ci/all-kaniko-builds.gitlab-ci.yml @@ -25,6 +25,22 @@ ## job per image to produce +kaniko:xplan-benutzerhandbuch: + extends: .kaniko:build + variables: + dockerImageName: xplan-benutzerhandbuch + tarGzFile: xplan-documentation/xplan-benutzerhandbuch/target/docker/xplanbox/xplan-benutzerhandbuch/tmp/docker-build.tar.gz + needs: + - maven-prepare-docker-contexts-cli + +kaniko:xplan-betriebshandbuch: + extends: .kaniko:build + variables: + dockerImageName: xplan-betriebshandbuch + tarGzFile: xplan-documentation/xplan-betriebshandbuch/target/docker/xplanbox/xplan-betriebshandbuch/tmp/docker-build.tar.gz + needs: + - maven-prepare-docker-contexts-cli + kaniko:xplan-cli-docker: extends: .kaniko:build variables: @@ -34,6 +50,14 @@ kaniko:xplan-cli-docker: - maven-prepare-docker-contexts-cli - kaniko:xplan-docker-volume-init +kaniko:xplan-database-docker: + extends: .kaniko:build + variables: + dockerImageName: xplan-db + tarGzFile: xplan-database/xplan-database-docker/target/docker/xplanbox/xplan-db/tmp/docker-build.tar.gz + needs: + - maven-prepare-docker-contexts-cli + kaniko:xplan-db-updater: extends: .kaniko:build variables: @@ -170,3 +194,11 @@ kaniko:xplan-validator-wms: needs: - maven-prepare-docker-contexts-others - kaniko:xplan-docker-tomcat + +kaniko:xplan-webpages: + extends: .kaniko:build + variables: + dockerImageName: xplan-webpages + tarGzFile: xplan-documentation/xplan-webpages/target/docker/xplanbox/xplan-webpages/tmp/docker-build.tar.gz + needs: + - maven-prepare-docker-contexts-cli diff --git a/pom.xml b/pom.xml index 4590a4ea25..e5af6c7414 100644 --- a/pom.xml +++ b/pom.xml @@ -250,6 +250,7 @@ <docker-image.namePrefix>xplanbox</docker-image.namePrefix> <docker-image.name>${project.artifactId}</docker-image.name> <trivy.severity>CRITICAL</trivy.severity> + <docker-contextTarFile.expectedSizeInMbAt10pct></docker-contextTarFile.expectedSizeInMbAt10pct> </properties> <modules> <module>xplan-docker</module> @@ -334,6 +335,54 @@ </execution> </executions> </plugin> + <plugin> + <groupId>org.codehaus.gmavenplus</groupId> + <artifactId>gmavenplus-plugin</artifactId> + <version>3.0.2</version> + <executions> + <execution> + <id>verifyDockerContextSize</id> + <goals> + <goal>execute</goal> + </goals> + <phase>verify</phase> + </execution> + </executions> + <configuration> + <scripts> + <script><![CDATA[ + def tarFileName = '${project.build.directory}/docker/${docker-image.namePrefix}/${docker-image.name}/tmp/docker-build.tar' + def tarFile = new File(tarFileName) + assert tarFile.exists() + def sizeInMb = (int) (tarFile.length() / (1024 * 1024)) + def configuredExpectedSize = '${docker-contextTarFile.expectedSizeInMbAt10pct}' + int expectedSize = configuredExpectedSize ? configuredExpectedSize as int : 1 + def pct = ((int) (1000 * sizeInMb / expectedSize)) / 10 + if ((pct >= 90 && pct <= 110) || (sizeInMb + expectedSize) < 2) { + log.info("Context tar file ok (" + pct + "% from configured expectation)") + } + else { + throw new RuntimeException("Docker tar file outside expectations: " + sizeInMb + "Mb (" + pct + "%): " + tarFile.absolutePath) + } + ]]></script> + </scripts> + <skipScriptExecution>${docker-image.skip}</skipScriptExecution> + </configuration> + <dependencies> + <dependency> + <groupId>org.apache.groovy</groupId> + <artifactId>groovy</artifactId> + <version>4.0.18</version> + <scope>runtime</scope> + </dependency> + <dependency> <!-- just to avoid a stupid warning --> + <groupId>org.apache.groovy</groupId> + <artifactId>groovy-ant</artifactId> + <version>4.0.18</version> + <scope>runtime</scope> + </dependency> + </dependencies> + </plugin> </plugins> </build> </profile> diff --git a/xplan-cli/xplan-cli-tools/pom.xml b/xplan-cli/xplan-cli-tools/pom.xml index b8b48e5d12..3a7690fb9c 100644 --- a/xplan-cli/xplan-cli-tools/pom.xml +++ b/xplan-cli/xplan-cli-tools/pom.xml @@ -13,6 +13,10 @@ <version>7.2-SNAPSHOT</version> </parent> + <properties> + <docker-contextTarFile.expectedSizeInMbAt10pct>697</docker-contextTarFile.expectedSizeInMbAt10pct> + </properties> + <dependencyManagement> <dependencies> <dependency> diff --git a/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/edit/XPlanToEditFactory.java b/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/edit/XPlanToEditFactory.java index 195097d43a..115af2072f 100644 --- a/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/edit/XPlanToEditFactory.java +++ b/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/edit/XPlanToEditFactory.java @@ -157,7 +157,14 @@ public class XPlanToEditFactory { baseData.setPlanTypeCode(asInteger(propertyValue)); } else if ("sonstPlanArt".equals(propertyName)) { - baseData.setOtherPlanTypeCode(asInteger(propertyValue)); + try { + int sonstPlanArtValue = Integer.parseInt(propertyValue.toString()); + baseData.setOtherPlanTypeCode(sonstPlanArtValue); + } + catch (NumberFormatException e) { + LOG.warn("sonstPlanArt is not an integer value. Currently only integer values are supported."); + baseData.setOtherPlanTypeCode(-1); + } } else if ("verfahren".equals(propertyName)) { baseData.setMethodCode(asInteger(propertyValue)); diff --git a/xplan-core/xplan-core-manager/src/test/resources/de/latlon/xplan/manager/edit/xplan54/BPlan002_5-4.gml b/xplan-core/xplan-core-manager/src/test/resources/de/latlon/xplan/manager/edit/xplan54/BPlan002_5-4.gml index c117b98215..fa8a450ae9 100644 --- a/xplan-core/xplan-core-manager/src/test/resources/de/latlon/xplan/manager/edit/xplan54/BPlan002_5-4.gml +++ b/xplan-core/xplan-core-manager/src/test/resources/de/latlon/xplan/manager/edit/xplan54/BPlan002_5-4.gml @@ -59,6 +59,7 @@ </xplan:XP_Gemeinde> </xplan:gemeinde> <xplan:planArt>1000</xplan:planArt> + <xplan:sonstPlanArt codeSpace="https://registry.gdi-de.org/codelist/de.xleitstelle.xplanung/BP_SonstPlanArt" >9999_4</xplan:sonstPlanArt> <xplan:verfahren>1000</xplan:verfahren> <xplan:rechtsstand>3000</xplan:rechtsstand> <xplan:veraenderungssperre>false</xplan:veraenderungssperre> diff --git a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/geometric/inspector/flaechenschluss/OptimisedFlaechenschlussInspector.java b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/geometric/inspector/flaechenschluss/OptimisedFlaechenschlussInspector.java index f96d475055..85263ee811 100644 --- a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/geometric/inspector/flaechenschluss/OptimisedFlaechenschlussInspector.java +++ b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/geometric/inspector/flaechenschluss/OptimisedFlaechenschlussInspector.java @@ -76,7 +76,6 @@ import org.slf4j.LoggerFactory; import java.math.BigDecimal; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -554,8 +553,11 @@ public class OptimisedFlaechenschlussInspector implements GeometricFeatureInspec } else if (geltungsbereichFeature instanceof PlanFeature) { FeaturesUnderTest planFeaturesUnderTest = new FeaturesUnderTest(flaechenschlussUnion, featuresUnderTest); - planFeaturesWithFeaturesUnderTest.put((PlanFeature) geltungsbereichFeature, - Collections.singletonList(planFeaturesUnderTest)); + PlanFeature planFeature = (PlanFeature) geltungsbereichFeature; + if (!planFeaturesWithFeaturesUnderTest.containsKey(planFeature)) { + planFeaturesWithFeaturesUnderTest.put(planFeature, new ArrayList<>()); + } + planFeaturesWithFeaturesUnderTest.get(planFeature).add(planFeaturesUnderTest); } } diff --git a/xplan-database/xplan-database-docker/pom.xml b/xplan-database/xplan-database-docker/pom.xml index 067f71373a..64227abe96 100644 --- a/xplan-database/xplan-database-docker/pom.xml +++ b/xplan-database/xplan-database-docker/pom.xml @@ -41,6 +41,7 @@ <properties> <docker-image.skip>false</docker-image.skip> <docker-image.name>xplan-db</docker-image.name> + <docker-contextTarFile.expectedSizeInMbAt10pct>19</docker-contextTarFile.expectedSizeInMbAt10pct> </properties> </profile> </profiles> diff --git a/xplan-database/xplan-database-scripts/pom.xml b/xplan-database/xplan-database-scripts/pom.xml index 5d7df81581..4a38811961 100644 --- a/xplan-database/xplan-database-scripts/pom.xml +++ b/xplan-database/xplan-database-scripts/pom.xml @@ -897,6 +897,7 @@ <properties> <docker-image.skip>false</docker-image.skip> <docker-image.name>xplan-db-updater</docker-image.name> + <docker-contextTarFile.expectedSizeInMbAt10pct>16</docker-contextTarFile.expectedSizeInMbAt10pct> </properties> </profile> </profiles> diff --git a/xplan-docker/xplan-docker-volume-init/pom.xml b/xplan-docker/xplan-docker-volume-init/pom.xml index 8337e34cb5..4c0d7d9d7f 100644 --- a/xplan-docker/xplan-docker-volume-init/pom.xml +++ b/xplan-docker/xplan-docker-volume-init/pom.xml @@ -13,6 +13,7 @@ <properties> <docker-image.skip>false</docker-image.skip> + <docker-contextTarFile.expectedSizeInMbAt10pct>37</docker-contextTarFile.expectedSizeInMbAt10pct> </properties> <build> diff --git a/xplan-documentation/xplan-benutzerhandbuch/pom.xml b/xplan-documentation/xplan-benutzerhandbuch/pom.xml index 116da1cec7..f3f49ef51c 100644 --- a/xplan-documentation/xplan-benutzerhandbuch/pom.xml +++ b/xplan-documentation/xplan-benutzerhandbuch/pom.xml @@ -88,6 +88,7 @@ <id>docker</id> <properties> <docker-image.skip>false</docker-image.skip> + <docker-contextTarFile.expectedSizeInMbAt10pct>19</docker-contextTarFile.expectedSizeInMbAt10pct> </properties> </profile> </profiles> diff --git a/xplan-documentation/xplan-benutzerhandbuch/src/main/asciidoc/aenderungsHistorie.adoc b/xplan-documentation/xplan-benutzerhandbuch/src/main/asciidoc/aenderungsHistorie.adoc index 96dd70ce9c..1ecb68e617 100644 --- a/xplan-documentation/xplan-benutzerhandbuch/src/main/asciidoc/aenderungsHistorie.adoc +++ b/xplan-documentation/xplan-benutzerhandbuch/src/main/asciidoc/aenderungsHistorie.adoc @@ -2,6 +2,14 @@ [[Aenderungshistorie]] == Änderungshistorie der xPlanBox +[[Aenderungshistorie-7.1.1]] +=== Version 7.1.1 + +==== Fehlerbehebungen +- Fehler bei der Installation der XPlanManagerAPI, XPlanValidatorAPI und XPlanDokumenteAPI im Tomcat behoben +- Fehler beim Editieren eines Plans, bei dem sonstPlanArt gesetzt ist und keine Ganzzahl beinhaltet behoben +- Fehler bei der Flächenschlussprüfung, wenn der Geltungsbereich von Bereich und PlanFeature nicht übereinstimmen behoben + [[Aenderungshistorie-7.1]] === Version 7.1 diff --git a/xplan-documentation/xplan-betriebshandbuch/pom.xml b/xplan-documentation/xplan-betriebshandbuch/pom.xml index db9658ff6e..90a36f5a1c 100644 --- a/xplan-documentation/xplan-betriebshandbuch/pom.xml +++ b/xplan-documentation/xplan-betriebshandbuch/pom.xml @@ -46,6 +46,7 @@ <id>docker</id> <properties> <docker-image.skip>false</docker-image.skip> + <docker-contextTarFile.expectedSizeInMbAt10pct>29</docker-contextTarFile.expectedSizeInMbAt10pct> </properties> </profile> <profile> diff --git a/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/aktualisierung.adoc b/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/aktualisierung.adoc index b88450be3b..b93523ebe7 100644 --- a/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/aktualisierung.adoc +++ b/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/aktualisierung.adoc @@ -77,6 +77,7 @@ Die Aktualisierungswerkzeuge und -skripte werden nur für die genannten Versione | 7.0.1 | ja (<<aktualisierung-version-7.0.1, Details>>) | nein | 7.0.2 | ja (<<aktualisierung-version-7.0.2, Details>>) | nein | 7.1 | ja (<<aktualisierung-version-7.1, Details>>) | ja (<<aktualisierung-version-7.1, Details>>) +| 7.1.1 | nein | nein |Durchzuführende Aktualisierungen | <<aktualisierung-der-betroffenen-konfigurationsdateien-in-den-workspaces>> | <<aktualisierung-der-schemas>> und <<aktualisierung-der-daten>> |=== @@ -287,3 +288,17 @@ Bei unerwartetem Verhalten der xPlanBox nach einer Aktualisierung können folgen * Löschen des Verzeichnisses _<CATALINA_HOME>/work/_ des Tomcat-Servers. Der Tomcat-Server muss zuvor gestoppt und anschließend neu gestartet werden. * Reload der Workspaces der XPlanDienste. * Löschen des Browser-Caches. + +[[aktualisierung-version-7.1.1]] +=== Aktualisierung auf die Version 7.1.1 + +Für eine Installation der Bugfix-Version müssen folgende Schritte ausgeführt werden: + +* Austausch der Webapps: +** _xplan-api-validator.war_ +** _xplan-api-manager.war_ +** _xplan-validator-web.war_ +** _xplan-manager-web.war_ +** _xplan-api-dokumente.war_ + +TIP: Alle anderen Komponenten sind unverändert und müssen nicht aktualisiert werden. \ No newline at end of file diff --git a/xplan-documentation/xplan-webpages/pom.xml b/xplan-documentation/xplan-webpages/pom.xml index 0693549f6e..a26c137d16 100644 --- a/xplan-documentation/xplan-webpages/pom.xml +++ b/xplan-documentation/xplan-webpages/pom.xml @@ -54,6 +54,7 @@ <id>docker</id> <properties> <docker-image.skip>false</docker-image.skip> + <docker-contextTarFile.expectedSizeInMbAt10pct>11</docker-contextTarFile.expectedSizeInMbAt10pct> </properties> </profile> </profiles> diff --git a/xplan-dokumente/xplan-dokumente-api/pom.xml b/xplan-dokumente/xplan-dokumente-api/pom.xml index c2590b30da..ee84688121 100755 --- a/xplan-dokumente/xplan-dokumente-api/pom.xml +++ b/xplan-dokumente/xplan-dokumente-api/pom.xml @@ -252,6 +252,7 @@ <id>docker</id> <properties> <docker-image.skip>false</docker-image.skip> + <docker-contextTarFile.expectedSizeInMbAt10pct>125</docker-contextTarFile.expectedSizeInMbAt10pct> </properties> <dependencies> <dependency> <!-- faked maven dependency to be after base docker image in the reactor build --> diff --git a/xplan-dokumente/xplan-dokumente-api/src/main/java/de/latlon/xplanbox/api/dokumente/SpringBootApp.java b/xplan-dokumente/xplan-dokumente-api/src/main/java/de/latlon/xplanbox/api/dokumente/SpringBootApp.java index 6321535e03..58956b22a6 100644 --- a/xplan-dokumente/xplan-dokumente-api/src/main/java/de/latlon/xplanbox/api/dokumente/SpringBootApp.java +++ b/xplan-dokumente/xplan-dokumente-api/src/main/java/de/latlon/xplanbox/api/dokumente/SpringBootApp.java @@ -22,14 +22,26 @@ package de.latlon.xplanbox.api.dokumente; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.context.annotation.ComponentScan; @SpringBootApplication @ComponentScan(basePackages = { "de.latlon.xplanbox.api.dokumente.config" }) -public class SpringBootApp { +public class SpringBootApp extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(SpringBootApp.class, args); } + /** + * Runs the application as deployable WAR. + * @param application Spring application builder + * @return Spring application builder with this application configured + */ + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(SpringBootApp.class); + } + } diff --git a/xplan-manager/xplan-manager-api/pom.xml b/xplan-manager/xplan-manager-api/pom.xml index fb3b90f2a8..ffb59560c0 100644 --- a/xplan-manager/xplan-manager-api/pom.xml +++ b/xplan-manager/xplan-manager-api/pom.xml @@ -308,6 +308,7 @@ <id>docker</id> <properties> <docker-image.skip>false</docker-image.skip> + <docker-contextTarFile.expectedSizeInMbAt10pct>132</docker-contextTarFile.expectedSizeInMbAt10pct> </properties> <dependencies> <dependency> <!-- faked maven dependency to be after base docker image in the reactor build --> diff --git a/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/SpringBootApp.java b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/SpringBootApp.java index d817847a57..7fd9ee65ca 100644 --- a/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/SpringBootApp.java +++ b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/SpringBootApp.java @@ -26,16 +26,28 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration; import org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration; import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.context.annotation.ComponentScan; @SpringBootApplication @ComponentScan(basePackages = { "de.latlon.xplanbox.api.manager.config" }) @EnableAutoConfiguration( exclude = { QuartzAutoConfiguration.class, LiquibaseAutoConfiguration.class, SecurityAutoConfiguration.class }) -public class SpringBootApp { +public class SpringBootApp extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(SpringBootApp.class, args); } + /** + * Runs the application as deployable WAR. + * @param application Spring application builder + * @return Spring application builder with this application configured + */ + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(SpringBootApp.class); + } + } diff --git a/xplan-manager/xplan-manager-web/Dockerfile b/xplan-manager/xplan-manager-web/Dockerfile index a9c544002b..cd8faeacd9 100644 --- a/xplan-manager/xplan-manager-web/Dockerfile +++ b/xplan-manager/xplan-manager-web/Dockerfile @@ -5,7 +5,7 @@ FROM ${XPLANBOX_IMAGE_NAME_PREFIX}/xplan-docker-tomcat-gdal:$XPLANBOX_VERSION ARG BUILD_DATE=? ARG DOCKER_IMAGE_NAME=? ARG GIT_REVISION=? -ARG WEB_CONTEXT=ROOT +ARG WEB_CONTEXT=xplan-manager-web ARG XPLANBOX_VERSION=latest # see https://github.com/opencontainers/image-spec/blob/main/annotations.md#pre-defined-annotation-keys @@ -22,10 +22,12 @@ LABEL "org.opencontainers.image.created"="$BUILD_DATE" \ # set environment variables ENV TOMCAT_ADDITIONAL_ARG_APP="-DXPLANBOX_CONFIG=/xplanbox/xplan-manager-config/ -Djavax.xml.transform.TransformerFactory=net.sf.saxon.TransformerFactoryImpl -Djts.overlay=ng -Duser.timezone=Europe/Berlin" -# add xplan-manager-web -# TODO: add unpacked -COPY target/xplan-manager-web-*.war /usr/local/tomcat/webapps/xplan-manager-web.war - +# add xplan-manager-web directly unpacked +COPY target/xplan-manager-web-*.war /tmp/ +RUN mkdir /usr/local/tomcat/webapps/$WEB_CONTEXT \ + && cd /usr/local/tomcat/webapps/$WEB_CONTEXT \ + && jar xf /tmp/xplan-manager-web-*.war \ + && rm /tmp/xplan-manager-web-*.war # run tomcat CMD ["/usr/local/tomcat/bin/catalina.sh", "run"] diff --git a/xplan-manager/xplan-manager-web/DockerfileHale b/xplan-manager/xplan-manager-web/DockerfileHale index 3ca0059855..7a467e6737 100644 --- a/xplan-manager/xplan-manager-web/DockerfileHale +++ b/xplan-manager/xplan-manager-web/DockerfileHale @@ -2,20 +2,37 @@ ARG XPLANBOX_VERSION=latest ARG XPLANBOX_IMAGE_NAME_PREFIX=xplanbox FROM ${XPLANBOX_IMAGE_NAME_PREFIX}/xplan-docker-tomcat-gdal:$XPLANBOX_VERSION -ARG WEB_CONTEXT=ROOT +ARG BUILD_DATE=? +ARG DOCKER_IMAGE_NAME=? +ARG GIT_REVISION=? +ARG WEB_CONTEXT=xplan-manager-web +ARG XPLANBOX_VERSION=latest + +# see https://github.com/opencontainers/image-spec/blob/main/annotations.md#pre-defined-annotation-keys +LABEL "org.opencontainers.image.created"="$BUILD_DATE" \ + "org.opencontainers.image.description"="ozgxplanung xPlanBox component" \ + "org.opencontainers.image.licenses"="GNU Affero General Public License & others" \ + "org.opencontainers.image.ref.name"="$DOCKER_IMAGE_NAME" \ + "org.opencontainers.image.revision"="$GIT_REVISION" \ + "org.opencontainers.image.title"="ozgxplanung - $DOCKER_IMAGE_NAME" \ + "org.opencontainers.image.url"="https://gitlab.opencode.de/diplanung/ozgxplanung" \ + "org.opencontainers.image.vendor"="lat/lon GmbH" \ + "org.opencontainers.image.version"="$XPLANBOX_VERSION" # set environment variables -ENV TOMCAT_ADDITIONAL_ARG_APP="-DXPLANBOX_CONFIG=/xplanbox/xplan-manager-config/ -Dlog4j2.configurationFile=classpath:/log4j2.yaml -Djavax.xml.transform.TransformerFactory=net.sf.saxon.TransformerFactoryImpl -Djts.overlay=ng -Duser.timezone=Europe/Berlin" +ENV TOMCAT_ADDITIONAL_ARG_APP="-DXPLANBOX_CONFIG=/xplanbox/xplan-manager-config/ -Djavax.xml.transform.TransformerFactory=net.sf.saxon.TransformerFactoryImpl -Djts.overlay=ng -Duser.timezone=Europe/Berlin" # add hale-cli which is using Java 8 JDK RUN cd / && wget https://github.com/halestudio/hale-cli/releases/download/v3.4.0/hale-cli-3.4.0.zip && unzip hale-cli-3.4.0.zip RUN apt update && apt -y install openjdk-8-jdk RUN sed -i '2iJAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64' /hale/bin/hale -# add xplan-manager-web -# TODO: add unpacked -COPY target/xplan-manager-web-*.war /usr/local/tomcat/webapps/xplan-manager-web.war - +# add xplan-manager-web directly unpacked +COPY target/xplan-manager-web-*.war /tmp/ +RUN mkdir /usr/local/tomcat/webapps/$WEB_CONTEXT \ + && cd /usr/local/tomcat/webapps/$WEB_CONTEXT \ + && jar xf /tmp/xplan-manager-web-*.war \ + && rm /tmp/xplan-manager-web-*.war # run tomcat CMD ["/usr/local/tomcat/bin/catalina.sh", "run"] diff --git a/xplan-manager/xplan-manager-web/pom.xml b/xplan-manager/xplan-manager-web/pom.xml index b08b392f64..23a52473bb 100644 --- a/xplan-manager/xplan-manager-web/pom.xml +++ b/xplan-manager/xplan-manager-web/pom.xml @@ -260,6 +260,7 @@ <id>docker</id> <properties> <docker-image.skip>false</docker-image.skip> + <docker-contextTarFile.expectedSizeInMbAt10pct>363</docker-contextTarFile.expectedSizeInMbAt10pct> </properties> <dependencies> <dependency> <!-- faked maven dependency to be after base docker image in the reactor build --> diff --git a/xplan-tests/xplan-tests-soapui/pom.xml b/xplan-tests/xplan-tests-soapui/pom.xml index 1d4133f49e..24f314c3f4 100644 --- a/xplan-tests/xplan-tests-soapui/pom.xml +++ b/xplan-tests/xplan-tests-soapui/pom.xml @@ -127,6 +127,7 @@ <id>docker</id> <properties> <docker-image.skip>false</docker-image.skip> + <docker-contextTarFile.expectedSizeInMbAt10pct>58</docker-contextTarFile.expectedSizeInMbAt10pct> </properties> <build> <plugins> 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 804f41cf61..994e91efce 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 @@ -4769,10 +4769,10 @@ assert actualHeader != null</scriptText> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="0a3c4269-f153-4f4a-a0bf-e11e4a9ae7b1" name="xPlanModelData.inkrafttretensDatum"> + <con:assertion type="JsonPath Match" id="0a3c4269-f153-4f4a-a0bf-e11e4a9ae7b1" name="xPlanModelData.inkrafttretensDatum" disabled="true"> <con:configuration> <path>$[0].xplanModelData.inkrafttretensDatum</path> - <content>1973-10-15T23:00:00.000+00:00</content> + <content>1973-10-16T00:00:00.000+0100</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -9332,8 +9332,8 @@ if (jdbcUrl == ""){ </con:settings> <con:endpoint>${#Project#baseUrlManagerApi}/xmanager/api/v1</con:endpoint> <con:request>{ - "start": "2021-11-09T00:00:00.000+00:00", - "ende": "2021-11-11T00:00:00.000+00:00" + "start": "2021-11-09T05:00:00.000+0100", + "ende": "2021-11-11T05:00:00.000+0100" }</con:request> <con:originalUri>http://localhost/xplan-manager-api/xmanager/api/v1/plan//gueltigkeit/</con:originalUri> <con:assertion type="Valid HTTP Status Codes" id="870670ee-b96a-4ca1-8f21-05f788869309" name="Valid HTTP Status Codes"> @@ -9341,7 +9341,7 @@ if (jdbcUrl == ""){ <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="d800035e-41b6-4e0b-9f17-54f6eba2095f" name="start"> + <con:assertion type="JsonPath Match" id="d800035e-41b6-4e0b-9f17-54f6eba2095f" name="start" disabled="true"> <con:configuration> <path>$.start</path> <content>2021-11-09T00:00:00.000+00:00</content> @@ -9350,6 +9350,13 @@ if (jdbcUrl == ""){ <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> + <con:assertion type="Simple Contains" id="dc6c4f1b-0f10-4eec-bd86-ac75d6ea08a8" name="start- contains"> + <con:configuration> + <token>2021-11-09</token> + <ignoreCase>false</ignoreCase> + <useRegEx>false</useRegEx> + </con:configuration> + </con:assertion> <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> @@ -9379,7 +9386,7 @@ if (jdbcUrl == ""){ <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="5f3a4893-7453-4a04-9893-bb1376db503c" name="JsonPath Match"> + <con:assertion type="JsonPath Match" id="5f3a4893-7453-4a04-9893-bb1376db503c" name="start" disabled="true"> <con:configuration> <path>$.start</path> <content>2021-11-09T00:00:00.000+00:00</content> @@ -9388,6 +9395,13 @@ if (jdbcUrl == ""){ <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> + <con:assertion type="Simple Contains" id="7f861255-4416-4da1-8ea2-ac64c583c72c" name="start - contains"> + <con:configuration> + <token>2021-11-09</token> + <ignoreCase>false</ignoreCase> + <useRegEx>false</useRegEx> + </con:configuration> + </con:assertion> <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> diff --git a/xplan-tests/xplan-tests-soapui/src/main/resources/xplan-manager-api/plans/BP_6.0.gml b/xplan-tests/xplan-tests-soapui/src/main/resources/xplan-manager-api/plans/BP_6.0.gml index 6f62f641d2..b9d1c0625a 100644 --- a/xplan-tests/xplan-tests-soapui/src/main/resources/xplan-manager-api/plans/BP_6.0.gml +++ b/xplan-tests/xplan-tests-soapui/src/main/resources/xplan-manager-api/plans/BP_6.0.gml @@ -43,6 +43,7 @@ </xplan:XP_Gemeinde> </xplan:gemeinde> <xplan:planArt>1000</xplan:planArt> + <xplan:sonstPlanArt codeSpace="https://registry.gdi-de.org/codelist/de.xleitstelle.xplanung/BP_SonstPlanArt" >9999_4</xplan:sonstPlanArt> <xplan:rechtsstand>3000</xplan:rechtsstand> <xplan:staedtebaulicherVertrag>false</xplan:staedtebaulicherVertrag> <xplan:erschliessungsVertrag>false</xplan:erschliessungsVertrag> diff --git a/xplan-validator/xplan-validator-api/pom.xml b/xplan-validator/xplan-validator-api/pom.xml index 532c32972c..b5b88b2714 100755 --- a/xplan-validator/xplan-validator-api/pom.xml +++ b/xplan-validator/xplan-validator-api/pom.xml @@ -308,6 +308,7 @@ <id>docker</id> <properties> <docker-image.skip>false</docker-image.skip> + <docker-contextTarFile.expectedSizeInMbAt10pct>104</docker-contextTarFile.expectedSizeInMbAt10pct> </properties> <dependencies> <dependency> <!-- to copy jmx exporter stuff from docker image --> diff --git a/xplan-validator/xplan-validator-api/src/main/java/de/latlon/xplanbox/api/validator/SpringBootApp.java b/xplan-validator/xplan-validator-api/src/main/java/de/latlon/xplanbox/api/validator/SpringBootApp.java index efb3215d53..ce190ab55e 100644 --- a/xplan-validator/xplan-validator-api/src/main/java/de/latlon/xplanbox/api/validator/SpringBootApp.java +++ b/xplan-validator/xplan-validator-api/src/main/java/de/latlon/xplanbox/api/validator/SpringBootApp.java @@ -8,12 +8,12 @@ * 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% @@ -24,15 +24,27 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.context.annotation.ComponentScan; @SpringBootApplication @ComponentScan(basePackages = { "de.latlon.xplanbox.api.validator.config" }) @EnableAutoConfiguration(exclude = { SecurityAutoConfiguration.class }) -public class SpringBootApp { +public class SpringBootApp extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(SpringBootApp.class, args); } + /** + * Runs the application as deployable WAR. + * @param application Spring application builder + * @return Spring application builder with this application configured + */ + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(SpringBootApp.class); + } + } diff --git a/xplan-validator/xplan-validator-web/pom.xml b/xplan-validator/xplan-validator-web/pom.xml index c9e45fcfcf..0ca4e2c94d 100644 --- a/xplan-validator/xplan-validator-web/pom.xml +++ b/xplan-validator/xplan-validator-web/pom.xml @@ -265,6 +265,7 @@ <id>docker</id> <properties> <docker-image.skip>false</docker-image.skip> + <docker-contextTarFile.expectedSizeInMbAt10pct>302</docker-contextTarFile.expectedSizeInMbAt10pct> </properties> <dependencies> <dependency> <!-- faked maven dependency to be after base docker image in the reactor build --> diff --git a/xplan-webservices/xplan-webservices-inspireplu/pom.xml b/xplan-webservices/xplan-webservices-inspireplu/pom.xml index 78feb1554c..3739a64117 100644 --- a/xplan-webservices/xplan-webservices-inspireplu/pom.xml +++ b/xplan-webservices/xplan-webservices-inspireplu/pom.xml @@ -51,6 +51,7 @@ <id>docker</id> <properties> <docker-image.skip>false</docker-image.skip> + <docker-contextTarFile.expectedSizeInMbAt10pct>68</docker-contextTarFile.expectedSizeInMbAt10pct> </properties> <build> <plugins> diff --git a/xplan-webservices/xplan-webservices-services/xplan-services-docker/pom.xml b/xplan-webservices/xplan-webservices-services/xplan-services-docker/pom.xml index c7ab010ef3..d5d9dcfbac 100644 --- a/xplan-webservices/xplan-webservices-services/xplan-services-docker/pom.xml +++ b/xplan-webservices/xplan-webservices-services/xplan-services-docker/pom.xml @@ -13,6 +13,7 @@ <properties> <docker-image.skip>false</docker-image.skip> <docker-image.name>xplan-services</docker-image.name> + <docker-contextTarFile.expectedSizeInMbAt10pct>202</docker-contextTarFile.expectedSizeInMbAt10pct> </properties> <build> diff --git a/xplan-webservices/xplan-webservices-validator-wms/pom.xml b/xplan-webservices/xplan-webservices-validator-wms/pom.xml index 656279c6cc..066ac7e9a6 100644 --- a/xplan-webservices/xplan-webservices-validator-wms/pom.xml +++ b/xplan-webservices/xplan-webservices-validator-wms/pom.xml @@ -70,6 +70,7 @@ <id>docker</id> <properties> <docker-image.skip>false</docker-image.skip> + <docker-contextTarFile.expectedSizeInMbAt10pct>210</docker-contextTarFile.expectedSizeInMbAt10pct> </properties> <build> <plugins> -- GitLab