2023.06

Migration MIR LTS 2022.06 nach 2023.06

Listet die einzelnen Schritte zur Migration von MIR LTS 2022.06 nach 2023.06 auf.

Migrationsanleitung MIR

Hier sind weitere Schritte zur MIR-Migration gelistet, die neben der Migrationsanleitung fĂĽr MyCoRe noch relevant sind.

Migration von mods:originInfo/mods:publisher-Elementen nach Crossref-Import

Während des Crossref-Imports wird das Stylesheet crossref2mods.xsl verwendet, um Crossref-Metadaten in MODS zu transformieren. Problematisch sind Publisher-Information (mods:originInfo/mods:publisher). Hier fehlt das eventType-Attribut. Dadurch ist das resultierende MODS nicht kompatibel mit dem Editor und kann nicht bearbeitet werden.

Alle Elemente, die ĂĽber Crossref importiert wurden sollten daher jedenfalls mit dem Stylesheet mycoreobject-migrate-origininfo.xsl migriert werden. Allgemein bietet sich hierfĂĽr der select-Befehl fĂĽr alle fehlerhaften Objekte an:

select objects with xpath /mycoreobject//mods:originInfo[not(@eventType)]
list selected
Mögliche Duplikate, die das richtige eventType-Attribut besitzen, durch nachträgliche Anpassungen, sollten anschließend händisch entfernt werden. Migriert kann allgemein darauf basierend mit:
execute for selected xslt {x} with file mycoreobject-migrate-origininfo.xsl

Dieses Problem wurde nachträglich entdeckt und betrifft auch die Versionen 2024 und 2025.

Änderung der Behandlung von mods:displayForm bei Konferenzen

Im Editor gab es für Konferenzen (mods:name[@type='conference']) ein Preprocessing für das mods:displayForm-Element. War kein mods:displayForm-Element gesetzt, wurde es automatisch aus dem mods:namePart abgeleitet. Existierte bereits ein mods:displayForm-Element, wurde kein neues erzeugt oder überschrieben. Dieses Verhalten führte dazu, dass spätere Updates am mods:namePart keine Auswirkung mehr auf das mods:displayForm-Element hatten und die Ausgabe dadurch inkonsistent war.

Das Preprocessing wurde mit MIR-1522 entfernt. Das mods:displayForm-Element soll für Konferenzen künftig grundsätzlich nicht mehr verwendet werden. Aus diesem Grund müssen alle bestehenden mods:displayForm-Elemente für Konferenzen entfernt werden. Hierfür steht das Stylesheet mycoreobject-migrate-name-displayform zur Migration zur Verfügung. Generell bietet sich der select-Befehl an für die Bestimmung aller fehlerhaften Objekte und eine anschließende Migration:

select objects with xpath /mycoreobject//mods:name[@type='conference']/mods:displayForm
execute for selected xslt {x} with file mycoreobject-migrate-name-displayform.xsl

Dieses Problem wurde nachträglich entdeckt und betrifft auch die Versionen 2024 und 2025.

Verschiebung der "Saxon ready"-Stylesheets nach xslt/

Mit MCR-2966 wurden die XSLT3-fähigen ("Saxon ready") Stylesheets aus dem Verzeichnis xsl/ nach xslt/ verschoben. Für die meisten Stylesheets ist das unkritisch, da die zugehörigen Properties in der MIR-mycore.properties mitgepflegt wurden und beim Update automatisch übernommen werden.

Problematisch ist das Stylesheet für den DeepGreen-JATS-Import (sword/jats2mods.xsl). Die zugehörige Property ist in der MIR-mycore.properties nur auskommentiert enthalten:

# MCR.ContentTransformer.deepgreenjats2mods.Stylesheet=xslt/sword/jats2mods.xsl
Anwendungen, die diese Property in einer älteren Version in ihre eigene mycore.properties kopiert und aktiviert haben, verweisen weiterhin auf den alten Pfad xsl/sword/jats2mods.xsl und werden durch das Update nicht automatisch angepasst.

Betroffene Anwendungen (mit aktiviertem DeepGreen-/SWORD-Import) mĂĽssen den Pfad in ihrer eigenen mycore.properties daher manuell anpassen:

MCR.ContentTransformer.deepgreenjats2mods.Stylesheet=xslt/sword/jats2mods.xsl

Zugriffsrechte für gesperrte und gelöschte Objekte ergänzen

Mit MIR-1613 wurde behoben, dass die Dateien von Objekten im Zustand blocked (gesperrt) oder deleted (gelöscht) ĂĽber das MCRFileNodeServlet auch an nicht angemeldete bzw. unprivilegierte Nutzer ausgeliefert wurden – selbst dann, wenn auf der Metadatenseite die Hinweise „Das Dokument ist gesperrt!“ bzw. „Das Dokument wurde gelöscht!“ angezeigt wurden. Die Zugriffsstrategie berĂĽcksichtigte bislang nur die Klassifikation mir_access, nicht aber den Objektzustand.

Die zugehörige Property-Anpassung wird durch das Update automatisch übernommen, sofern sie nicht in der eigenen mycore.properties überschrieben wurde. Anwendungen, die diese Property selbst gesetzt haben, müssen den Zustand state ergänzen:

MIR.Access.Strategy.Classifications=state,mir_access
Die Reihenfolge ist entscheidend: state muss vor mir_access stehen, damit der Objektzustand Vorrang hat und ein mir_access-Wert wie unlimited den Zugriff auf gesperrte/gelöschte Inhalte nicht doch erlaubt.

Die neuen Zugriffsrechte liegen pro Installation in der Datenbank und werden durch das Update nicht automatisch angelegt. Sie müssen daher in bestehenden Installationen manuell ergänzt werden. Am einfachsten geschieht dies über die Oberfläche der Rechteverwaltung (ACL-Editor) im Administrationsbereich. Dort sind folgende Zugriffsdefinitionen anzulegen:

  • derivate:state:blocked – Berechtigungen read und view, Regel grant-editors („administrators and editors“)
  • derivate:state:deleted – Berechtigungen read und view, Regel grant-editors („administrators and editors“)
  • derivate:mir_access:unlimited – zusätzlich die Berechtigung view, Regel grant-all („always allowed“)

Alternativ können die Rechte über die Kommandozeile mit dem Werkzeug mir-cli gesetzt werden. Der Platzhalter {mir-cli} in den folgenden Kommandos ist dabei durch das Installationsverzeichnis von mir-cli zu ersetzen (das Verzeichnis, in dem die Regeldateien unter config/acl/ liegen):

update permission view for id derivate:mir_access:unlimited with rulefile {mir-cli}/config/acl/grant-all.xml described by always allowed
update permission read for id derivate:state:blocked with rulefile {mir-cli}/config/acl/grant-editors.xml described by administrators and editors
update permission view for id derivate:state:blocked with rulefile {mir-cli}/config/acl/grant-editors.xml described by administrators and editors
update permission read for id derivate:state:deleted with rulefile {mir-cli}/config/acl/grant-editors.xml described by administrators and editors
update permission view for id derivate:state:deleted with rulefile {mir-cli}/config/acl/grant-editors.xml described by administrators and editors

Dieses Problem betrifft alle bestehenden Installationen und damit auch die Versionen 2024 und 2025.