1. Präambel

Dieses Dokument ist das offizielle Betriebshandbuch zur Installation der Software xPlanBox. Die in diesem Dokument genannten Soft- und Hardwarebezeichnungen sind in den meisten Fällen auch eingetragene Warenzeichen und unterliegen als solche den gesetzlichen Bestimmungen.

Die in diesem Werk enthaltenen Angaben, Daten, Ergebnisse usw. wurden von den Autoren nach bestem Wissen erstellt und mit Sorgfalt überprüft. Dennoch sind inhaltliche Fehler nicht völlig auszuschließen. Daher erfolgen alle Angaben ohne jegliche Verpflichtung oder Garantie. Die Autoren übernehmen aus diesem Grund auch keinerlei Verantwortung oder Haftung für Fehler und deren Folgen. Hinweise auf eventuelle Irrtümer werden gerne entgegengenommen.

Dieses Dokument ist mit AsciiDoc gesetzt. Es ist als Quellcode erhältlich und kann als HTML und PDF angeschaut bzw. bereitgestellt werden. Für die Bereitstellung des AsciiDoc Quellcode wenden Sie sich bitte an lat/lon - per E-mail an info@lat-lon.de.

1.1. Autoren

Danilo Bretschneider, Jens Fitzke, Torsten Friebe, Dirk Stenger, Sebastian Goerke, Lyn Elisa Goltz, Carmen Tawalika, Jeronimo Wanhoff, Lena Rippolz.

Copyright © 2010 - 2022, lat/lon GmbH, Bonn.

1.2. Lizenz

Die Komponenten der xPlanBox sind urheberrechtlich geschützt und werden unter der GNU Affero General Public License, Version 3 oder jeder späteren Version veröffentlicht.
Die xPlanBox basiert auf dem OSGeo-Projekt deegree, welches Bestandteil der xPlanBox ist. Der Quellcode von deegree ist urheberrechtlich geschützt und wird unter der GNU Lesser General Public License (LGPL), version 2.1 veröffentlicht. Bitte beachten Sie auch die Lizenzen der verwendeten Bibliotheken im Anhang.

Copyright © 2010 - 2022, lat/lon GmbH, Bonn.

1.2.1. Softwareüberlassung

Die Überlassung der in Binärcode übersetzten Programme (Binärprogramme) der xPlanBox sowie Skripte, Konfigurationsdateien und Dokumentation erfolgt als Distributionsdatei durch lat/lon und stehen unter https://repo.lat-lon.de/ zum Download zur Verfügung.

1.2.2. Gewährleistung

Für die Komponenten der xPlanBox gelten die Haftungs- und Gewährleistungsausschlüsse wie in der AGPL benannt. Für deegree gelten die Haftungs- und Gewährleistungsausschlüsse wie in der LGPL benannt.

Die Firma lat/lon GmbH übernimmt keine Gewähr zur Freiheit der Software xPlanBox bezüglich von Funktions- oder Sachmängeln.

1.2.3. Nutzungsbedingungen

1.3. Lizenz des Dokuments

Es wird die Erlaubnis gewährt, dieses Dokument zu kopieren, zu verteilen und/oder zu modifizieren, unter den Bestimmungen der GNU Free Documentation License, Version 1.3 oder jeder späteren Version, veröffentlicht von der Free Software Foundation; mit den unveränderlichen Abschnitten Präambel und Autoren, ohne vordere Umschlagtexte und ohne hintere Umschlagtexte. Die Lizenz wird unter http://www.gnu.org/licenses/fdl-1.3 bereitgestellt.

2. Systemüberblick

In diesem Betriebshandbuch befinden sich Informationen zu Systemvoraussetzungen, Schnittstellen und Installation für den Betrieb der xPlanBox. Die Web-Anwendungen basieren auf den Komponenten des OSGeo-Projekts deegree. Als zugrunde liegende Basistechnologien werden Java, Apache Tomcat und PostgreSQL mit PostGIS verwendet.

Zur erfolgreichen Installation der Software-Komponenten müssen die in diesem Kapitel beschriebenen Voraussetzungen erfüllt werden.

2.1. Systemvoraussetzungen

2.1.1. Server

Minimale Systemvoraussetzung
  • CPU: 8 CPUs bzw. 8 Kernen (64 Bit) mit minimal 2,5-GHz-Prozessorgeschwindigkeit

  • Arbeitsspeicher: 16 GB RAM

  • Netzwerkadapter: Gigabit-Ethernet-Adapter (10/100/1000baseT PHY/MAC)

  • Festplattensystem: Journaling-Dateisystem (Kapazität nach Bedarf, Minimum 500 GB)

Empfohlene Systemkonfiguration
  • CPU: 16 CPUs bzw. 16 Kernen (64 Bit) mit 3,2-GHz-Prozessorgeschwindigkeit

  • Arbeitsspeicher: 32 GB RAM

  • Netzwerkadapter: Gigabit-Ethernet-Adapter (10/100/1000baseT PHY/MAC)

  • Festplattensystem: RAID-10 (Kapazität nach Bedarf, Minimum 500 GB) optional mit SSD

Hohe Datentransferraten sind bei Bereitstellung von großen Datenbeständen sowohl von Raster- als auch Vektordaten notwendig, u.a. um die Vorgaben der INSPIRE-Richtlinien zu erfüllen.

2.1.2. Client

  • CPU: 2 CPU mit mindestens 2,0-GHz-Prozessor

  • Arbeitsspeicher: 4 GB RAM

Weitere Informationen zu den Systemvoraussetzungen bei den unterstützten Browsern: Microsoft Edge (79.0+), Mozilla Firefox (80.0+), Google Chrome (85.0+)

2.2. Betriebssystem

Als Betriebssystem kann ein beliebiges 64-bit Betriebssystem verwendet werden.

Empfohlen wird die Nutzung eines der folgenden Betriebssysteme: Debian 10 (Buster) oder Ubuntu 20.04 LTS (Focal Fossa).
Das Gebietsschema des Betriebssystems ("Locale") sollte auf deutsch konfiguriert sein, da einzelne Fehlerbeschreibungen in dieser Sprache ausgegeben werden (z. B. im Validierungsbericht). Unter Linux kann das Gebietsschema beispielsweise in der Datei "/etc/default/locale" angepasst werden.

2.3. Java SE

Als Java SE 11 wird sowohl Oracle JDK 11 als auch OpenJDK 11 (AdoptOpenJDK 11 oder Amazon Corretto 11) unterstützt.

Empfohlen wird OpenJDK 11.0.13+8.

2.4. Java Applikationsserver

Als Applikationsserver wird Apache Tomcat empfohlen. Das Installationsarchiv findet sich bei der Apache Foundation. Diese Dokumentation bezieht sich grundsätzlich auf den Apache Tomcat.

Um eine spätere Trennung der Dienste (Web-Anwendungen) zu gewährleisten, wird die Konfiguration von mehreren Tomcat-Instanzen empfohlen (siehe Kapitel Web-Anwendungen).

Die minimale Anforderung an den Applikationsserver ist das Java EE 7 Web Profil. Empfohlen wird Apache Tomcat Version 9.0.58.

2.5. Datenbank

Als Datenbanksystem ist eine Installation von PostgreSQL 9.5+ mit der Erweiterung PostGIS 2.4+ mindestens erforderlich.

Empfohlen wird PostgreSQL 11+ mit PostGIS 3.0+.

2.6. GDAL

Optional kann die Installation der GDAL-Bibliothek erforderlich sein. Liegen Teil-Vektorielle Pläne mit Rasterdaten in anderen Formaten als GeoTiff vor, die mit der xPlanBox verwaltet werden sollen, ist der Einsatz von GDAL erforderlich. Liegen die Rasterdaten dagegen nur im GeoTiff-Format vor, wird GDAL nicht benötigt. Weitere Informationen zur Installation von GDAL befinden sich im Abschnitt Installation und Konfiguration von GDAL.

Erforderlich ist GDAL 3.0.

2.7. HALE CLI

Optional kann die Installation von HALE CLI erforderlich sein. HALE CLI wird für die Transformation von Daten der xPlanBox verwendet. Weitere Informationen zur Installation befinden sich im Abschnitt Installation und Konfiguration von HALE CLI.

Erforderlich ist HALE CLI 3.4.0+.

3. Systemarchitektur und Schnittstellen

Das Gesamtsystem setzt sich aus folgenden Komponenten zusammen:

Einfache Darstellung
Abbildung 1. Einfache Datenhaltung der XPlanDB
Komplexe Darstellung
Abbildung 2. Separate Datenhaltung der XPlanDB - getrennt nach Planstatus

3.1. XPlanManagerWeb

Die Komponente XPlanManagerWeb ist eine Web-Oberfläche, die dem Fachadministrator der xPlanBox ermöglicht, die Datenhaltung XPlanDB über einen Browser zu verwalten.

3.2. XPlanManagerAPI

Die Komponente XPlanManagerAPI stellt eine REST-Schnittstelle bereit, über die die Datenhaltung XPlanDB verwaltet werden kann.

3.3. XPlanManagerCLI

Die Komponente XPlanManagerCLI ist ein Kommandozeilenwerkzeug, welches dem Fachadministrator der xPlanBox ermöglicht, die Datenhaltung XPlanDB über das Terminal zu verwalten.

3.4. XPlanValidatorWeb

Die Komponente XPlanValidatorWeb ist eine Web-Oberfläche, welche dem Fachadministrator der xPlanBox ermöglicht, XPlanGML-Dokumente über den Browser zu validieren.

3.4.1. XPlanValidatorWMS

Bei der Komponente XPlanValidatorWMS handelt es sich um eine Subkomponente des XPlanValidatorWeb. Validierte Plänen können über den XPlanValidatorWMS in der Kartenvorschau angezeigt werden, ohne das ein Plan in die Datenhaltung importiert wird. Dieser Dienst nutzt keine persistente Datenhaltung.

3.5. XPlanValidatorAPI

Die Komponente XPlanValidatorAPI stellt eine REST-Schnittstelle bereit, über die XPlanGML-Dokumente validiert werden können.

3.6. XPlanValidatorCLI

Die Komponente XPlanValidatorCLI ist ein Kommandozeilenwerkzeug, welches dem Fachadministrator der xPlanBox ermöglicht, XPlanGML-Dokumente über das Terminal zu validieren.

3.7. XPlanTransformCLI

Die Komponente XPlanTransformCLI ist ein Kommandozeilenwerkzeug, welches dem Fachadministrator der xPlanBox ermöglicht, bereits über den XPlanManagerWeb oder das XPlanManagerCLI importierte Pläne in eine aktuellere XPlanGML Version zu transformieren und in der XPlanDB zu speichern.

3.8. XPlanAuswerteschemaCLI

Die Komponente XPlanAuswerteschemaCLI ist ein Kommandozeilenwerkzeug, welches dem Fachadministrator der xPlanBox ermöglicht, ein weiteres Datenbankschema für die Auswertung zu erzeugen und die Daten aus dem XPlanSyn-Schema der XPlanDB mit dem des Auswerteschemas zu synchronisieren.

3.9. XPlanWMS und XPlanWerkWMS

Der XPlanWMS und XPlanWerkWMS sind auf dem Standard Web Map Service (Version 1.1.1 und 1.3.0) des Open Geospatial Consortium (OGC) basierende Kartendienste. Diese bieten die Möglichkeit, Visualisierungen von Plandaten sowie Sachinformationsabfragen zu einzelnen Planinhalten abzufragen. Um Plandaten zu visualisieren bzw. Sachinformationen abzufragen, ist es möglich, sowohl eine einfache (siehe Abbildung 1) als auch eine separate Datenhaltung (siehe Abbildung 2) zu nutzen, in der die Plandaten hinterlegt sind. Dabei wird bei einer separaten Datenhaltung (Unterteilung in: In Aufstellung, Festgestellt, Archiviert) durch die Auswahl des Planstatus, die dazugehörige Datenhaltung und somit der entsprechende XPlanWMS-Endpoint angesprochen. Der XPlanWMS greift auf dasselbe Datenbankschema wie der XPlanSynWFS in der XPlanDB zu. Rasterdaten werden im Workspace-Verzeichnis des XPlanWMS hinterlegt. Die Verzeichnisstruktur des Workspace XPlanWMS Workspace ist im Anhang dokumentiert.

Während der XPlanWMS planübergreifend arbeitet, beschränkt sich der XPlanWerkWMS auf einzelne Planwerke.

Die folgende Tabelle zeigt die vom XPlanWMS bereitgestellten Daten nach Planstatus.

Endpoint Planstatus Postfix für Schema und Endpoint

XPlanWMSInAufstellung

In Aufstellung

pre

XPlanWMSFestgestellt

Festgestellt

-

XPlanWMSArchiviert

Archiviert

archive

Gleiches gilt für den XPlanWerkWMS, XPlanWFS und XPlanSynWFS

3.10. XPlanWFS

Der XPlanWFS ist ein auf dem Standard Web Feature Service (Version 1.1.0 und 2.0.0) des Open Geospatial Consortium (OGC) basierender Dienst zur Abfrage von Vektordaten und stellt Endpunkte für jede XPlanGML-Version bereit. Zu jeder unterstützten XPlanGML-Version stellt die xPlanBox einen XPlanWFS-Endpoint bereit. Jeder Dienst greift auf das zu der XPlanGML-Version passende Datenbankschema in der XPlanDB zu. Die Zuordnung der einzelnen Endpunkte zu den Datenbankschemata ist im Kapitel Zugriff auf Daten der XPlanDB dokumentiert.

3.11. XPlanSynWFS

Der XPlanSynWFS dient der Abbildung des synthetisierten XPlanGML-Anwendungsschemas (XPlanSynGML). Dieses stellt eine vereinfachte und zusammenfassende Form der verschiedenen XPlanGML Versionen dar. Der XPlanSynWFS greift auf das synthetisierte Datenbankschema in der XPlanDB zu.

3.12. XPlanInspirePluWMS

Der XPlanInspirePluWMS ist ein INSPIRE View Service für die Bereitstellung importierter Pläne im INSPIRE Datenthema Planned Land Use (PLU).

3.13. XPlanInspirePluWFS

Der XPlanInspirePluWFS ist ein INSPIRE Download Service für die Bereitstellung importierter Pläne im INSPIRE Datenthema Planned Land Use (PLU).

3.14. XPlanRessourcen

Die optionale Komponente XPlanRessourcen bietet eine Einstiegsseite zu den einzelnen Komponenten der xPlanBox und stellt Testdaten sowie die Dokumente mit den Konformitätsbedingungen des Standards XPlanung bereit.

3.15. XPlanDB

Die Komponente stellt die zentrale Datenhaltungskomponente für die alle Komponenten der xPlanBox bereit und wird durch eine PostgreSQL/PostGIS DB realisiert. Die Einrichtung der Datenbank ist im Kapitel Konfiguration der Datenbank, die Datenbankstruktur im Anhang Datenbankmodell der XPlanDB sowie der Datenzugriff im Kapitel Zugriff auf Daten der XPlanDB beschrieben.

4. Installation der Komponenten

In den nachfolgenden Kapiteln wird die Installation der einzelnen Komponenten erläutert.

4.1. Überblick der Installationskomponenten

Die xPlanBox umfasst die folgenden Komponenten, die zusammengenommen die Liefereinheit darstellen:

  • Kommandozeilenwerkzeuge:

    • xplan-manager-cli-<VERSION>.zip

    • xplan-validator-cli-<VERSION>.zip

    • xplan-transform-cli-<VERSION>.zip

    • xplan-validatedb-cli-<VERSION>.zip

    • xplan-evaluation-schema-synchronize-cli-<VERSION>.zip

    • xplan-update-database-cli-<VERSION>.zip

  • Web-Anwendungen und Web-Dienste und zugehörige Konfigurationen:

Web-Anwendung/Dienst Konfigurationen

xplan-root-<VERSION>.war

-

xplan-validator-web-<VERSION>.war

xplan-validator-config-<VERSION>.zip

xplan-manager-web-<VERSION>.war

xplan-manager-config-<VERSION>.zip und xplan-workspaces-<VERSION>-xplan-manager-workspace.zip

xplan-api-validator-<VERSION>.war

xplan-validator-config-<VERSION>.zip

xplan-api-manager-<VERSION>.war

xplan-manager-config-<VERSION>.zip und xplan-workspaces-<VERSION>-xplan-manager-workspace.zip

xplansyn-wfs-<VERSION>.war

xplan-workspaces-<VERSION>-xplansyn-wfs-workspace.zip

xplan-wfs-<VERSION>.war

xplan-workspaces-<VERSION>-xplan-wfs-workspace.zip

xplan-wms-<VERSION>.war

xplan-workspaces-<VERSION>-xplansyn-wms-workspace.zip

xplan-inspireplu-<VERSION>.war

xplan-workspaces-<VERSION>-xplan-inspireplu-workspace.zip

xplan-validator-wms-<VERSION>.war

xplan-workspaces-<VERSION>-xplan-validator-wms-workspace.zip

  • Dokumentation (in HTML und PDF-Format):

    • XPlanBenutzerhandbuch - Benutzerhandbuch für die Komponenten der xPlanBox

    • XPlanBetriebshandbuch - Betriebshandbuch und Installationsanleitung für die xPlanBox

Bitte kontaktieren Sie lat/lon GmbH, per E-mail an info@lat-lon.de, wenn Installationskomponenten fehlen.

4.2. Vorbereitung der Installation

Die folgende Installationsanleitung setzt voraus, dass die im Abschnitt Systemüberblick beschriebenen Komponenten, soweit erforderlich, installiert sind.

4.2.1. deegree Workspace

Weiterhin ist vorbereitend das Anlegen eines Verzeichnisses mit dem Namen .deegree im Home-Verzeichnis erforderlich, wenn dieses nicht bereits existiert. Falls ein anderes Verzeichnis verwendet werden soll, muss die Umgebungsvariable DEEGREE_WORKSPACE_ROOT gesetzt werden (s. Abschnitt Anwendungs-Tomcat). Dem Betriebssystembenutzer, mit dem der Tomcat gestartet wird, müssen Lese- und Schreibrechte für dieses Verzeichnis eingeräumt werden.

4.3. Anwendung installieren

4.3.1. Konfigurationsdateien der Anwendungskomponenten

Die ZIP-Archive mit den Konfigurationen (s. Überblick der Installationskomponenten) müssen in das Verzeichnis <DEEGREE_WORKSPACE_ROOT> (Vorgabewert ist das .deegree im Home-Verzeichnis des Nutzers, s. Vorbereitung der Installation) kopiert und entpackt werden:

  • xplan-wfs-workspace

  • xplansyn-wfs-workspace

  • xplansyn-wms-workspace

  • xplan-inspireplu-workspace (XPlanInspirePluWMS und XPlanInspirePluWFS)

  • xplan-validator-wms-workspace

  • xplan-manager-workspace

  • xplan-manager-config

  • xplan-validator-config (nur erforderlich, wenn ausschließlich der XPlanValidator installiert werden soll)

Die Konfigurationen müssen alle unterhalb desselben Basis-Verzeichnisses liegen.

4.3.2. Web-Anwendungen

Um den Betrieb der verschiedenen im Abschnitt Systemarchitektur und Schnittstellen beschriebenen Komponenten zu gewährleisten, wird eine Trennung der Dienste, Anwendungskomponenten und der REST-API empfohlen. Zwingend erforderlich ist die Trennung beim Einsatz von GDAL (s. Installation und Konfiguration von GDAL). Dann müssen die Web-Anwendungen getrennt voneinander betrieben werden. Im Folgenden ist beschrieben, wie eine Installation der Komponenten auf drei Tomcat-Instanzen erfolgen kann. Werden drei Tomcat-Instanzen auf einem Server betrieben, dann sollte der Server die im Kapitel Empfohlene Systemkonfiguration beschriebenen Anforderungen erfüllen.

Die folgenden WAR-Archive (s. Überblick der Installationskomponenten) müssen in das Verzeichnis <CATALINA_HOME>/webapps der Tomcat-Instanz Dienste-Tomcat (z. B. auf Port: 8080) kopiert werden:

  • xplan-wms.war (XPlanWMS und XPlanWerkWMS)

  • xplan-wfs.war (XPlanWFS)

  • xplansyn-wfs.war (XPlanSynWFS)

  • xplan-inspireplu.war (XPlanInspirePluWMS und XPlanInspirePluWFS)

  • xplan-validator-wms.war (XPlanValidatorWMS)

Die WAR-Archive der Anwendungskomponenten XPlanManagerWeb und XPlanValidatorWeb werden über eine weitere Tomcat-Instanz Anwendungs-Tomcat (z. B. auf Port: 8081) bereitgestellt:

  • xplan-manager-web.war (XPlanManagerWeb)

  • xplan-validator-web.war (XPlanValidatorWeb)

  • xplan-root.war (XPlanRessourcen)

Die WAR-Archive der REST-API werden über eine weitere Tomcat-Instanz API-Tomcat (z. B. auf Port: 8082) bereitgestellt:

  • xplan-api-manager.war (XPlanManagerAPI)

  • xplan-api-validator.war (XPlanValidatorAPI)

Da die Komponente XPlanRessourcen eine Einstiegsseite bereitstellt, bietet es sich an, diese als ROOT-Webapp der Instanz Anwendungs-Tomcat zu installieren. Das WAR-Archiv xplan-root.war muss dafür im Verzeichnis ROOT entpackt werden.

4.3.3. Kommandozeilen-Anwendungen

Die Kommandozeilenkomponenten (s. Überblick der Installationskomponenten) können an beliebiger Stelle entpackt werden. Im jeweiligen bin/ Verzeichnis des Kommandozeilenwerkzeugs befindet sich das Ausführungsskript. Folgende Kommandozeilenwerkzeuge sind Teil der xPlanBox:

  • XPlanManagerCLI: xplan-manager-cli/bin/XPlanManager - Beschreibung der Funktionalität im Kapitel "XPlanManagerCLI" des XPlanBenutzerhandbuchs.

  • XPlanValidatorCLI: xplan-validator-cli/bin/XPlanValidator - Beschreibung der Funktionalität im Kapitel "XPlanValidatorCLI" des XPlanBenutzerhandbuchs.

  • XPlanTransformCLI: xplan-transform-cli/bin/XPlanTransformCLI - Beschreibung der Funktionalität im Kapitel "XPlanTransformCLI" des XPlanBenutzerhandbuchs.

  • XPlanValidateDB: xplan-validatedb-cli/bin/XPlanValidateDB - ermöglicht die semantische Validierung von bereits in die XPlanDB importierten Plänen. Der Aufruf des Tools mit --help liefert Hinweise zur Verwendung.

  • XPlanAuswerteschemaCLI: xplan-evaluation-schema-synchronize-cli/bin/EvaluationSchemaSynchronizer - Beschreibung der Funktionalität im folgenden Kapitel XPlanAuswerteschemaCLI.

  • XPlanUpdateDatabaseCLI: xplan-update-database-cli/bin/databaseUpdate - wird für eine Aktualisierung des Datenbestands der xPlanBox benötigt, weitere Informationen befinden sich im Abschnitt Aktualisierung). Die Funktionen im Überblick:

    • xplan-update-database-cli/bin/districtUpdate - ermöglicht die Aktualisierung der in der Datenbank gespeicherten Ortsteilnamen. Der Aufruf des Tools mit --help liefert Hinweise zur Verwendung.

    • xplan-update-database-cli/bin/reSynthesizer - ermöglicht die Aktualisierung der im XPlanSyn-Schema gespeicherten Daten. Der Aufruf des Tools mit --help liefert Hinweise zur Verwendung.

    • xplan-update-database-cli/bin/serviceMetadataRecordCreator - erstellt Metadatensätze für den XPlanWerkWMS. Bei der Erstellung der Informationen für die Capabilities des XPlanWerkWMS werden dabei bereits vorhandene Informationen überschrieben. Generierte Service-Metadatensätze werden nicht überschrieben, sondern können anhand des Zeitstempels im Dateinamen dem Zeitpunkt der Erstellung zugeordnet werden. Es wird jedoch ein neuer FileIdentifier generiert. Der Aufruf des Tools mit serviceMetadataRecordCreator --help liefert Hinweise zur Verwendung.

XPlanAuswerteschemaCLI

Das Kommandozeilenwerkzeug XPlanAuswerteschemaCLI erzeugt ein weiteres Datenbankschema für die Auswertung und kann die Daten aus dem XPlanSyn-Schema der XPlanDB mit dem des Auswerteschemas synchronisieren. Das Auswerteschema unterscheidet sich zum XPlanSyn-Schema dadurch, dass die GML-Geometrien (wie z.B. Kreisbögen) wie im Original-XPlanGML zusätzlich zu den Simple Features Geometrien abgelegt sind.

Installation

Die Installation dieses Kommandozeilenwerkzeugs sowie das Anlegen des zusätzlichen Datenbankschemas ist optional. Für den Betrieb der xPlanBox sind diese nicht erforderlich. Das Datenbankschema für die Auswertung muss durch Ausführen der SQL-Skripte aus dem Ordner scripts/ angelegt werden. Folgende Reihenfolge muss beibehalten werden:

  1. 00_create_schema.sql

  2. 01_create_function.sql

  3. 02_create_tables.sql

  4. 03_create_trigger-function.sql

  5. 04_create_trigger.sql

Die Skripte erstellen eine Kopie der drei XPlanSyn-Schemas in den Schemas xplanevaluationxplansynpre, xplanevaluationxplansyn und xplanevaluationxplansynarchive sowie eine Log-Tabelle xplanevaluation.planTableLog.

Die Log-Tabelle wird beim Importieren, Editieren und Löschen von Plänen über den XPlanManager mit einer Historie der ausgeführten Operationen auf die einzelnen Pläne gefüllt und dient als Basis für die regelmäßige Synchronisierung des XPlanSyn-Schema und des Auswerteschemas.

Damit das Tool ausgeführt werden kann, muss GDAL installiert werden, wie in Kapitel Installation und Konfiguration von GDAL beschrieben.

Nutzung

Das CLI EvaluationSchemaSynchronizer unterstützt zwei Modi, die über die Option -t aufgerufen werden können:

  • Option ALL zur Überführung aller Pläne aus dem XPlanSyn-Schema der xPlanBox in das Auswerteschema.

  • Option SYNC um die Synchronisierung der seit der letzten Ausführung des Werkzeuges geänderten Pläne aus dem XPlanSyn-Schema in das Auswerteschema durchzuführen.

Üblicherweise erfolgt zunächst einmalig die Ausführung der Option ALL und anschließend regelmäßig (z.B. mit Hilfe eines Cron-Jobs) die Option SYNC um einen tagesaktuellen Stand im Auswerteschema zu erreichen.

Die einzelnen Parameter des Werkzeuges können durch folgenden Aufruf abgerufen werden:

EvaluationSchemaSynchronizer -?

Beispiel für den Aufruf mit den Parametern -h für den Hostnamen des PostgreSQL-Servers, -p den Port, -d der Datenbank, -u dem Benutzer, -t der Angabe zur Synchronisierung:

EvaluationSchemaSynchronizer -h localhost -p 5432 -d xplanbox -u postgres -w postgres -t ALL

4.3.4. Dokumentation

Das XPlanBenutzerhandbuch und XPlanBetriebshandbuch (s. Überblick der Installationskomponenten) zu den verschiedenen Komponenten der xPlanBox liegt in den Formaten HTML und PDF vor.

4.4. Konfiguration der Datenbank

Das Anlegen der Datenbank kann entweder über das XPlanManagerCLI oder manuell erfolgen. Beide Varianten sind in den folgenden Abschnitten beschrieben.

4.4.1. Initiales Aufsetzen der Datenbank über das XPlanManagerCLI

Für die Konfiguration der Datenbank-Anbindung muss die Datei xplan-manager-cli entpackt sein. Dabei spielt das Verzeichnis, in dem die Datei entpackt wurde, keine Rolle. Ist diese entpackt, kann die Datenbankerzeugung mittels des XPlanManagerCLI durchgeführt werden:

XPlanManager -createdb 'xplanbox' jdbc:postgresql://localhost:5432 -u postgres -p postgres
Informationen zu den Befehlen und der Erzeugung der Datenbank finden sich im Abschnitt XPlanManagerCLI im XPlanBenutzerhandbuch.

Mit dem XPlanManagerCLI werden auch die Werte für die Datenbankverbindung im XPlanManagerWorkspace anhand der übergebenden Parameter gesetzt, so dass der XPlanManager nach Ausführung ohne manuelle Anpassungen auf die Datenbank zugreifen kann. Die Datenbankverbindungen in den XPlanDiensten müssen jedoch manuell angepasst werden. Betroffen sind folgende Dateien:

  • .deegree/xplan-manager-workspace/jdbc/xplan.xml

  • .deegree/xplan-wfs-workspace/jdbc/xplan.xml

  • .deegree/xplansyn-wfs-workspace/jdbc/xplan.xml

  • .deegree/xplansyn-wms-workspace/jdbc/xplan.xml

Dabei kann auf zwei verschiedene Arten vorgegangen werden:

  • Die Datei xplan.xml aus dem XPlanManger-Workspace .deegree/xplan-manager-workspace/jdbc/ wird kopiert und die bereits vorhandene Konfiguration damit überschrieben.

  • Alternativ ist auch eine direkte Anpassung in der bereits vorhandenen Datei xplan.xml möglich.

4.4.2. Manuelles Aufsetzen der Datenbank

Alternativ zum Aufsetzen über das XPlanManagerCLI kann die Datenbank auch manuell ausgeführt werden. Dafür müssen die folgenden Schritte ausgeführt werden:

  1. Anlegen einer neuen Datenbank.

  2. Installation der PostGIS-Erweiterung für die neue Datenbank.

  3. Das SQL-Create-Skript create.sql aus dem Verzeichnis xplan-manager-workspace/sql in der neu angelegten Datenbank ausführen.

  4. Anpassen der Datenbank-Verbindungen in den XPlanDiensten und im XPlanManagerWorkspace:

    1. .deegree/xplan-manager-workspace/jdbc/xplan.xml

    2. .deegree/xplan-wfs-workspace/jdbc/xplan.xml

    3. .deegree/xplansyn-wfs-workspace/jdbc/xplan.xml

    4. .deegree/xplansyn-wms-workspace/jdbc/xplan.xml

4.4.3. Manuelles Aufsetzen der Datenbank für die Bereitstellung von INSPIRE PLU

Für die Bereitstellung von Plänen, die vom XPlanManager verwaltet werden, als INSPIRE PLU konforme Datensätze ist eine weitere Datenbank erforderlich. Diese kann aktuell nur manuell aufgesetzt werden. Es müssen die folgenden Schritte ausgeführt werden:

  1. Anlegen einer neuen Datenbank.

  2. Installation der PostGIS-Erweiterung für die neue Datenbank.

  3. Die folgenden SQL-Create-Skripte aus dem Verzeichnis xplan-manager-workspace/sql/inspireplu in der neu angelegten Datenbank ausführen (in dieser Reihenfolge):

    1. 04_create_inspireplu_schema.sql

    2. 05_create_inspireplu_view.sql

  4. Anpassen der Datenbank-Verbindungen in den XPlanDiensten und im XPlanManagerWorkspace:

    1. .deegree/xplan-inspireplu-workspace/jdbc/inspireplu.xml

    2. .deegree/xplan-manager-workspace/jdbc/inspireplu.xml

