Branding

JCR Publisher

1. Einleitung

Der JCR Publisher stellt eine Brücke zum Übertragen von Inhalten aus einem GSB 7.2 (GSB/CM) Contentrepository in das JCR basierte Contentrepository des GSB 10.0 bereit. Der JCR Publisher berücksichtigt die Dokumentmodelländerungen zwischen dem GSB 7 und GSB 10.0 und das geänderte interne Speicherformat der Dokumenten und deren Properties.

Der JCR Publisher ermöglicht so die initiale Migration von Content aus einem bestehenden GSB 7.2 Contentrepository in ein GSB 10 Contentrepository.

Hier können Sie den JRC-Publisher herunterladen.

1.1. Prinzipielle Arbeitsweise

Der JCR Publisher liest den Content aus einem GSB 7.2 Repository, transformiert diesen in ein GSB 10.0 kompatibles Format und importiert den transformierten Content anschließend in ein GSB 10.0 Repository.

Der zu migrierenden Content wird hierzu aus einem GSB 7.2 Live Contentrepository (bspw. dem GSB 7.2 Master-Server) gelesen. So wird sichergestellt, dass ausschließlich publizierte Stände bei der Migration mit berücksichtigt werden.

HinweisEin Export des GSB 7.2 Contents aus dem Redaktionssystem ist prinzipiell auch möglich. Hierbei gilt es aber zu beachten, dass bei dem Export durch den JCR Publisher jeweils der aktuellste Stand eines Dokumentes exportiert wird. Ein ggf. älterer publizierter Stand eines GSB Dokumentes wird bei dieser Konfiguration dann nicht berücksichtigt.

Der Import des vom JCR Publisher transformierten Contents in das GSB 10.0 Repository wird gegen ein GSB 10.0 Live-Repository durchgeführt. D.h. die GSB Dokumente und deren Ablagestruktur werden eins zu eins übernommen. Darüber hinaus benötigte Jackrabbit interne "Metainformationen" wie Events, etc. werden durch den JCR Publisher nicht angelegt. Der Content ist somit noch nicht für eine redaktionelle Bearbeitung geeignet.

Um den transformierten Content in ein GSB 10.0 Redaktionssystem importieren zu können, muss dieser abschließend noch aus dem "Migrationsrepository" exportiert und anschließend in das Contentrepository des GSB 10.0 Redaktionssystem importiert werden.

Der JCR Publisher ist als Standalone Java-Applikation realisiert, die außer eines Java-Runtime-Environments keine weitere Software benötigt. D.h. die "Connectoren" zu den GSB 7.2 und GSSB 10.0 Content-Repositories sind in der Applikation bereits vorhanden.

2. Installation

Um den JCR Publisher für die Migration von Inhalten aus einem bestehenden GSB 7.2 in ein GSB 10.0 Repository zu verwenden, muss neben dem GSB 7.2 Contentrepository sowohl der JCR Publisher als auch ein temporär für den Import benötigtes JCR Content Repository installiert werden.

Die folgenden Unterkapitel beschreiben jeweils die Installation des JCR Publishers bzw. des JCR Repositories für die Migration.

2.1. Installation des JCR Publishers

Der JCR Publisher wird als Zip-Archiv ausgeliefert. Dieses Zip-Archiv muss auf dem Zielsystem entpackt werden. Der Standard-Installationspfad ist:

/opt/gsbos/software/jcrpublisher

Innerhalb des entpackten JCR Publishers befinden sich im Verzeichnis infrastructure die Beispiel-Laufzeitkonfiguration und eine systemd Service-Unit-Definition zum Starten des Publishers per Systemd.

Das runtime-Verzeichnis (infrastructure/runtime/jcrpublisher-standardlsg) wird analog zum GSB 10.0 nach '/opt/gsbos/runtime' kopiert. Dieses enthält eine Beispielkonfiguration für die Migration des Mandanten standardlsg. Diese Beispielkonfiguration kann als Grundlage und Ausgangsbasis für die Anpassung an konkrete Migrationsszenarien genutzt werden, indem die Konfigurationen für den Mandantennamen und die benötigten Endpunkte (GSB 7.2 und GSB 10.0 Repositories) an die jeweilige Infrastruktur angepasst werden.

Die Systemd Service-Unit muss nach /etc/systemd/system kopiert werden. Die Service-Unit entspricht vom Aufbau und den Definitionen her den Service-Units des GSB 10.0 und stützt sich auf dieselben Annahmen und Konventionen. Ggf. müssen die Definitionen in der Service-Unit an die Vorgaben der Migrationsinfrastruktur angepasst werden (beispielsweise der Pfad zur Java-Installation).

Auf den möglichen Anpassungen an der Runtime-Konfiguration wird im Kapitel "Runtime-Konfiguration" näher eingegangen.

2.2. Installation des JCR Repositories

Als Ziel für die Contentmigration des JCR Publishers wird ein JCR Repository benötigt. Dabei handelt es sich um ein GSB 10.0 Live Repository (siehe auch Anmerkungen im Kapitel "Einleitung").

Das JCR Repository für die Migration sollte als dediziertes Migrationsrepsitory aufgesetzt werden, welches nach Abschluss der Contentmigration wieder gelöscht werden kann. Es empfiehlt sich als Vorlage für das Migrationsrepsitory die im GSB 10.0 Release vorhandene Runtime-Konfiguration des Master-Repositories zu verwenden (Service-Instanz repository-master). Die exemplarische Runtime-Konfiguration des JCR Publishers stützt sich auf diese Annahme, d.h. in der Runtime ist das Master-Repository (Servername repository.master.example.com und Port 7001) als GSB 10.0 Endpunkt für die Migration eingetragen.

