diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5caba09f81d15b3620d3daa5f41994761c271a61..978c18303f0415282dae2bc661eca825316db286 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 77e3d3869edd62608be5ad2a4f7519670fdac4e9..cf5d9a1d391f3595f50b95a5d34f4aae9f56d0cf 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 7655554e0be2c992d2c58d10d37cc171eb6a56ab..8038a7f1cdeb6251fb28106baa74842cf50433ee 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 4590a4ea252878fb7d9beb8ee6757dd37bb21134..e5af6c7414e8e1aaf0e730b4d370fbb6cce1df01 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 b8b48e5d1286523992c266ea18f2e0150a8650e8..3a7690fb9ce5ba474aea09746c0e69e24ffdfd51 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 195097d43aa7a4a38350b386d2f6d7b951afc6b0..115af2072f3c2aa6039289992407b9a3f27898a9 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 c117b9821579fcf16595e9d8c3cb93e5b2d9fb51..fa8a450ae921d03ad56b0049e981ba7626e78eba 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 f96d475055905d20a9b3b556e8edf35210b91be4..85263ee811699f7b99a729079e211007cb2bb26d 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 067f71373a3c1a06cc7cf2fe671a2b4fed53e1a7..64227abe96ad93c2750652776df351f51fe98a8c 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 5d7df815811293962f6876eab18ae83dd0cb4c30..4a388119611e16489ad6a308917f9bc25786e32e 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 8337e34cb53ab5bc4c7108ca68582446eced090e..4c0d7d9d7f31352175f984749d1c60c419e17d52 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 116da1cec79dd98b6ba733f9be42d22c753b63f1..f3f49ef51c7eadc449e94d4419d9c38bf43c10a1 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 96dd70ce9c9aefafe6ae0a0bd0d4fde9f02a7228..1ecb68e617ae866ac560a89e523c132277de4232 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 db9658ff6e6576708f0de5cacad400239e5fe450..90a36f5a1cfb5225267d7605440145c7b458cfe8 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 b88450be3b8a7845456789d220799122d5f95341..b93523ebe707ff53c2c6b605f4ca9ec49f204dda 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 0693549f6e378156c45f093c1e286c6cb0d73525..a26c137d165e5ee6a0abe96c4524ff276eb54922 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 c2590b30daa6de04e2bc3ab82bcf368351c91f3e..ee8468812162b7fd60572dc6336b61ab0b68d22e 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 6321535e0316cddcd1d0c146a928cf5c1c1c0a4a..58956b22a6b63ebe2fcda0330f62c5529e74b91c 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 fb3b90f2a8c689e1604a544146711236363d4cd1..ffb59560c0ff6b66305daca485ad0931df70a3f6 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 d817847a574bb83d0418b1ce681abc6495837720..7fd9ee65cabc49a0a013987d511601397ec99f66 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 a9c544002b39f5b23b408edf4990682210e74b15..cd8faeacd9acde9c1ed14e3298a258b4ca06f87e 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 3ca005985525d487ce557963e24ac9c06584edc0..7a467e6737793741db0b1b68f21058de585cb2a3 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 b08b392f64e9773439e1f7745ff1427f9085e0ff..23a52473bb82cfc3a2d493487b43e7864ebc4f84 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 1d4133f49e7cbd8be97f8dcdb36bc2eca82588a5..24f314c3f4785ca6a8b78c35d3b0a1ece4f6f8e9 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 804f41cf61adaff2c5bc102d6c3f8b17b83659c8..994e91efce46d069042529e3aac0b9d012f59cae 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 6f62f641d2c956e318148a6a6d716b7ed0404c34..b9d1c0625a57dcbfdda6cfdabe35e65c216d0f0e 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 532c32972c7d74871112429be686334f8a6e1781..b5b88b2714ba6a8a5c09e9a9ec6a124af8a04832 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 efb3215d534a2022f4c31669c939c35c83c49131..ce190ab55e7c9a15fb5a1671859da36756fce3d1 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 c9e45fcfcf893b6ed0ba308365ba0232473de1b6..0ca4e2c94d405237b1c8ebe67ee49583ab39a797 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 78feb1554cffc7271386049097cb38c214e9f346..3739a6411755772158836480e6d1bdd967f80710 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 c7ab010ef33e7b4c804912c8694bb122ae739847..d5d9dcfbaca7101d962a5317ecaded900ffd12a1 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 656279c6ccb574feeefdefec0be6f0060405a8c5..066ac7e9a61b7bd8c2c14379545e5c623cd9b755 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>