4.4.4. Weiterführende Informationen zur Konfiguration des Datenbankzugriffs

In den Dateien xplan.xml werden die ConnectionsPools für den Zugriff auf die Datenbank konfiguriert. Diese beinhalten neben den Verbindungsdetails wie die URL, den Nutzernamen und das Passwort weitere Details, die ggf. bei einer Installation zu berücksichtigen sind. Darunter:

  • initialSize: Die Anzahl der initialen Verbindungen, die beim Start geöffnet werden.

  • maxActive: Die maximale Anzahl von offenen Verbindungen die von Pool zeitgleich verwendet werden können.

  • maxIdle: Die maximale Anzahl der Verbindungen, die sich ungenutzt im Pool befinden können.

Da die Anzahl der zugelassenen Verbindungen des Datenbankservers begrenzt sein kann, ist es abhängig von der Installation der xPlanBox, der Anzahl der Nutzer und gegebenenfalls weiterer Faktoren sinnvoll, die vordefinierten Werte an die Installationsumgebung anzupassen.

Alternativ zur Konfiguration von ConnectionsPools für den Zugriff auf die Datenbank kann auch eine JNDI DataSource konfiguriert werden. Details hierzu befinden sich im Handbuch von deegree webservices.

4.5. Konfiguration der Applikationsserver

Wie im Abschnitt Anwendung installieren beschrieben, werden für den Betrieb aller Komponenten der xPlanBox getrennte Tomcat-Instanzen empfohlen, der Anwendungs-Tomcat, Dienste-Tomcat und API-Tomcat. Im Folgenden wird die Konfiguration der drei Tomcat-Instanzen beschrieben.

4.5.1. Anwendungs-Tomcat

Im Anwendungs-Tomcat muss folgende Konfiguration vorgenommen werden:

  1. Für den XPlanManagerWeb muss die Variable XPLANBOX_CONFIG als Java Property gesetzt werden. Das mit Hilfe dieser Variable referenzierte Verzeichnis muss die Konfiguration des XPlanManagerWeb und XPlanValidatorWeb enthalten, mit den Dateien managerConfiguration.properties, managerWebConfiguration.properties und validatorConfiguration.properties. Wurde der Anleitung in Abschnitt Anwendung installieren gefolgt, befindet sich das Verzeichnis mit dem Namen xplan-manager-config im Verzeichnis .deegree im Home-Verzeichnis des Nutzers. Wird ausschließlich der XPlanValidatorWeb installiert, heißt das Verzeichnis xplan-validator-config.

  2. Die Bibliothek JTS muss über die Variable jts.overlay=ng konfiguriert werden.

  3. Die Bibliothek deegree muss über die Variable javax.xml.transform.TransformerFactory=net.sf.saxon.TransformerFactoryImpl konfiguriert werden.

Wurden die Workspaces nicht im Verzeichnis .deegree des Home-Verzeichnis abgelegt, ist das Setzen der Umgebungsvariable DEEGREE_WORKSPACE_ROOT zusätzlich erforderlich.
Es wird empfohlen die Zeitzone im Anwendungs-Tomcat auf "Europe/Berlin" zu konfigurieren, wenn dies nicht bereits auf Ebene des Betriebssystems gesetzt ist. Andernfalls kann es beim Editieren eines Plans veränderten Datumsangaben (z. B. Herstellungsdatum) kommen. Für die Konfiguration im Tomcat muss folgende Option zusätzlich in den CATALINA_OPTS ergänzt werden: -Duser.timezone=Europe/Berlin.
Linux

Unter Linux muss im Verzeichnis <CATALINA_HOME>/bin der Instanz Anwendungs-Tomcat ggfs. eine neue Datei mit dem Namen setenv.sh angelegt werden.

In dieser Datei wird die Variable CATALINA_OPTS wie folgt erweitert:

export CATALINA_OPTS='-DXPLANBOX_CONFIG=/home/xplanbox/.deegree/xplan-manager-config -DDEEGREE_WORKSPACE_ROOT=/pfad/zu/den/workspaces -Djts.overlay=ng -Djavax.xml.transform.TransformerFactory=net.sf.saxon.TransformerFactoryImpl -Duser.timezone=Europe/Berlin'

Falls bereits ein Export von CATALINA_OPTS in dieser Datei vorhanden ist, muss die Variable CATALINA_OPTS erweitert werden.

Windows

Unter Windows muss im Verzeichnis <CATALINA_HOME>/bin der Instanz Anwendungs-Tomcat ggfs. eine neue Datei mit dem Namen setenv.bat angelegt werden.

In dieser Datei wird die Variable CATALINA_OPTS wie folgt erweitert:

export CATALINA_OPTS='-DXPLANBOX_CONFIG=C:\.deegree\xplan-manager-config -DDEEGREE_WORKSPACE_ROOT=C:\pfad\zu\den\workspaces -Djts.overlay=ng -Djavax.xml.transform.TransformerFactory=net.sf.saxon.TransformerFactoryImpl -Duser.timezone=Europe/Berlin'

Falls bereits ein Export von CATALINA_OPTS in dieser Datei vorhanden ist, muss die Variable CATALINA_OPTS erweitert werden.

Der Anwendungs-Tomcat muss mindestens über 4GB Arbeitsspeicher verfügen, dies kann durch Setzen der Umgebungsvariable: export JAVA_OPTS='-Xmx4096m' erfolgen.

4.5.2. Dienste-Tomcat

Falls der XPlanManager nach jedem Einfügen und Löschen eines Plan den XPlanWMS und XPlanWerkWMS aktualisieren soll, muss ein Tomcat-Nutzer angelegt werden. Ansonsten ist ein manueller Workspace-Reload nötig, um die neu importieren bzw. gelöschten Rasterpläne im XPlanWMS darzustellen bzw. zu entfernen.

Dafür müssen in der Datei <CATALINA_HOME>/conf/tomcat-users.xml der Instanz Dienste-Tomcat folgende Zeilen hinzugefügt werden:

<role rolename="deegree"/>
<user username="<NUTZERNAME>" password="<PASSWORT>" roles="deegree"/>

Weitere Informationen zur Konfiguration von Benutzern ist in der Dokumentation von Apache Tomcat zu finden.