Details zur Installation und Konfiguration des GSB 10.0 Master-Repositories finden sich in der GSB 10.0 Installationsanleitung und können dort nachvollzogen werden.

3. Runtime-Konfiguration

Die Runtime-Konfiguration des JCR Publishers wird anhand der durch Systemd gestarteten `Service-Instanz ermittelt.

Dem Software-Packet liege eine Beispiel-Runtime-Konfiguration für die JCR-Publisher Instanz jcrpublisher-standardlsg bei.

3.1. Aufbau der Runtime-Konfiguration

Die Runtime-Konfiguration ist in der Datei jcrpublisher.properties definiert. Die folgende Definition entspricht der mitgelieferten Beispiel-Runtime-Konfiguration.

################################################################################
#
JcrPublisher Konfiguration
#
###############################################################################
customer=standardlsg
# GSB 7.2 Repository
source.host=cm.example.com
source.port=7001
source.user=webserver
source.password=webserver

# GSB 10 Repository
target.host=repository.master.example.com
target.port=7001

Die einzelnen Properties sind für ein konkretes Migrationsszenario wie folgt zu definieren:

  • customer enthält den Namen des zu migrierenden Mandanten. An dieser Stelle muss der technische Name des Mandanten angegeben werden.

Sektion GSB 7.2 Repository

  • source.host Servername unter dem der GSB 7.2 Master-Server erreichbar ist.
  • source.port enthält den http-Port unter dem die IOR des Master-Servers abgerufen werden kann.
  • source.user definert den technischen Benutzer für den Abruf des zu migrierenden GSB 7.2 Contents (Default webserver)
  • source.password Passwort des technischen Benutzers für den Abruf des zu migrierenden GSB 7.2 Contents (Default webserver)

Sektion GSB 10 Repository

  • target.host Servername des GSB 10.0 Master Repositories in den der migrierte Content des Mandanten geschrieben wird.
  • target.port Portnummer der GSB 10.0 Master Repositories

3.2. Bereitstellen der Runtime-Konfiguration

Zur Bereitstellung einer eigenen Runtime-Konfiguration für die Migration des Mandanten MANDANT muss die mitgelieferte Beispielkonfiguration nach jcrpublisher-MANDANT kopiert werden.

In der kopierten Datei jcrpublisher.properties muss dann der Master-Server des zu migrierenden GSB 7.2 Servers in der Sektion GSB 7.2 Repository eingetragen werden. Ddas Auslesen des GSB 7.2 Contents erfolgt üblicherweise mit dem Benutzer "webserver", der im GSB 7.2 auch für den Zugriff der cae-Webapplikation verwendet wird. Eine Anpassung des Benutzers und Passwords ist üblicherweise nicht erforderlich, da dieser Benutzer über hinreichende Rechte zum Auslesen des Contents eines Mandanten verfügt.

In der Sektion GSB 10 Repository der Propertydatei sind der Servername und -port für das GSB 10.0 Live-Repository (Ziel der Migration) einzutragen.

Da der in den Beispieldaten eingetragene Port 7001 des Zielsystems dem Standardport eines Live-Repositories entspricht, sollte für das temporär für die Migration betriebene Repository ein anderer Port verwendet und hier eingetragen werden.

4. Durchführung der Migration

Der JCR Publisher wird per Systemd gestartet und gestoppt. Die Befehle hierfür sind z.B. für die Instanz MANDANT:

  • Start des Publishers: systemctl start jcrpublisher@jcrpublisher-MANDANT
  • Stopp des Publishers: systemctl stop jcrpublisher@jcrpublisher-MANDANT

Der Fortschritt des JCR Publishers lässt sich über die Log-Files im Ordner /space/gsbos/data/jcrpublisher-MANDANT/logs verfolgen.

Nachdem die Inhalte aus dem GSB 7.2 Repository ausgelesen wurden, wird die Einspielung dieser in das JCR Repository gestartet. Der Abschluss dieses Vorgangs wird ebenfalls im Log-File vermerkt. Die relevanten Ausgaben sind wie folgt aufgebaut.

2018-10-04 18:02:45.139 [ INFO] de.bund.gsb.jcrpublisher.tx.TXProvider: Committed transaction 'http://repository.master.example.com:7001/repository/importagent/transaction/5d12debe-2ea7-47da-8aa5-77a8865e6fe2'2018-10-04 18:02:45.140 [ INFO] de.bund.gsb.jcrpublisher.JcrPublisherImpl: Synchronisierung abgeschlossen. Benutze für das Listening das Timestamp: 50876:2147483647:28680158 mit folgender Zeit: 04.10.18 17:57

Nachdem die Übernahme der Inhalte in das GSB 10.0 Repository abgeschlossen ist (s.a. Logausgabe "Synchronisierung abgeschlossen. …​"), kann der JCR Publisher gestoppt werden.

Anschließend muss der migrierte Content noch aus dem GSB 10.0 Master Repository exportiert werden, um diesen anschließend in das GSB 10.0 Repository des Contentservers zu importieren. Der Ex- und anschließende Import kann mit den entsprechenden GSB 10.0 Standardaufrufen durchgeführt werden, die in der GSB 10.0 Dokumentation beschrieben sind.

HinweisJe nach Größe des zu exportierenden Contents kann entweder ein synchroner oder ein asynchroner Export gestartet werden. Im Anschluss hieran liegt der exportierte Content als Zip-Archiv vor, welches anschließend in das GSB 10.0 Redaktionssystem eingespielt werden kann.

Im Anschluss an die Migration kann das für die Migration genutzt Master-Repository inklusive der Master-Datenbank gelöscht werden, da dieses nicht mehr benötigt wird.