Diese Seite fasst Systemanforderungen für die Nutzung des MyCoRe LTS 2025.12 und die Migration von Version 2025.06 zu 2025.12 zusammen.
Für den Betrieb einer MyCoRe-Anwendung unter LTS 2025.12 sind folgende Voraussetzungen zu erfüllen:
MyCoRe LTS 2025 ist auf diesen Betriebsystemen im Einsatz. Höhere Versionen sollten kein Problem darstellen.
Zur Arbeit mit MyCoRe LTS 2025 sind folgende Softwarekomponenten erforderlich bzw. empfohlen. Diese sind alle von Drittanbietern und im Normalfall in den Distributionen enthalten.
MCRAccessControlSystem#instance() wurde umbenannt (siehe unten).<children>) und Derivaten (<derobjects>) nicht mehr Teil der MCRObjectStructure. Diese Informationen werden nun zentral und konsistent über den MCRLinkTableManager verwaltet.
MCRExpandedObjectManager ist die zentrale Anlaufstelle, um ein expandiertes Objekt zu erhalten (MCRExpandedObjectManager.getInstance().getExpandedObject(obj)).
MCRExpandedObjectCache) zwischengespeichert, um die Performance drastisch zu verbessern. Der Cache wird durch Event Handler automatisch invalidiert, wenn sich ein Objekt oder seine verknüpften Objekte ändern.
MCRMetadataShareAgent-System zur Vererbung von Metadaten wurde vollständig entfernt.
ANCESTOR_UPDATED und LINKED_UPDATED.
relatedItem-Struktur in MODS-Objekten, bevor diese gespeichert werden.
API-Änderungen im Code beachten (Breaking Changes!)
Der meiste Anpassungsbedarf wird in Ihrem eigenen Code entstehen, der auf die MyCoRe-Datenstrukturen zugreift.
mcrObject.getStructure().getChildren() oder mcrObject.getStructure().getDerivates()
MCRObjectStructure nicht mehr. Verwenden Sie stattdessen:
|
|
MCRMetaLinkID) zu erhalten, verwenden Sie die statische Methode MCRMetadataManager#retrieveMCRExpandedObject, die die Daten aus dem Cache lädt:
|
|
MCRExpandedObjectManager verwendet werden, wobei die Daten live ergänzt werden:
|
|
MCRMetadataManager.getDerivateIds(objectId, 10, TimeUnit.SECONDS)
MCRMetadataManager.getDerivateIds(objectId)
MCRMetadataManager.getObjectId(derivateId, 10, TimeUnit.SECONDS)
MCRMetadataManager.getObjectId(derivateId)
parent, derivate) wird nun das Enum MCRLinkType verwendet.
ltm.getSourceOf(id, "parent")
ltm.getSourceOf(id, MCRLinkType.PARENT)
Datenmigration durchführen
Ihre bestehenden XML-Daten in der Datenbank enthalten noch die alten, nicht-normalisierten Strukturen (<children> und <derobjects>). Diese müssen migriert werden.
migrate to normalized object {id}
|
|
select objects with xpath /mycoreobject - um alle Objekte auszuwählen.execute for selected migrate to normalized object {x} - um die Migration für jedes ausgewählte Objekt auszuführen.execute for selected repair metadata search of ID {x} - um die Metadaten für jedes ausgewählte Objekt zu korrigieren.repair metadata search of type derivate - um die Metadaten für alle Derivate zu korrigieren.
Bei allen MyCoRe-Modulen wurden die Tests von JUnit 4 auf JUnit 5 umgestellt.
Die Unterstützung für JUnit 4 wurde entfernt. Dementsprechend sind auch die Test-Basisklassen
MCRTestCase, MCRJPATestCase und MCRStoreTestCase entfernt worden.
Wer in eigenen Modulen JUnit 4 Test hat, muss diese entsprechend anpassen.
MCRTestCase zu erweitern, kann die Annotation @MyCoReTest verwendet werden.
MCRJPATestCase zu erweitern, kann zusätzlich zu @MyCoReTest die Annotation
@ExtendWith(MCRJPAExtension.class) verwendet werden. Für einige Methoden der entfallenen Test-Basisklasse
gibt es Ersatz in der Hilfsklasse MCRJPATestHelper (z.B. beginTransaction und
endTransaction).
MCRStoreTestCase zu erweitern, kann je nach Funktionsbedarf zusätzlich zu @MyCoReTest die Annotation@ExtendWith(MCRStoreExtension.class) oder @ExtendWith({MCRJPATestExtension, MCRStoreExtension.class})
Statt getTestProperties() zu überschreiben, kann mit @MCRTestConfiguration
oder, wenn die Werte dynamisch sind, direkt mit MCRConfiguration2#set gearbeitet werden.
Bestehende setUp- und tearDown-Methoden können erhalten bleiben, müssen aber als
static markiert werden und mit @BeforeAll bzw. @AfterAll annotiert werden.
Der Aufruf der jeweiligen Super-Methode sowie eine ggf. vorhandene @Override-Annotation können
ersatzlos entfernt werden.
Wer seine JUnit 4 Tests nicht während der Migration umstellen möchte, kann vorerst auch das neue Modul
mycore-junit4 einbinden und die Migration später durchführen. Mit diesem Modul bleiben die
oben genannten Test-Basisklassen zunächst noch erhalten. Zudem muss JUnit 4 als Abhängigkeit erhalten bleiben.
|
|
mycore-junit4 als @Deprecated markiert.
Im eigenen Modul muss daher innerhalb von <properties> vorübergehend der Eintrag <maven.compiler.arg/>
hinzugefügt werden. Dies überschreibt die Standardeinstellung von MyCoRe
(<maven.compiler.arg/>-Werror</maven.compiler.arg/>) und erlaubt damit die Verwendung von derart markiertem Code.
Dieses Modul soll nur vorübergehend die Migration eigener Tests erleichtern wird mit dem nächsten Release von MyCoRe wieder entfernt.
Die Unterstützung der indirekte Instanziierung von Event-Handlern wird mit dem nächsten Release von MyCoRe entfernt.
Hierbei handelt es sich um eigene Implementierungen von MCREventHandlerInitializer
im Kombination mit einer Konfigurationen der folgenden Art:
|
|
Im Nachgang zu den Änderungen in 2025.06 wurde nun auch die Methode MCRAccessControlSystem#instance() in
MCRAccessControlSystem#getInstance() umbenannt. Die alte Methode wurde als @Deprecated markiert.
Eigener Code bleibt daher noch funktionsfähig, muss aber vor der Verwendung der nächsten MyCoRe-Version umgestellt werden.