Diese Seite fasst Systemanforderungen fĂĽr die Nutzung des MyCoRe LTS 2026.06 und die Migration von Version 2025.12 zu 2026.06 zusammen.
FĂĽr den Betrieb einer MyCoRe-Anwendung unter LTS 2026.06 sind folgende Voraussetzungen zu erfĂĽllen:
MyCoRe LTS 2026.06 ist auf diesen Betriebssystemen im Einsatz. Höhere Versionen sollten kein Problem darstellen.
Zur Arbeit mit MyCoRe LTS 2026.06 sind folgende Softwarekomponenten erforderlich bzw. empfohlen. Diese sind alle von Drittanbietern und im Normalfall in den Distributionen enthalten.
Die Solr-Integration wurde grundlegend refaktoriert. Das bisherige Konzept mit
MCRSolrCore und MCRSolrCoreManager wurde durch ein neues,
klassenbasiertes Index-Registry-Konzept ersetzt.
Dabei wurden sowohl die Property-Namen als auch die Java-API geändert.
Die bisherigen Properties werden als deprecated erkannt und fĂĽhren zu einer Warnung im Log,
bleiben aber zunächst noch funktionsfähig.
MCR.Solr.IndexRegistry.Index.{id}.* statt MCR.Solr.Core.{id}.*.Class-Property explizit festgelegt.MCR.Solr.Default.* zusammengefasst.MCRSolrClientFactory und MCRSolrCoreManager sind deprecated und werden mit dem nächsten Release entfernt.MCRCronjobBisher wurden in MyCoRe konfigurierte Cronjobs bei einer Exception im Job nicht mehr gemäß des CRON-Zeitplans neu geplant. Ab dieser Version führt ein Fehler im Job nicht mehr zum vollständigen Abbruch des Zeitplans. Ein Retry-Mechanismus für die erneute Ausführung des aktuellen Joblaufs ist weiterhin nicht vorgesehen.
MCRAccessKeyServiceFactory ist deprecatedMit MCR-3581 wurde die gesamte Factory-Klasse
MCRAccessKeyServiceFactory als @Deprecated(forRemoval = true) markiert.
Alle bisherigen Factory-Methoden sollten ersetzt werden:
MCRAccessKeyService aks = MCRAccessKeyServiceFactory.getAccessKeyService();Weitere Factory-Methoden wurden analog verschoben:
MCRAccessKeyServiceFactory.getAccessKeySessionService()MCRAccessKeySessionService.obtainInstance()MCRAccessKeyServiceFactory.getAccessKeyPermissionService()MCRAccessKeyPermissionService.obtainInstance()MCRCategoryID: Umbenennung der Methode isRootID() zu isRoot()Wegen eines Konfliktes bei der Benennung der beiden Methoden isRootID() und getRootID() im Zusammenhang mit der
Verwendung der Klasse als JavaBean wurde die Methode isRootID() zu isRoot() umbenannt
(siehe Ticket MCR-3637).
Die folgende Tabelle zeigt die alten Properties und ihre neuen Entsprechungen.
Ob CoreName oder CollectionName zu verwenden ist, hängt vom
Betriebsmodus ab (Standalone vs. SolrCloud). Ebenso ob SolrUrl (Standalone),
SolrUrls (SolrCloud URL-Modus) oder ZkUrls (SolrCloud ZooKeeper-Modus)
gesetzt werden muss.
| Altes Property (bis 2025.12) | Neues Property (ab 2026.06) |
|---|---|
MCR.Solr.ServerURL |
MCR.Solr.IndexRegistry.Index.main.SolrUrl (Standalone)MCR.Solr.IndexRegistry.Index.main.SolrUrls (Cloud URL)und analog fĂĽr classification |
MCR.Solr.Core.main.Name |
MCR.Solr.IndexRegistry.Index.main.CoreName (Standalone)MCR.Solr.IndexRegistry.Index.main.CollectionName (SolrCloud) |
MCR.Solr.Core.main.ServerURL |
MCR.Solr.IndexRegistry.Index.main.SolrUrl oder .SolrUrls |
MCR.Solr.Core.main.ConfigSetTemplate |
MCR.Solr.IndexRegistry.Index.main.ConfigSetTemplate |
MCR.Solr.Core.main.Type |
MCR.Solr.IndexRegistry.Index.main.IndexTypes |
MCR.Solr.Core.classification.* |
MCR.Solr.IndexRegistry.Index.classification.* (analog zu main) |
MCR.Solr.SolrClient.ConnectionTimeout |
MCR.Solr.Default.Client.ConnectionTimeout |
MCR.Solr.SolrClient.SocketTimeout |
MCR.Solr.Default.Client.RequestTimeout und MCR.Solr.Default.Client.IdleTimeout |
MCR.Solr.SolrClient.JettyHttpClient.Enabled |
MCR.Solr.Default.UseJettyHttpClient |
MCR.Solr.ConcurrentUpdateSolrClient.Enabled |
MCR.Solr.Default.ConcurrentClient.Enabled |
MCR.Solr.ConcurrentUpdateSolrClient.QueueSize |
MCR.Solr.Default.ConcurrentClient.QueueSize |
MCR.Solr.ConcurrentUpdateSolrClient.ThreadCount |
MCR.Solr.Default.ConcurrentClient.ThreadCount |
ClassNeu ist das Property MCR.Solr.IndexRegistry.Index.{id}.Class, das den
Verbindungstyp explizit festlegt. Es muss fĂĽr jeden konfigurierten Index gesetzt werden:
# Standalone Solr
MCR.Solr.IndexRegistry.Index.main.Class=org.mycore.solr.standalone.core.MCRConfigurableSolrCore
# SolrCloud (URL-basiert oder ZooKeeper)
MCR.Solr.IndexRegistry.Index.main.Class=org.mycore.solr.cloud.collection.MCRConfigurableSolrCloudCollection
Eine typische Standalone-Konfiguration sah bisher so aus:
# ALT (bis 2025.12)
MCR.Solr.ServerURL=http://localhost:8983/
MCR.Solr.Core.main.Name=mycore
MCR.Solr.Core.classification.Name=mycore-classifications
Die neue Konfiguration lautet:
# NEU (ab 2026.06)
MCR.Solr.IndexRegistry.Index.main.Class=org.mycore.solr.standalone.core.MCRConfigurableSolrCore
MCR.Solr.IndexRegistry.Index.main.SolrUrl=http://localhost:8983/solr
MCR.Solr.IndexRegistry.Index.main.CoreName=mycore
MCR.Solr.IndexRegistry.Index.classification.Class=org.mycore.solr.standalone.core.MCRConfigurableSolrCore
MCR.Solr.IndexRegistry.Index.classification.SolrUrl=http://localhost:8983/solr
MCR.Solr.IndexRegistry.Index.classification.CoreName=mycore-classifications
Den Konfigurationsassistenten zum Erzeugen der Properties fĂĽr alle Verbindungstypen findet man in der Solr-Dokumentation.
MCRSolrClientFactory und MCRSolrCoreManagerDie Klassen MCRSolrClientFactory und MCRSolrCoreManager sind
deprecated. Der Zugriff auf Solr-Clients erfolgt nun ĂĽber die Index-Registry:
// ALT (bis 2025.12)
SolrClient client = MCRSolrClientFactory.getMainSolrClient();
// oder:
SolrClient client = MCRSolrCoreManager.get("main").get().getClient();
// NEU (ab 2026.06)
SolrClient client = MCRSolrIndexRegistryManager.obtainRegistry()
.getIndex("main")
.orElseThrow()
.getClient();
MCRSolrAuthenticationManagerDie Methode MCRSolrAuthenticationManager.getInstance() wurde in
MCRSolrAuthenticationManager.obtainInstance() umbenannt.
// ALT
MCRSolrAuthenticationManager.getInstance().applyAuthentication(request, level);
// NEU
MCRSolrAuthenticationManager.obtainInstance().applyAuthentication(request, level);
MCRXMLMetadataManager in ein InterfaceBisher war MCRXMLMetadataManager eine finale Klasse. Die konkrete Implementierung konnte ausgetauscht werden,
indem per MCR.Metadata.Manager eine Instanz von MCRXMLMetadataManagerAdapter angegeben wurde.
Damit war MCRXMLMetadataManager die einzige Stelle in MyCoRe, die dieses Adapter-Pattern verwendet hat.
Zur Harmonisierung wurde daher MCRXMLMetadataManager in ein Interface umgewandelt.
Die bestehenden Implementierungen implementieren nun direkt MCRXMLMetadataManager und nicht mehr
MCRXMLMetadataManagerAdapter. Sie wurden daher wie folgt umbeannnt:
MCRDefaultXMLMetadataManagerAdapter ⮕ MCRDefaultXMLMetadataManagerMCRGZIPOCFLXMLMetadataManagerAdapter ⮕ MCRGZIPOCFLXMLMetadataManagerMCROCFLXMLMetadataManagerAdapter ⮕ MCROCFLXMLMetadataManagerEs wurde jeweils eine weitere Klasse mit dem alten Namen hinzugefügt und als @Deprecated markiert.
Im Kommentar zur Klasse wird jeweils auf die nun zu verwendende Klasse hingewiesen. Eigener Code bleibt daher noch
funktionsfähig, muss aber vor der Verwendung des nächsten MyCoRe-Releases umgestellt werden.
Um den PMD-Regeln fĂĽr Singeltons gerecht zu werden wurde zudem die Methode MCRXMLMetadataManager#getInstance
in MCRXMLMetadataManager#obtainInstance umbenannt und die alte Methode ebenfalls als @Deprecated
markiert. Auch sie wird mit dem nächsten Release entfernt.