Der Nutzername und das Passwort müssen in die managerConfiguration.properties eingetragen werden (s. Kapitel Automatischer Workspace-Reload.

Für den Dienste-Tomcat muss auch die Variable CATALINA_OPTS wie folgt erweitert werden:

export CATALINA_OPTS='-DDEEGREE_WORKSPACE_ROOT=/pfad/zu/den/workspaces -Djavax.xml.transform.TransformerFactory=net.sf.saxon.TransformerFactoryImpl'
Der Dienste-Tomcat muss ebenfalls mindestens über 4GB Arbeitsspeicher verfügen, dies kann durch Setzen der Umgebungsvariable: export JAVA_OPTS='-Xmx4096m' erfolgen.

4.5.3. API-Tomcat

Für den API-Tomcat muss auch die Variable CATALINA_OPTS wie auch für den Dienste-Tomcat wie folgt erweitert werden:

export CATALINA_OPTS='-DXPLANBOX_CONFIG=/home/xplanbox/.deegree/xplan-manager-config -DDEEGREE_WORKSPACE_ROOT=/pfad/zu/den/workspaces -Djts.overlay=ng -Djavax.xml.transform.TransformerFactory=net.sf.saxon.TransformerFactoryImpl -Duser.timezone=Europe/Berlin'
Der API-Tomcat muss ebenfalls mindestens über 4GB Arbeitsspeicher verfügen, dies kann durch Setzen der Umgebungsvariable: export JAVA_OPTS='-Xmx4096m' erfolgen.

4.5.4. Absicherung des Tomcat und der Webanwendungen

Wenn die xPlanBox in einer produktiven Umgebung betrieben wird, sollte der Apache Tomcat abgesichert werden. Dazu sind die allgemeinen Empfehlungen aus der Dokumentation von Apache Tomcat zum Thema Sicherheit zu beachten.

Zusätzlich sollte die xPlanBox wie folgt konfiguriert sein:

  1. die deegree webservice console für die Dienste xplan-wms, xplan-wfs, xplansyn-wfs und xplan-inspireplu im Dienste-Tomcat ist durch ein Kennwort geschützt (Datei console.pw im deegree Workspace).

  2. die deegree REST-Schnittstelle ist durch Benutzername und Kennwort abgesichert (Datei web.xml und tomcat-users.xml im Tomcat-Konfigurationsverzeichnis, siehe Kapitel Dienste-Tomcat).

  3. der Zugriff auf die deegree webservice console ist auf IP-Adressbereiche bzw. Domänen eingeschränkt (Datei context.xml innerhalb der Webanwendungen).

  4. die Tomcat-Instanzen werden hinter einem Proxy (z. B. Apache httpd) betrieben (Datei server.xml im Tomcat-Konfigurationsverzeichnis).

  5. der Zugriff auf den XPlanManagerWeb ist durch Benutzername und Kennwort abgesichert (siehe Kapitel Absicherung des XPlanManagerWeb).

4.6. Installation und Konfiguration von GDAL

Die xPlanBox unterstützt die Darstellung von Rasterdaten über die GDAL-Bibliothek. Die GDAL Unterstützung ist optional, die Konfiguration im XPlanManager ist im Abschnitt GDAL beschrieben.

Der Zugriff auf die GDAL-Bibliothek erfolgt über die Schnittstelle (Java Native Interface) JNI. Je JVM kann die GDAL-Bibliothek nur einmal geladen werden. Deswegen muss jede Webapp der xPlanBox, die GDAL verwendet (xplan-wms und xplan-manager-web), in einer separaten Tomcat-Instanz installiert werden.

4.6.1. Linux

Für Ubuntu 20.04 (Focal) kann GDAL 3.0 aus einer Paketquelle installiert werden:

sudo apt-get install libgdal-java

Damit GDAL über die JNI-Schnittstelle angesprochen werden kann, muss die Umgebungsvariable zur GDAL-Bibliothek gesetzt werden, z. B.:

export LD_LIBRARY_PATH=/usr/lib/jni/
Die Umgebungsvariable LD_LIBRARY_PATH muss auf das Verzeichnis zeigen, in dem sich die Datei libgdaljni.so befindet.

4.6.2. Windows

GDAL 3.0 für Windows kann bei GISInternals heruntergeladen werden. Die Version 3.0 befindet sich unter "Older Releases". Die Architektur der GDAL-Bibliothek (32bit oder 64bit) muss der Architektur von Java und dem Betriebssystem Windows entsprechen. Bei den Downloads sollten die kompilierten Binaries in einem einzelnen ZIP-Archiv gewählt werden (oberster Link).

Die MSVC-Version mit der GDAL kompiliert wurde, setzt die jeweilige Version des Microsoft C/C Runtime Library (CRT) voraus. Ab der Version MSVC 11.0 (1700) werden Windows XP and Windows Server 2003 nicht mehr unterstützt. Die Version des Microsoft C/C Runtime Library (CRT) kann mit dem Befehl cl abgefragt oder über die Windows Systemsteuerung angezeigt werden.

Dieses ZIP-Archiv kann an einem beliebigen Ort entpackt werden.

Unter Systemsteuerung→System und Sicherheit→System→Erweiterte Systemeinstellungen→Erweitert→Umgebungsvariablen müssen folgende Einstellungen vorgenommen werden:

  • Setzen der Variable JAVA_HOME mit der Referenz zur Java Installation (JDK), z. B.: C:\Program Files\Java\jdk-11.0.11

  • Setzen der Variable GDAL_DATA mit der Referenz auf den Ordner, der Datei "gcs.csv" enthält, z. B.: C:\Program Files (x86)\gdal\bin\gdal-data

  • Zur Umgebungsvariable PATH müssen zwei Pfade hinzugefügt werden (Annahme: Entpacktes ZIP-Archiv von GISInternals wurde genutzt): <GDAL-INSTALLATIONSORDNER>\bin;<GDAL-INSTALLATIONSORDNER>\bin\gdal\java

4.7. Installation und Konfiguration von HALE CLI

Für die Transformation von Plänen aus dem XPlanGML-Datenformat in das INSPIRE Planned Land Use (PLU) Format sowie der Transformation von XPlanGML 4.1 nach 5.1 wird die Software HALE verwendet. Werden diese Transformationen nicht benötigt, dann ist die Installation des HALE CLI auch nicht erforderlich.

Für die Installation muss zunächst das HALE CLI 3.4.0 (ZIP-Datei) von der Projektseite auf GitHub https://github.com/halestudio/hale-cli heruntergeladen werden. Anschließend muss die Datei auf dem Server, auf dem XPlanManagerWeb, XPlanManagerAPI oder das XPlanTransform_CLI installiert wird, entpackt werden.

Die Version 3.4.0 des HALE CLI erfordert ein JDK 8 und kann nicht mit JDK 11 ausgeführt werden. Zusätzlich zu dem JDK 11, das für alle xPlanBox-Komponenten erforderlich ist (siehe Kapitel Java SE) muss ein JDK 8 installiert werden (Download von AdoptOpenJDK 1.8).

Tragen Sie den Pfad zum Installationsverzeichnis des JDK unter Linux in die Datei hale unterhalb des Kommentarblocks wie folgt ein:

JAVA_HOME=/pfad/zum/jdk

Für das Betriebssystem Windows passen Sie die Datei hale.bat an und fügen unterhalb des Kommentarblocks folgende Zeile hinzu:

JAVA_HOME=LAUFWERK:/pfad/zum/jdk
Setzen Sie den Pfad zum JDK 1.8 nicht global mit export unter Linux bzw. set unter Windows, da sonst auch die Komponenten der xPlanBox mit dieser Java Version ausgeführt werden.

Die Konfiguration von HALE für die Verwendung in den Komponenten der xPlanBox ist im Kapitel Konfiguration von HALE beschrieben.

4.8. Anwendung starten

Zum Start der Web-Anwendungen müssen alle Instanzen des Applikationsservers gestartet werden. Dazu sei auf die jeweilige Dokumentation des verwendeten Applikationsserver verwiesen.

5. Konfiguration des XPlanManagerWeb

In den nachfolgenden Kapiteln wird die Konfiguration des XPlanManagerWeb erläutert:

5.1. Planliste

Die angezeigten Spalten der Planliste auf der Hauptseite können in der Datei <XPLANBOX_CONFIG>/managerWebConfiguration.properties konfiguriert werden.

Im folgenden Beispiel werden die Spalten 'Nummer' und 'Rechtsstand' aus der Planliste entfernt:

hiddenColumns=NUMBER,LEGISLATIONSTATUS

Mehrere Spalten müssen komma-separiert angegeben werden. Der folgenden Tabelle kann die Zuordnung des Spaltentitels und der Angabe in der Konfiguration entnommen werden:

Titel der Spalte in der Oberfläche Angabe in der Konfiguration

Name

NAME

ID

ID

Nummer

NUMBER

Bezirk/Gemeinde

COMMUNITY

XPlanGML Version

VERSION

Planart

TYPE

sonstige Planart

ADDITIONALTYPE

Rechtsstand

LEGISLATIONSTATUS

Datum Veröffentlichung

RELEASEDATE

Datum Import

IMPORTDATE

Planstatus

PLANSTATUS

Gültigkeit

VALIDITIYPERIOD

5.2. Konfiguration von externen Codelisten

Externe Codelisten können im Verzeichnis <XPLANBOX_CONFIG>/synthesizer abgelegt werden. Dabei weist die Variable <XPLANBOX_CONFIG> auf das Verzeichnis, in dem sich die Dateien managerConfiguration.properties und managerWebConfiguration.properties befindet (s. auch Anwendungs-Tomcat). Dazu müssen für die Zuordnung zu dem Property im vereinfachten XPlanSyn Schema und dem komplexen XPlanGML Regeln konfiguriert werden. Die Regeln müssen abhängig von der XPlanGML-Version in einer der folgenden Dateien angelegt werden (die Dateinamen dürfen dabei nicht verändert werden):

  • xplan3.syn

  • xplan40.syn

  • xplan41.syn

  • xplan50.syn

  • xplan51.syn

  • xplan52.syn

  • xplan53.syn

  • xplan54.syn

Eine Zeile in diesen Dateien entspricht einer Regel. Beispiele für eine Regel:

# Beispiel 1:
BP_BaugebietsTeilFlaeche/besondereArtDerBaulNutzung=xplanExternalCodeLookup(xpath('xplan:besondereArtDerBaulNutzung'), 'XP_BesondereArtDerBaulNutzung.xml')

# Beispiel 2:
BP_BaugebietsTeilFlaeche/besondereArtDerBaulNutzung=xplanExternalCodeLookup(xpath('xplan:besondereArtDerBaulNutzung'), 'XP_BesondereArtDerBaulNutzung.xml', 'XP_BesondereArtDerBaulNutzung')

Aufbau der Regel:

<XPATH_XPLANSYN>=xplanExternalCodeLookup(xpath('<PROPERTY_XPLAN_GML>'), '<CODELIST_DATEI>', '<CODELIST_NAME>')

Erläuterungen:

  • <XPATH_XPLANSYN>: XPath-Ausdruck im XPlan-Syn-Schema, in der der übersetze Code eingetragen werden soll.

  • <PROPERTY_XPLAN_GML>: Property im XPlan-GML-Schema.

  • <CODELIST_DATEI>: Relativer Pfad zur Codelist-Datei.

  • <CODELIST_NAME>: Optionale Angabe des Namens der Codeliste. Wird nur benötigt, wenn die mit <CODELIST_DATEI> angegebene Datei mehr als eine Codeliste enthält.

Änderungen an den Regel-Dateien sowie Codeliste-Dateien werden sofort wirksam. Sie gelten für den Import von Plänen und werden auch beim Editieren verwenden. Codes aus bereits importierten Plänen werden nicht neu übersetzt, für diese ist ein erneuter Import durchzuführen.

5.3. Kartenvorschau

Die nachfolgenden Konfigurationen müssen in der Datei <XPLANBOX_CONFIG>/managerWebConfiguration.properties angepasst werden.

5.3.1. XPlanWMS

Um den XPlanWMS zu konfigurieren, muss der Wert des Schlüssels wmsUrl angepasst werden. Über die Schlüssel vectorWmsName und rasterWmsName können die in der Kartenvorschau dargestellte Namen für Vektor- und Rasterlayer konfiguriert werden:

wmsUrl=http://<host>:<port>/xplan-wms/services
vectorWmsName=XPlan-WMS: Vektorkarten
rasterWmsName=XPlan-WMS: Rasterkarten
wmsEndpoint=wms
wmsPreEndpoint=wmspre
wmsArchiveEndpoint=wmsarchive

Über die Schlüssel wmsEndpoint, wmsPreEndpoint und wmsArchiveEndpoint wird angegeben welcher XPlanWMS für die Kartenvorschau verwendet wird, wenn ein Plan 'In Aufstellung', 'Festgestellt' oder 'Archiviert' ist. Wird nur eine Datenhaltungskomponente verwendet, sollte die wmsUrl konfiguriert sein (mit einem '?' am Ende). Andernfalls wird bei Plänen mit dem Status 'Festgestellt' der mit dem Schlüssel wmsEndpoint konfigurierte Endpunkt an die WMS URL angehängt, bei Plänen mit dem Status 'In Aufstellung' der mit dem Schlüssel wmsPreEndpoint konfigurierte Endpunkt oder bei Plänen mit dem Status 'Archiviert' der mit dem Schlüssel wmsArchiveEndpoint konfigurierte Endpunkt.

Beispiel 1 - Konfiguration bei Verwendung einer Datenhaltungskomponente:

wmsUrl=http://<host>:<port>/xplan-wms/services[/wms]?
vectorWmsName=XPlan-WMS: Vektorkarten
rasterWmsName=XPlan-WMS: Rasterkarten
wmsEndpoint=
wmsPreEndpoint=
wmsArchiveEndpoint=

Beispiel 2 - Konfiguration bei Verwendung von zwei Datenhaltungskomponenten:

wmsUrl=http://<host>:<port>/xplan-wms/services
vectorWmsName=XPlan-WMS: Vektorkarten
rasterWmsName=XPlan-WMS: Rasterkarten
wmsEndpoint=wms
wmsPreEndpoint=wmspre
wmsArchiveEndpoint=wmsarchive

5.3.2. Hintergrundkarte

Um die Hintergrundkarte zu konfigurieren, muss der Wert des Schlüssels basemapUrl angepasst werden. Über den Schlüssel basemapName kann der in der Kartenvorschau dargestellte Name konfiguriert werden:

basemapUrl=http://<host>:<port>/basemap/service
basemapName=Basiskarte

5.3.3. Koordinatensystem

Das Koordinatensystem, indem die Kartenvorschau angezeigt werden soll, kann über den Schlüssel mapCrs und dem dazugehörigen Wert konfiguriert werden:

mapCrs=epsg:25832

5.3.4. Kartenausschnitt

mapExtent=464540.516097552,4294418.79680585,760676.555028607,9320086.20690937

5.3.5. Ebenen

Die in der Kartenvorschau dargestellten Ebenen können ebenfalls über Schlüssel-Wert-Paare konfiguriert werden. Für die Hintergrundkarte wird der Schlüssel basemapLayer benötigt:

basemapLayer=Basemap

Des Weiteren können die Layer für die Bebauungspläne, Flächennutzungspläne, Landschaftspläne, Raumordnungspläne und sonstige raumbezogene Planwerke (Vektor- und Rasterlayer) einzeln in einer kommaseparierten Liste konfiguriert werden.

Vektorlayer:

bpLayer=BP_Planvektor
fpLayer=FP_Planvektor
lpLayer=LP_Planvektor
rpLayer=RP_Planvektor
soLayer=SO_Planvektor

Rasterlayer:

bpRasterLayer=BP_Planraster
fpRasterLayer=FP_Planraster
lpRasterLayer=LP_Planraster
rpRasterLayer=RP_Planraster
soRasterLayer=SO_Planraster

5.4. Standard-Koordinatenreferenzsystem (Import)

5.4.1. Vektordaten

Die nachfolgenden Konfigurationen müssen in der Datei <XPLANBOX_CONFIG>/managerWebConfiguration.properties angepasst werden.

Das Standard-Koordinatenreferenzsystem kann über den Schlüssel defaultCrs konfiguriert werden:

defaultCrs=EPSG:25832

Der Benutzer kann ein weiteres Koordinatenreferenzsystem aus einer Liste auswählen. Die Koordinatenreferenzsystem können über den Schlüssel chooseCrs konfiguriert werden:

chooseCrs=EPSG:4326,EPSG:25833,EPSG:31466,EPSG:31467,EPSG:31468,EPSG:31469

5.4.2. Rasterdaten

Die nachfolgende Konfiguration muss in der Datei <XPLANBOX_CONFIG>/managerConfiguration.properties angepasst werden.

Das Standard-Koordinatenreferenzsystem kann über den Schlüssel rasterConfigurationCrs konfiguriert werden:

rasterConfigurationCrs=epsg:25832

5.5. Verfahrensdatenbank

Die Verfahrensdatenbank kann in der Datei <XPLANBOX_CONFIG>/managerWebConfiguration.properties aktiviert oder deaktiviert werden: :

activateInternalIdDialog=[true|false]

Die Anfrage der Verfahrensdatenbank kann an den Aufbau der Datenbank angepasst werden. Dies erfolgt in der Datei managerConfiguration.properties:

workspaceName=xplan-manager-workspace
jdbcConnectionId=vfdb
internalIdLabel=verfahrensid
internalNameLabel=verfahrensname
selectMatchingIdsSql=SELECT verfahrensid, verfahrensname FROM planverfahren WHERE lower(verfahrensname) LIKE lower(?) ORDER BY verfahrensname ASC
selectAllIdsSql=SELECT verfahrensid, verfahrensname FROM planverfahren ORDER BY verfahrensname ASC

Über die Schlüssel workspaceName und jdbcConnectionId wird der Workspace und die Id der Datei in der die Datenbank-Verbindung angepasst werden kann angegeben. Die Standardwerte können in den meisten Fällen übernommen werden.

Die Schlüssel internalIdLabel und internalNameLabel geben die Spalten an unter denen die Verfahrensid und der Verfahrensname adressiert werden. Diese müssen zwingend über die Schlüssel selectMatchingIdsSql und selectAllIdsSql konfigurierten SQL-Statments selektiert werden. Das SQL-Statment selectMatchingIdsSql erlaubt die Anfrage der Verfahren, die dem Plan über den Plan-Namen zugeordnet sind. Der Plan-Name wird an der Stelle des '?' eingesetzt. Das SQL-Statement selectAllIdsSql ermöglicht dagegen die Anfrage aller Verfahren.

Anforderungen an die Konfiguration im Überblick:

  • selectMatchingIdsSql und selectAllIdsSql müssen die mit internalIdLabel und internalNameLabel angegeben Spalten selektierten.

  • selectMatchingIdsSql muss exakt einen Platzhalten '?' für den Plan-Namen beinhalten.

  • selectAllIdsSql darf keinen Platzhalter beinhalten.

Die Datenbank-Anbindung kann in der Datei vfdb.xml im XPlanManagerWorkspace konfiguriert werden (der Name des workspaces und die ID der Konfigurationsdatei können wie zuvor beschrieben geändert werden):

<Property name="driverClassName" value="org.postgresql.Driver"/>
<Property name="url" value="jdbc:postgresql://<host>:<port>/<dbname>"/>
<Property name="username" value="postgres"/>
<Property name="password" value="postgres"/>
<Property name="maxActive" value="10"/>

5.6. Planstatus

Der Dialog zur Auswahl des Planstatus, in den ein Plan einsortiert werden soll, kann in der Datei <XPLANBOX_CONFIG>/managerWebConfiguration.properties aktiviert oder deaktiviert werden:

activateLegislationStatusDialog=[true|false]

5.7. Gültigkeitszeitraum

Der Dialog zur Angabe des Zeitraums, in dem ein Plan gültig ist, kann in der Datei <XPLANBOX_CONFIG>/managerWebConfiguration.properties aktiviert oder deaktiviert werden:

activateValidityPeriodDialog=[true|false]

Weiterhin muss die Auswertung des Gültigkeitszeitraums für Rasterdaten im XPlanWMSInAufstellung konfiguriert sein. Andernfalls werden die im Plan referenzierten Rasterdaten grundsätzlich angezeigt. Diese Option ist für den XPlanWMSInAufstellung implementiert und standardmäßig konfiguriert. Bei den anderen beiden Endpunkten (XPlanWMSFestgestellt und XPlanWMSArchiviert) erfolgt keine Auswertung des Gültigkeitszeitraums für Rasterdaten.

Dazu ist folgender Abschnitt in der Datei .deegree/xplansyn-wms-workspace/wmspre.xml vorhanden. Bei Bedarf kann dieser entfernt werden, wodurch auch für den XPlanWMSInAufstellung keine Auswertung des Gültigkeitszeitraums für Rasterdaten erfolgt. Anschließend ist ein Neustart des Applikationsservers erforderlich.

<wms:VisibilityInspector xmlns:wms="http://www.deegree.org/services/wms">
  <wms:JavaClass>de.latlon.xplan.wms.visibility.PreValidityPeriodInspector</wms:JavaClass>
  <wms:CategoryLayerIdentifier>BP_Planraster</wms:CategoryLayerIdentifier>
  <wms:CategoryLayerIdentifier>bplanraster_sortiert</wms:CategoryLayerIdentifier>
  <wms:CategoryLayerIdentifier>FP_Planraster</wms:CategoryLayerIdentifier>
  <wms:CategoryLayerIdentifier>fplanraster_sortiert</wms:CategoryLayerIdentifier>
  <wms:CategoryLayerIdentifier>LP_Planraster</wms:CategoryLayerIdentifier>
  <wms:CategoryLayerIdentifier>lplanraster_sortiert</wms:CategoryLayerIdentifier>
  <wms:CategoryLayerIdentifier>RP_Planraster</wms:CategoryLayerIdentifier>
  <wms:CategoryLayerIdentifier>rplanraster_sortiert</wms:CategoryLayerIdentifier>
  <wms:CategoryLayerIdentifier>SO_Planraster</wms:CategoryLayerIdentifier>
  <wms:CategoryLayerIdentifier>soplanraster_sortiert</wms:CategoryLayerIdentifier>
</wms:VisibilityInspector>

5.8. Editieren von Plänen

Die Möglichkeit Pläne zu editieren, kann in der Datei_<XPLANBOX_CONFIG>/managerWebConfiguration.properties_ aktiviert oder deaktiviert werden:

activateEditor=[true|false]

5.9. Filterkategorien

Filterkategorien können genutzt werden, damit ein Benutzer im XPlanManagerWeb die Anzeige der Pläne nach Gemeinden filtern kann. Dabei werden je Plan die Informationen aus dem Element XP_Gemeinde ausgewertet.

Um den Filter nach Kategorien zu aktivieren, muss die Datei <XPLANBOX_CONFIG>/managerWebConfiguration.properties entsprechend angepasst werden.

5.9.1. Gemeinden

Der Filter je Gemeinde wird über das Element categoryFilterValues aktiviert. Die Liste der Gemeindenamen muss als kommaseparierte Liste angegeben werden. Dabei muss folgende Syntax beachtet werden:

categoryFilterValues=Gemeinde1,Gemeinde2

Beispiel für die Anzeige der Hamburger Bezirke als Auswahlelemente für die "Gemeindeauswahl" im XPlanManagerWeb:

categoryFilterValues=Altona,Bergedorf,Eimsb\u00fcttel,Hamburg-Mitte,Hamburg-Nord,Harburg,Wandsbek
Umlaute müssen in Unicode für Java codiert werden. Und Sonderzeichen wie z. B. Zeilenumbrüche müssen entfernt werden.

5.9.2. Ortsteile

Jeder Gemeinde können mehrere Ortsteile über das Element categoriesToParts in der Datei <XPLANBOX_CONFIG>/managerConfiguration.properties zugeordnet werden. Dabei ist folgende Syntax zu beachten:

categoriesToParts=Gemeinde1(Ortsteil1,Ortsteil2);Gemeinde2(Ortsteil3,Ortsteil4)

Beispiel für die Zuordnung der Stadtteile Hamburgs zu den Bezirken:

categoriesToParts=Altona(Altona-Altstadt,Altona-Nord);
                  Hamburg-Mitte(HafenCity,Hamburg-Altstadt,Neustadt,St.Georg,St.Pauli);
                  Hamburg-Nord(Alsterdorf,Barmbek-Nord,Barmbek-S\u00FCd)
Umlaute müssen in Unicode für Java codiert werden. Und Sonderzeichen wie z. B. Zeilenumbrüche müssen entfernt werden.
Im XPlanGML können mehrere Elemente des Typs <xplan:XP_Gemeinde/> angegeben werden (erfordert XPlanGML 4.0 oder aktueller). Aktuell wird bei mehreren Elementen nur das letzte Element ausgewertet! Beinhaltet dieses Element ein <xplan:ortsteilName/> dann können hier mehrere Ortsteilnamen kommasepariert angegeben werden. Die Zuordnung zu der Gemeinde erfolgt dann anhand des ersten Ortsteilnamens.

Um den Zugriff auf Pläne im XPlanManagerWeb anhand der Filterkategorien einzuschränken, muss zusätzlich der XPlanManagerWeb für den Rollen-basierten Zugriff (siehe Kapitel Absicherung mit LDAP) abgesichert werden.

5.10. Sortierung der Daten in der Visualisierung

Für die Sortierung von Plandaten im XPlanWMS nach einem Datumsfeld stehen alle Datumsfelder zur Verfügung. Welches Feld für die Sortierung verwendet wird, kann in der Datei <XPLANBOX_CONFIG>/managerConfiguration.properties konfiguriert werden.

Beispiel für eine Konfiguration mit unterschiedlichen Datumsfeldern je Planart:

wmsSortDate_BP_Plan_XPLAN_3=BP_Plan,inkrafttretensDatum
wmsSortDate_BP_Plan_XPLAN_40=BP_Plan,inkrafttretensDatum
wmsSortDate_BP_Plan_XPLAN_41=BP_Plan,inkrafttretensDatum
wmsSortDate_BP_Plan_XPLAN_50=BP_Plan,inkrafttretensDatum
wmsSortDate_BP_Plan_XPLAN_51=BP_Plan,inkrafttretensDatum
wmsSortDate_BP_Plan_XPLAN_52=BP_Plan,inkrafttretensDatum
wmsSortDate_FP_Plan_XPLAN_3=FP_Plan,wirksamkeitsDatum
wmsSortDate_FP_Plan_XPLAN_40=FP_Plan,wirksamkeitsDatum
wmsSortDate_FP_Plan_XPLAN_41=FP_Plan,wirksamkeitsDatum
wmsSortDate_FP_Plan_XPLAN_50=FP_Plan,wirksamkeitsDatum
wmsSortDate_FP_Plan_XPLAN_51=FP_Plan,wirksamkeitsDatum
wmsSortDate_FP_Plan_XPLAN_52=FP_Plan,wirksamkeitsDatum
wmsSortDate_RP_Plan_XPLAN_3=RP_Plan,datumDesInkrafttretens
wmsSortDate_RP_Plan_XPLAN_40=RP_Plan,datumDesInkrafttretens
wmsSortDate_RP_Plan_XPLAN_41=RP_Plan,datumDesInkrafttretens
wmsSortDate_RP_Plan_XPLAN_50=RP_Plan,datumDesInkrafttretens
wmsSortDate_RP_Plan_XPLAN_51=RP_Plan,datumDesInkrafttretens
wmsSortDate_RP_Plan_XPLAN_52=RP_Plan,datumDesInkrafttretens
wmsSortDate_LP_Plan_XPLAN_3=
wmsSortDate_LP_Plan_XPLAN_40=LP_Plan,inkrafttretenDatum
wmsSortDate_LP_Plan_XPLAN_41=LP_Plan,inkrafttretenDatum
wmsSortDate_LP_Plan_XPLAN_50=LP_Plan,inkrafttretenDatum
wmsSortDate_LP_Plan_XPLAN_51=LP_Plan,inkrafttretenDatum
wmsSortDate_SO_Plan_XPLAN_50=SO_Plan,inkrafttretenDatum
wmsSortDate_SO_Plan_XPLAN_51=SO_Plan,inkrafttretenDatum
wmsSortDate_SO_Plan_XPLAN_52=SO_Plan,inkrafttretenDatum
Es müssen ggf. Zeilenumbrüche entfernt werden.

Die Angabe eines Sortierfeldes kann für jeden Plan-Type und Plan-Version differenziert erfolgen und kann am Aufbau des Schlüsselnamens erkannt werden.

wmsSortDate_<TYP>_<VERSION>

Der Wert gibt immer den Namen des FeatureTypes sowie den Namen der Eigenschaft durch ein Komma separiert an.

<FEATURETYPE>,<PROPERTYNAME>

Wird kein Wert angegeben, oder fehlt ein Eintrag vollständig, kann für die Version/den Typ keine Zuordnung gefunden werden. Das Datumsfeld bleibt leer.

Eine Änderung dieser Konfiguration während des laufenden Betriebs führt zu unterschiedlichen Grundlagen der Sortierung. Über die Option updatewmssortdate des XPlanManagerCLI kann die Änderung für bereits importierte Daten nachgezogen werden. Der Aufruf des XPlanManagerCLI ist im entsprechenden Kapitel des XPlanBenutzerhandbuchs beschrieben.

5.11. Automatischer Workspace-Reload

Der XPlanManager kann nach jedem Import, jeder Aktualisierung und jedem Löschvorgang automatisch einen Workspace-Reload des XPlanWMS/XPlanWerkWMS anstoßen. Dadurch werden neu importierte, editierte und gelöschte Rasterpläne sofort im WMS aktualisiert.

In der Datei <XPLANBOX_CONFIG>/managerConfiguration.properties müssen folgende Felder gefüllt werden:

workspaceReloadUrls=<XPLANWMS-URLS>
workspaceReloadUser=<TOMCAT-NUTZERNAME>
workspaceReloadPassword=<TOMCAT-PASSWORT>

Es können mehrere URLs kommasepariert eingetragen werden, für den Fall das der XPlanWMS/XPlanWerkWMS dupliziert wurde. In dem Fall wird für alle eingetragenen Dienste ein Reload durchgeführt.

workspaceReloadUrls=http://server1/xplan-wms/,http://server2/xplan-wms/
Wichtig! Alle Dienste müssen über die gleiche Nutzer/Passwort-Kombination angesprochen werden können.

5.12. GDAL

Die GDAL Unterstützung erfordert die Installation von GDAL, diese ist im Abschnitt Installation Installation und Konfiguration von GDAL beschrieben.

Um die GDAL Unterstützung zu aktivieren, muss die GDAL-Hauptkonfiguration erzeugt werden. Dazu wird im Root-Ordner des Workspaces xplansyn-wms-workspace eine Datei mit dem Namen gdal.xml und mit folgendem Inhalt abgelegt:

<GDALSettings configVersion="3.4.0"
  xmlns="http://www.deegree.org/gdal" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.deegree.org/gdal http://schemas.deegree.org/commons/gdal/3.4.0/gdal.xsd">
  <OpenDatasets>5</OpenDatasets>
</GDALSettings>

Damit beim Import von Rasterdaten eine GDAL Konfiguration erzeugt wird, muss in der Datei <XPLANBOX_CONFIG>/managerConfiguration.properties die folgende Option aktiviert sein:

#must be gdal or geotiff, default is gdal
rasterConfigurationType=gdal

Ist die GDAL-Bibliothek nicht installiert, kann stattdessen der Konfigurationstyp für das GeoTiff Format konfiguriert werden:

#must be gdal or geotiff, default is gdal
rasterConfigurationType=geotiff

Der xplansyn-wms-workspace wird mit einer Dummy-Konfiguration eines GDAL-Rasterlayers ausgeliefert. Liegen zunächst keine Daten vor, kann dieser aktiviert werden, um Fehler nach dem ersten Import eines Plans mit Rasterdaten zu vermeiden. Dazu muss in den Theme-Konfigurationen unter themes in allen Dateien, die mit raster.xml enden, die folgende Zeile auskommentiert werden:

<Layer layerStore="dummyrasterlayer">dummyraster</Layer>

5.13. Absicherung des XPlanManagerWeb

Der Zugriff auf die Komponente XPlanManagerWeb kann mittels Spring Security über BASIC-Authentication abgesichert werden.

Dabei stehen drei verschiedene Konfigurationsvarianten zur Verfügung:

  1. Datei-basierte Benutzerverwaltung (siehe Einfache Absicherung mit Spring Security)

  2. Datenbank-basierte Benutzerverwaltung (siehe Absicherung mit Datenbank)

  3. Anbindung an ein LDAP bzw. Microsoft Active Directory (AD) Server (siehe Absicherung mit LDAP)

5.13.1. Absicherung aktivieren

Um die Absicherung des XPlanManagerWeb zu aktivieren, muss folgende Änderung in dem Deployment-Deskriptor WEB-INF/web.xml der Webanwendung xplan-manager-web.war vorgenommen werden.

Der Spring Security Servlet-Filter muss hinzugefügt werden:

<filter>
  <filter-name>springSecurityFilterChain</filter-name>
  <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
  <filter-name>springSecurityFilterChain</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>
Diese Konfiguration ist für alle drei Varianten erforderlich! Wenn der Servlet-Filter aktiviert ist, muss zusätzlich noch eine der drei Varianten konfiguriert werden. Wie die Absicherung deaktiviert werden kann, ist in Absicherung deaktivieren beschrieben.

Weitere Informationen zur Absicherung mit Spring Security sind Online in der Referenzdokumentation von Spring Security zu finden:

5.13.2. Rollenbasierter Zugriff

Hat sich ein Benutzer erfolgreich am XPlanManager angemeldet, dann wird über ein rollenbasiertes Berechtigungskonzept entschieden, welche Funktionen der Benutzer im XPlanManager ausführen darf. Dabei werden folgende drei Rollen vom XPlanManager ausgewertet:

  • SUPERUSER: Hat alle Berechtigungen (Schreib- und Leseberechtigung) für alle Pläne

  • EDITOR: Hat alle Berechtigungen (Schreib- und Leseberechtigung) für die Pläne einer Organisationseinheit (z.B. einer Kommune oder eines Bezirks)

  • USER: Hat nur Leseberechtigung für alle Pläne

Weitere Informationen zu den Rollen und Berechtigungen stehen im Kapitel Rollen und Gruppen konfigurieren.

5.13.3. Einfache Absicherung mit Spring Security

Steht keine Datenbank oder ein LDAP mit Benutzerinformationen zur Verfügung, dann kann die Absicherung über einen UserService von Spring Security erfolgen, dessen Konfiguration aus der Konfigurationsdatei security-simple.xml ausgelesen wird.

Die Vorgabewerte für die beiden vorkonfigurierten Benutzer "admin" (Rolle SUPERUSER) und "guest" (Rolle USER) sind in der Konfigurationsdatei WEB-INF/classes/security.properties gesetzt.

Um die Absicherung zu aktivieren ist neben der Konfiguration des Spring Security Servlet-Filter wie oben in Absicherung aktivieren beschrieben folgende Anpassungen im Deployment-Deskriptor WEB-INF/web.xml notwendig:

Austauschen der Konfiguration:

<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>de.latlon.xplan.manager.web.spring.config.ManagerWebSpringConfig</param-value>
</context-param>

durch:

<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>de.latlon.xplan.manager.web.spring.config.ManagerWebSpringConfigWithSimpleSecurity</param-value>
</context-param>
Bei dieser Variante der Absicherung werden Gruppenhierarchien (siehe Kapitel Gruppenhierarchien) nicht unterstützt.

5.13.4. Absicherung mit Datenbank

Wie bei der einfachen Absicherung wird als Datenquelle für die Benutzerinformationen ein UserService von Spring Security verwendet. Der Unterschied ist, dass statt einer Datei eine Datenbank verwendet wird. Auch hier muss zuerst der Spring Security Servlet-Filter (siehe Absicherung aktivieren) und die Konfiguration (siehe Einfache Absicherung mit Spring Security) aktiviert werden.

In der Datei security-simple.xml muss statt dem Datei-basierten der Datenbank-basierte UserService konfiguriert werden.

Austauschen der Konfiguration:

<security:user-service>
        <security:user name="${simple.user.username}" password="${simple.user.password}" authorities="ROLE_XPLAN_SUPERUSER" />
        <security:user name="${simple.guest.username}" password="${simple.guest.password}" authorities="ROLE_XPLAN_USER" />
</security:user-service>

durch:

<security:jdbc-user-service data-source-ref="dataSource"/>
Die Datenbankverbindung mit dem Bezeichner datasource muss zusätzlich in der Datei security-simple.xml ergänzt werden. Weitere Informationen und Beispiele sind in der Referenzdokumentation von Spring Security zu finden. Auch diese Variante unterstützt keine Gruppenhierarchien (siehe Kapitel Gruppenhierarchien).

Die Konfiguration eines UserService mit allen Optionen ist auch in der Referenzdokumentation von Spring Security beschrieben:

5.13.5. Absicherung mit LDAP

Wenn zur Authentifizierung eines Benutzers ein LDAP bzw. Microsoft Active Directory (AD) Server verwendet werden soll, dann muss wie oben in Absicherung aktivieren beschrieben zuerst der Spring Security Servlet-Filter aktiviert werden. Neben den Informationen zur Authentifizierung können über LDAP auch Autorisierungsinformationen wie Rollen- und Gruppenzugehörigkeiten abgerufen werden. Nur mit dieser Variante der Absicherung können Gruppenhierarchien (siehe Kapitel Gruppenhierarchien) abgebildet werden.

Im Deployment-Deskriptor WEB-INF/web.xml muss folgende Änderung vorgenommen werden:

Austauschen der Konfiguration:

<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>de.latlon.xplan.manager.web.spring.config.ManagerWebSpringConfig</param-value>
</context-param>

durch:

<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>de.latlon.xplan.manager.web.spring.config.ManagerWebSpringConfigWithAdLdapSecurity</param-value>
</context-param>
Verbindung zu LDAP Server konfigurieren

Die Verbindung zum LDAP bzw. AD Server kann in der Webapp des XPlanManagers in der Datei WEB-INF/classes/security.properties konfiguriert werden.

Beispiel für die Konfiguration:

ldap.server.domain=adserver.domain
ldap.server.url=ldap://adserver:389
ldap.server.searchUser=user
ldap.server.searchPassword=password
ldap.server.searchNode=OU=xplanisk,DC=adserver,DC=domain

In der Datei muss neben der Adresse und der Domain des AD ein (technischer) Nutzer konfiguriert werden, der lesenden Zugriff auf das AD hat (ldap.server.searchUser und ldap.server.searchPassword). Mit dem Schlüssel ldap.server.searchNode wird die Organisationseinheit mit OU, und die Domänen Komponenten mit DC in kommaseparierter Form angegeben.

Weiterhin kann in dieser Datei die Konfiguration für das dynamische Auslesen der Gruppenhierarchien erfolgen. Dies ist lediglich nötig, wenn dynamische Gruppenhierarchien genutzt werden (siehe Gruppenhierarchien).

Weitere Informationen zur LDAP/AD-Anbindung in der Referenzdokumentation von Spring Security im Kapitel:

Rollen und Gruppen konfigurieren

Die Konfiguration der Superuser-, der Editor- und der Active Directory-Gruppen mit den dazugehörigen Organisationseinheiten (wie z. B. einer Kommune oder eines Bezirks), auf die diese Gruppen zugreifen dürfen, erfolgt in der Datei WEB-INF/classes/security-configuration.xml.

Konfigurationsbeispiel:

<util:list id="groupsSuper" value-type="java.lang.String">
  <beans:value>SUPER</beans:value>
</util:list>

<util:list id="groupsEditor" value-type="java.lang.String">
  <beans:value>EDITOR</beans:value>
</util:list>

<util:map id="groupsTodistricts" key-type="java.lang.String" value-type="java.util.List">
  <beans:entry key="ALTONA" value-ref="districtsAltona" />
  <beans:entry key="HARBURG" value-ref="districtsHarburg" />
  <beans:entry key="HAMBURGNORD" value-ref="districtsHamburgNord" />
</util:map>

<util:list id="districtsAltona" value-type="java.lang.String">
  <beans:value>Altona</beans:value>
</util:list>

<util:list id="districtsHarburg" value-type="java.lang.String">
  <beans:value>Harburg</beans:value>
</util:list>

<util:list id="districtsHamburgNord" value-type="java.lang.String">
  <beans:value>Hamburg-Nord</beans:value>
</util:list>

<beans:bean id="grantedAuthoritiesMapper"
            class="de.latlon.xplan.manager.web.spring.security.ActiveDirectoryGrantedAuthoritiesMapper">
  <beans:constructor-arg index="0">
    <beans:ref bean="groupsSuper" />
  </beans:constructor-arg>
  <beans:constructor-arg index="1">
    <beans:ref bean="groupsEditor" />
  </beans:constructor-arg>
  <beans:constructor-arg index="2">
    <beans:ref bean="groupsTodistricts" />
  </beans:constructor-arg>
  <beans:constructor-arg index="3">
    <beans:ref bean="roleHierarchy" />
  </beans:constructor-arg>
</beans:bean>

Details zur Konfiguration:

  • Die Liste groupsSuper (im Beispiel mit SUPER konfiguriert) stellt eine Liste aller Superuser-Gruppen dar. Ein Nutzer, der einer Superuser-Gruppe zugeordnet ist, hat keinerlei Beschränkungen bei der Nutzung des XPlanManagerWeb.

  • Die Liste groupsEditor (im Beispiel mit EDITOR konfiguriert) stellt eine Liste aller Editor-Gruppen dar. Wenn ein Nutzer einer Editor-Gruppe zugeordnet ist, kann dieser alle Pläne aus Bezirken editieren, für die der Nutzer Rechte hat (siehe nächste Zeile).

  • Die Map groupsTodistricts (im Beispiel mit ALTONA, HARBURG und HAMBURGNORD konfiguriert) muss eine Active Directory-Gruppe als Key erhalten und als Value eine Liste aller Bezirke, auf welche die Gruppe zugreifen darf. Ein Nutzer, der einer oder mehrerer dieser Gruppen zugeordnet ist, besitzt alle Rechte für die den Bezirken zugeordneten Plänen.

  • Die Listen der Bezirke groupsTodistricts (im Beispiel mit Altona, Harburg und Hamburg-Nord konfiguriert) stellen eigene Spring-Beans dar und werden von der zuvor beschriebenen Map referenziert.

  • Der grantedAuthoritiesMapper nutzt die zuvor konfigurierten Gruppen- und Rollenzuordnungen. Diese Bean muss nicht manipuliert werden! Die Konfiguration sollte lediglich modifiziert werden, wenn Gruppenhierarchien deaktiviert werden sollen (dazu mehr im nächsten Abschnitt).

Achtung - In der obigen Beispielkonfiguration wird eine Gruppenhierarchie genutzt. Der nächste Absatz muss zwingend beachtet werden.
Gruppenhierarchien

Es können Gruppenhierarchien konfiguriert werden, um hierarchische Abhängigkeiten zwischen Gruppen abzubilden. So kann eine Gruppe Mitglied einer anderen Gruppe sein und dabei die Eigenschaften der übergeordneten Gruppe übernehmen.

Beispiel: Gruppe "Hamburg" ist Mitglied der Gruppe "Editor". Dadurch hat die Gruppe "Hamburg" die Eigenschaften von "Hamburg" und "Editor". Die Gruppe "Editor" hat dagegen lediglich die Eigenschaften von "Editor".

Details zur Konfiguration:

  • Das als viertes Konstruktorargument übergebene Argument der Bean grantedAuthoritiesMapper (siehe vorheriges Konfigurationsbeispiel) muss der Gruppenhierarchie entsprechen. Dies kann wie im folgenden Beispiel 1 in der Konfiguration direkt erfolgen (das Beispiel konfiguriert HARBURG als Mitglied der Gruppe EDITOR) oder von der Anwendung aus dem ActiveDirectory ausgelesen werden, wie im folgenden Beispiel 2 gezeigt.

  • Sind keine Gruppenhierarchien vorhanden, muss das vierte Konstruktorargument entfernt werden (dies sollte der einzige Fall sein, in dem der grantedAuthoritiesMapper manipuliert wird).

  • Falls eine dynamische Rollenhierarchie wie in Beispiel 2 genutzt wird, müssen in der Datei WEB-INF/classes/security.properties zwingend der searchUser, das searchPassword und der searchNode angegeben werden (siehe weiter oben).

Beispiel 1 - Konfiguration einer statischen Rollenhierarchie:

<beans:bean id="roleHierarchy" class="org.springframework.security.access.hierarchicalroles.RoleHierarchyImpl">
  <beans:property name="hierarchy">
   <beans:value>
     HARBURG > EDITOR
   </beans:value>
  </beans:property>
</beans:bean>

Beispiel 2 - Konfiguration einer dynamischen Rollenhierarchie:

<beans:bean id="roleHierarchy" class="org.springframework.security.access.hierarchicalroles.RoleHierarchyImpl">
  <beans:property name="hierarchy">
    <beans:bean factory-bean="roleHierarchyScanner" factory-method="retrieveRoleHierarchy" />
  </beans:property>
</beans:bean>

<beans:bean id="roleHierarchyScanner"
            class="de.latlon.xplan.manager.web.spring.security.ActiveDirectoryRoleHierarchyScanner">
  <beans:constructor-arg index="0" value="${ldap.server.url}" />
  <beans:constructor-arg index="1" value="${ldap.server.domain}" />
  <beans:constructor-arg index="2" value="${ldap.server.searchUser}" />
  <beans:constructor-arg index="3" value="${ldap.server.searchPassword}" />
  <beans:constructor-arg index="4" value="${ldap.server.searchNode}" />
  <beans:constructor-arg index="5">
    <beans:ref bean="groupsSuper" />
  </beans:constructor-arg>
  <beans:constructor-arg index="6">
    <beans:ref bean="groupsEditor" />
  </beans:constructor-arg>
  <beans:constructor-arg index="7">
    <beans:ref bean="groupsTodistricts" />
  </beans:constructor-arg>
</beans:bean>

Weitere Informationen zur Konfiguration von Spring und Spring Security sind in der Online Dokumentation zu finden:

Sowohl die dynamische als auch die statische Gruppenhierarchie wird während des Starts der Webapp einmalig ausgewertet. Wenn es zur Laufzeit Änderungen an den Hierarchien gibt, muss die Webapp neu gestartet werden, damit die Änderungen von der Software erkannt und ausgewertet werden können.

5.13.6. Absicherung deaktivieren

Um die Absicherung zu deaktivieren, muss der im Abschnitt Absicherung aktivieren genannte Servlet-Filter aus der Datei web.xml entfernt und die Spring Konfiguration de.latlon.xplan.manager.web.spring.config.ManagerWebSpringConfig eingebunden werden.

5.14. Konfiguration von HALE

Voraussetzung für die Bereitstellung von Pläne im INSPIRE Datenthema Planned Land Use (PLU) bereitzustellen (s. Bereitstellung als INSPIRE PLU) oder Transformation von Plänen im XPlanGML 4.1 nach XPlanGML 5.1 (s. XPlanTransformCLI) ist die Installation des HALE CLI wie im Abschnitt Installation und Konfiguration von HALE CLI beschrieben.

Um dem XPlanManager die Nutzung des HALE CLI zu ermöglichen, muss in der Datei <XPLANBOX_CONFIG>/managerConfiguration.properties der Pfad zu dem Startskript bzw. der Batch-Datei angegeben werden:

#The absolute path to the HALE CLI used to transform XPlanGML to INSPIRE PLU
pathToHaleCli=/hale/bin/hale
Unter Linux heisst die Datei hale unter dem Betriebssystem Windows hale.bat.

5.15. Bereitstellung als INSPIRE PLU

Die xPlanBox bietet die Möglichkeit die vom XPlanManager verwalteten Pläne im Datenthema Planned Land Use (PLU) bereitzustellen. Voraussetzung ist die erfolgreiche Installation und Konfiguration des HALE CLI wie im Abschnitt Konfiguration von HALE beschrieben.

Um dem Nutzer des XPlanManagerWebs die Veröffentlichung von Plänen in INSPIRE PLU zu erlauben, muss zusätzlich in der Datei <XPLANBOX_CONFIG>/managerWebConfiguration.properties diese Option aktiviert werden:

activatePublishingInspirePlu=[true|false]

5.16. Massstabsbereich

Für die Rasterdaten empfiehlt es sich, einen Massstabsbereich anzugeben, in dem diese durch den XPlanWMS und XPlanWerkWMS angezeigt werden.

Der Massstabsbereich kann in der Datei <XPLANBOX_CONFIG>/managerConfiguration.properties konfiguriert werden. Sollen die Rasterdaten beispielsweise im Massstabsbereich 1 : 100 bis 1 : 50.000 angezeigt werden, ist folgendes zu konfigurieren:

rasterLayerMinScaleDenominator=100
rasterLayerMaxScaleDenominator=50000
Der Massstabsbereich wird direkt in die generierte deegree Konfiguration geschrieben. Somit wirkt sich eine solche Konfiguration nur auf neu importierte Rasterdaten aus. Auf alle bereits importierten Pläne hat diese Konfigurationsoption keine Auswirkungen.

5.17. Konfiguration der automatisierten Erstellung von Service-Metadatensätzen

Die xPlanBox bietet die Möglichkeit einen Service-Metadatensatz für einen Plan bzw. den dazugehörigen XPlanWerkWMS automatisiert zu erstellen. Voraussetzung dafür ist, dass für den Plan bereits ein Datensatz-Metadatensatz in einen Metadatenkatalog (CSW) vorhanden ist. Um diese Funktion zu aktivieren, muss die Konfiguration in der Datei <XPLANBOX_CONFIG>/managerConfiguration.properties angepasst werden. Im Folgenden der relevante Abschnitt:

#Daten-Dienste-Kopplung
planWerkWmsBaseUrl=http://localhost:8083/xplan-planwerk-wms/
planWerkWmsGetMapLayers_BP_Plan=BP_Planvektor
planWerkWmsGetMapStyles_BP_Plan=
planWerkWmsGetMapLayers_FP_Plan=FP_Planvektor
planWerkWmsGetMapStyles_FP_Plan=
planWerkWmsGetMapLayers_RP_Plan=RP_Planvektor
planWerkWmsGetMapStyles_RP_Plan=
planWerkWmsGetMapLayers_LP_Plan=LP_Planvektor
planWerkWmsGetMapStyles_LP_Plan=
planWerkWmsGetMapLayers_SO_Plan=SO_Planvektor
planWerkWmsGetMapStyles_SO_Plan=
planWerkWmsGetMapWidth=750
planWerkWmsGetMapHeight=750
cswUrlProvidingDatasetMetadata=https://metaver.de/csw?SERVICE=CSW&REQUEST=GetCapabilities
#the directory must be existing and writeable
directoryToStoreMetadata=/tmp/

Erläuterung der einzelnen Properties:

  • planWerkWmsBaseUrl: Die öffentliche Basis-URL des XPlanWerkWMS, z. B. http://xplanbox.lat-lon.de/xplan-wms/

  • planWerkWmsGetMapLayers_BP_Plan und planWerkWmsGetMapStyles_BP_Plan: Angabe der zu verwendenen Layer und Styles, die in der GetMap Anfrage (GraphicOverview) angegeben werden sollen

  • planWerkWmsGetMapWidth und planWerkWmsGetMapHeight: Angabe der zu verwendenden Höhe und Breite des Kartenbildes in Pixeln, die in der GetMap Anfrage (GraphicOverview) angegeben werden sollen

  • cswUrlProvidingDatasetMetadata: GetCapabilities URL des CSW, der Daten-Metadatensätze zu einem Plan bereitstellt

  • directoryToStoreMetadata: Verzeichnis in dem die erstellten Service-Metadatensätze abgelegt werden (das Verzeichnis muss beim Start des Tomcat-Servers, in dem sich die xplanwebapp-manager-web befindet, existieren). Unter Windows muss das Zeichen "\" als Pfad-Trennzeichen verwendet werden (z. B. "C:\tmp\").

Weiterhin muss im Verzeichnis <XPLANBOX_CONFIG>/metadata die Datei service-iso-metadata-template.xml liegen (zum Zeitpunkt des Start des Tomcat-Servers in dem sich die xplanwebapp-manager-web befindet). Diese Datei dient als Template für die vom System zu erstellenden Service-Metadatensätze. Folgende Platzhalter werden bei der Erstellung des Service-Metadatensatz durch entsprechende Werte zur Laufzeit durch das System ausgetauscht und können im Template verwendet werden:

  • METADATA_ID: Generierte UUID als FileIdentifier für den generierten Metadatensatz

  • CURRENT_DATE: Aktuelles Datum

  • CURRENT_DATE_TIME: Aktuelles Datum und Uhrzeit

  • TITLE: Titel des WMS

  • ABSTRACT: Beschreibung des Plans

  • PLANWERKWMS_OVERVIEW: Generierte GetMap-URL des XPlanWerkWMS mit dem Geltungsbereich des Planwerks

  • WEST_BOUND_LONG, EAST_BOUND_LONG, SOUTH_BOUND_LAT, NORTH_BOUND_LAT: räumlicher Geltungsbereich des Plans

  • DATA_METADATA_RESOURCEIDENTIFIER: GetRecordById-URL zur Abfrage des Daten-Metadatensatz (generiert aus dem FileIdentifier des Daten-Metadatensatz)

  • DATA_METADATA_FILEIDENTIFIER: ResourceIdentifier aus dem Daten-Metadatensatz

  • PLANWERKWMS_CAPABILITIES: Generierte GetCapabilities-URL des XPlanWerkWMS

5.17.1. Abfrage der Datensatz-Metadaten

Die Abfrage des Daten-Metadatensatzes erfolgt mit Hilfe des Plannamens aus dem XPlanGML. Im Folgenden ist die CSW GetRecords-Anfrage dokumentiert, mit der die Metadaten abgerufen werden:

<csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:apiso="http://www.opengis.net/cat/csw/apiso/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" service="CSW" version="2.0.2" maxRecords="1" startPosition="1" resultType="results" outputFormat="application/xml" outputSchema="http://www.isotc211.org/2005/gmd" xsi:schemaLocation="http://www.opengis.net/cat/csw/2.0.2 http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd">
  <csw:Query typeNames="gmd:MD_Metadata">
    <csw:ElementSetName typeNames="gmd:MD_Metadata">full</csw:ElementSetName>
    <csw:Constraint version="1.1.0">
      <ogc:Filter>
        <ogc:PropertyIsEqualTo>
          <ogc:PropertyName>apiso:AlternateTitle</ogc:PropertyName>
          <ogc:Literal>PLANNAME</ogc:Literal>
        </ogc:PropertyIsEqualTo>
      </ogc:Filter>
    </csw:Constraint>
  </csw:Query>
</csw:GetRecords>

Werden mehrere Datensätze gefunden, wird nur einer verwendet (maxRecords="1" ). Es wird eine Warnung im Log ausgegeben.

5.17.2. Erzeugung der Service-Metadaten

Der Service-Metadatensatz wird beim Import eines Plans über den XPlanManager erzeugt und im Dateisystem abgelegt. Ändert ein Benutzer den Plannamen oder die Beschreibung über die Änderungsfunktion des XPlanManager, dann wird ebenfalls ein neuer Service-Metadatensatz erstellt.

Um die erstellten Service-Metadatensätze in einen Metadatenkatalog zu übernehmen, müssen diese entweder über die Harvest-Funktion des CSW oder über die CSW-Transaction Insert-Operation in den Metadatenkatalog übernommen werden. Die Funktion für die Übernahme der Service-Metadaten ist nicht Teil der xPlanBox und ist abhängig vom Funktionsumfang des Metadatenkatalogs.

5.18. XPlanRessourcen

Die Einstiegsseite der Komponente XPlanRessourcen enthält Referenzen zu den anderen Komponenten der xPlanBox, die Referenzen müssen ggf. an die Umgebung der Installation angepasst werden. In der Datei index.html müssen die URLs zu den XPlanDiensten modifiziert werden:

Weiterhin kann es notwendig sein, die relativ angegeben Referenzen zu den Komponenten XPlanManagerWeb und XPlanValidatorWeb sowie dem XPlanBenutzerhandbuch und dem XPlanBetriebshandbuch anzupassen.

6. Konfiguration des XPlanValidatorWeb

In den nachfolgenden Kapiteln wird die Konfiguration des XPlanValidatorWeb erläutert:

6.1. Kartenvorschau im XPlanValidatorWeb

Die nachfolgende Konfiguration muss in der Datei <XPLANBOX_CONFIG>/validatorConfiguration.properties angepasst werden.

Um die Kartenvorschau im XPlanValidatorWeb zu aktivieren, muss die URL des XPlanValidatorWMS konfiguriert werden:

validatorWmsEndpoint=http://<host>:<port>>/xplan-validator-wms/services/wms

Um die Hintergrundkarte der Kartenvorschau anzupassen, ist die Anpassung einer Datei im xplan-validator-web.war erforderlich.

Der Inhalt der anzupassende Datei services-internet.template.json ist im Folgenden dargestellt:

/*-
 * #%L
 * xplan-betriebshandbuch - Betriebshandbuch fuer XPlan Manager und XPlan Validator
 * %%
 * Copyright (C) 2008 - 2022 lat/lon GmbH, info@lat-lon.de, www.lat-lon.de
 * %%
 * This program is free software: you can redistribute it and/or modify
 * 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%
 */
[
  ${SERVICESCONFIG},
  {
    "id": "452",
    "name": "Basiskarte",
    "url": "http://sg.geodatenzentrum.de/wms_dtk250",
    "typ": "WMS",
    "layers": "dtk250",
    "format": "image/png",
    "version": "1.1.1",
    "singleTile": false,
    "transparent": true,
    "transparency": 0,
    "tilesize": "512",
    "gutter": "0",
    "minScale": "0",
    "maxScale": "2500000",
    "gfiAttributes": "ignore",
    "gfiTheme": "default",
    "layerAttribution": "nicht vorhanden",
    "legendURL": "ignore",
    "cache": true,
    "featureCount": "1"
  }
]

Um die Hintergrundkarte anzupassen, müssen folgende Schritte ausgeführt werden:

  1. Ablegen der Datei unter masterportal/template/services-internet.template.json im Dateisystem (Pfad und Dateiname müssen beibehalten werden).

  2. Anpassen der URL des Dienstes (Zeile 6, "url") und des Layers (Zeile 8, "layers")

  3. Austausch der Datei im xplan-validator-web.war, z.B. durch Ausführen des folgenden Kommandos:

jar uf xplan-validator-web.war masterportal/template/services-internet.template.json
Die Zeilen 2, 4 und 5 dürfen nicht angepasst werden!

6.2. Semantische Validierungsregeln

Die als XQuery-Dateien vorliegenden semantischen Validierungsregeln können in einem externen Verzeichnis abgelegt und durch entsprechende Konfiguration im XPlanManagerWeb und XPlanValidatorWeb verwendet werden, wenn z. B. die semantischen Validierungsregeln angepasst, erweitert oder durch eine aktuellere Version ersetzt werden sollen. Um statt der mit dem xPlanBox ausgelieferten Regeln externen Regeln zu verwenden, muss das Verzeichnis für den XPlanManagerWeb und XPlanValidatorWeb konfiguriert werden. Der Pfad zu den semantischen Regeln muss in der Datei <XPLANBOX_CONFIG>/validatorConfiguration.properties wie folgt konfiguriert werden:

validationRulesDirectory=/home/xplanbox/semantischeRegeln/0.11.1/

Ist der Pfad nicht konfiguriert, werden die internen Validierungsregeln verwendet.

Wenn innerhalb des Validierungsbericht die Version und die Quelle der semantischen Validierungsregeln angezeigt werden sollen, dann muss im übergeordneten Verzeichnis aus validationRulesDirectory eine Textdatei mit dem Dateinamen VERSION.txt und folgendem Inhalt angelegt werden:

version=0.11.1
source=https://bitbucket.org/geowerkstatt-hamburg/xplanung/get/v0.11.1.zip

6.2.1. Weiterführende Informationen zur semantischen Validierung

Die Regeln für die semantische Validierung von XPlanGML-Dokumenten sind als XQuery-Abfragen implementiert. Die Dateien mit den XQuery-Abfragen sind im XPlanValidatorCLI und dem XPlanValidatorWeb enthalten und entsprechend der Nummer der Regel aus den Konformitätsbedingungen benannt.

Referenzen auf externe Ressourcen

Bei der Ausgabe des Ergebnisses der semantischen Validierung kann eine Referenz auf eine externe Ressource gesetzt werden, die weiterführenden Informationen bereitstellt. Die Referenzen können in der Datei <XPLANBOX_CONFIG>/managerConfiguration.properties konfiguriert werden.

linkSemanticConformity_XPLAN_3=
linkSemanticConformity_XPLAN_40=http://localhost:8080/external/documentation/Konformitaetsbedingungen_XPlanGML_4.pdf
linkSemanticConformity_XPLAN_41=http://localhost:8080/external/documentation/Konformitaetsbedingungen-XPlanGML_4_1.pdf
linkSemanticConformity_XPLAN_50=http://localhost:8080/external/documentation/Konformitaetsbedingungen_XPlanGML_5.pdf
linkSemanticConformity_XPLAN_51=http://localhost:8080/external/documentation/Konformitaetsbedingungen_XPlanGML_5_1.pdf
linkSemanticConformity_XPLAN_52=http://localhost:8080/external/documentation/Konformitaetsbedingungen_XPlanGML_5_2.pdf
Es müssen ggf. Zeilenumbrüche entfernt werden.

Für jede XPlanGML-Version kann hier die Referenz auf eine externe Ressource konfiguriert werden. Ist für eine Version keine Ressource vorhanden, kann der Eintrag vollständig entfernt oder der Wert zu dem Schlüssel leer gelassen werden (wie im Beispiel für XPLAN_3). Es wird dann kein Hinweis im Validierungsbericht ausgegeben.

Es wird empfohlen die Dokumente über die Komponente XPlanRessourcen bereitzustellen, um die Unabhängigkeit von externen Ressourcen sicherzustellen.
Schnittstelle zu XQuery-Statements

Der Rückgabewert der XQuery-Statements wird vom XPlanValidator ausgewertet und im Validierungsbericht ausgegeben. Dabei kann der XPlanValidator zwischen Fehlern und Warnungen unterscheiden. Neben der GML-ID des betroffenen Elements kann optional noch eine Meldung mit ausgelesen werden.

Damit der XPlanValidator den Rückgabewert verarbeiten kann, muss dieser wie folgt strukturiert sein:

GML_ID oder [GML_ID, 'W', 'NACHRICHT']

7. Konfiguration der REST-Schnittstellen

7.1. XPlanManagerAPI

Die Konfiguration der XPlanManagerAPI erfolgt in der Datei <XPLANBOX_CONFIG>/managerApiConfiguration.properties. Außerdem gelten die im Abschnitt Konfiguration des XPlanManagerWeb beschriebenen Konfigurationsoptionen, die in der Datei <XPLANBOX_CONFIG>/managerConfiguration.properties festgelegt werden.

Folgende Konfigurationen können für die XPlanManagerAPI vorgenommen werden:

7.1.1. API URL

URL der XPlanManagerAPI, die im OpenAPI Dokument ausgegeben wird. Diese Konfiguration muss vorgenommen werden, andernfalls kann die Schnittstelle nicht verwendet werden und es kommt bereits beim Deployment der Webapp zu einem Fehler. Beispiel:

apiUrl=http://xplanbox.lat-lon.de

7.1.2. Kontakt E-Mail Adresse

E-Mail Adresse des Kontakts, die im OpenAPI Dokument ausgegeben wird. Diese Konfiguration ist optional. Beispiel:

contactEMailAdress=info@lat-lon.de

7.1.3. URL zu den "Terms of Service"

URL zu den "Terms of Services", die im OpenAPI Dokument ausgegeben wird. Diese Konfiguration ist optional. Beispiel:

termsOfServiceUrl=

7.1.4. URL zur Dokumentation der xPLanBox

URL zur Dokumentation, die im OpenAPI Dokument ausgegeben wird. Diese Konfiguration ist optional. Beispiel:

documentationUrl=

7.1.5. WMS URL

URL des XPlanwerkWMS, über den einzelne Pläne über die ManagerID angefragt werden können. Beispiel:

wmsUrl=http://xplanbox.lat-lon.de/xplan-wms

7.1.6. Standard-Validierungseinstellungen

Mit diesen Einstellungen kann das Validierungslevel konfiguriert werden, das beim Import eines Plans angewendet wird. Standardmäßig müssen alle Tests (syntaktisch, semantisch und geometrisch) bestanden werden. Mit dieser Option kann z. B. festgelegt werden, dass Pläne die Prüfung auf den Geltungsbereich nicht bestehen müssen, um diesen zu importieren. Unabhängig von dieser Konfiguration muss die syntaktische Validierung in jedem Fall bestanden werden, ebenso werden Pläne mit schwerwiegenden geometrischen Fehlern grundsätzlich abgelehnt.

Beispiel:

skipSemantisch=false
skipGeometrisch=false
skipFlaechenschluss=false
skipLaufrichtung=false
skipGeltungsbereich=true

7.2. XPlanValidatorAPI

Die Konfiguration der XPlanValidatorAPI erfolgt in der Datei <XPLANBOX_CONFIG>/validatorApiConfiguration.properties. Außerdem gelten die im Abschnitt Konfiguration des XPlanValidatorWeb beschriebenen Konfigurationsoptionen, die in der Datei <XPLANBOX_CONFIG>/validatorConfiguration.properties festgelegt werden. Folgende Konfiguration kann für die XPlanValidatorAPI vorgenommen werden:

7.2.1. API URL

URL der XPlanManagerAPI, die im OpenAPI Dokument ausgegeben wird. Beispiel:

apiUrl=http://xplanbox.lat-lon.de

7.2.2. Kontakt E-Mail Adresse

E-Mail Adresse des Kontakts, die im OpenAPI Dokument ausgegeben wird. Diese Konfiguration ist optional. Beispiel:

contactEMailAdress=info@lat-lon.de

7.2.3. URL zu den "Terms of Service"

URL zu den "Terms of Services", die im OpenAPI Dokument ausgegeben wird. Diese Konfiguration ist optional. Beispiel:

termsOfServiceUrl=

7.2.4. URL zur Dokumentation der xPLanBox

URL zur Dokumentation, die im OpenAPI Dokument ausgegeben wird. Diese Konfiguration ist optional. Beispiel:

documentationUrl=

8. Konfiguration des XPlanWMS und XPlanWFS

In den nachfolgenden Kapiteln wird die Konfiguration der WFS- und WMS-Dienste der xPlanBox erläutert:

8.1. XPlanDienste

Die folgenden Informationen gelten für alle von der xPlanBox bereitgestellten XPlanDienste: XPlanWMS/XPlanWerkWMS, XPlanWFS und XPlanSynWFS.

8.1.1. Manuelle Anpassung der bbox_cache.properties

Aktuell kann es dazu kommen, dass die in den Capabilities-Dokumenten angegebene BoundingBox nicht alle in der xPlanBox importierten Daten umfasst. Dies kann unter anderem zur Folge haben, dass die Daten durch Clients nicht oder nur unvollständig angezeigt werden. Betroffen sind sowohl der XPlanWMS/XPlanWerkWMS, XPlanWFS sowie XPlanSynWFS.

Es wird daher empfohlen, die BoundingBox manuell auf den Bereich zu konfigurieren, der den gesamten zu erfassenden Bereich umfasst. Dieser kann sowohl bereits importierte als auch zukünftig noch einzupflegende Planwerke beinhalten.

Die BoundingBox wird für jeden Workspace in der Datei bbox_cache.properties in dem Verzeichnis .deegree/<XPlanDienst-Workspace>/datasources/feature konfiguriert. Sollte die Datei noch nicht existieren, ist diese manuell anzulegen. Andernfalls kann der Inhalt ausgetauscht werden, sofern keine weiteren manuellen Anpassungen erfolgt sind. Die Dienste dürfen beim Anlegen und Anpassen der Datei nicht gestartet sein.

Beispiel: Ausschnitt aus der bbox_cache.properties Datei (ein vollständiges Beispiel findet sich im Anhang)

....
{http\://www.deegree.org/xplanung/1/0}FP_Strassenverkehr=epsg\:4326,8.0,53.0,9.0,54.0
{http\://www.deegree.org/xplanung/1/0}BP_EinfahrtPunkt=epsg\:4326,8.0,53.0,9.0,54.0
{http\://www.deegree.org/xplanung/1/0}BP_SchutzPflegeEntwicklungsMassnahme=epsg\:4326,8.0,53.0,9.0,54.0
{http\://www.deegree.org/xplanung/1/0}FP_Plan=epsg\:4326,8.0,53.0,9.0,54.0
{http\://www.deegree.org/xplanung/1/0}XP_Grenze=epsg\:4326,8.0,53.0,9.0,54.0
{http\://www.deegree.org/xplanung/1/0}FP_Luftverkehr=epsg\:4326,8.0,53.0,9.0,54.0
{http\://www.deegree.org/xplanung/1/0}BP_UeberbaubareGrundstuecksFlaeche=epsg\:4326,8.0,53.0,9.0,54.0
....

8.2. XPlanWMS

Nach der Installation ist in der Datei html.gfi im Verzeichnis <DEEGREE_WORKSPACE_ROOT>/xplansyn-wms-workspace/services die Anpassung der URL des XPlanWMS vorzunehmen.

Damit die Links auf Dokumente in der WMS GetFeatureInfo Ausgabe auch bei externen Aufrufen funktionsfähig sind, muss eine Anpassung der URL in der Datei html.gfi erfolgen. Die URL der Variable WMS_URL muss auf die öffentliche URL des XPlanWMS geändert werden, über die die Anhänge aus dem XPlanArchiv über die Operation GetAttachment des XPlanWMS bereitgestellt werden.

Vorgabewert in der Datei html.gfi:

var WMS_URL = "http://localhost:8080/xplan-wms";

Eine Übersicht der weiteren Konfigurationsdateien des XPlanWMS ist im Kapitel XPlanWMS Workspace zu finden.

9. XPlanDB

9.1. Zugriff auf Daten der XPlanDB

Über die REST-API des XPlanManager und den XPlanWFS kann jedes importierte XPlanGML-Dokument abgerufen werden. Je nach Version des XPlanGML-Dokuments und Planstatus wird dieses aus der XPlanDB ausgelesen, wobei folgende Beispiele den Zugriff auf das XML-Dokument in der Tabelle <DATENBANK_SCHEMA>.GML_OBJECTS.BINARY_OBJECT verdeutlichen sollen:

  • für einen rechtskräftigen Plan mit Planstatus "festgestellt" in der Version 5.1 erfolgt der Abruf aus XPLAN51.GML_OBJECTS.BINARY_OBJECT über den XPlanWFS Endpoint wfs51.

  • für einen in Aufstellung befindlichen Plan in der Version 5.3 erfolgt der Abruf aus XPLAN53PRE.GML_OBJECTS.BINARY_OBJECT über den XPlanWFS Endpoint wfs53pre.

Änderungen, die über den XPlanManager vorgenommen werden, werden in der XPlanDB gespeichert. Die Datenbankschemata der XPlanDB sind im Anhang unter Datenbankmodell der XPlanDB zu finden. Der Ablageort der Rasterdaten aus einem XPlanArchiv wird im Anhang unter XPlanWMS Workspace näher beschrieben.

9.1.1. Übersicht der Datenbankschemata

Die folgende Tabelle zeigt die in der XPlanDB enthaltenen Datenbankschemata und die auf diese Schema zugreifenden Komponenten am Beispiel der festgestellten Pläne bei separater Datenhaltung.

Datenbankschema Komponente/Endpoint Mapping-Typ

xplan3

XPlanWFS/wfs30

BLOB

xplan40

XPlanWFS/wfs40

BLOB

xplan41

XPlanWFS/wfs41

BLOB

xplan50

XPlanWFS/wfs50

BLOB

xplan51

XPlanWFS/wfs51

BLOB

xplan52

XPlanWFS/wfs52

BLOB

xplan53

XPlanWFS/wfs53

BLOB (Schema)

xplan54

XPlanWFS/wfs54

BLOB

xplansyn

XPlanSynWFS/xplansynwfs, XPlanWMS und XPlanWerkWMS/wms

Relational (Schema)

inspireplu

XPlanInspirePluWFS/downloadservice, XPlanInspirePluWMS/viewservice

Relational

xplanmgr

XPlanManagerWeb, XPlanManagerAPI, XPlanManagerCLI, XPlanWerkWMS

Relational (Schema)

Bei separater Datenhaltung existiert für alle in Aufstellung befindlichen Pläne zusätzlich ein Datenbankschema mit der Namenskonvention xplan*pre und den Endpoints XPlanWFS/wfs*pre sowie für die archivierten Pläne mit xplan*archive und den Endpoints XPlanWFS/wfs*archive.

Die Datenbankstruktur für die Schema xplan* wird im Anhang Datenbankmodell der XPlanDB beschrieben.

10. Logging

Die Anwendungen XPlanManagerWeb, XPlanManagerCLI, XPlanValidatorWeb und XPlanValidatorCLI und alle XPlanDienste schreiben Log-Ausgaben standardmäßig nach Standard-Out. Für die Web-Anwendungen und die Webservices ist dies die Logging-Datei des Java Applikationsserver (Apache Tomcat: catalina.out) und bei den CLI-Anwendungen die Konsole. Nach Standard-Out werden nur Warnungen und Fehler geschrieben.

10.1. Protokolldateien der Komponenten

Zusätzlich wird eine Log-Datei für alle Anwendungen und Dienste in einer entsprechenden benannten Datei im Log-Verzeichnis des Tomcat-Servers ${catalina.base}/logs/ geschrieben. In die Log-Dateien werden Informationen, Warnungen und Fehler geschrieben.

Anwendung Log-Datei

XPlanManagerWeb

${catalina.base}/logs/xplan-manager-web.log

XPlanManagerAPI

${catalina.base}/logs/xplan-manager-api.log

XPlanManagerCLI

./xplan-manager-cli.log

XPlanValidatorWeb

${catalina.base}/logs/xplan-validator-web.log

XPlanValidatorAPI

${catalina.base}/logs/xplan-validator-api.log

XPlanValidatorCLI

./xplan-validator-cli.log

XPlanWMS

${catalina.base}/logs/xplan-wms.log

XPlanWFS

${catalina.base}/logs/xplan-wfs.log

XPlanSynWFS

${catalina.base}/logs/xplansyn-wfs.log

10.2. Protokollebenen

In den Anwendungen werden für die Nachrichten verschiedenen Protokollebenen (Log-Level) verwendet. Diese haben folgende Bedeutung:

  • FATAL: Schwerwiegender Fehler, die einen Betrieb der Software verhindern und Aktionen des Administrators erfordern (Vorgabeeinstellung: ist aktiviert)

  • ERROR: Programmfehler, die einen Betrieb der Software einschränken und Aktionen des Administrators erfordern (Vorgabeeinstellung: ist aktiviert)

  • WARN: Warnungen, die den Betrieb der Software nicht einschränken, aber auf Konfigurationsprobleme, -fehler o.ä. hinweisen, die von Administrator behoben werden sollten (Vorgabeeinstellung: ist aktiviert)

  • INFO: Informationen, die wichtige Programmschritte dokumentieren und vom Administrator und Entwickler zur Kontrolle ausgewertet werden können (Vorgabeeinstellung: nur in den Log-Dateien aktiviert)

  • DEBUG: Detaillierte Informationen zum Programmablauf, die vom Entwickler zur Fehler- und Laufzeitanalyse ausgewertet werden können (Vorgabeeinstellung: deaktiviert, wird bei Bedarf und nur temporär aktiviert)

  • TRACE: noch detailliertere Informationen zum Programmablauf (Vorgabeeinstellung: deaktiviert, wird bei Bedarf und nur temporär aktiviert, erzeugt viele Nachrichten)

10.3. Konfiguration

Die Konfiguration des verwendeten Apache Log4j-Frameworks erfolgt über die Konfigurationsdatei log4j2.yaml. Diese Datei ist in allen Komponenten enthalten und liegt in den Webapps im Verzeichnis WEB-INF/classes und bei den Kommandozeilenwerkzeugen im Verzeichnis etc/.

Der Aufbau einer Log4j-Konfigurationsdatei ist in mehrere Abschnitte aufgeteilt. Die verschiedenen Protokollausgabekanäle werden im Abschnitt Appenders definiert:

  Appenders:
    Console: (1)
      name: STDOUT
      target: SYSTEM_OUT (2)
      PatternLayout:
        Pattern: "%d %p %C{1.} [%t] %m%n" (3)
    RollingFile: (4)
      name: RollingFile_Appender
      fileName: ${log.path}/${log.file} (5)
      filePattern: ${log.path}/${log.file}.%d{yyyy-MM-dd-hh-mm} (6)
      PatternLayout:
        pattern: "%d %p %C{1.} [%t] %m%n" (3)
      Policies: (7)
        SizeBasedTriggeringPolicy: (8)
          size: 100 MB
      DefaultRollOverStrategy: (9)
        max: 5
1 Definiert den Ausgabekanal STDOUT der auf die Konsole verweist
2 Konsolenausgabe erfolgt nach Standard-Out SYSTEM_OUT (oder SYSTEM_ERR)
3 Definiert das Format für eine Nachricht
4 Definiert den Ausgabekanal RollingFile_Appender der auf eine Protokolldatei verweist
5 Definiert den Dateipfad und -namen der Protokolldatei
6 Definiert den Dateipfad und -namen der archivierten Protokolldateien
7 Definiert die Eigenschaften wann eine Protokolldatei automatisch archiviert wird
8 Auslöser bei einer Überschreitung der Protokolldatei von 100 MB
9 Begrenzung der Anzahl der Protokolldateien auf max. 5 Dateien.

Im Abschnitt Loggers werden die einzelnen Logger konfiguriert:

  Loggers:
    Root: (1)
      level: info
      AppenderRef:
        - ref: STDOUT (2)
          level: error
        - ref: RollingFile_Appender (3)
          level: info
    Logger:
      - name: org.deegree (4)
        level: info
      - name: de.latlon.xplan
        level: info
1 Konfiguriert den Logger Root auf Log-Level info und schreibt in die beiden Ausgabekanäle STDOUT und RollingFile_Appender
2 Der Ausgabekanal STDOUT gibt nur Fehler aus (Log-Level error und fatal)
3 Der Ausgabekanal RollingFile_Appender gibt Informationen, Warnung und Fehler aus (Log-Level info, warn, error und fatal )
4 Für die Logger org.deegree und de.latlon.xplan ist ebenfalls ein Log-Level info gesetzt. Der Wert für den Log-Level kann trace, debug, info, warn, error, fatal oder off sein. Zwischen Klein- und Grossschreibung wird nicht unterschieden.

Im Abschnitt Properties können zusätzliche Eigenschaften definiert werden, die in der Konfigurationsdatei verwendet werden können:

  Properties:
    Property:
      - name: log.file (1)
        value: xplan-validator-api.log
      - name: log.path (2)
        value: ${sys:catalina.base:-.}/logs
1 Definiert die Variable log.file mit dem Wert xplan-validator-api.log
2 Definiert die Variable log.path mit dem Wert ${sys:catalina.base:-.}/logs, dabei wird die Systemvariable catalina.base ausgewertet und dem Verzeichnisnamen logs vorangestellt. Ist die Systemvariable nicht gesetzt :-, wird der Vorgabewert . (Basisverzeichnis des Prozesses) verwendet und dem Verzeichnisnamen logs vorangestellt.

Weitere Informationen zur Konfiguration von Log4j sind auf den Seiten des Projekts unter https://logging.apache.org/log4j/2.x/manual/configuration.html zu finden.

10.3.1. Setzen der Log4j-Konfiguration

Beim Betrieb der xPlanBox-Komponenten in einem Apache Tomcat muss die Systemvariable log4j2.configurationFile gesetzt werden. Die Einstellung wird am besten zu den CATALINA_OPTS hinzugefügt:

CATALINA_OPTS=-Dlog4j2.configurationFile=classpath:/log4j2.yaml

Weitere Informationen zur Konfiguration von Log4j in einem Servlet-Container sind unter https://logging.apache.org/log4j/2.x/manual/webapp.html zu finden.

11. Bekannte Probleme

11.1. HTTP Session Timeout bei lang andauernden HTTP-Anfragen

11.1.1. Problembeschreibung

Bei lang andauernden Validierungsanfragen im XPlanManagerWeb kann es dazu kommen, dass in der Oberfläche des XPlanManagerWeb der Import-Button nach Abschluss der Validierung nicht mehr angezeigt wird.

11.1.2. Lösungsansätze

Für eine vollständige Validierung kann bei einer Minimale Systemvoraussetzung eine Dauer von ca. 30 Minuten je 5 MB XPlanGML-Dateigröße angenommen werden, je nach Komplexität und Umfang der enthaltenen Geometrien.

11.2. HTTP Timeout bei lang andauernden HTTP-Anfragen

11.2.1. Problembeschreibung

Bei lang andauernden Anfragen im XPlanValidatorWeb oder XPlanManagerWeb kann es zu einem Verbindungsabbruch kommen. Dies kann u.a. durch Fehlermeldungen im Browser wie z.B. HTTP-Statusfehler 408 oder 502 bzw. 504 angezeigt werden.

11.2.2. Lösungsansätze

  • Erhöhen der HTTP Timeout und Keepalive Zeiten in der Konfiguration der eingesetzten Webserver wie z.B. Apache httpd oder nginx sowie sonstiger Netzwerkkomponenten, die den Webkomponenten vorgeschaltet sind.

11.3. Kapazitätsbezogene Einschränkungen

11.3.1. Problembeschreibung

Sowohl für den XPlanManagerWeb als auch den XPlanManagerAPI gelten Obergrenzen beim Import von XPlanArchiven. XPlanArchive (ZIP-Datei inklusive Anhänge) größer als 50 MB und XPlanGML-Dateien größer als 2 MB können die Systemstabilität beeinträchtigen. Wenn XPlanArchive mit größeren Anhängen importiert werden sollen, so müssen Server-seitig entsprechende Systemvoraussetzungen erfüllt sein.

11.3.2. Lösungsansätze

  • Für die Bereitstellung von mehr als 500 XPlanArchiven über die Dienste XPlanWMS, XPlanWFS oder XPlanSynWFS müssen Server-seitig dann die Systemvoraussetzungen wie in der Empfohlene Systemkonfiguration erfüllt sein. Das Antwortzeitverhalten der Dienste ist von den verfügbaren System-Ressourcen abhängig.

  • Die Anwendungskomponenten der xPlanBox benötigt min. 1,5 GB freien Festplattenspeicherplatz. Anwachsende Daten über die Dauer der Laufzeit der Anwendung sind die Datenhaltung für die Pläne inkl. der Anhänge und die Systemlogdateien. Zur Kapazitätsplanung kann folgende Abschätzung gegeben werden: Der Festplattenspeicherplatz für die Daten ist erforderlich auf dem Server mit der XPlanDB und der Tomcat-Instanz mit dem [XPlanManager]. Folgende Formel kann bei der Kapazitätsplanung zur Hilfe gezogen werden: Größe eines XPlanArchivs (inkl. der Anhänge) * Anzahl der XPlanArchive * 2. Wenn also zum Beispiel 500 Pläne mit einer durchschnittlichen Größe von 50 MB inkl. der Anhänge importiert werden sollen, dann sind ca. 50 GB Festplattenspeicherplatz je Server notwendig.

12. Aktualisierung

Bei einer Aktualisierung der xPlanBox müssen folgende Schritte durchgeführt werden:

Datenunabhängige Aktualisierungsschritte:

Aktualisierungsschritte, die die Datenhaltung betreffen:

Nachdem alle Aktualisierungsschritte erfolgreich durchgeführt worden, wird die Aktualisierung mit dem

abgeschlossen.

12.1. Austausch der Web-Archive

Es müssen die bereitgestellten WAR-Dateien in das Verzeichnis webapps/ der jeweiligen Tomcat-Instanz kopiert werden:

cp ${WORK_DIR}/web/xplan-manager-web.war <CATALINA_HOME>/webapps/
cp ${WORK_DIR}/web/xplan-validator-web.war <CATALINA_HOME>/webapps/

cp ${WORK_DIR}/web/xplan-api-manager.war <CATALINA_HOME>/webapps/
cp ${WORK_DIR}/web/xplan-api-validator.war <CATALINA_HOME>/webapps/

cp ${WORK_DIR}/web/xplansyn-wfs.war <CATALINA_HOME>/webapps/
cp ${WORK_DIR}/web/xplan-wfs.war <CATALINA_HOME>/webapps/
cp ${WORK_DIR}/web/xplan-wms.war <CATALINA_HOME>/webapps/
Falls die Hintergrundkarte der Kartenvorschau im XPlanValidatorWeb angepasst wurde, müssen die Änderungen in der Datei services-internet.template.json manuell in die neue Webapp xplan-validator-web übertragen werden (s. Kartenvorschau im XPlanValidatorWeb).

12.2. Neustart der Tomcat-Server

Es müssen alle Tomcat-Instanzen neu gestartet werden. Der Neustart muss nach der Aktualisierung der Workspaces erfolgen (s. Aktualisierung der betroffenen Konfigurationsdateien in den Workspaces).

12.3. Austausch der Commandline-Tools

Es müssen die bereit gestellten ZIP-Archive für die Kommandozeilen-Tools entpackt werden:

unzip ${WORK_DIR}/cli/xplan-manager-cli-${VERSION}.zip
unzip ${WORK_DIR}/cli/xplan-validator-cli-${VERSION}.zip

12.4. Übersicht über die Datenhaltung betreffende Änderungen

Folgende Tabelle listet auf, bei welchen xPlanBox Versionen die Datenhaltung betreffende Änderungen vorgenommen wurden (ab Version 2.0).

In der Tabelle sind nur Versionen aufgelistet, die auch Änderungen enthalten. In der Version 2.3 wurden gegenüber der Version 2.2 beispielsweise keine Änderungen vorgenommen. Somit können Version 2.2 und 2.3 mit exakt den gleichen Workspaces und dem gleichen Datenbankschema betrieben werden.

Anhand der Übersicht lässt sich ableiten, welche Schritte bei einer Aktualisierung ausgeführt werden müssen. Die Details zu den jeweiligen Aktualisierungsschritten werden in den nachfolgenden Kapiteln erläutert.

Alle Aktualisierungswerkzeuge und -skripte werden ohne Gewähr und nur für ausgewählte Versionen auf Anfrage zusammen mit der Liefereinheit bereitgestellt. Für weitere Fragen zur Aktualisierung, insbesondere von Versionen älter als 2.0, wenden Sie sich bitte an die lat/lon GmbH.

Tabelle 1. Überblick über die Datenhaltung betreffenden Änderungen
xPlanBox Version Änderungen an den Workspaces/ der Konfiguration? Änderungen am Datenbankschema?

2.0

ja

ja

2.2

ja

2.4

ja

2.7

ja (Details)

ja (Details)

2.8

ja

3.0

ja (Details)

ja (Details)

3.3

ja (Details)

ja (Details)

4.0

ja (Details)

ja (Details)

4.1

ja (Details)

ja (Details)

4.2

ja (Details)

ja (Details)

4.3

ja (Details)

5.0

ja (Details)

ja (Details)

Durchzuführende Aktualisierungen

Aktualisierung der betroffenen Konfigurationsdateien in den Workspaces

Aktualisierung des Datenbankschemas und Aktualisierung der Daten

12.5. Aktualisierung der betroffenen Konfigurationsdateien in den Workspaces

Bei der Aktualisierung der Workspaces ist zwischen einer vollständigen und teilweisen Aktualisierung zu unterscheiden. Bei der im Abschnitt Vollständige Aktualisierung des Workspaces beschriebenen vollständigen Aktualisierung werden z. B. Rasterdaten aus Plänen, die bereits importiert wurden, verworfen. Sollen vorhandene Daten beibehalten werden, ist die im Abschnitt Teilweise Aktualisierung des Workspaces beschriebene Variante durchzuführen.

Alle Konfigurationsänderungen in xplan-manager-config und xplan-valdiator-config müssen manuell übertragen werden.

12.5.1. Vollständige Aktualisierung des Workspaces

Es müssen die bereitgestellten Konfigurationsdateien in das Verzeichnis <DEEGREE_DIR>, z. B. .deegree/ kopiert werden. Diese ersetzen die bereits vorhandenen:

cd ${DEEGREE_DIR} && unzip -o ${WORK_DIR}/config/xplan-workspaces-${VERSION}-xplan-manager-workspace-${ENV}.zip
cd ${DEEGREE_DIR} && unzip -o ${WORK_DIR}/config/xplan-workspaces-${VERSION}-xplan-wfs-workspace-${ENV}.zip
cd ${DEEGREE_DIR} && unzip -o ${WORK_DIR}/config/xplan-workspaces-${VERSION}-xplansyn-wfs-workspace-${ENV}.zip
cd ${DEEGREE_DIR} && unzip -o ${WORK_DIR}/config/xplan-workspaces-${VERSION}-xplansyn-wms-workspace-${ENV}.zip
cd ${DEEGREE_DIR} && unzip -o ${WORK_DIR}/config/xplan-workspaces-${VERSION}-xplan-inspireplu-workspace-${ENV}.zip
cd ${DEEGREE_DIR} && unzip -o ${WORK_DIR}/config/xplan-manager-config-${VERSION}-${ENV}.zip
cd ${DEEGREE_DIR} && unzip -o ${WORK_DIR}/config/xplan-validator-config-${VERSION}.zip

12.5.2. Teilweise Aktualisierung des Workspaces

Es müssen die bereit gestellten Konfigurationsdateien mit Ausnahme des xplansyn-wms-workspace in das Verzeichnis <DEEGREE_DIR>, z. B. .deegree/ kopiert werden. Diese ersetzen die bereits vorhanden:

cd ${DEEGREE_DIR} && unzip -o ${WORK_DIR}/config/xplan-workspaces-${VERSION}-xplan-manager-workspace-${ENV}.zip
cd ${DEEGREE_DIR} && unzip -o ${WORK_DIR}/config/xplan-workspaces-${VERSION}-xplan-wfs-workspace-${ENV}.zip
cd ${DEEGREE_DIR} && unzip -o ${WORK_DIR}/config/xplan-workspaces-${VERSION}-xplansyn-wfs-workspace-${ENV}.zip
cd ${DEEGREE_DIR} && unzip -o ${WORK_DIR}/config/xplan-workspaces-${VERSION}-xplan-inspireplu-workspace-${ENV}.zip
cd ${DEEGREE_DIR} && unzip -o ${WORK_DIR}/config/xplan-manager-config-${VERSION}-${ENV}.zip
cd ${DEEGREE_DIR} && unzip -o ${WORK_DIR}/config/xplan-validator-config-${VERSION}.zip

Folgende Ordner des neuen xplansyn-wms-workspace müssen in die bestehende Installation integriert werden:

  • appschemas

  • datasources/feature

  • layers

  • services

  • styles

  • themes (Wichtig: Nicht die Dateien, die auf raster.xml enden, ersetzen!)

Aktualisierung des WMS-Workspaces auf die Version 2.0 der xPlanBox

Bei Übernahme eines alten Workspaces für den WMS (xplansyn-wms-workspace) mit bereits importierten Rasterdaten sind die Themes-Konfigurationen anzupassen. Im ersten Theme-Block ist ein neuer Identifier, z. B. <Identifier>BP_Planraster</Identifier> vor dem Element Title einzutragen.

<Themes xmlns="http://www.deegree.org/themes/standard"
        xmlns:ns2="http://www.deegree.org/metadata/description"
        xmlns:ns3="http://www.deegree.org/metadata/spatial"
        configVersion="3.4.0">
  <Theme>
    <!-- Die folgende Zeile ist beim Update auf die Version 2.0 der xPlanBox hinzuzufügen -->
    <Identifier>BP_Planraster</Identifier>
    <ns2:Title>BPlan Raster</ns2:Title>
    <ns3:CRS>EPSG:25832</ns3:CRS>
    <Theme>
      <Identifier>bplanraster_sortiert</Identifier>
      <ns2:Title>BPlan Raster Theme</ns2:Title>
      <Layer layerStore="1_Testplan.png">1_Testplan.png</Layer>
      ....
    </Theme>
  </Theme>
</Themes>

Die Benamung des Identifiers richtet sich nach dem Typ des Plans:

  • BP_Planraster (Dateien: bplanpreraster.xml, bplanarchiveraster.xml, bplanraster.xml)

  • FP_Planraster (Dateien: fplanpreraster.xml, fplanarchiveraster.xml, fplanraster.xml)

  • LP_Planraster (Dateien: lplanpreraster.xml, lplanarchiveraster.xml, lplanraster.xml)

  • RP_Planraster (Dateien: rplanpreraster.xml, rplanarchiveraster.xml, rplanraster.xml)

  • SO_Planraster (Dateien: soplanpreraster.xml, soplanarchiveraster.xml, soplanraster.xml)

Die Themes-Konfigurationen der Vektordaten sollten komplett ausgetauscht werden, Daten gehen dadurch nicht verloren. Folgende Dateien sind davon betroffen:

  • bplan.xml, bplanpre.xml, bplanarchive.xml

  • fplan.xml, fplanpre.xml, fplanarchive.xml

  • lplan.xml, lplanpre.xml, lplanarchive.xml

  • rplan.xml, rplanpre.xml, rplanarchive.xml

  • soplan.xml, soplanpre.xml, soplanarchive.xml

Aktualisierung des WMS-Workspaces auf die Version 2.4 der xPlanBox

Mit der Version 2.4 der xPlanBox wurde eine Möglichkeit eingeführt, die Ausgabe der Rasterdaten durch den XPlanWMSInAufstellung abhängig vom gesetzten Gültigkeitszeitraum steuern zu können. Dazu ist in Abschnitt Gültigkeitszeitraum beschrieben, wie die Konfiguration im XPlanWMS und XPlanWMSArchive zu erfolgen hat. Bei einer Aktualisierung auf die Version 2.4 ist dieser Schritt für den XPlanWMSInAufstellung manuell durchzuführen, um die Standardkonfiguration wiederherzustellen. Dies ist nicht notwendig, wenn der Workspace des XPlanWMS vollständig durch die neue Version ausgetauscht wird.

Aktualisierung des WMS-Workspaces auf die Version 3.3 der xPlanBox

Mit der Version 3.3 der xPlanBox wurden Anpassungen am Workspace für den XPlanWMS vorgenommen. Um diese Änderungen zu übernehmen müssen folgende Schritte ausgeführt werden:

  • Übernahme aller Dateien aus dem Verzeichnis /appschemas

  • Übernahme aller Dateien aus dem Verzeichnis /datasources/feature

  • Übernahme aller Dateien aus dem Verzeichnis /layers

  • Übernahme oder Abgleich aller Dateien aus dem Verzeichnis /services. Ein Abgleich ist erforderlich, wenn Änderungen an den Service-Metadaten vorgenommen wurden.

  • Übernahme aller Dateien aus dem Verzeichnis /styles

  • Übernahme aller Dateien aus dem Verzeichnis /themes, deren Dateiname nicht auf "raster.xml" enden.

12.6. Aktualisierung des Datenbankschemas

Achtung: Die folgenden Schritte müssen nur ausgeführt werden, wenn die bereits in das System importierten Daten beibehalten werden sollen. Für den Fall, dass dies nicht notwendig ist, muss lediglich die Datenbank neu aufgesetzt werden. Mehr Details hierzu finden Sie im Kapitel Konfiguration der Datenbank.

Die Datenbankschemas jeder Version befinden sich im xplan-manager-workspace im Ordner sql/ und für jedes Schema gibt es dort einen eigenen Unterordner. Neu hinzugekommene Schemas können direkt auf der Datenbank ausgeführt werden und stehen danach für die Anwendung bereit. Bei Änderungen in einem Schema müssen diese durch in ein Update-Skript überführt und damit an der Datenbank durchgeführt werden. Für einige Aktualisierungen sind Aktualisierungsskripte im Modul xplan-update-database-cli verfügbar.

Es gibt sowohl SQL-Update-Skripte als auch Liquibase-Skripte, die mit der Software Liquibase ausgeführt werden können. Falls beide Skript-Typen vorhanden sind, kann der Nutzer wählen, ob das Update per SQL oder Liquibase durchgeführt werden soll.
Werden mehrere Aktualisierungschritte mit Liquibase ausgeführt, kann es zu folgender Fehlermeldungen: ERROR: relation "databasechangeloglock" already exists kommen. Diese Fehlermeldung kann ignoriert werden.

12.7. Aktualisierung der Daten

Achtung: Die folgenden Schritte müssen nur ausgeführt werden, wenn die bereits in das System importierten Daten beibehalten werden sollen. Für den Fall, dass dies nicht notwendig ist, muss lediglich die Datenbank neu aufgesetzt werden. Dieser Schritt sollte bereits während der Anwendung des Kapitels Aktualisierung des Datenbankschemas durchgeführt worden sein.

Im Modul xplan-update-database-cli wird das Programm databaseUpdate für die Datenaktualisierung bestimmter xPlanBox-Versionen bereitgestellt. Eine Liste der für die Datenaktualisierung unterstützten Versionen wird beim Programmaufruf mit dem Parameter --help angezeigt.

12.7.1. Datenaktualisierung auf die Version 2.0 sowie 2.2 der xPlanBox

Bei der Aktualisierung der Daten auf die Version 2.0 sowie 2.2 (z. B. von 1.8 auf 2.0 oder 2.1 auf 2.2) der xPlanBox ist abschließend die Ausführung des CLIs zur Aktualisierung des Sortierreihenfolge für den XPlanWMS erforderlich. Informationen dazu finden sich im Abschnitt XPlanManagerCLI im XPlanBenutzerhandbuch. Die erforderliche Konfiguration ist im Abschnitt KonfigurationSortierung der Daten in der Visualisierung in dieser Dokumentation beschrieben.

12.8. Aktualisierung auf die Version 2.7 der xPlanBox

Mit der Version 2.7 bietet die xPlanBox die Möglichkeit die vom XPlanManager verwalteten Pläne im INSPIRE Datenthema Planned Land Use (PLU) bereitzustellen. Um diese Option für eine bestehende Installation zu aktivieren, sind folgende Schritte notwendig:

Falls die neue Funktionalität nicht genutzt werden soll, müssen die Änderungen nicht durchgeführt werden.

12.9. Aktualisierung auf die Version 2.8 der xPlanBox

  • Aktualisierung der Datenbank:

    • Ausführen der Skripte im Verzeichnis from_2.7_to_2.8 im Modul xplan-update-database-cli

12.10. Aktualisierung auf die Version 3.0 der xPlanBox

Mit der Version 3.0 der xPlanBox sind einige Erweiterungen und Fehlerbehebungen vorgenommen worden. Für die Aktualisierung auf die Version 3.0 sind folgende Schritte auszuführen:

  • Aktualisierung der Workspaces und Konfigurationen (s. Teilweise Aktualisierung des Workspaces)

  • Aktualisierung der Datenbank:

    • Ausführen der Skripte für die Erstellung der Datenhaltung für 5.0 aus dem Modul xplan-manager-workspace:

      • fix/xplan50/create.sql

      • pre/xplan50/create.sql

      • archive/xplan50/create.sql

    • Ausführen der Skripte für die Erstellung der Datenhaltung für 5.1 aus dem Modul xplan-manager-workspace:

      • fix/xplan51/create.sql

      • pre/xplan51/create.sql

      • archive/xplan51/create.sql

    • Ausführen der Skripte im Verzeichnis from_2.8_to_3.0 im Modul xplan-update-database-cli in der vorgegebenen Reihenfolge

  • Wurde bisher GDAL verwendet (s. Konfiguration von HALE) ist die Aktualisierung von GDAL auf die Version 2.4 erforderlich (s. auch Installation und Konfiguration von GDAL).

Mit der Version 3.0 der xPlanBox können mehrere Ortsteilnamen im XPlanGML auch durch Kommata separiert angegeben werden. Damit diese wie erwartet einem Bezirk zugeordnet werden können (s. Hinweis unter Ortsteile), muss eine Aktualisierung der in der Datenbank gespeicherten Daten erfolgen. Im Modul xplan-update-database-cli steht dafür das Programm districtUpdate zur Verfügung. Der Aufruf des Tools mit --help liefert Hinweise zur Verwendung.

Weiterhin ist mit der Version 3.0 der xPlanBox die Abbildung von Kreisbögen im XPlanSynWFS und XPlanWMS verbessert worden. Um bereits importierte Pläne mit Kreisbögen in der verbesserten Abbildung abgeben zu können, muss eine Aktualisierung der in der XPlanSyn-Datenhaltung gespeicherten Daten erfolgen. Im Modul xplan-update-database-cli steht dafür das Programm reSynthesizer zur Verfügung. Der Aufruf des Tools mit --help liefert Hinweise zur Verwendung.

Des Weiteren muss die HALE CLI auf Version 3.4.0 (siehe Installation und Konfiguration von HALE CLI) und GDAL auf Version 2.4 (siehe Installation und Konfiguration von GDAL) aktualisiert werden.

Mit der Version 3.0 wird bei entsprechender Konfiguration (s. Konfiguration der automatisierten Erstellung von Service-Metadatensätzen) beim Import eines Plans geprüft, ob für diesen Plan bereits ein Daten-Metadatensatz existiert. Ist dies der Fall wird automatisiert ein Service-Metadatensatz für den Plan bzw. dessen XPlanWerkWMS erstellt. Sollen für alle oder einzelne bereits importierten Pläne die Service-Metadatensätze generiert und die dazugehörigen Informationen zur Daten-Dienste-Kopplung, die in den Capabilities des XPlanWerkWMS ausgegeben werden, erstellt werden, steht im Modul xplan-update-database-cli das Werkzeug serviceMetadataRecordCreator zur Verfügung.

12.11. Aktualisierung auf die Version 3.3 der xPlanBox

Mit der Version 3.3 der xPlanBox sind einige Erweiterungen und Fehlerbehebungen vorgenommen worden. Darunter auch die Unterstützung von XPlanGML 5.2 und die Entfernung der Unterstützung von XPlanGML 2.0. Für die Aktualisierung auf die Version 3.3 sind folgende Schritte auszuführen:

  • Die Umgebungsvariable MANAGER_WEB wurde nach XPLANBOX_CONFIG umbenannt. MANAGER_WEB kann derzeit noch verwendet werden, die Unterstützung wird jedoch in einer zukünftigen Version der xPlanBox entfernt. Hinweise zu der Umgebungsvariablen XPLANBOX_CONFIG finden sich im Abschnitt Anwendungs-Tomcat. Sind im Anwendungs-Tomcat sowohl der XPlanManagerWeb als auch der XPlanValidatorWeb installiert, müssen alle Konfigurationsdateien aus xplan-validator-config/ und xplan-manager-config/ in einem Verzeichnis zusammengeführt werden, auf das die Umgebungsvariable XPLANBOX_CONFIG verweist.

  • Aktualisierung der Workspaces und Konfigurationen (s. Teilweise Aktualisierung des Workspaces)

    • Im xplansyn-wms-workspace ist mit dieser Version eine Dummy-Konfiguration eines GDALRasterLayers hinzugekommen. Diese muss bei der Aktualisierung nicht übernommen werden (Hintergründe: GDAL).

  • Aktualisierung der Datenbank:

    • Ausführen der Skripte für die Erstellung der Datenhaltung für 5.2 aus dem Modul xplan-manager-workspace:

      • fix/xplan52/create.sql

      • pre/xplan52/create.sql

      • archive/xplan52/create.sql

      • inspireplu/05_create_inspireplu_view.sql

    • Ausführen der Skripte im Verzeichnis from_3.0_to_3.3 im Modul xplan-update-database-cli in der vorgegebenen Reihenfolge

    • Ausführen des Kommandozeilenwerkzeug reSynthesizer im Modul xplan-update-database-cli zur Aktualisierung der in der XPlanSyn-Datenhaltung gespeicherten Daten. Der Aufruf des Tools mit --help liefert Hinweise zur Verwendung.

  • Anpassungen im Logging führen dazu, dass standardmäßig in das Log-Verzeichnis des Tomcat-Servers (${catalina.base}/logs) gelogged wird. Das Java Property xplan.logdir wird nicht mehr ausgewertet und kann entfernt werden.

Wenn die neuen Features Kartenvorschau im XPlanValidatorWeb und Semantische Validierungsregeln im XPlanValidatorWeb genutzt werden sollen, sind folgende Anpassungen nötig:

  • Workspace xplan-validator-wms-workspace und Konfiguration xplan-validator-config entpacken und installieren (siehe Konfigurationsdateien der Anwendungskomponenten).

  • Installation der xplan-validator-wms.war Webanwendung (s. Web-Anwendungen). Achtung: Anschließend muss der xplan-validator-wms-workspace initialisiert werden. Dies kann beispielsweise über die deegree Console oder durch Anpassung der Datei webapps.properties mit anschliessendem Neustart der Webanwendung erfolgen.

  • XPlanValidatorWeb gemäß Konfiguration des XPlanValidatorWeb konfigurieren.

12.12. Aktualisierung auf die Version 3.3.1 der xPlanBox

Mit der Version 3.3.1 der xPlanBox sind einige Fehlerbehebungen vorgenommen worden.

Für die Aktualisierung auf die Version 3.3.1 sind folgende Schritte auszuführen:

  • Aktualisierung der INSPIRE PLU Transformation (HALE Alignements)

    • Aktualisierung der Dateien xplanGml41-inspirePlu.halex.alignment.xml und xplanGml41-inspirePlu.halex im Verzeichnis xplan-manager-config (s. Teilweise Aktualisierung des Workspaces). Für die Aktualisierung der Daten im INSPIRE PLU Schema ist eine erneute Ausführung der Transformation notwendig.

  • Aktualisierung der Datenbank:

    • Ausführen der Skripte im Verzeichnis from_3.3_to_3.3.1 im Modul xplan-update-database-cli. Die Tabelle xplanmgr.plans wurde um die Spalte internalid erweitert.

    • Ausführen des Kommandozeilenwerkzeug reSynthesizer im Modul xplan-update-database-cli zur Aktualisierung der in der XPlanSyn-Datenhaltung gespeicherten Daten. Der reSynthesizer wurde so angepasst, dass die xplanmgr.plans.internalid bei Ausführung in die synthetisierte FeatureCollection übernommen wird.

12.13. Aktualisierung auf die Version 4.0 der xPlanBox

Mit der Version 4.0 der xPlanBox sind einige Fehlerbehebungen und Erweiterungen vorgenommen worden. Weiterhin sind die REST-Schnittstellen XPlanManagerAPI und XPlanValidatorAPI neu hinzugekommen.

Für die Aktualisierung auf die Version 4.0 sind folgende Schritte auszuführen:

  • Ist der Patch 3.3.1 nicht installiert, müssen die Aktualisierungsschritte aus Aktualisierung auf die Version 3.3.1 der xPlanBox zuerst ausgeführt werden (die Ausführung des Kommandozeilentools reSynthesizer ist nicht erforderlich).

  • Aktualisierung der Workspaces und Konfigurationen (s. Teilweise Aktualisierung des Workspaces)

  • Aktualisierung der Datenbank:

    • Ausführen der Skripte im Verzeichnis from_3.3_to_4.0 im Modul xplan-update-database-cli.

    • Ausführen des Kommandozeilenwerkzeug reSynthesizer im Modul xplan-update-database-cli zur Aktualisierung der in der XPlanSyn-Datenhaltung gespeicherten Daten.

Die Installation der XPlanManagerAPI und XPlanValidatorAPI ist im Abschnitt Web-Anwendungen und die Konfiguration unter Konfiguration der REST-Schnittstellen beschrieben.

12.14. Aktualisierung auf die Version 4.1 der xPlanBox

Für die Aktualisierung auf die Version 4.1 sind folgende Schritte auszuführen:

12.15. Aktualisierung auf die Version 4.2 der xPlanBox

Mit der Version 4.2 der xPlanBox wird die Version XPlanGML 5.3 unterstützt. Weiterhin sind einige Verbesserungen am XPlanValidator vorgenommen worden. Für die Aktualisierung auf die Version 4.2 sind folgende Schritte auszuführen:

  • Aktualisierung der Workspaces und Konfigurationen (s. Teilweise Aktualisierung des Workspaces)

  • Aktualisierung der Datenbank:

    • Ausführen der Skripte für die Erstellung der Datenhaltung für 5.3 aus dem Modul xplan-manager-workspace:

      • fix/xplan53/create.sql

      • pre/xplan53/create.sql

      • archive/xplan53/create.sql

    • Ausführen der Skripte im Verzeichnis from_4.0_to_4.2 im Modul xplan-update-database-cli in der vorgegebenen Reihenfolge

    • Ausführen des Kommandozeilenwerkzeug reSynthesizer im Modul xplan-update-database-cli zur Aktualisierung der in der XPlanSyn-Datenhaltung gespeicherten Daten. Der Aufruf des Tools mit --help liefert Hinweise zur Verwendung.

    • Des Weiteren muss GDAL auf Version 3.0 aktualisiert werden (siehe Installation und Konfiguration von GDAL).

GDAL 2 wird nicht mehr unterstützt.

12.16. Aktualisierung auf die Version 4.3 der xPlanBox

Für die Aktualisierung auf die Version 4.3 sind folgende Schritte auszuführen:

  • Aktualisierung der Workspaces und Konfigurationen (s. Teilweise Aktualisierung des Workspaces)

  • Ausführen des Kommandozeilenwerkzeug serviceMetadataRecordCreator im Modul xplan-update-database-cli zur Aktualisierung der generierten Metadatensätze, da sich die URL des XPlanWerkWMS geändert hat. Der Aufruf des Tools mit --help liefert Hinweise zur Verwendung.

12.17. Aktualisierung auf die Version 5.0

Mit der Version 5.0 der xPlanBox kann die xPlanBox ausschließlich unter Java 11 mit Tomcat 9 betrieben werden, außerdem wird die Version XPlanGML 5.4 unterstützt. Weiterhin sind einige Erweiterungen und Verbesserungen am XPlanValidator, XPlanManagerWeb und den XPlanDiensten vorgenommen worden. Zwei Kommandozeilenwerkzeuge (XPlanAuswerteschemaCLI und XPlanValdiateDB) sind neu hinzugekommen.

Für die Aktualisierung auf die Version 5.0 sind folgende Schritte auszuführen:

  • Aktualisierung der Workspaces und Konfigurationen (s. Teilweise Aktualisierung des Workspaces)

  • Aktualisierung der Datenbank:

    • Ausführen der Skripte für die Erstellung der Datenhaltung für 5.4 aus dem Modul xplan-manager-workspace:

      • fix/xplan54/create.sql

      • pre/xplan54/create.sql

      • archive/xplan54/create.sql

    • Ausführen der Skripte im Verzeichnis from_4.2_to_5.0 im Modul xplan-update-database-cli in der vorgegebenen Reihenfolge

    • Ausführen des Kommandozeilenwerkzeug reSynthesizer im Modul xplan-update-database-cli zur Aktualisierung der in der XPlanSyn-Datenhaltung gespeicherten Daten. Der Aufruf des Tools mit --help liefert Hinweise zur Verwendung.

    • Installation bzw. Inbetriebnahme des neuen Kommandozeilenwerkzeugs XPlanAuswerteschemaCLI (wenn benötigt)

Java 1.8 wird nicht mehr unterstützt.

12.18. Aktualisierung auf die Version 5.0.1

Für eine Installation der Bugfix-Version ist ein Austausch der beiden Webapps erforderlich:

  • xplan-api-manager.war

  • xplan-api-validator.war

Alle anderen Komponenten sind unverändert und müssen nicht aktualisiert werden. Anpassungen an den Konfigurationsdateien sind ebenfalls nicht erforderlich.

12.19. Aktualisierung auf die Version 5.0.2

Für eine Installation der Bugfix-Version müssen folgende Schritte ausgeführt werden:

  • Austausch der beiden Webapps:

    • xplan-api-manager.war

    • xplan-manager-web.war

  • Ausführen der Skripte im Verzeichnis from_5.0_to_5.0.2 im Modul xplan-update-database-cli in der vorgegebenen Reihenfolge

  • Ausführen des Kommandozeilenwerkzeug databaseUpdate im Modul xplan-update-database-cli zur Aktualisierung der XPlanSyn-Datenhaltung, z.B. mit ./databaseUpdate -c <XPLANBOX_CONFIG>/

Alle anderen Komponenten sind unverändert und müssen nicht aktualisiert werden.

12.20. Aktualisierung auf die Version 5.0.3

Für eine Installation der Bugfix-Version müssen folgende Schritte ausgeführt werden:

  • Setzen der Variable jts.overlay=ng im Anwendungs-Tomcat und API-Tomcat, siehe auch Kapitel Anwendungs-Tomcat.

  • Austausch der Webapps:

    • xplan-api-validator.war

    • xplan-api-manager.war

    • xplan-validator-web.war

    • xplan-manager-web.war

Alle anderen Komponenten sind unverändert und müssen nicht aktualisiert werden.

12.21. Troubleshooting

Bei unerwartetem Verhalten der xPlanBox nach der Aktualisierung können folgende Punkte helfen:

  • Löschen des Work-Verzeichnisses des Tomcat-Servers. Der Tomcat-Server muss zuvor gestoppt und anschließend neu gestartet werden.

  • Löschen des Browser-Caches.

12.22. Migration der Anwendung

Bei einer Migration der xPlanBox auf einen anderen Server, bei dem sich der Hostname des Servers ändert, muss die URL in mehreren Konfigurationen angepasst werden, damit die Funktionalität der Anwendungen gewährleistet ist. Dabei müssen folgende Anpassungen erfolgen:

12.22.1. Für den XPlanManager:

  • <XPLANBOX_CONFIG>/managerWebConfiguration.properties

  • <XPLANBOX_CONFIG>/managerConfiguration.properties

Anpassungen in der Datei managerWebConfiguration.properties:

In dieser Datei müssen Anpassungen an der URL erfolgen, damit die Kartenvorschau im XPlanManager funktioniert. Dazu muss der Wert des Schlüssels wmsUrl angepasst werden:

wmsUrl=http://<host>:<port>/xplan-wms/services

Für mehr Details siehe Kapitel Kartenvorschau.

Anpassungen in der Datei managerConfiguration.properties:

Für einen Workspace-Reload, muss der XPlanManager den XPlanWMS erreichen können. Es muss daher der Wert des Schlüssels workspaceReloadUrls angepasst werden:

#workspace reloader configuration
workspaceReloadUrls=http://<host>:<port>/<service>/
workspaceReloadUser=<user>
workspaceReloadPassword=<passwort>
Werden der XPlanWMS und der XPlanManager auf einem Server betrieben, so können die Dienste über den Hostnamen localhost kommunizieren.

12.22.2. Für den XPlanWMS:

  • html.gfi (im Verzeichnis <DEEGREE_WORKSPACE_ROOT>/xplansyn-wms-workspace/services)

Anpassungen in der Datei html.gfi:

Dazu muss der Wert des Variable WMS_URL in der Datei angepasst werden.

Für mehr Details siehe Kapitel XPlanWMS.

Anhang A: Vereinfachte Aktualisierungsanleitung

Im Folgenden wird für Dienste-Tomcat, Anwendungs-Tomcat und API-Tomcat jeweils das Verzeichnis <CATALINA_HOME> der entsprechenden Tomcat-Instanz vorausgesetzt und angewendet (siehe Kapitel Konfiguration der Applikationsserver).

Als Basisverzeichnis werden <DEEGREE_DIR> (entspricht <DEEGREE_WORKSPACE_ROOT>), <XPLANBOX_CONFIG> und temporär zur Ablage das Verzeichnis <BACKUP_CONFIG> (z.B. /home/user/tmp) sowie <WORK_DIR> vorausgesetzt.

Alle Tomcat-Instanzen müssen vor der Aktualisierung gestoppt werden!

A.1. Aktualisierung der Webanwendungen

Vorbereitung:

  1. Alle WAR-Dateien bzw. die entpackten Verzeichnisse aus Dienste-Tomcat/webapps/, Anwendungs-Tomcat/webapps/, API-Tomcat/webapps/ sichern und im Verzeichnis <BACKUP_CONFIG> ablegen.

Kopieren der folgenden Dateien nach Dienste-Tomcat/webapps/:

  • xplan-wms.war

  • xplan-wfs.war

  • xplansyn-wfs.war

  • xplan-inspireplu.war

  • xplan-validator-wms.war

Kopieren der folgenden Dateien nach Anwendungs-Tomcat/webapps/:

  • xplan-manager-web.war

  • xplan-validator-web.war

  • xplan-root.war

Kopieren der folgenden Dateien nach API-Tomcat/webapps/:

  • xplan-api-manager.war

  • xplan-api-validator.war

A.1.1. Konfiguration der Webanwendung übertragen

Folgende Dateien für XPlanManager aus <BACKUP_CONFIG> zurückspielen, bzw. vergleichen und anpassen:

  • Anwendungs-Tomcat/webapps/xplan-manager-web/index.html anpassen

  • Anwendungs-Tomcat/webapps/xplan-manager-web/XPlanManager.jpg kopieren

  • Anwendungs-Tomcat/webapps/xplan-manager-web/XPlanMgrWeb.css kopieren

  • Anwendungs-Tomcat/webapps/xplan-manager-web/WEB-INF/web.xml anpassen der Konfiguration, wenn der XPlanManagerWeb abgesichert ist (siehe Kapitel Absicherung des XPlanManagerWeb)

  • Anwendungs-Tomcat/webapps/xplan-manager-web/WEB-INF/classes/security.properties anpassen

  • Anwendungs-Tomcat/webapps/xplan-manager-web/WEB-INF/classes/security-configuration.xml kopieren

Folgende Dateien für XPlanValidator sichern und zurückspielen, bzw. vergleichen und anpassen:

  • Anwendungs-Tomcat/webapps/xplan-manager-web/xplan-validator-web/index.html anpassen

  • Anwendungs-Tomcat/webapps/xplan-manager-web/xplan-validator-web/XPlanValidator.jpg kopieren

  • Anwendungs-Tomcat/webapps/xplan-manager-web/xplan-validator-web/XPlanValidatorWeb.css kopieren

  • Anwendungs-Tomcat/webapps/xplan-manager-web/xplan-validator-web/masterportal/config kopieren

  • Anwendungs-Tomcat/webapps/xplan-manager-web/xplan-validator-web/masterportal/config.json kopieren

  • Anwendungs-Tomcat/webapps/xplan-manager-web/xplan-validator-web/masterportal/template/config.template.json kopieren

  • Anwendungs-Tomcat/webapps/xplan-manager-web/xplan-validator-web/masterportal/template/services-internet.template.json kopieren

A.2. Konfiguration aus deegree Workspaces übertragen

Die Zuordnung der Anwendungskomponenten zu den jeweiligen Konfigurationen ist im Kapitel Installationskomponenten und Konfigurationsdateien der Anwendungskomponenten beschrieben.

Vorbereitung:

  1. Alle deegree Workspace Verzeichnisse aus <DEEGREE_WORKSPACE_ROOT> und <XPLANBOX_CONFIG> sichern und im Verzeichnis <BACKUP_CONFIG> ablegen.

  2. Neue deegree Workspaces ZIP-Dateien entpacken und in die jeweiligen Verzeichnisse unterhalb von <DEEGREE_WORKSPACE_ROOT> kopieren.

  3. Die Dateien console.pw und webapps.properties aus <BACKUP_CONFIG> zurückkopieren.

Neben den in den folgenden Abschnitten genannten Dateien können noch weitere Dateien umgebungsspezifische Anpassungen enthalten. Hier sind neben den Service-Metadaten in den Dateien services/*metadata.xml auch die Service-Konfigurationen im Verzeichnis services/ sowie die Konfiguration für die WFS-Storedqueries im Verzeichnis storedqueries/ oder die bbox_cache.properties Konfiguration zu beachten.

A.2.1. XPlanManager Konfiguration

Konfiguration im Verzeichnis <XPLANBOX_CONFIG>/manager-configuration/ aktualisieren:

  • managerApiConfiguration.properties, managerConfiguration.properties, managerWebConfiguration und validatorConfiguration.properties anpassen

  • <XPLANBOX_CONFIG>/manager-configuration/synthesizer/ kopieren

A.2.2. XPlanValidator Konfiguration

Konfiguration im Verzeichnis <XPLANBOX_CONFIG>/xplan-validator-config/ aktualisieren:

  • <XPLANBOX_CONFIG>/xplan-validator-config/validatorConfiguration.properties kopieren

A.2.3. XPlanManager Workspace Konfiguration

Konfiguration im Verzeichnis <DEEGREE_WORKSPACE_ROOT>/xplan-manager-workspace/ aktualisieren:

  • <BACKUP_CONFIG>/xplan-manager-workspace/jdbc/ kopieren

A.2.4. XPlanSynWFS Workspace Konfiguration

Konfiguration im Verzeichnis <DEEGREE_WORKSPACE_ROOT>/xplansyn-wfs-workspace/ aktualisieren:

  • <BACKUP_CONFIG>/xplansyn-wfs-workspace/jdbc/ kopieren

A.2.5. XPlanWMS Workspace Konfiguration

Konfiguration im Verzeichnis <DEEGREE_WORKSPACE_ROOT>/xplansyn-wms-workspace/ aktualisieren:

  • <BACKUP_CONFIG>/xplansyn-wms-workspace/jdbc/ kopieren

  • <BACKUP_CONFIG>/xplansyn-wms-workspace/gdal.xml kopieren und die Datei gdal.ignore entfernen, wenn GDAL genutzt wird (siehe Installation und Konfiguration von GDAL und GDAL)

  • <BACKUP_CONFIG>/xplansyn-wms-workspace/services/html.gfi

  • <BACKUP_CONFIG>/xplansyn-wms-workspace/data/ zurückkopieren

  • <BACKUP_CONFIG>/xplansyn-wms-workspace/datasources/tile zurückkopieren

  • <BACKUP_CONFIG>/xplansyn-wms-workspace/layers/ alle Layer, die mit einer Zahl beginnen, zurückkopieren

  • <BACKUP_CONFIG>/xplansyn-wms-workspace/themes/*raster.xml (alle Dateien die auf raster.xml enden) zurückkopieren

Weitere Hinweise zu der Verzeichnisstruktur und der Ablage von Rasterdateien sind im Anhang XPlanWMS Workspace zu finden.

A.2.6. XPlanWFS Workspace Konfiguration

Konfiguration im Verzeichnis <DEEGREE_WORKSPACE_ROOT>/xplan-wfs-workspace/ aktualisieren:

  • <BACKUP_CONFIG>/xplan-wfs-workspace/jdbc/ kopieren

A.2.7. XPlanInspirePluWFS und XPlanInspirePluWMS Workspace Konfiguration

Konfiguration im Verzeichnis <XPLANBOX_CONFIG>/xplan-inspireplu-workspace/ aktualisieren:

  • <BACKUP_CONFIG>/xplan-inspireplu-workspace/jdbc/ kopieren

Anhang B: bbox_cache.properties Konfiguration

Im Folgenden befindet sich eine vollständige bbox_cache.properties. Diese ist vorkonfiguriert auf ganz Deutschland:

###
# #%L
# xplan-betriebshandbuch - Betriebshandbuch fuer XPlan Manager und XPlan Validator
# %%
# Copyright (C) 2008 - 2022 lat/lon GmbH, info@lat-lon.de, www.lat-lon.de
# %%
# This program is free software: you can redistribute it and/or modify
# 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%
###
#Fri Mar 15 10:30:26 CET 2013
{http\://www.deegree.org/xplanung/1/0}BP_AbgrabungsFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_AbstandsFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_AbstandsMass=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_AbweichungVonBaugrenze=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_AbweichungVonUeberbaubererGrundstuecksFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_AnpflanzungBindungErhaltung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_AufschuettungsFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_Ausgleich=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_AusgleichsFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_AusgleichsMassnahme=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_BahnVerkehr=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_Baugebiet=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_BaugebietsTeilFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_BauGrenze=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_BauLinie=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_Bauschutzbereich=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_Bereich=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_BereichOhneEinAusfahrtLinie=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_BesondererNutzungszweckFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_BodenschaetzeFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_DenkmalschutzEinzelanlage=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_DenkmalschutzEinzelanlagePunkt=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_DenkmalschutzEnsembleFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_EinfahrtPunkt=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_EinfahrtsbereichLinie=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_EingriffsBereich=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_ErhaltungsBereichFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_ErneuerbareEnergieFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_Fachgesetz=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_FestsetzungenBaugebiet=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_FestsetzungNachLandesrecht=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_FirstRichtungsLinie=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_FlaecheOhneFestsetzung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_FoerderungsFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_FreiFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_GebaeudeFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_GemeinbedarfsFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_GemeinschaftsanlagenFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_GemeinschaftsanlagenZuordnung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_GenerischesObjekt=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_GestaltungBaugebiet=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_GewaesserFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_Grabungsschutzgebiet=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_GruenFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_HoehenMass=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_HoehenPunkt=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_Immissionsschutz=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_WohngebaeudeFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_KennzeichnungsFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_KleintierhaltungFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_Laermschutzbereich=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_Landwirtschaft=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_LandwirtschaftsFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_LandwirtschaftsLinie=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_LuftreinhalteFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_LuftverkehrFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_NebenanlagenAusschlussFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_NebenanlagenFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_NichtUeberbaubareGrundstuecksflaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_NutzungsartenGrenze=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_PersGruppenBestimmteFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_Plan=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_RasterplanAenderung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_RegelungVergnuegungsstaetten=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_RekultivierungsFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_RichtungssektorGrenze=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_Schutzgebiet=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_SchutzPflegeEntwicklungsFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_SchutzPflegeEntwicklungsMassnahme=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_Sichtflaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_SpezielleBauweise=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_SpielSportanlagenFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_StrassenbegrenzungsLinie=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_Strassenkoerper=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_StrassenVerkehrsFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_TechnikBestimmteFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_TechnischeMassnahmenFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_TextAbschnitt=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_TextlicheFestsetzungsFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_UeberbaubareGrundstuecksFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_UnverbindlicheVormerkung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_Veraenderungssperre=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_VerEntsorgung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_VerEntsorgungsFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_VerEntsorgungsleitungLinie=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_VerkehrsflaecheBesondererZweckbestimmung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_VorbHochwSchutzFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_WaldFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_WasserrechtlicheFestsetzungsFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_WasserwirtschaftsFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_Wegerecht=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_ZentralerVersorgungsbereich=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_ZusatzkontingentLaerm=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}BP_ZusatzkontingentLaermFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_Abgrabung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_AbgrabungsFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_AnpassungKlimawandel=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_Aufschuettung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_AufschuettungsFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_AusgleichsFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_Bahnverkehr=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_Bauschutzbereich=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_BebauungsFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_Bereich=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_Bodenschaetze=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_BodenschaetzeFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_DarstellungNachLandesrecht=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_DenkmalschutzEnsemble=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_Erhaltungssatzung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_Fachgesetz=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_FlaecheOhneDarstellung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_Gemeinbedarf=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_GenerischesObjekt=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_Gewaesser=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_Grabungsschutzgebiet=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_Gruen=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_KeineZentrAbwasserBeseitigungFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_Kennzeichnung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_Laermschutzbereich=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_Landwirtschaft=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_LandwirtschaftsFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_Luftverkehr=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_NutzungsbeschraenkungsFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_Plan=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_PrivilegiertesVorhaben=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_PriviligiertesVorhaben=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_RasterplanAenderung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_Schutzgebiet=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_SchutzPflegeEntwicklung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_SpielSportanlage=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_Strassenverkehr=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_TextAbschnitt=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_TextlicheDarstellungsFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_UnverbindlicheVormerkung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_VerEntsorgung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_VorbehalteFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_VorbHochwSchutz=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_WaldFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_Wasserrecht=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_Wasserwirtschaft=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}FP_ZentralerVersorgungsbereich=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_Abgrenzung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_AllgGruenflaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_AnpflanzungBindungErhaltung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_Ausgleich=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_Bereich=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_Biotopverbundflaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_Bodenschutzrecht=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_Denkmalschutzrecht=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_ErholungFreizeit=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_Forstrecht=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_GenerischesObjekt=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_Landschaftsbild=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_NRW_Biotopschutz=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_NRW_Brachflaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_NRW_ElementeKulturlandschaft=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_NRW_ForstlicheFestsetzung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_NRW_HerrichtungGrundstueck=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_NRW_PflegeAnpflanzung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_NRW_PflegeLandschaftsbild=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_NRW_SchutzobjektLandesrecht=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_NRW_SonstigeMassnahme=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_NRW_StrukturenElementeBesiedelterBereich=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_NRW_TemporaererLandschaftsschutz=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_NRW_VerpflichtungWRRL=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_NutzungsAusschluss=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_NutzungserfordernisRegelung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_Plan=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_PlanerischeVertiefung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_RasterplanAenderung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_SchutzobjektBundesrecht=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_SchutzobjektInternatRecht=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_SchutzobjektLandesrecht=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_SchutzPflegeEntwicklung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_SonstigeAbgrenzuung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_SonstigesRecht=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_TextAbschnitt=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_TextlicheFestsetzungsFlaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_WasserrechtGemeingebrEinschraenkungNaturschutz=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_WasserrechtSchutzgebiet=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_WasserrechtSonstige=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_WasserrechtWirtschaftAbflussHochwSchutz=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_ZuBegruenendeGrundstueckflaeche=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}LP_Zwischennutzung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Achse=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Bereich=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Bodenschutz=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Einzelhandel=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Energieversorgung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Entsorgung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Entwicklungsschwerpunkte=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Erholung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_ErneuerbareEnergie=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Forstwirtschaft=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Freiraum=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_FreizeitErholung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Funktionszuweisung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_GemeindeFunktionSiedlungsentwicklung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_GenerischesObjekt=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Gewaesser=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Grenze=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_GruenzugGruenzaesur=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Hochwasserschutz=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_IndustrieGewerbe=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Klimaschutz=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Kommunikation=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_KulturellesSachgut=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Kulturlandschaft=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_LaermschutzBauschutz=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Laermschutzbereich=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Landwirtschaft=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Legendenobjekt=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Luftverkehr=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_NaturLandschaft=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_NaturschutzrechtlichesSchutzgebiet=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_NRW_ASB=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_NRW_AufschuettungAblagerung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_NRW_Forstwirtschaft=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_NRW_FreiraumAgrarbereich=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_NRW_GIB=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_NRW_GrundwasserGewaesserschutz=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_NRW_Laermschutzzone=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_NRW_Landschaftsschutz=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_NRW_Luftverkehr=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_NRW_Naturschutz=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_NRW_OberflaechenGewaesser=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_NRW_OberflaechennaheBodenschaetze=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_NRW_Schienenverkehr=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_NRW_SonstigeInfrastruktur=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_NRW_SonstigerSiedlungsbereich=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_NRW_SonstigeZweckbindung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_NRW_SonstVerkehr=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_NRW_Strassenverkehr=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_NRW_Ueberschwemmungsbereich=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_NRW_Wasserverkehr=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_NRW_Zeitlinie=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Plan=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Planungsraum=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_RadwegWanderweg=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_RasterplanAenderung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Raumkategorie=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Rohstoff=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Rohstoffsicherung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Schienenverkehr=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Siedlung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_SonstigeInfrastruktur=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_SonstigerFreiraumschutz=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_SonstigerFreiraumstruktur=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_SonstigerSiedlungsbereich=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_SonstigeSiedlungsstruktur=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_SonstVerkehr=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_SozialeInfrastruktur=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Sperrgebiet=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Sportanlage=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Strassenverkehr=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_TextAbschnitt=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Verkehr=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_VorbHochwasserschutz=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Wasserschutz=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Wasserverkehr=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Wasserwirtschaft=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Windenergie=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_Windenergienutzung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_WohnenSiedlung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}RP_ZentralerOrt=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}SO_Bauverbotszone=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}SO_Bereich=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}SO_Bodenschutzrecht=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}SO_Denkmalschutzrecht=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}SO_Forstrecht=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}SO_Gebiet=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}SO_Gelaendemorphologie=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}SO_Gewaesser=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}SO_Grenze=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}SO_Linienobjekt=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}SO_Luftverkehrsrecht=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}SO_Objekt=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}SO_Plan=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}SO_RasterplanAenderung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}SO_Schienenverkehrsrecht=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}SO_SchutzgebietNaturschutzrecht=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}SO_SchutzgebietSonstigesRecht=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}SO_SchutzgebietWasserrecht=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}SO_SonstigesRecht=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}SO_Strassenverkehrsrecht=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}SO_TextAbschnitt=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}SO_Wasserrecht=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}XP_BegruendungAbschnitt=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}XP_DatumAttribut=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}XP_DoubleAttribut=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}XP_ExterneReferenz=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}XP_ExterneReferenzPlan=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}XP_FPO=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}XP_Grenze=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}XP_Hoehenangabe=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}XP_IntegerAttribut=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}XP_LPO=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}XP_LTO=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}XP_Nutzungsschablone=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}XP_PPO=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}XP_Praesentationsobjekt=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}XP_PTO=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}XP_Rasterdarstellung=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}XP_RasterplanBasis=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}XP_StringAttribut=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}XP_TextAbschnitt=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}XP_URLAttribut=epsg\:4326,5.7,47.2,15.1,55.1
{http\://www.deegree.org/xplanung/1/0}XP_VerfahrensMerkmal=epsg\:4326,5.7,47.2,15.1,55.1

Anhang C: XPlanWMS Workspace

Der Workspace xplansyn-wms-workspace wird durch den XPlanManager verwaltet. Werden XPlanArchive mit Rasterdaten über den XPlanManager importiert, dann werden die Rasterdateien im Dateisystem abgespeichert und entsprechende Konfigurationsdateien erzeugt bzw. erweitert. Die folgende Übersicht der Verzeichnisstruktur und der darin enthaltenen Dateien erläutert, wo die Rasterdateien abgelegt und die entsprechenden Konfigurationsdateien generiert werden. Dies sind die mit den Ziffern <2>, <3>, <4>, <7> und <13> markierten Verzeichnisse.

.
├── appschemas              (1)
│   ├── XPlanGML_3_0
│   │   ├── *.xsd
│   ├── XPlanGML_4_0
│   │   ├── *.xsd
│   ├── XPlanGML_4_1
│   │   ├── *.xsd
│   ├── XPlanGML_5_0
│   │   ├── *.xsd
│   ├── XPlanGML_5_1
│   │   ├── *.xsd
│   ├── XPlanGML_5_2
│   │   ├── *.xsd
│   └── XPlanGML_5_3
│       └── *.xsd
├── data                    (2)
│   ├── *.[png|pgw|tif|tfw]
├── datasources/tile        (3)
│   ├── *.xml
│   └── tilematrixset (4)
│       └── *.xml
├── gdal.ignore             (5)
├── gdal.xml                (5)
├── jdbc                    (6)
│   └── xplan.xml
├── layers                  (7)
│   ├── bplan.xml
│   ├── bplanarchive.xml
│   ├── bplanpre.xml
│   ├── fplan.xml
│   ├── fplanarchive.xml
│   ├── fplanpre.xml
│   ├── lplan.xml
│   ├── lplanarchive.xml
│   ├── lplanpre.xml
│   ├── rplan.xml
│   ├── rplanarchive.xml
│   ├── rplanpre.xml
│   ├── soplan.xml
│   ├── soplanarchive.xml
│   └── soplanpre.xml
├── legends                 (8)
│   └── *.png
├── services                (9)
│   ├── html.gfi      (10)
│   ├── wms.xml
│   ├── wms_metadata.xml
│   ├── wmsarchive.xml
│   ├── wmsarchive_metadata.xml
│   ├── wmspre.xml
│   └── wmspre_metadata.xml
├── styles                  (11)
│   └── *.xml
├── symbols                 (12)
│   ├── *.ttf
│   ├── LROP
│   │   ├──*.svg
│   ├── ROK
│   │   ├── *.svg
│   ├── RROP
│   │   ├── *.svg
│   └── *.svg
└── themes                  (13)
    ├── bplan.xml
    ├── bplanarchive.xml
    ├── bplanarchiveraster.xml
    ├── bplanpre.xml
    ├── bplanpreraster.xml
    ├── bplanraster.xml
    ├── fplan.xml
    ├── fplanarchive.xml
    ├── fplanarchiveraster.xml
    ├── fplanpre.xml
    ├── fplanpreraster.xml
    ├── fplanraster.xml
    ├── lplan.xml
    ├── lplanarchive.xml
    ├── lplanarchiveraster.xml
    ├── lplanpre.xml
    ├── lplanpreraster.xml
    ├── lplanraster.xml
    ├── rplan.xml
    ├── rplanarchive.xml
    ├── rplanarchiveraster.xml
    ├── rplanpre.xml
    ├── rplanpreraster.xml
    ├── rplanraster.xml
    ├── soplan.xml
    ├── soplanarchive.xml
    ├── soplanarchiveraster.xml
    ├── soplanpre.xml
    ├── soplanpreraster.xml
    └── soplanraster.xml
1 Im Verzeichnis appschemas/ liegen alle von der xPlanBox unterstützten XPlanGML-Schemadateien.
2 Im Verzeichnis data/ werden die Rasterdaten (PNG oder GeoTIFF) aus dem XPlanArchiv abgelegt.
3 Im Verzeichnis datasources/tile/ werden zu jeder Konfigurationsdatei aus <4> durch den XPlanManager Konfigurationsdateien nach dem Muster <planId>_<rasterdatei>.xml automatisch erzeugt.
4 Im Verzeichnis datasources/tile/tilematrixset/ werden zu jeder Rasterdatei aus <2> durch den XPlanManager Konfigurationsdateien nach dem Muster <planId>_<rasterdatei>.xml automatisch erzeugt.
5 Die Datei gdal.ignore ist nur erforderlich, wenn kein GDAL verwendet wird. Wird GDAL verwendet, dann muss die Konfigurationsdatei gdal.xml angelegt werden.
6 Im Verzeichnis jdbc/ liegt die Konfigurationsdatei mit der Datenbankverbindung zur XPlanDB.
7 Im Verzeichnis layers/ werden zu jeder Rasterdatei durch den XPlanManager eine Konfigurationsdatei passend zu <3> nach dem Muster <planId>_<rasterdatei>.xml automatisch erzeugt.
8 Im Verzeichnis legends/ liegen die Legendensymbole.
9 Im Verzeichnis services/ liegen die Konfigurationsdateien für den XPlanWMS.
10 Die Datei html.gfi beinhaltet die Konfiguration der HTML-Ausgabe der GetFeatureInfo-Operation des XPlanWMS.
11 Im Verzeichnis styles/ liegen die Zeichenvorschriften für den XPlanWMS.
12 Im Verzeichnis symbols/ liegen die Symbole, die in den Zeichenvorschriften verwendet werden.
13 Im Verzeichnis themes/ liegen die Konfigurationsdateien für den XPlanWMS, die den Ebenenbaum definieren. Die unter <6> generierten Konfigurationsdateien für die einzelnen Ebenen werden beim Import vom XPlanManager automatisch erweitert. Dies sind nach Planart und Planstatus die Dateien mit der Dateiendung *raster.xml.

Anhang D: Datenbankmodell der XPlanDB

Die XPlanDB enthält für jede unterstützte XPlanGML-Version ein eigenes Datenbankschema. Die Datenbankschema je XPlanGML-Version unterscheiden sich nur im Namen des Schemas und nutzen das BLOB-Mapping von deegree (siehe deegree webservices BLOB mapping) für die Ablage von XPlanGML-Dokumenten.

D.1. Datenbankschema für XPlanGML 5.3

Das folgende Diagramm zeigt exemplarisch die Tabellenstruktur aus dem Datenbankschema xplan53 für die Ablage von XPlanGML-Dokumenten in der Version 5.3. In der Tabelle feature_types werden die in XPlanGML 5.3 enthaltenen Feature Types gespeichert. In der Tabelle gml_objects werden die in den XPlanGML-Dokumenten enthaltenen Features in xplan53.gml_objects.binary_object gespeichert.

Schema xplan53
Abbildung 3. Datenbankschema 'xplan53' für XPlanGML Version 5.3

Die Tabellenstruktur aus diesem Schema unterscheidet sich nicht zu den anderen von der xPlanBox unterstützten XPlanGML-Versionen. Nur die Inhalte in den jeweiligen feature_types Tabellen der anderen Schemata unterscheiden sich je nach XPlanGML-Version.

D.2. Datenbankschema für XPlanSyn

Das XPlanSyn-Schema wird aus den von der xPlanBox unterstützten XPlanGML-Versionen abgeleitet. Dabei wird ein versionsübergreifendes Schema erzeugt. In der aktuellen Version der xPlanBox sind dies die XPlanGML-Versionen 3.0 bis 5.4 und das Datenbankschema xplansyn umfasst 324 Tabellen. XPlanGML-Dokumente werden im XPlanSyn-Schema unter Verwendung des relationalen Mappings von deegree (siehe deegree webservices relational mapping) gespeichert.

Wird eine ältere XPlanGML-Version abgekündigt oder eine neue XPlanGML-Version hinzugefügt, ändert sich das XPlanSyn-Schema!

Die folgenden Diagramme zeigen die Tabellenstruktur für ausgewählte Fachdatenobjekte (abgeleitete Feature Types aus den XPlanGML-Schema) aus dem Schema xplansyn.

Schema xplansyn - BPlan (Ausschnitt 1 - PB_Baugebiet)
Abbildung 4. Datenbankschema 'xplansyn' - BPlan (Ausschnitt 1 - BP_Baugebiet)
Schema xplansyn - BPlan (Ausschnitt 2 - BP_Bereich)
Abbildung 5. Datenbankschema 'xplansyn' - BPlan (Ausschnitt 2 - BP_Bereich)
Schema xplansyn - BPlan (Ausschnitt 3 - BP_Plan)
Abbildung 6. Datenbankschema 'xplansyn' - BPlan (Ausschnitt 3 - BP_Plan)
Schema xplansyn - BPlan (Ausschnitt 4 - BP_UeberbaubareGrundstuecksflaeche)
Abbildung 7. Datenbankschema 'xplansyn' - BPlan (Ausschnitt 4 - BP_UeberbaubareGrundstuecksflaeche)
Schema xplansyn - XP (Ausschnitt 1 - XP_Nutzungsschablone)
Abbildung 8. Datenbankschema 'xplansyn' - XP (Ausschnitt 1 - XP_Nutzungsschablone)
Schema xplansyn - XP (Ausschnitt 2 - XP_Grenze)
Abbildung 9. Datenbankschema 'xplansyn' - XP (Ausschnitt 2 - XP_Grenze)
Schema xplansyn - XP (Ausschnitt 3 - XP_Textabschnitt)
Abbildung 10. Datenbankschema 'xplansyn' - XP (Ausschnitt 3 - XP_Textabschnitt)

D.3. Datenbankschema für XPlanManager

Das Datenbankschema für den XPlanManager enthält neben einigen Informationen aus dem XPlanGML-Dokument auch alle mit dem XPlanArchiv importierten Anhänge.

Das folgende Diagramm zeigt die Tabellenstruktur für das Schema xplanmgr.

In der Tabelle xplanmgr.plans.artefacts werden alle im XPlanArchiv enthaltenen Dokumente gespeichert. Die Tabelle xplanmgr.plans.planwerkwmsmetadata beinhaltet Informationen zum XPlanWerkWMS.

Schema xplanmgr
Abbildung 11. Datenbankschema 'xplanmgr'
Die Rasterdateien werden zusätzlich für die Bereitstellung über den XPlanWMS auch im Workspace des XPlanWMS abgelegt. Die Verzeichnisstruktur im Kapitel XPlanWMS Workspace beschrieben.

Anhang E: Lizenzen der verwendeten Bibliotheken

(The Apache Software License, Version 2.0) ClassMate (com.fasterxml:classmate:1.3.4 - http://github.com/FasterXML/java-classmate)
(The Apache Software License, Version 2.0) Jackson-annotations (com.fasterxml.jackson.core:jackson-annotations:2.13.1 - http://github.com/FasterXML/jackson)
(The Apache Software License, Version 2.0) Jackson-annotations (com.fasterxml.jackson.core:jackson-annotations:2.9.6 - http://github.com/FasterXML/jackson)
(The Apache Software License, Version 2.0) Jackson-core (com.fasterxml.jackson.core:jackson-core:2.13.1 - https://github.com/FasterXML/jackson-core)
(The Apache Software License, Version 2.0) jackson-databind (com.fasterxml.jackson.core:jackson-databind:2.13.1 - http://github.com/FasterXML/jackson)
(The Apache Software License, Version 2.0) jackson-databind (com.fasterxml.jackson.core:jackson-databind:2.9.6 - http://github.com/FasterXML/jackson)
(The Apache Software License, Version 2.0) Jackson-dataformat-YAML (com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.1 - https://github.com/FasterXML/jackson-dataformats-text)
(The Apache Software License, Version 2.0) Jackson datatype: Joda (com.fasterxml.jackson.datatype:jackson-datatype-joda:2.13.1 - https://github.com/FasterXML/jackson-datatype-joda)
(The Apache Software License, Version 2.0) Jackson datatype: JSR310 (com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.12.1 - https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jsr310)
(The Apache Software License, Version 2.0) Jackson-JAXRS: base (com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:2.13.1 - http://github.com/FasterXML/jackson-jaxrs-providers/jackson-jaxrs-base)
(The Apache Software License, Version 2.0) Jackson-JAXRS: JSON (com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:2.13.1 - http://github.com/FasterXML/jackson-jaxrs-providers/jackson-jaxrs-json-provider)
(The Apache Software License, Version 2.0) Jackson module: Old JAXB Annotations (javax.xml.bind) (com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.13.1 - https://github.com/FasterXML/jackson-modules-base)
(The Apache License, Version 2.0) Woodstox (com.fasterxml.woodstox:woodstox-core:5.1.0 - https://github.com/FasterXML/woodstox)
(Apache Software License, version 2.0) (Lesser General Public License, version 3 or greater) null (com.github.fge:btf:1.2 - https://github.com/fge/btf)
(Apache Software License, version 2.0) (Lesser General Public License, version 3 or greater) null (com.github.fge:jackson-coreutils:1.6 - https://github.com/fge/jackson-coreutils)
(Apache Software License, version 2.0) (Lesser General Public License, version 3 or greater) null (com.github.fge:json-patch:1.6 - https://github.com/fge/json-patch)
(Apache Software License, version 2.0) (Lesser General Public License, version 3 or greater) null (com.github.fge:msg-simple:1.1 - https://github.com/fge/msg-simple)
(Apache Software License, version 2.0) (Lesser General Public License, version 3 or greater) null (com.github.fge:uri-template:0.9 - https://github.com/fge/uri-template)
(Apache Software License, version 2.0) (Lesser General Public License, version 3 or greater) json-schema-core (com.github.java-json-tools:json-schema-core:1.2.8 - https://github.com/java-json-tools/json-schema-core)
(Apache Software License, version 2.0) (Lesser General Public License, version 3 or greater) json-schema-validator (com.github.java-json-tools:json-schema-validator:2.2.8 - https://github.com/box-metadata/json-schema-validator)
(The Apache Software License, Version 2.0) gwt-jackson :: API (com.github.nmorel.gwtjackson:gwt-jackson:0.15.4 - https://github.com/nmorel/gwt-jackson)
(Apache 2.0) Auto Common Libraries (com.google.auto:auto-common:1.2 - https://github.com/google/auto/tree/master/common)
(Apache 2.0) AutoService Processor (com.google.auto.service:auto-service:1.0.1 - https://github.com/google/auto/tree/master/service)
(Apache 2.0) AutoService (com.google.auto.service:auto-service-annotations:1.0.1 - https://github.com/google/auto/tree/master/service)
(The Apache Software License, Version 2.0) FindBugs-jsr305 (com.google.code.findbugs:jsr305:3.0.2 - http://findbugs.sourceforge.net/)
(The Apache Software License, Version 2.0) Gson (com.google.code.gson:gson:2.2.2 - http://code.google.com/p/google-gson/)
(Apache 2.0) Gson (com.google.code.gson:gson:2.8.7 - https://github.com/google/gson/gson)
(Apache 2.0) error-prone annotations (com.google.errorprone:error_prone_annotations:2.2.0 - http://nexus.sonatype.org/oss-repository-hosting.html/error_prone_parent/error_prone_annotations)
(Apache 2.0) error-prone annotations (com.google.errorprone:error_prone_annotations:2.7.1 - http://nexus.sonatype.org/oss-repository-hosting.html/error_prone_parent/error_prone_annotations)
(The Apache Software License, Version 2.0) Guava InternalFutureFailureAccess and InternalFutures (com.google.guava:failureaccess:1.0.1 - https://github.com/google/guava/failureaccess)
(The Apache Software License, Version 2.0) Guava: Google Core Libraries for Java (com.google.guava:guava:27.0.1-android - https://github.com/google/guava/guava)
(Apache License, Version 2.0) Guava: Google Core Libraries for Java (com.google.guava:guava:31.0.1-jre - https://github.com/google/guava)
(The Apache Software License, Version 2.0) Guava ListenableFuture only (com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava - https://github.com/google/guava/listenablefuture)
(GWT Terms) gwt-servlet (com.google.gwt:gwt-servlet:2.9.0 - http://www.gwtproject.org/gwt-servlet/)
(GWT Terms) gwt-user (com.google.gwt:gwt-user:2.9.0 - http://www.gwtproject.org/gwt-user/)
(The Apache Software License, Version 2.0) J2ObjC Annotations (com.google.j2objc:j2objc-annotations:1.1 - https://github.com/google/j2objc/)
(The Apache Software License, Version 2.0) J2ObjC Annotations (com.google.j2objc:j2objc-annotations:1.3 - https://github.com/google/j2objc/)
(The Apache Software License, Version 2.0) JsInterop Annotations (com.google.jsinterop:jsinterop-annotations:2.0.0 - https://github.com/google/jsinterop-annotations)
(The Apache Software License, Version 2.0) ZXing Core (com.google.zxing:core:3.3.3 - https://github.com/zxing/zxing/core)
(The Apache Software License, Version 2.0) libphonenumber (com.googlecode.libphonenumber:libphonenumber:8.0.0 - https://github.com/googlei18n/libphonenumber/)
(MPL 2.0 or EPL 1.0) H2 Database Engine (com.h2database:h2:1.4.200 - https://h2database.com)
(EPL 1.0) (MPL 2.0) H2 Database Engine (com.h2database:h2:2.1.210 - https://h2database.com)
(The Apache Software License, Version 2.0) project ':json-path' (com.jayway.jsonpath:json-path:2.4.0 - https://github.com/jayway/JsonPath)
(The Apache Software License, Version 2.0) project ':json-path-assert' (com.jayway.jsonpath:json-path-assert:2.4.0 - https://github.com/jayway/JsonPath)
(Mozilla Public License) iText, a Free Java-PDF library (com.lowagie:itext:2.1.7.js7 - http://www.lowagie.com/iText/)
(Eclipse Public License, Version 1.0) (GNU Lesser General Public License, Version 2.1) c3p0 (com.mchange:c3p0:0.9.5.4 - https://github.com/swaldman/c3p0)
(Eclipse Public License, Version 1.0) (GNU Lesser General Public License, Version 2.1) mchange-commons-java (com.mchange:mchange-commons-java:0.2.15 - https://github.com/swaldman/mchange-commons-java)
(Apache 2.0) JavaPoet (com.squareup:javapoet:1.0.0 - http://github.com/square/javapoet/)
(EDL 1.0) Jakarta Activation (com.sun.activation:jakarta.activation:1.2.2 - https://github.com/eclipse-ee4j/jaf/jakarta.activation)
(CDDL 1.1) (GPL2 w/ CPE) jersey-core (com.sun.jersey:jersey-core:1.19.4 - https://jersey.java.net/jersey-core/)
(CDDL 1.1) (GPL2 w/ CPE) jersey-server (com.sun.jersey:jersey-server:1.19.4 - https://jersey.java.net/jersey-server/)
(Sun Microsystems, Inc. Binary Code License Agreement) Java Advanced Imaging Codecs (com.sun.media:jai-codec:1.1.3 - http://java.sun.com/products/java-media/jai)
(BSD License) Java Advanced Imaging Image I/O Tools (com.sun.media:jai_imageio:1.1 - https://jai-imageio.dev.java.net/)
(Eclipse Distribution License - v 1.0) Old JAXB Runtime (com.sun.xml.bind:jaxb-impl:2.3.5 - https://eclipse-ee4j.github.io/jaxb-ri/)
(Apache License, Version 2.0) fastinfoset (com.sun.xml.fastinfoset:FastInfoset:1.2.13 - http://fi.java.net)
(Apache License, Version 2.0) (Eclipse Distribution License - v 1.0) fastinfoset (com.sun.xml.fastinfoset:FastInfoset:1.2.18 - https://projects.eclipse.org/projects/ee4j.jaxb-impl/FastInfoset)
(Eclipse Distribution License - v 1.0) Jakarta SOAP Implementation (com.sun.xml.messaging.saaj:saaj-impl:1.5.2 - https://projects.eclipse.org/projects/ee4j/metro-saaj/saaj-impl)
(Eclipse Distribution License - v 1.0) xmlstreambuffer (com.sun.xml.stream.buffer:streambuffer:1.5.9 - https://github.com/eclipse-ee4j/metro-xmlstreambuffer)
(Eclipse Distribution License - v 1.0) JAX-WS RI Runtime (jaxws-rt) (com.sun.xml.ws:jaxws-rt:2.3.3 - https://projects.eclipse.org/projects/ee4j/jaxws-ri-bom/jaxws-ri-bom-ext/project/jaxws-rt)
(Eclipse Distribution License - v 1.0) policy (com.sun.xml.ws:policy:2.7.10 - https://github.com/eclipse-ee4j/metro-policy)
(The Apache Software License, Version 2.0) HikariCP (com.zaxxer:HikariCP:3.4.5 - https://github.com/brettwooldridge/HikariCP)
(The Apache Software License, Version 2.0) HikariCP (com.zaxxer:HikariCP-java7:2.4.13 - https://github.com/brettwooldridge/HikariCP)
(Apache License, Version 2.0) Apache Commons BeanUtils (commons-beanutils:commons-beanutils:1.9.4 - https://commons.apache.org/proper/commons-beanutils/)
(The Apache Software License, Version 2.0) Commons CLI (commons-cli:commons-cli:1.2 - http://commons.apache.org/cli/)
(Apache License, Version 2.0) Apache Commons Codec (commons-codec:commons-codec:1.12 - http://commons.apache.org/proper/commons-codec/)
(Apache License, Version 2.0) Apache Commons Collections (commons-collections:commons-collections:3.2.2 - http://commons.apache.org/collections/)
(The Apache Software License, Version 2.0) Commons DBCP (commons-dbcp:commons-dbcp:1.4 - http://commons.apache.org/dbcp/)
(The Apache Software License, Version 2.0) Commons Digester (commons-digester:commons-digester:2.1 - http://commons.apache.org/digester/)
(Apache License, Version 2.0) Apache Commons FileUpload (commons-fileupload:commons-fileupload:1.3.3 - http://commons.apache.org/proper/commons-fileupload/)
(Apache License, Version 2.0) Apache Commons IO (commons-io:commons-io:2.7 - https://commons.apache.org/proper/commons-io/)
(The Apache Software License, Version 2.0) Commons Lang (commons-lang:commons-lang:2.4 - http://commons.apache.org/lang/)
(The Apache Software License, Version 2.0) Apache Commons Logging (commons-logging:commons-logging:1.2 - http://commons.apache.org/proper/commons-logging/)
(The Apache Software License, Version 2.0) Commons Pool (commons-pool:commons-pool:1.6 - http://commons.apache.org/pool/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-connectionprovider-datasource (de.latlon:deegree-connectionprovider-datasource:3.4.27 - http://www.deegree.org/deegree-core/deegree-connectionprovider-datasource/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-core-annotations (de.latlon:deegree-core-annotations:3.4.27 - http://www.deegree.org/deegree-core/deegree-core-annotations/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-core-base (de.latlon:deegree-core-base:3.4.27 - http://www.deegree.org/deegree-core/deegree-core-base/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-core-commons (de.latlon:deegree-core-commons:3.4.27 - http://www.deegree.org/deegree-core/deegree-core-commons/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-core-coverage (de.latlon:deegree-core-coverage:3.4.27 - http://www.deegree.org/deegree-core/deegree-core-coverage/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-core-cs (de.latlon:deegree-core-cs:3.4.27 - http://www.deegree.org/deegree-core/deegree-core-cs/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-core-db (de.latlon:deegree-core-db:3.4.27 - http://www.deegree.org/deegree-core/deegree-core-db/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-core-featureinfo (de.latlon:deegree-core-featureinfo:3.4.27 - http://www.deegree.org/deegree-core/deegree-core-featureinfo/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-core-filterfunctions (de.latlon:deegree-core-filterfunctions:3.4.27 - http://www.deegree.org/deegree-core/deegree-core-filterfunctions/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-core-gdal (de.latlon:deegree-core-gdal:3.4.27 - http://www.deegree.org/deegree-core/deegree-core-gdal/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-core-geometry (de.latlon:deegree-core-geometry:3.4.27 - http://www.deegree.org/deegree-core/deegree-core-geometry/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-core-layer (de.latlon:deegree-core-layer:3.4.27 - http://www.deegree.org/deegree-core/deegree-core-layer/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-core-metadata (de.latlon:deegree-core-metadata:3.4.27 - http://www.deegree.org/deegree-core/deegree-core-metadata/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-core-rendering-2d (de.latlon:deegree-core-rendering-2d:3.4.27 - http://www.deegree.org/deegree-core/deegree-core-rendering-2d/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-core-style (de.latlon:deegree-core-style:3.4.27 - http://www.deegree.org/deegree-core/deegree-core-style/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-core-theme (de.latlon:deegree-core-theme:3.4.27 - http://www.deegree.org/deegree-core/deegree-core-theme/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-core-tile (de.latlon:deegree-core-tile:3.4.27 - http://www.deegree.org/deegree-core/deegree-core-tile/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-core-workspace (de.latlon:deegree-core-workspace:3.4.27 - http://www.deegree.org/deegree-core/deegree-core-workspace/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-featurestore-commons (de.latlon:deegree-featurestore-commons:3.4.27 - http://www.deegree.org/deegree-datastores/deegree-featurestores/deegree-featurestore-commons/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-featurestore-memory (de.latlon:deegree-featurestore-memory:3.4.27 - http://www.deegree.org/deegree-datastores/deegree-featurestores/deegree-featurestore-memory/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-featurestore-shape (de.latlon:deegree-featurestore-shape:3.4.27 - http://www.deegree.org/deegree-datastores/deegree-featurestores/deegree-featurestore-shape/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-featurestore-simplesql (de.latlon:deegree-featurestore-simplesql:3.4.27 - http://www.deegree.org/deegree-datastores/deegree-featurestores/deegree-featurestore-simplesql/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-featurestore-sql (de.latlon:deegree-featurestore-sql:3.4.27 - http://www.deegree.org/deegree-datastores/deegree-featurestores/deegree-featurestore-sql/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-layers-feature (de.latlon:deegree-layers-feature:3.4.27 - http://www.deegree.org/deegree-layers/deegree-layers-feature/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-layers-tile (de.latlon:deegree-layers-tile:3.4.27 - http://www.deegree.org/deegree-layers/deegree-layers-tile/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-mdstore-commons (de.latlon:deegree-mdstore-commons:3.4.27 - http://www.deegree.org/deegree-datastores/deegree-mdstores/deegree-mdstore-commons/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-protocol-commons (de.latlon:deegree-protocol-commons:3.4.27 - http://www.deegree.org/deegree-core/deegree-core-protocol/deegree-protocol-commons/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-protocol-csw (de.latlon:deegree-protocol-csw:3.4.27 - http://www.deegree.org/deegree-core/deegree-core-protocol/deegree-protocol-csw/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-protocol-wfs (de.latlon:deegree-protocol-wfs:3.4.27 - http://www.deegree.org/deegree-core/deegree-core-protocol/deegree-protocol-wfs/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-protocol-wms (de.latlon:deegree-protocol-wms:3.4.27 - http://www.deegree.org/deegree-core/deegree-core-protocol/deegree-protocol-wms/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-remoteows-commons (de.latlon:deegree-remoteows-commons:3.4.27 - http://www.deegree.org/deegree-core/deegree-core-remoteows/deegree-remoteows-commons/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-remoteows-wms (de.latlon:deegree-remoteows-wms:3.4.27 - http://www.deegree.org/deegree-core/deegree-core-remoteows/deegree-remoteows-wms/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-services-commons (de.latlon:deegree-services-commons:3.4.27 - http://www.deegree.org/deegree-services/deegree-services-commons/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-services-wms (de.latlon:deegree-services-wms:3.4.27 - http://www.deegree.org/deegree-services/deegree-services-wms/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-sqldialect-commons (de.latlon:deegree-sqldialect-commons:3.4.27 - http://www.deegree.org/deegree-core/deegree-core-sqldialect/deegree-sqldialect-commons/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-sqldialect-postgis (de.latlon:deegree-sqldialect-postgis:3.4.27 - http://www.deegree.org/deegree-core/deegree-core-sqldialect/deegree-sqldialect-postgis/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-tilestore-commons (de.latlon:deegree-tilestore-commons:3.4.27 - http://www.deegree.org/deegree-datastores/deegree-tilestores/deegree-tilestore-commons/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-tilestore-gdal (de.latlon:deegree-tilestore-gdal:3.4.27 - http://www.deegree.org/deegree-datastores/deegree-tilestores/deegree-tilestore-gdal/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-tilestore-geotiff (de.latlon:deegree-tilestore-geotiff:3.4.27 - http://www.deegree.org/deegree-datastores/deegree-tilestores/deegree-tilestore-geotiff/)
(GNU Lesser General Public License (LGPL), version 2.1) deegree-webservices (de.latlon:deegree-webservices:3.4.27 - http://www.deegree.org/deegree-services/deegree-webservices/)
(GNU Affero General Public License (AGPL), version 3) xplan-api-commons (de.latlon.product.xplanbox:xplan-api-commons:5.0-20220328.083833-6 - https://xplanbox.lat-lon.de/xplan-api/xplan-api-commons)
(GNU Affero General Public License (AGPL), version 3) xplan-benutzerhandbuch (de.latlon.product.xplanbox:xplan-benutzerhandbuch:5.0-20220328.083833-6 - https://xplanbox.lat-lon.de/xplan-documentation/xplan-benutzerhandbuch)
(GNU Affero General Public License (AGPL), version 3) xplan-commons (de.latlon.product.xplanbox:xplan-commons:5.0-20220328.083833-6 - https://xplanbox.lat-lon.de/xplan-core/xplan-commons)
(GNU Affero General Public License (AGPL), version 3) xplan-commons-cli (de.latlon.product.xplanbox:xplan-commons-cli:5.0-20220328.083833-6 - https://xplanbox.lat-lon.de/xplan-core/xplan-commons-cli)
(GNU Affero General Public License (AGPL), version 3) xplan-commons-web (de.latlon.product.xplanbox:xplan-commons-web:5.0-20220328.083833-6 - https://xplanbox.lat-lon.de/xplan-webapps/xplan-commons-web)
(GNU Affero General Public License (AGPL), version 3) xplan-commons-webservices (de.latlon.product.xplanbox:xplan-commons-webservices:5.0-20220328.083833-6 - https://xplanbox.lat-lon.de/xplan-webservices/xplan-commons-webservices)
(GNU Affero General Public License (AGPL), version 3) xplan-inspireplu-transformation (de.latlon.product.xplanbox:xplan-inspireplu-transformation:5.0-20220328.083833-6 - https://xplanbox.lat-lon.de/xplan-core/xplan-inspireplu-transformation)
(GNU Affero General Public License (AGPL), version 3) xplan-manager-core (de.latlon.product.xplanbox:xplan-manager-core:5.0-20220328.083833-6 - https://xplanbox.lat-lon.de/xplan-core/xplan-manager-core)
(GNU Affero General Public License (AGPL), version 3) xplan-schemas (de.latlon.product.xplanbox:xplan-schemas:5.0-20220328.083833-6 - https://xplanbox.lat-lon.de/xplan-resources/xplan-schemas)
(GNU Affero General Public License (AGPL), version 3) xplan-sql-scripts (de.latlon.product.xplanbox:xplan-sql-scripts:5.0-20220328.083833-6 - https://xplanbox.lat-lon.de/xplan-resources/xplan-sql-scripts)
(GNU Affero General Public License (AGPL), version 3) xplan-sql-update-scripts (de.latlon.product.xplanbox:xplan-sql-update-scripts:5.0-20220328.083833-5 - https://xplanbox.lat-lon.de/xplan-resources/xplan-sql-update-scripts)
(GNU Affero General Public License (AGPL), version 3) xplan-synthesizer (de.latlon.product.xplanbox:xplan-synthesizer:5.0-20220328.083833-6 - https://xplanbox.lat-lon.de/xplan-core/xplan-synthesizer)
(GNU Affero General Public License (AGPL), version 3) xplan-tests-resources (de.latlon.product.xplanbox:xplan-tests-resources:5.0-20220328.083833-6 - https://xplanbox.lat-lon.de/xplan-tests/xplan-tests-resources)
(GNU Affero General Public License (AGPL), version 3) xplan-validator-core (de.latlon.product.xplanbox:xplan-validator-core:5.0-20220328.083833-6 - https://xplanbox.lat-lon.de/xplan-core/xplan-validator-core)
(GNU Affero General Public License (AGPL), version 3) xplan-validator-web-commons (de.latlon.product.xplanbox:xplan-validator-web-commons:5.0-20220328.083833-6 - https://xplanbox.lat-lon.de/xplan-webapps/xplan-validator-web-commons)
(GNU Affero General Public License (AGPL), version 3) xplan-workspaces (de.latlon.product.xplanbox:xplan-workspaces:5.0-20220328.083833-6 - https://xplanbox.lat-lon.de/xplan-workspaces)
(The MIT License (MIT)) ClassGraph (io.github.classgraph:classgraph:4.8.117 - https://github.com/classgraph/classgraph)
(MIT License) ToolFactory JVM Driver (io.github.toolfactory:jvm-driver:4.0.0 - https://toolfactory.github.io/jvm-driver/)
(MIT License) Narcissus (io.github.toolfactory:narcissus:1.0.1 - https://github.com/toolfactory/narcissus)
(The Apache Software License, Version 2.0) micrometer-core (io.micrometer:micrometer-core:1.5.14 - https://github.com/micrometer-metrics/micrometer)
(Apache License 2.0) swagger-annotations (io.swagger:swagger-annotations:1.6.2 - https://github.com/swagger-api/swagger-core/modules/swagger-annotations)
(Apache License 2.0) swagger-compat-spec-parser (io.swagger:swagger-compat-spec-parser:1.0.51 - http://nexus.sonatype.org/oss-repository-hosting.html/swagger-parser-project/modules/swagger-compat-spec-parser)
(Apache License 2.0) swagger-core (io.swagger:swagger-core:1.6.2 - https://github.com/swagger-api/swagger-core/modules/swagger-core)
(Apache License 2.0) swagger-models (io.swagger:swagger-models:1.6.2 - https://github.com/swagger-api/swagger-core/modules/swagger-models)
(Apache License 2.0) swagger-parser (io.swagger:swagger-parser:1.0.51 - http://nexus.sonatype.org/oss-repository-hosting.html/swagger-parser-project/modules/swagger-parser)
(Apache License 2.0) swagger-annotations (io.swagger.core.v3:swagger-annotations:2.1.12 - https://github.com/swagger-api/swagger-core/modules/swagger-annotations)
(Apache License 2.0) swagger-core (io.swagger.core.v3:swagger-core:2.1.12 - https://github.com/swagger-api/swagger-core/modules/swagger-core)
(Apache License 2.0) swagger-integration (io.swagger.core.v3:swagger-integration:2.1.12 - https://github.com/swagger-api/swagger-core/modules/swagger-integration)
(Apache License 2.0) swagger-jaxrs2 (io.swagger.core.v3:swagger-jaxrs2:2.1.12 - https://github.com/swagger-api/swagger-core/modules/swagger-jaxrs2)
(Apache License 2.0) swagger-jaxrs2-servlet-initializer (io.swagger.core.v3:swagger-jaxrs2-servlet-initializer:2.1.12 - https://github.com/swagger-api/swagger-core/modules/swagger-jaxrs2-servlet-initializer)
(Apache License 2.0) swagger-models (io.swagger.core.v3:swagger-models:2.1.12 - https://github.com/swagger-api/swagger-core/modules/swagger-models)
(Apache License 2.0) swagger-parser (io.swagger.parser.v3:swagger-parser:2.0.21 - http://nexus.sonatype.org/oss-repository-hosting.html/swagger-parser-project/modules/swagger-parser)
(Apache License 2.0) swagger-parser (io.swagger.parser.v3:swagger-parser-core:2.0.21 - http://nexus.sonatype.org/oss-repository-hosting.html/swagger-parser-project/modules/swagger-parser-core)
(Apache License 2.0) swagger-parser-v2-converter (io.swagger.parser.v3:swagger-parser-v2-converter:2.0.21 - http://nexus.sonatype.org/oss-repository-hosting.html/swagger-parser-project/modules/swagger-parser-v2-converter)
(Apache License 2.0) swagger-parser-v3 (io.swagger.parser.v3:swagger-parser-v3:2.0.21 - http://nexus.sonatype.org/oss-repository-hosting.html/swagger-parser-project/modules/swagger-parser-v3)
(Lesser General Public License (LGPL)) Image I/O-Extensions - GeoCore (it.geosolutions.imageio-ext:imageio-ext-geocore:1.1.29 - no url defined)
(Lesser General Public License (LGPL)) Image I/O-Extensions - Custom Streams (it.geosolutions.imageio-ext:imageio-ext-streams:1.1.29 - no url defined)
(Lesser General Public License (LGPL)) Improved TIFF Plugin (it.geosolutions.imageio-ext:imageio-ext-tiff:1.1.29 - no url defined)
(Lesser General Public License (LGPL)) Image I/O-Extensions - utilities classes and methods (it.geosolutions.imageio-ext:imageio-ext-utilities:1.1.29 - no url defined)
(EDL 1.0) Jakarta Activation API jar (jakarta.activation:jakarta.activation-api:1.2.2 - https://github.com/eclipse-ee4j/jaf/jakarta.activation-api)
(EPL 2.0) (GPL2 w/ CPE) Jakarta Annotations API (jakarta.annotation:jakarta.annotation-api:1.3.5 - https://projects.eclipse.org/projects/ee4j.ca)
(Eclipse Distribution License - v 1.0) Jakarta Web Services Metadata API (jakarta.jws:jakarta.jws-api:2.1.0 - https://github.com/eclipse-ee4j/jws-api)
(EPL 2.0) (GPL2 w/ CPE) Jakarta Servlet (jakarta.servlet:jakarta.servlet-api:4.0.3 - https://projects.eclipse.org/projects/ee4j.servlet)
(Apache License 2.0) Jakarta Bean Validation API (jakarta.validation:jakarta.validation-api:2.0.2 - https://beanvalidation.org)
(EPL 2.0) (GPL2 w/ CPE) javax.ws.rs-api (jakarta.ws.rs:jakarta.ws.rs-api:2.1.2 - https://github.com/eclipse-ee4j/jaxrs-api)
(Eclipse Distribution License - v 1.0) Jakarta XML Binding API (jakarta.xml.bind:jakarta.xml.bind-api:2.3.3 - https://github.com/eclipse-ee4j/jaxb-api/jakarta.xml.bind-api)
(Eclipse Distribution License - v 1.0) Jakarta SOAP with Attachments API (jakarta.xml.soap:jakarta.xml.soap-api:1.4.2 - https://github.com/eclipse-ee4j/saaj-api)
(Eclipse Distribution License - v 1.0) Jakarta XML Web Services API (jakarta.xml.ws:jakarta.xml.ws-api:2.3.3 - https://github.com/eclipse-ee4j/jax-ws-api)
(Common Development and Distribution License (CDDL) v1.0) JavaBeans Activation Framework (JAF) (javax.activation:activation:1.1 - http://java.sun.com/products/javabeans/jaf/index.jsp)
(The Apache Software License, Version 2.0) javax.batch-api (javax.batch:javax.batch-api:1.0 - http://java.net/projects/jbatch/javax.batch-api)
(CDDL) (GPLv2+CE) JavaMail API jar (javax.mail:mailapi:1.4.3 - http://java.sun.com/projects/javamail/mailapi)
(BSD) Units of Measurement API (javax.measure:unit-api:2.0 - http://unitsofmeasurement.github.io/unit-api/)
(Sun Microsystems, Inc. Binary Code License Agreement) Java Advanced Imaging (javax.media:jai-core:1.1.3 - http://java.sun.com/products/java-media/jai)
(JDL (Java Distribution License)) Java Advanced Imaging (javax.media:jai_core:1.1.3 - https://jai.dev.java.net/)
(CDDL + GPLv2 with classpath exception) Java Servlet API (javax.servlet:javax.servlet-api:3.0.1 - http://servlet-spec.java.net)
(CDDL + GPLv2 with classpath exception) Java Servlet API (javax.servlet:javax.servlet-api:4.0.1 - https://javaee.github.io/servlet-spec/)
(Apache License, Version 2.0) Bean Validation API (javax.validation:validation-api:1.0.0.GA - no url defined)
(CDDL License) jsr311-api (javax.ws.rs:jsr311-api:1.1.1 - https://jsr311.dev.java.net)
(http://jaxen.codehaus.org/license.html) jaxen (jaxen:jaxen:1.1.6 - http://jaxen.codehaus.org/)
(BSD License 2.0) jaxen (jaxen:jaxen:1.2.0 - http://www.cafeconleche.org/jaxen)
(Apache License, Version 2.0) Joda-Time (joda-time:joda-time:2.10.8 - https://www.joda.org/joda-time/)
(Eclipse Public License 1.0) JUnit (junit:junit:4.13.2 - http://junit.org)
(The Apache Software License, Version 2.0) Byte Buddy (without dependencies) (net.bytebuddy:byte-buddy:1.9.10 - http://bytebuddy.net/byte-buddy)
(The Apache Software License, Version 2.0) Byte Buddy Java agent (net.bytebuddy:byte-buddy-agent:1.9.10 - http://bytebuddy.net/byte-buddy-agent)
(The Apache Software License, Version 2.0) ASM based accessors helper used by json-smart (net.minidev:accessors-smart:1.2 - http://www.minidev.net/)
(The Apache Software License, Version 2.0) JSON Small and Fast Parser (net.minidev:json-smart:2.3 - http://www.minidev.net/)
(GNU Lesser General Public License) Postgis JDBC Driver (net.postgis:postgis-jdbc:2.3.0 - http://postgis.net/postgis-jdbc)
(The Apache Software License, Version 2.0) Barcode4J (net.sf.barcode4j:barcode4j:2.1 - http://barcode4j.sourceforge.net)
(The Apache Software License, Version 2.0) Ehcache Core (net.sf.ehcache:ehcache-core:2.6.11 - http://ehcache.org)
(The MIT License(MIT)) Java implementation of GeographicLib (net.sf.geographiclib:GeographicLib-Java:1.49 - https://geographiclib.sourceforge.io)
(GNU Lesser General Public License) JasperReports Library (net.sf.jasperreports:jasperreports:6.12.2 - http://jasperreports.sourceforge.net)
(The MIT License) JOpt Simple (net.sf.jopt-simple:jopt-simple:5.0.3 - http://pholser.github.io/jopt-simple)
(Mozilla Public License Version 2.0) Saxon-HE (net.sf.saxon:Saxon-HE:9.9.1-8 - http://www.saxonica.com/)
(GNU Lesser General Public License) DynamicReports - adhoc (net.sourceforge.dynamicreports:dynamicreports-adhoc:6.12.1 - https://github.com/dynamicreports)
(GNU Lesser General Public License) DynamicReports - core (net.sourceforge.dynamicreports:dynamicreports-core:6.12.1 - https://github.com/dynamicreports)
(GNU Lesser General Public License) DynamicReports - googlecharts (net.sourceforge.dynamicreports:dynamicreports-googlecharts:6.12.1 - https://github.com/dynamicreports)
(BSD licence) ANTLR 3 Runtime (org.antlr:antlr-runtime:3.5.2 - http://www.antlr.org)
(Apache License, Version 2.0) Apache Commons Collections (org.apache.commons:commons-collections4:4.2 - http://commons.apache.org/proper/commons-collections/)
(Apache License, Version 2.0) Apache Commons Collections (org.apache.commons:commons-collections4:4.3 - http://commons.apache.org/proper/commons-collections/)
(Apache License, Version 2.0) Apache Commons CSV (org.apache.commons:commons-csv:1.6 - http://commons.apache.org/proper/commons-csv/)
(Apache License, Version 2.0) Apache Commons Lang (org.apache.commons:commons-lang3:3.10 - https://commons.apache.org/proper/commons-lang/)
(Apache License, Version 2.0) Apache Commons Lang (org.apache.commons:commons-lang3:3.11 - https://commons.apache.org/proper/commons-lang/)
(Apache License, Version 2.0) Apache Commons Lang (org.apache.commons:commons-lang3:3.7 - http://commons.apache.org/proper/commons-lang/)
(The Apache Software License, Version 2.0) Commons Math (org.apache.commons:commons-math:2.2 - http://commons.apache.org/math/)
(Apache License, Version 2.0) Apache Commons Text (org.apache.commons:commons-text:1.9 - https://commons.apache.org/proper/commons-text)
(The Apache Software License, Version 2.0) Activation 1.1 (org.apache.geronimo.specs:geronimo-activation_1.1_spec:1.1 - http://geronimo.apache.org/maven/specs/geronimo-activation_1.1_spec/1.1)
(The Apache Software License, Version 2.0) Streaming API for XML (STAX API 1.0) (org.apache.geronimo.specs:geronimo-stax-api_1.0_spec:1.0.1 - http://geronimo.apache.org/specs/geronimo-stax-api_1.0_spec)
(Apache License, Version 2.0) Apache HttpClient (org.apache.httpcomponents:httpclient:4.3.6 - http://hc.apache.org/httpcomponents-client)
(Apache License, Version 2.0) Apache HttpClient (org.apache.httpcomponents:httpclient:4.5.13 - http://hc.apache.org/httpcomponents-client)
(Apache License, Version 2.0) Apache HttpCore (org.apache.httpcomponents:httpcore:4.3.3 - http://hc.apache.org/httpcomponents-core-ga)
(Apache License, Version 2.0) Apache HttpCore (org.apache.httpcomponents:httpcore:4.4.13 - http://hc.apache.org/httpcomponents-core-ga)
(Apache License, Version 2.0) Apache HttpCore (org.apache.httpcomponents:httpcore:4.4.14 - http://hc.apache.org/httpcomponents-core-ga)
(The Apache Software License, Version 2.0) Apache JAMES Mime4j (Core) (org.apache.james:apache-mime4j-core:0.7.2 - http://james.apache.org/mime4j/apache-mime4j-core)
(Apache License, Version 2.0) Apache Log4j API (org.apache.logging.log4j:log4j-api:2.17.1 - https://logging.apache.org/log4j/2.x/log4j-api/)
(Apache License, Version 2.0) Apache Log4j Core (org.apache.logging.log4j:log4j-core:2.17.1 - https://logging.apache.org/log4j/2.x/log4j-core/)
(Apache License, Version 2.0) Apache Log4j SLF4J Binding (org.apache.logging.log4j:log4j-slf4j-impl:2.17.1 - https://logging.apache.org/log4j/2.x/log4j-slf4j-impl/)
(Apache License, Version 2.0) Apache Log4j Web (org.apache.logging.log4j:log4j-web:2.17.1 - https://logging.apache.org/log4j/2.x/log4j-web/)
(The Apache Software License, Version 2.0) Apache Velocity (org.apache.velocity:velocity:1.7 - http://velocity.apache.org/engine/devel/)
(Apache License, Version 2.0) Axiom API (org.apache.ws.commons.axiom:axiom-api:1.2.15 - http://ws.apache.org/axiom/)
(Apache License, Version 2.0) Axiom Impl (org.apache.ws.commons.axiom:axiom-impl:1.2.15 - http://ws.apache.org/axiom/)
(The Apache Software License, Version 2.0) org.apache.xmlgraphics:batik-anim (org.apache.xmlgraphics:batik-anim:1.14 - http://xmlgraphics.apache.org/batik/batik-anim/)
(The Apache Software License, Version 2.0) org.apache.xmlgraphics:batik-awt-util (org.apache.xmlgraphics:batik-awt-util:1.14 - http://xmlgraphics.apache.org/batik/batik-awt-util/)
(The Apache Software License, Version 2.0) org.apache.xmlgraphics:batik-bridge (org.apache.xmlgraphics:batik-bridge:1.14 - http://xmlgraphics.apache.org/batik/batik-bridge/)
(The Apache Software License, Version 2.0) org.apache.xmlgraphics:batik-constants (org.apache.xmlgraphics:batik-constants:1.14 - http://xmlgraphics.apache.org/batik/batik-constants/)
(The Apache Software License, Version 2.0) org.apache.xmlgraphics:batik-css (org.apache.xmlgraphics:batik-css:1.14 - http://xmlgraphics.apache.org/batik/batik-css/)
(The Apache Software License, Version 2.0) org.apache.xmlgraphics:batik-dom (org.apache.xmlgraphics:batik-dom:1.14 - http://xmlgraphics.apache.org/batik/batik-dom/)
(The Apache Software License, Version 2.0) org.apache.xmlgraphics:batik-ext (org.apache.xmlgraphics:batik-ext:1.14 - http://xmlgraphics.apache.org/batik/batik-ext/)
(The Apache Software License, Version 2.0) org.apache.xmlgraphics:batik-gvt (org.apache.xmlgraphics:batik-gvt:1.14 - http://xmlgraphics.apache.org/batik/batik-gvt/)
(The Apache Software License, Version 2.0) org.apache.xmlgraphics:batik-i18n (org.apache.xmlgraphics:batik-i18n:1.14 - http://xmlgraphics.apache.org/batik/batik-i18n/)
(The Apache Software License, Version 2.0) org.apache.xmlgraphics:batik-parser (org.apache.xmlgraphics:batik-parser:1.14 - http://xmlgraphics.apache.org/batik/batik-parser/)
(The Apache Software License, Version 2.0) org.apache.xmlgraphics:batik-script (org.apache.xmlgraphics:batik-script:1.14 - http://xmlgraphics.apache.org/batik/batik-script/)
(The Apache Software License, Version 2.0) org.apache.xmlgraphics:batik-shared-resources (org.apache.xmlgraphics:batik-shared-resources:1.14 - http://xmlgraphics.apache.org/batik/batik-shared-resources/)
(The Apache Software License, Version 2.0) org.apache.xmlgraphics:batik-svg-dom (org.apache.xmlgraphics:batik-svg-dom:1.14 - http://xmlgraphics.apache.org/batik/batik-svg-dom/)
(The Apache Software License, Version 2.0) org.apache.xmlgraphics:batik-svggen (org.apache.xmlgraphics:batik-svggen:1.14 - http://xmlgraphics.apache.org/batik/batik-svggen/)
(The Apache Software License, Version 2.0) org.apache.xmlgraphics:batik-transcoder (org.apache.xmlgraphics:batik-transcoder:1.14 - http://xmlgraphics.apache.org/batik/batik-transcoder/)
(The Apache Software License, Version 2.0) org.apache.xmlgraphics:batik-util (org.apache.xmlgraphics:batik-util:1.14 - http://xmlgraphics.apache.org/batik/batik-util/)
(The Apache Software License, Version 2.0) org.apache.xmlgraphics:batik-xml (org.apache.xmlgraphics:batik-xml:1.14 - http://xmlgraphics.apache.org/batik/batik-xml/)
(The Apache Software License, Version 2.0) Apache XML Graphics Commons (org.apache.xmlgraphics:xmlgraphics-commons:2.6 - http://xmlgraphics.apache.org/commons/)
(Bouncy Castle Licence) Bouncy Castle Provider (org.bouncycastle:bcprov-jdk15on:1.62 - http://www.bouncycastle.org/java.html)
(GNU General Public License, version 2 (GPL2), with the classpath exception) (The MIT License) Checker Qual (org.checkerframework:checker-compat-qual:2.5.2 - https://checkerframework.org)
(The MIT License) Checker Qual (org.checkerframework:checker-qual:3.12.0 - https://checkerframework.org)
(MIT license) Animal Sniffer Annotations (org.codehaus.mojo:animal-sniffer-annotations:1.17 - http://www.mojohaus.org/animal-sniffer/animal-sniffer-annotations)
(The BSD License) Stax2 API (org.codehaus.woodstox:stax2-api:3.1.1 - http://woodstox.codehaus.org/StAX2)
(The BSD License) Stax2 API (org.codehaus.woodstox:stax2-api:4.1 - http://github.com/FasterXML/stax2-api)
(GNU Lesser General Public License (LGPL), Version 2.1) Woodstox (org.codehaus.woodstox:woodstox-core-lgpl:4.2.0 - http://woodstox.codehaus.org)
(Apache License, Version 2.0) junidecode (org.deegree:junidecode:0.2 - https://github.com/deegree/junidecode)
(The Eclipse Public License Version 1.0) org.eclipse.emf.common (org.eclipse.emf:org.eclipse.emf.common:2.15.0 - http://www.eclipse.org/emf)
(The Eclipse Public License Version 1.0) org.eclipse.emf.ecore (org.eclipse.emf:org.eclipse.emf.ecore:2.15.0 - http://www.eclipse.org/emf)
(The Eclipse Public License Version 1.0) org.eclipse.emf.ecore.xmi (org.eclipse.emf:org.eclipse.emf.ecore.xmi:2.15.0 - http://www.eclipse.org/emf)
(Eclipse Public License v1.0) Eclipse ECJ (org.eclipse.jdt.core.compiler:ecj:4.6.1 - http://www.eclipse.org/jdt/)
(The Apache Software License, Version 2.0) EJML (org.ejml:ejml-core:0.34 - http://ejml.org/)
(The Apache Software License, Version 2.0) EJML (org.ejml:ejml-ddense:0.34 - http://ejml.org/)
(The Apache Software License, Version 2.0) restygwt (org.fusesource.restygwt:restygwt:2.2.7 - http://restygwt.fusesource.org/restygwt)
(MIT License) gdal (org.gdal:gdal:3.0.0 - http://gdal.org)
(BSD License for HSQL) (EPSG database distribution license) (Lesser General Public License (LGPL)) EPSG Authority Service using HSQL database (org.geotools:gt-epsg-hsql:26.1 - no url defined)
(Lesser General Public License (LGPL)) HTTP Clients (org.geotools:gt-http:26.1 - no url defined)
(Lesser General Public License (LGPL)) Main module (org.geotools:gt-main:26.1 - no url defined)
(Lesser General Public License (LGPL)) Metadata (org.geotools:gt-metadata:26.1 - no url defined)
(Lesser General Public License (LGPL)) (OGC copyright) Open GIS Interfaces (org.geotools:gt-opengis:26.1 - no url defined)
(Lesser General Public License (LGPL)) Referencing services (org.geotools:gt-referencing:26.1 - no url defined)
(Lesser General Public License (LGPL)) Shapefile module (org.geotools:gt-shapefile:26.1 - no url defined)
(Lesser General Public License (LGPL)) Open Web Services Model (org.geotools.ogc:net.opengis.ows:26.1 - no url defined)
(Lesser General Public License (LGPL)) Xlink Model (org.geotools.ogc:org.w3.xlink:26.1 - no url defined)
(EDL 1.0) management-api (org.glassfish.external:management-api:3.2.2 - https://github.com/eclipse-ee4j/orb-gmbal-commons)
(EDL 1.0) gmbal (org.glassfish.gmbal:gmbal:4.0.1 - https://projects.eclipse.org/projects/ee4j.orb)
(EPL 2.0) (GPL2 w/ CPE) GlassFish High Availability APIs and SPI (org.glassfish.ha:ha-api:3.1.12 - https://projects.eclipse.org/projects/ee4j/ha-api)
(EPL 2.0) (GPL2 w/ CPE) Class Model for Hk2 (org.glassfish.hk2:class-model:2.6.1 - https://github.com/eclipse-ee4j/glassfish-hk2/class-model)
(EPL 2.0) (GPL2 w/ CPE) HK2 module of HK2 itself (org.glassfish.hk2:hk2:2.6.1 - https://github.com/eclipse-ee4j/glassfish-hk2/hk2)
(EPL 2.0) (GPL2 w/ CPE) HK2 API module (org.glassfish.hk2:hk2-api:2.6.1 - https://github.com/eclipse-ee4j/glassfish-hk2/hk2-api)
(EPL 2.0) (GPL2 w/ CPE) HK2 core module (org.glassfish.hk2:hk2-core:2.6.1 - https://github.com/eclipse-ee4j/glassfish-hk2/hk2-core)
(EPL 2.0) (GPL2 w/ CPE) ServiceLocator Default Implementation (org.glassfish.hk2:hk2-locator:2.6.1 - https://github.com/eclipse-ee4j/glassfish-hk2/hk2-locator)
(EPL 2.0) (GPL2 w/ CPE) Run Level Service (org.glassfish.hk2:hk2-runlevel:2.6.1 - https://github.com/eclipse-ee4j/glassfish-hk2/hk2-runlevel)
(EPL 2.0) (GPL2 w/ CPE) HK2 Implementation Utilities (org.glassfish.hk2:hk2-utils:2.6.1 - https://github.com/eclipse-ee4j/glassfish-hk2/hk2-utils)
(EPL 2.0) (GPL2 w/ CPE) OSGi resource locator (org.glassfish.hk2:osgi-resource-locator:1.0.3 - https://projects.eclipse.org/projects/ee4j/osgi-resource-locator)
(EPL 2.0) (GPL2 w/ CPE) HK2 Spring Bridge (org.glassfish.hk2:spring-bridge:2.6.1 - https://github.com/eclipse-ee4j/glassfish-hk2/spring-bridge)
(EPL 2.0) (GPL2 w/ CPE) aopalliance version 1.0 repackaged as a module (org.glassfish.hk2.external:aopalliance-repackaged:2.6.1 - https://github.com/eclipse-ee4j/glassfish-hk2/external/aopalliance-repackaged)
(EPL 2.0) (GPL2 w/ CPE) javax.inject:1 as OSGi bundle (org.glassfish.hk2.external:jakarta.inject:2.6.1 - https://github.com/eclipse-ee4j/glassfish-hk2/external/jakarta.inject)
(Apache License, 2.0) (BSD 2-Clause) (EDL 1.0) (EPL 2.0) (GPL2 w/ CPE) (MIT license) (Modified BSD) (Public Domain) (W3C license) (jQuery license) jersey-connectors-apache (org.glassfish.jersey.connectors:jersey-apache-connector:2.35 - https://projects.eclipse.org/projects/ee4j.jersey/project/jersey-apache-connector)
(Apache License, 2.0) (BSD 2-Clause) (EDL 1.0) (EPL 2.0) (GPL2 w/ CPE) (MIT license) (Modified BSD) (Public Domain) (W3C license) (jQuery license) jersey-container-servlet (org.glassfish.jersey.containers:jersey-container-servlet:2.35 - https://projects.eclipse.org/projects/ee4j.jersey/project/jersey-container-servlet)
(Apache License, 2.0) (BSD 2-Clause) (EDL 1.0) (EPL 2.0) (GPL2 w/ CPE) (MIT license) (Modified BSD) (Public Domain) (W3C license) (jQuery license) jersey-container-servlet-core (org.glassfish.jersey.containers:jersey-container-servlet-core:2.35 - https://projects.eclipse.org/projects/ee4j.jersey/project/jersey-container-servlet-core)
(Apache License, 2.0) (BSD 2-Clause) (EDL 1.0) (EPL 2.0) (GPL2 w/ CPE) (MIT license) (Modified BSD) (Public Domain) (W3C license) (jQuery license) jersey-core-client (org.glassfish.jersey.core:jersey-client:2.35 - https://projects.eclipse.org/projects/ee4j.jersey/jersey-client)
(Apache License, 2.0) (EPL 2.0) (Public Domain) (The GNU General Public License (GPL), Version 2, With Classpath Exception) jersey-core-common (org.glassfish.jersey.core:jersey-common:2.35 - https://projects.eclipse.org/projects/ee4j.jersey/jersey-common)
(Apache License, 2.0) (EPL 2.0) (Modified BSD) (The GNU General Public License (GPL), Version 2, With Classpath Exception) jersey-core-server (org.glassfish.jersey.core:jersey-server:2.35 - https://projects.eclipse.org/projects/ee4j.jersey/jersey-server)
(Apache License, 2.0) (BSD 2-Clause) (EDL 1.0) (EPL 2.0) (GPL2 w/ CPE) (MIT license) (Modified BSD) (Public Domain) (W3C license) (jQuery license) jersey-ext-entity-filtering (org.glassfish.jersey.ext:jersey-entity-filtering:2.35 - https://projects.eclipse.org/projects/ee4j.jersey/project/jersey-entity-filtering)
(Apache License, 2.0) (BSD 2-Clause) (EDL 1.0) (EPL 2.0) (GPL2 w/ CPE) (MIT license) (Modified BSD) (Public Domain) (W3C license) (jQuery license) jersey-spring4 (org.glassfish.jersey.ext:jersey-spring4:2.35 - https://projects.eclipse.org/projects/ee4j.jersey/project/jersey-spring4)
(Apache License, 2.0) (BSD 2-Clause) (EDL 1.0) (EPL 2.0) (GPL2 w/ CPE) (MIT license) (Modified BSD) (Public Domain) (W3C license) (jQuery license) jersey-inject-hk2 (org.glassfish.jersey.inject:jersey-hk2:2.35 - https://projects.eclipse.org/projects/ee4j.jersey/project/jersey-hk2)
(Apache License, 2.0) (BSD 2-Clause) (EDL 1.0) (EPL 2.0) (GPL2 w/ CPE) (MIT license) (Modified BSD) (Public Domain) (W3C license) (jQuery license) jersey-media-jaxb (org.glassfish.jersey.media:jersey-media-jaxb:2.35 - https://projects.eclipse.org/projects/ee4j.jersey/project/jersey-media-jaxb)
(Apache License, 2.0) (EPL 2.0) (The GNU General Public License (GPL), Version 2, With Classpath Exception) jersey-media-json-jackson (org.glassfish.jersey.media:jersey-media-json-jackson:2.35 - https://projects.eclipse.org/projects/ee4j.jersey/project/jersey-media-json-jackson)
(Apache License, 2.0) (BSD 2-Clause) (EDL 1.0) (EPL 2.0) (GPL2 w/ CPE) (MIT license) (Modified BSD) (Public Domain) (W3C license) (jQuery license) jersey-media-multipart (org.glassfish.jersey.media:jersey-media-multipart:2.35 - https://projects.eclipse.org/projects/ee4j.jersey/project/jersey-media-multipart)
(Apache License, 2.0) (BSD 2-Clause) (EDL 1.0) (EPL 2.0) (GPL2 w/ CPE) (MIT license) (Modified BSD) (Public Domain) (W3C license) (jQuery license) jersey-test-framework-core (org.glassfish.jersey.test-framework:jersey-test-framework-core:2.35 - https://projects.eclipse.org/projects/ee4j.jersey/project/jersey-test-framework-core)
(Apache License, 2.0) (BSD 2-Clause) (EDL 1.0) (EPL 2.0) (GPL2 w/ CPE) (MIT license) (Modified BSD) (Public Domain) (W3C license) (jQuery license) jersey-test-framework-provider-inmemory (org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-inmemory:2.35 - https://projects.eclipse.org/projects/ee4j.jersey/project/project/jersey-test-framework-provider-inmemory)
(EDL 1.0) PFL Basic (org.glassfish.pfl:pfl-basic:4.1.0 - https://github.com/eclipse-ee4j/orb-gmbal-pfl/pfl-basic)
(EDL 1.0) PFL TF (org.glassfish.pfl:pfl-tf:4.1.0 - https://github.com/eclipse-ee4j/orb-gmbal-pfl/pfl-tf)
(The Apache Software License, Version 2.0) gwt-openlayers-client (org.gwtopenmaps.openlayers:gwt-openlayers-client:1.1.0 - http://gwt-openlayers.sourceforge.net/maven-site-latest/gwt-openlayers-client)
(New BSD License) Hamcrest All (org.hamcrest:hamcrest-all:1.3 - https://github.com/hamcrest/JavaHamcrest/hamcrest-all)
(New BSD License) Hamcrest Core (org.hamcrest:hamcrest-core:1.3 - https://github.com/hamcrest/JavaHamcrest/hamcrest-core)
(New BSD License) Hamcrest library (org.hamcrest:hamcrest-library:1.3 - https://github.com/hamcrest/JavaHamcrest/hamcrest-library)
(BSD-2-Clause) (Public Domain, per Creative Commons CC0) HdrHistogram (org.hdrhistogram:HdrHistogram:2.1.12 - http://hdrhistogram.github.io/HdrHistogram/)
(Apache License 2.0) Hibernate Validator Engine (org.hibernate.validator:hibernate-validator:6.1.6.Final - http://hibernate.org/validator/hibernate-validator)
(HSQLDB License, a BSD open source license) HyperSQL Database (org.hsqldb:hsqldb:2.4.1 - http://hsqldb.org)
(HSQLDB License, a BSD open source license) HyperSQL Database (org.hsqldb:hsqldb:2.5.2 - http://hsqldb.org)
(Apache License 2.0) (LGPL 2.1) (MPL 1.1) Javassist (org.javassist:javassist:3.27.0-GA - http://www.javassist.org/)
(Apache License, version 2.0) JBoss Logging 3 (org.jboss.logging:jboss-logging:3.3.2.Final - http://www.jboss.org)
(GNU Lesser General Public Licence) JCommon (org.jfree:jcommon:1.0.23 - http://www.jfree.org/jcommon/)
(GNU Lesser General Public Licence) JFreeChart (org.jfree:jfreechart:1.0.19 - http://www.jfree.org/jfreechart/)
(Eclipse Distribution License - v 1.0) MIME streaming extension (org.jvnet.mimepull:mimepull:1.9.13 - https://github.com/eclipse-ee4j/metro-mimepull)
(Eclipse Distribution License - v 1.0) Extended StAX API (org.jvnet.staxex:stax-ex:1.8.3 - https://projects.eclipse.org/projects/ee4j/stax-ex)
(Public Domain, per Creative Commons CC0) LatencyUtils (org.latencyutils:LatencyUtils:2.0.3 - http://latencyutils.github.io/LatencyUtils/)
(Eclipse Distribution License - v 1.0) (Eclipse Public License, Version 2.0) org.locationtech.jts:jts-core (org.locationtech.jts:jts-core:1.18.2 - https://www.locationtech.org/projects/technology.jts/jts-modules/jts-core)
(The MIT License) mockito-core (org.mockito:mockito-core:2.28.2 - https://github.com/mockito/mockito)
(Mozilla Public License, Version 2.0) Mozilla Rhino (org.mozilla:rhino:1.7R4 - https://developer.mozilla.org/en/Rhino)
(The Apache Software License, Version 2.0) MyBatis (org.mybatis:mybatis:3.2.8 - http://www.mybatis.org/core/)
(Apache 2) Objenesis (org.objenesis:objenesis:2.6 - http://objenesis.org)
(BSD) asm (org.ow2.asm:asm:7.1 - http://asm.ow2.org/)
(BSD) asm-analysis (org.ow2.asm:asm-analysis:7.1 - http://asm.ow2.org/)
(BSD) asm-commons (org.ow2.asm:asm-commons:7.1 - http://asm.ow2.org/)
(BSD) asm-tree (org.ow2.asm:asm-tree:7.1 - http://asm.ow2.org/)
(BSD) asm-util (org.ow2.asm:asm-util:7.1 - http://asm.ow2.org/)
(BSD-2-Clause) PostgreSQL JDBC Driver - JDBC 4.2 (org.postgresql:postgresql:42.2.8 - https://github.com/pgjdbc/pgjdbc)
(The Apache Software License, Version 2.0) PowerMock (org.powermock:powermock-api-mockito2:2.0.9 - http://www.powermock.org)
(The Apache Software License, Version 2.0) PowerMock (org.powermock:powermock-api-support:2.0.9 - http://www.powermock.org)
(The Apache Software License, Version 2.0) PowerMock (org.powermock:powermock-core:2.0.9 - http://www.powermock.org)
(The Apache Software License, Version 2.0) PowerMock (org.powermock:powermock-module-junit4:2.0.9 - http://www.powermock.org)
(The Apache Software License, Version 2.0) PowerMock (org.powermock:powermock-module-junit4-common:2.0.9 - http://www.powermock.org)
(The Apache Software License, Version 2.0) PowerMock (org.powermock:powermock-reflect:2.0.9 - http://www.powermock.org)
(The Apache Software License, Version 2.0) quartz (org.quartz-scheduler:quartz:2.3.2 - http://www.quartz-scheduler.org/quartz)
(The New BSD License) (WTFPL) Reflections (org.reflections:reflections:0.9.12 - http://github.com/ronmamo/reflections)
(Apache License, Version 2.0) JCL 1.2 implemented over SLF4J (org.slf4j:jcl-over-slf4j:1.7.33 - http://www.slf4j.org)
(MIT License) JUL to SLF4J bridge (org.slf4j:jul-to-slf4j:1.7.33 - http://www.slf4j.org)
(MIT License) SLF4J API Module (org.slf4j:slf4j-api:1.7.33 - http://www.slf4j.org)
(MIT License) SLF4J Extensions Module (org.slf4j:slf4j-ext:1.7.30 - http://www.slf4j.org)
(Apache License, Version 2.0) Spring AOP (org.springframework:spring-aop:5.2.18.RELEASE - https://github.com/spring-projects/spring-framework)
(Apache License, Version 2.0) Spring Beans (org.springframework:spring-beans:5.2.18.RELEASE - https://github.com/spring-projects/spring-framework)
(Apache License, Version 2.0) Spring Context (org.springframework:spring-context:5.2.18.RELEASE - https://github.com/spring-projects/spring-framework)
(Apache License, Version 2.0) Spring Core (org.springframework:spring-core:5.2.18.RELEASE - https://github.com/spring-projects/spring-framework)
(Apache License, Version 2.0) Spring Expression Language (SpEL) (org.springframework:spring-expression:5.2.18.RELEASE - https://github.com/spring-projects/spring-framework)
(Apache License, Version 2.0) Spring Commons Logging Bridge (org.springframework:spring-jcl:5.2.15.RELEASE - https://github.com/spring-projects/spring-framework)
(Apache License, Version 2.0) Spring Commons Logging Bridge (org.springframework:spring-jcl:5.2.18.RELEASE - https://github.com/spring-projects/spring-framework)
(Apache License, Version 2.0) Spring JDBC (org.springframework:spring-jdbc:5.2.15.RELEASE - https://github.com/spring-projects/spring-framework)
(Apache License, Version 2.0) Spring TestContext Framework (org.springframework:spring-test:5.2.18.RELEASE - https://github.com/spring-projects/spring-framework)
(Apache License, Version 2.0) Spring Transaction (org.springframework:spring-tx:5.2.15.RELEASE - https://github.com/spring-projects/spring-framework)
(Apache License, Version 2.0) Spring Transaction (org.springframework:spring-tx:5.2.18.RELEASE - https://github.com/spring-projects/spring-framework)
(Apache License, Version 2.0) Spring Web (org.springframework:spring-web:5.2.18.RELEASE - https://github.com/spring-projects/spring-framework)
(Apache License, Version 2.0) Spring Web MVC (org.springframework:spring-webmvc:5.2.18.RELEASE - https://github.com/spring-projects/spring-framework)
(The Apache Software License, Version 2.0) Spring Batch Core (org.springframework.batch:spring-batch-core:4.3.5 - https://projects.spring.io/spring-batch/)
(The Apache Software License, Version 2.0) Spring Batch Infrastructure (org.springframework.batch:spring-batch-infrastructure:4.2.7.RELEASE - https://projects.spring.io/spring-batch/)
(Apache License, Version 2.0) spring-boot (org.springframework.boot:spring-boot:2.3.12.RELEASE - https://spring.io/projects/spring-boot)
(Apache License, Version 2.0) spring-boot-autoconfigure (org.springframework.boot:spring-boot-autoconfigure:2.3.12.RELEASE - https://spring.io/projects/spring-boot)
(Apache License, Version 2.0) spring-boot-starter (org.springframework.boot:spring-boot-starter:2.3.12.RELEASE - https://spring.io/projects/spring-boot)
(Apache License, Version 2.0) spring-boot-starter-batch (org.springframework.boot:spring-boot-starter-batch:2.3.12.RELEASE - https://spring.io/projects/spring-boot)
(Apache License, Version 2.0) spring-boot-starter-jdbc (org.springframework.boot:spring-boot-starter-jdbc:2.3.12.RELEASE - https://spring.io/projects/spring-boot)
(Apache License, Version 2.0) spring-boot-starter-logging (org.springframework.boot:spring-boot-starter-logging:2.3.12.RELEASE - https://spring.io/projects/spring-boot)
(The Apache Software License, Version 2.0) spring-ldap-core (org.springframework.ldap:spring-ldap-core:2.3.4.RELEASE - https://www.springframework.org/ldap)
(Apache 2.0) Spring Retry (org.springframework.retry:spring-retry:1.2.5.RELEASE - https://www.springsource.org)
(The Apache Software License, Version 2.0) spring-security-config (org.springframework.security:spring-security-config:5.2.13.RELEASE - http://spring.io/spring-security)
(The Apache Software License, Version 2.0) spring-security-core (org.springframework.security:spring-security-core:5.2.13.RELEASE - http://spring.io/spring-security)
(The Apache Software License, Version 2.0) spring-security-ldap (org.springframework.security:spring-security-ldap:5.2.13.RELEASE - http://spring.io/spring-security)
(The Apache Software License, Version 2.0) spring-security-web (org.springframework.security:spring-security-web:5.2.13.RELEASE - http://spring.io/spring-security)
(The W3C Software License) Simple API for CSS (org.w3c.css:sac:1.3 - http://www.w3.org/Style/CSS/SAC/)
(The Apache Software License, Version 2.0) org.xmlunit:xmlunit-core (org.xmlunit:xmlunit-core:2.8.2 - https://www.xmlunit.org/)
(The Apache Software License, Version 2.0) org.xmlunit:xmlunit-matchers (org.xmlunit:xmlunit-matchers:2.8.2 - https://www.xmlunit.org/)
(Apache License, Version 2.0) SnakeYAML (org.yaml:snakeyaml:1.26 - http://www.snakeyaml.org)
(Apache License, Version 2.0) SnakeYAML (org.yaml:snakeyaml:1.28 - http://www.snakeyaml.org)
(Apache 2) JUnitParams (pl.pragmatists:JUnitParams:1.1.1 - https://github.com/Pragmatists/JUnitParams)
(BSD) SI Quantities (si.uom:si-quantity:2.0.1 - https://unitsofmeasurement.github.io/si-parent/si-quantity/)
(BSD) SI Units (si.uom:si-units:2.0.1 - https://unitsofmeasurement.github.io/si-parent/si-units/)
(BSD) Units of Measurement Common Unit Systems (systems.uom:systems-common:2.0.2 - http://www.uom.systems/systems-common)
(BSD) Units of Measurement Reference Implementation (tech.units:indriya:2.0.2 - https://unitsofmeasurement.github.io/indriya)
(BSD) Units of Measurement Common Library (tech.uom.lib:uom-lib-common:2.0 - http://github.com/unitsofmeasurement/uom-lib/uom-lib-common)
(The Apache Software License, Version 2.0) Xalan Java Serializer (xalan:serializer:2.7.2 - http://xml.apache.org/xalan-j/)
(The Apache Software License, Version 2.0) Xalan Java (xalan:xalan:2.7.2 - http://xml.apache.org/xalan-j/)
(The Apache Software License, Version 2.0) Xerces2-j (xerces:xercesImpl:2.12.1 - https://xerces.apache.org/xerces2-j/)
(The Apache Software License, Version 2.0) (The SAX License) (The W3C License) XML Commons External Components XML APIs (xml-apis:xml-apis:1.4.01 - http://xml.apache.org/commons/components/external/)
(The Apache Software License, Version 2.0) XML Commons External Components XML APIs Extensions (xml-apis:xml-apis-ext:1.3.04 - http://xml.apache.org/commons/components/external/)