Update der mein campus Middleware auf QIS 11.1

Die HIS GmbH, Hersteller der mein campus zugrunde liegenden Middleware QIS, hat am 10.02.2009 die aktuellste Version 11.1 von QIS veröffentlicht. Damit wird auch ein Update von mein campus notwendig.
Seit Projektbeginn arbeitet mein campus mit QIS in Version 9.3 als Geschäftslogik. Als zentrale Komponente von mein campus erstellt QIS die Prüfungsbäume der Prüfungsan- und -abmeldung, generiert PDFs für Bescheinigungen und verbucht erbrachte Noten. Um auch zukünftig Herstellersupport für QIS beziehen zu können, war es nach 2 Jahren jetzt an der Zeit, auf eine aktuelle Version zu updaten.
Aufgrund der zahlreichen Anpassungen, die aus QIS mein campus machen – Templates, die hochschulspezifische Konfiguration, eigene Erweiterungen – ist ein „einfaches“ Update jedoch nicht möglich. Aus diesem Grund wurde das Update in 4 Teilbereiche aufgeteilt: Java-Source, Templates, Konfiguration und „der Rest“. mein campus-spezifische Anpassungen waren dabei ausschließlich in den drei zuerst genannten Bereichen zu finden.
Für alle Teilbereiche wurde mittels diff ein unified-diff generiert, das dann mittels patch auf den jeweilgen Subtree angewendet wurde. Zum Schluss wurden noch die Binärdateien entsprechend aktualisiert bzw. hinzugefügt oder gelöscht.
Das Update der Java-Sourcen war mit vergleichsweise hohem Aufwand verbunden, da es dort die Erweiterungen zu erhalten galt. Besonders Änderungen am Authentifizierungsmanager machten eine einfache Übernahme des Codes unmöglich, so dass die Anpassungen manuell in die neue Version eingepflegt werden mußten. Im Zuge dieser Portierung konnte der Code aber immerhin gestrafft und bereinigt werden.
Die Herausforderung beim Update der Templates war es, keine der eigenen Entwicklungen zu vergessen. Diese folgen nämlich nicht notwendigerweise einer eindeutigen Namenskonvention.
Das Update der Konfiguration verlief dank Namenskonvention für eigene Dateien weitgehend problemfrei, ebenso das Updates des „Rests“.
Der letzte Schritt der Update-Orgie war die Umstellung von ISO-8859-1 auf UTF-8. Diese betrifft sowohl den Inhalt als auch sämtliche Encodingdeklarationen in den Dateien. Die Dateien wurden mittels iconv konvertiert. Für die Encodingdeklarationen in den Dateien wurden zuerst alle Dateien ermittelt, welche die Zeichenkette „iso-8859“ enthielten. Die Dateien wurden dann an ein kleines Perlscript übergeben, das zeilenweise jedes Auftreten dieser Zeichenkette durch die Zeichenkette „utf-8“ ersetzt hat.
Nach dem erfolgreichen Bau der neuen mein campus Version (4.0?), ist es jetzt an der Zeit für die Integration der an die neue Version angepassten Bescheide. Zudem stehen ausgiebige Tests an. Ein diffstat über das finale Patch fördert immerhin 15851 files changed, 886714 insertions(+), 659766 deletions zu Tage. Viel Grund also, alles nochmal einer genauen Überprüfung zu unterziehen….