Version 5.15.1
– 4/2/26
Sophora Client API: 5.22.12.
-
Added
Zulieferung von Jugendmedienschutz-Deskriptoren (descriptorIds) ermöglichen
– SOMSI-549 (high)
Notes
An den ContentRatings bei Groupings (Show und Season), Items (Episode, Section, Extra und EventLivestream) sowie PermanentLivestreams kann nun das Feld "descriptorIds" übergeben werden.
Version 5.15.0
– 2/27/26
Sophora Client API: 5.22.8.
-
Added
Dry-Run-Modus zur Registrierung von Used Sources im SMS ermöglichen
– SOMSI-263 (high)
Notes
Der Sophora Metadata Supplier unterstützt nun Dry-Run-Modi, mit denen das Zuliefern an den ARD Core, das Persistieren von Used Sources und Mapped Resources sowie das Benachrichtigen der FeedbackHandler (z.B. zum Erzeugen der Haftnotizen an den Sophora-Dokumenten) einzeln abgeschaltet werden kann. Um den jeweiligen Modus bestimmen zu können, muss im Mapping-Projekt das Interface IModeSetter implementiert bzw. der Aufruf an der REST-Schnittstelle um den gewünschten Mode-Parameter erweitert werden.
FeedbackHandler können zudem selbst entscheiden, ob/wie sie den verwendeten Modus den Nutzern anzeigen. Standardmäßig wird vor die Meldungen in den Haftnotizen der Prefix "[Dry-Run]" gesetzt, wenn die Inhalte nicht zum ARD Core gesendet werden sollten (Message-Key: "sms.stickynote.mode.dryrun").
Weitere Informationen zum Dry-Run befinden sich in der Dokumentation.
Version 5.14.0
– 2/2/26
Sophora Client API: 5.22.4.
-
Added
Zulieferung von logoType-Feld an Images ermöglichen
– SOMSI-541 (medium)
-
Added
Neue Priorität "LOW" zur Abarbeitung der Job-Queue hinzufügen
– SOMSI-540 (medium)
Notes
IPrioritySetter können nun neben Priority.HIGH und Priority.NORMAL auch eine Priority.LOW zurück geben, um Mapping-Aufträge niedrig zu priorisieren.
Monitoring:
Die bisherigen Metriken der SupplyJob-Queue wurden beibehalten und spiegeln weiterhin den Gesamtzustand der Queue wieder. Analog zu den Metriken für die "HIGH"- und "NORMAL"-Prioritäten sind Metriken für die neue "LOW"-Priorität hinzugekommen (<priority> steht für "high", "normal" und (neu) "low"):
- metadatasupplier.supplyjob.<priority>.queue.size
- metadatasupplier.supplyjob.<priority>.queued
- metadatasupplier.supplyjob.<priority>.executed
-
Added
Zulieferung von isBroadcastEvent-Feld an Shows ermöglichen
– SOMSI-539 (medium)
Version 5.13.0
– 1/12/26
Sophora Client API: 5.22.1.
-
Changed
Update auf Spring-Boot [3.5]
– SOMSI-504 (medium)
Version 5.12.0
– 10/24/25
Sophora Client API: 5.18.6.
-
Added
"X-ARD-User-Agent" im Request-Header an die ARD übertragen
– SOMSI-523 (medium)
Notes
In der 'application.yml' muss nun der Name des Zulieferers von Inhalten an die ARD Mediathek/Audiothek angegeben werden, zum Beispiel "ardmedialibrary.supplier.name: WDR". Falls dieser Parameter nicht gesetzt ist, lässt sich der Sophora-Metadata-Supplier nicht starten!
-
Added
SubtitleType um den Wert "FORCED" erweitern
– SOMSI-521 (medium)
Notes
SubtitleType verfügt nun über die Werte DEFAULT, SIMPLE_LANGUAGE, CLOSED_CAPTIONS und FORCED
Version 5.11.0
– 9/24/25
Sophora Client API: 5.18.2.
-
Added
GeoAvailability um den Wert "EU" erweitern
– SOMSI-479 (medium)
Notes
GeoAvailability verfügt nun über die Werte DE, DACH, EU und GLOBAL.
Version 5.10.0
– 9/9/25
Sophora Client API: 5.17.0.
-
Changed
Unterstützung für die Zulieferung von Bildern im Seitenverhältnis 19:4 entfernen
– SOMSI-517 (medium)
Notes
Das Enum 'com.subshell.sophora.metadatasupplier.sophora.commons.image.AspectRatio' enthält nun nicht mehr den Wert ASPECT_RATIO_19X4, da die ARD Mediathek/Audiothek das Seitenverhältnis 19:4 nicht mehr unterstützt. Mappings, die auf diesen Wert zugreifen, müssen entsprechend angepasst werden.
Version 5.9.2
– 9/1/25
Sophora Client API: 5.17.0.
-
Fixed
Jolokia muss wieder funktionieren
– SOMSI-516 (medium)
Notes
Der Endpunkt /actuator/jolokia ist wieder verfügbar
Version 5.9.1
– 8/22/25
Sophora Client API: 5.17.0.
-
Changed
Spring Data Sophora 5.8.6 bzw. 4.11.6 im SMS verwenden
– SOMSI-515 (high)
Notes
Das SMS 5.x verwendet nun Sophora-Core 5.17.0, Spring Data Sophora 5.8.6 und Spring Boot Sophora Commons 5.3.4.
Das SMS 4.x verwendet nun Sophora-Core 4.36.6, Spring Data Sophora 4.11.6 und Spring Boot Sophora Commons 4.3.25.
Version 5.9.0
– 7/4/25
Sophora Client API: 5.16.8.
-
Added
Zulieferung von importOrigin-Feld per SMS ermöglichen
– SOMSI-500 (high)
Notes
Es kann per Konfiguration in der application.yml für alle zulieferbaren Core API Entitäten das importOrigin-Feld angegeben werden.
Bitte beachten: Im Standardfall werden sämtliche Entitäten ohne importOrigin-Feld zugeliefert. Eine explizite Zulieferung des Feldes darf nur nach Absprache mit der ARD Mediathek/Audiothek erfolgen!
Version 5.8.1
– 5/23/25
Sophora Client API: 5.16.5.
-
Changed
Das TriggerSMS-Skript muss den neuen HTTP-Client nutzen
– SOMSI-497 (medium)
Notes
Das Skript "Trigger for Metadata Supplier" ("Zur ARD Mediathek/Audiothek senden") nutzt nun den HTTP-Client aus dem IClientScriptContext statt ISophoraClient.getDataFromUrl(...), um den Sophora Metadata Supplier anzusprechen. D.h. der Aufruf der URL zur Rest-Schnittstelle des SMS geht nicht mehr durch den Sophora-Server durch und daher muss sichergestellt sein, dass die URL zur Rest-Schnittstelle des SMS vom DeskClient aus erreichbar ist (Eintrag "sophora.metadata-supplier.url" im Konfigurationsdokument im Adminbereich des DeskClients).
-
Changed
Update auf Spring-Boot 3.4
– SOMSI-484 (medium)
Notes
Spring-Boot 3.4.5 wird nun eingebunden
-
Changed
Umstellung auf Java 21
– SOMSI-366 (medium)
Notes
Das Docker-Image in 5.x und 6.x bindet nun Java 21 statt Java 17 ein.
SMS Version 5.x setzt noch Java 17 voraus; ab SMS Version 6.x wird Java 21 vorausgesetzt!
Version 5.8.0
– 4/29/25
Sophora Client API: 5.15.3.
-
Changed
SMS: Hochskalieren auf Mindestgröße bei Bildgenerierung
– SOMSI-495 (high)
Notes
Im com.subshell.sophora.metadatasupplier.sophora.commons.image.ImageMapper können die Methoden mapImages(IImageDataProvider imageDataProvider) und mapImagesToAspectRatioMap(IImageDataProvider imageDataProvider) nun zusätzlich mit IMappingContext als Parameter aufgerufen werden. Dieser wird für neue Feedback-Messages benötigt, welche angezeigt werden, wenn bei der Zulieferung ein Bild auf die Mindestgröße hochskaliert werden musste. Die Message-Codes lauten "sms.sophora.image.minimumSizeRequirementsNotSatisfied.height" und "sms.sophora.image.minimumSizeRequirementsNotSatisfied.width" und können auch aus der Konstanten-Klasse com.subshell.sophora.metadatasupplier.sophora.commons.feedback.MessageCodeConstants des neuen Projektes "metadata-supplier-sophora-commons-api" entnommen werden.
Version 5.7.3
– 4/10/25
Sophora Client API: 5.15.1.
-
Changed
Tomcat aktualisieren
– SOMSI-486 (medium)
Notes
Ab SMS 5.7.3 wird nun Tomcat 10.1.39 bzw. ab SMS 4.32.3 wird nun Tomcat 9.0.102 eingebunden
Version 5.7.2
– 2/21/25
Sophora Client API: 5.12.2.
-
Changed
Sophora-Core 4.35.0 bzw. 5.12.2 sowie aktuelle Basepom verwenden
– SOMSI-481 (medium)
Notes
Abhängigkeiten wurden aktualisiert.
Version 5.7.1
– 2/4/25
Sophora Client API: 5.12.1.
-
Changed
Seitenverhältnis-Bildvarianten: Gesperrte Varianten dürfen nicht zum Abbruch durch ImageVariantDisabledException führen
– SOMSI-476 (high)
Notes
Die Implementation der Methode com.subshell.sophora.metadatasupplier.sophora.commons.image.IImageDataProvider.getBinaryData() wirft bei gesperrten Seitenverhältnis-Bildvarianten standardmäßig keine Exception mehr. Stattdessen werden die Bildvarianten ignoriert, sodass der Mappingvorgang und in Folge auch die Zulieferung an die ARD Mediathek/Audiothek weiter durchgeführt werden können.
Version 5.7.0
– 1/27/25
Sophora Client API: 5.12.1.
-
Added
Seitenverhältnis-Bildvarianten unterstützen
– SOMSI-464 (medium)
Notes
Der ImageVariantsProvider verfügt nun über die neuen Methoden 'setImageSizeRequirementsForAspectRatio(IAspectRatio aspectRatio, ImageSizeRequirements imageSizeRequirements)' und 'getImageSizeRequirementsForAspectRatio(IAspectRatio aspectRatio)' für die Angabe einer von der ARD Mediathek/Audiothek gewünschten Bildgröße und einer Mindestgröße (entweder über die Höhe oder über die Breite)
Beispiel-Aufruf für eine gewünschte Breite von 3840px, aber mindestens 1920px bei 16:9-Bildvarianten:
'imageVariantsProvider.setImageSizeRequirementsForAspectRatio(ASPECT_RATIO_16X9, ImageSizeRequirements.createWithWidth(3840, 1920));'
Version 5.6.0
– 1/10/25
Sophora Client API: 5.10.0.
-
Fixed
SMS darf nicht starten, wenn MappedResources/UsedSources korrupt sind
– SOMSI-454 (critical)
Notes
Wenn beim Start der Anwendung eine der Dateien im data-Verzeichnis ("lastHandledEventDate.txt", "mappedResources.json", "usages.json") invalides Datenformat enthält, wird der Start abgebrochen.
Das Datum des zuletzt behandelten Sophora-Events wird nun zusätzlich ins Logfile geschrieben, so dass diese Information auch von dort abgelesen werden kann.
Die Dateien "mappedResources.json" und "usages.json" werden nun zunächst als tmp-Datei im data-Verzeichnis erzeugt und erst anschließend ersetzt, um die Originaldateien zu erhalten, falls die Anwendung während des Schreibens der Dateien beendet wird. Dadurch wird mehr Festplattenspeicherplatz benötigt.
Version 5.5.0
– 8/28/24
Sophora Client API: 5.7.3.
-
Changed
Werte für "catalog"-Felder in ExternalContentId und ExternalPersonId anpassen
– SOMSI-441 (medium)
Notes
Im "Catalog"-Enum (für ExternalContentIds von Episoden, EventLivestreams, Extras, PermanentLivestreams, Seasons, Sections und Shows) wurde der Wert OTHER entfernt und APPLE_TV hinzugefügt.
Im "PersonCatalog"-Enum (für ExternalPersonIds in PersonCredits von Episoden, EventLivestreams, Extras, Seasons, Sections und Shows) wurde der Wert OTHER entfernt.
-
Changed
Update auf Spring 6.1 und Spring Boot 3.2
– SOMSI-426 (medium)
Notes
Es wird nun Spring 6.1.6 und Spring Boot 3.2.5 genutzt.
-
Added
Komplette Anlieferungen (inkl. "UsedSources") sollen unterbunden werden können
– SOMSI-431 (medium)
Notes
Mapping-Projekte können nun bis zu eine ISourceFilter-Komponente bereitstellen, die entscheidet, ob ein Mapping-Auftrag überhaupt vom MetadataSupplier ausgeführt werden soll. Im Gegensatz zu der accept()-Methode der IResourceMapper-Implementationen wird mit dem ISourceFilter auch verhindert, dass nachfolgende Mappings (aufgrund des "Used Sources"-Mechanismus) ausgelöst werden. Wenn der SourceFilter ein Quellobjekt (Source) ablehnt, wird ein Feedback mit MessageCode "sms.source.denied" zurückgeliefert, ansonsten wird die Source wie gehabt gemappt und in der ARD Mediathek/Audiothek aktualisiert.
Die jeweilige Ausführungsdauer für den SourceFilter wird ebenfalls erfasst und sowohl im Feedback als auch über Prometheus-Metriken bereitgestellt.
Für abgelehnte Mapping-Aufträge wird standardmäßig keine Haftnotiz an Sophora-Dokumenten hinterlegt. Dies lässt sich jedoch in der application.yml mit dem Eintrag metadata-supplier-sophora.create-sticky-notes-for-denied-sources: true/false konfigurieren.
Version 5.4.2
– 7/30/24
Sophora Client API: 5.5.0.
-
Added
"allowDeprecatedTermIds"-Feld an Video- und AudioBinaries unterstützen
– SOMSI-430 (high)
Notes
AudioBinary und VideoBinary verfügen nun über das neue Feld "allowDeprecatedTermIds".
Version 5.4.1
– 7/9/24
Sophora Client API: 5.5.0.
-
Changed
URLs für Create-Operationen an ARD Core API dürfen nicht mit Slash enden
– SOMSI-423 (medium)
Notes
Create-Requests werden nun ohne Slash am Ende der URL aufgerufen, also z.B. ".../delivery-api/items/event-livestreams" statt ".../delivery-api/items/event-livestreams/"
-
Improved
Aussagekräftigere Validierungsmeldungen liefern
– SOMSI-422 (medium)
Notes
Einige Validierungsmeldungen wurden um die Platzhalter '${resourceFieldName}', '${coreId}' und '${resourceTypeName}' angereichert, um aussagekräftigere Texte zu erhalten. Zum Beispiel "Das Feld '${resourceFieldName}' der Ressource '${coreId}' vom Typ '${resourceTypeName}' muss gesetzt werden, wenn ContentEventType ${type} ist." statt einfach nur "Muss gesetzt werden, wenn ContentEventType ${type} ist."
Version 5.4.0
– 6/14/24
Sophora Client API: 5.4.0.
-
Added
Neue Felder timeInContent, progressbarIconId und participantIconId in ContentEvents unterstützen
– SOMSI-414 (medium)
Notes
ContentEvent verfügt über die neuen Felder timeInContent (String), progressbarIconId (CoreId) und participantIconId (CoreId)
Version 5.3.1
– 6/4/24
Sophora Client API: 5.3.0.
-
Fixed
Der Wechsel des Dokumentstatus von "publishAt" zu "prePublished" darf nicht zu "publishAtCanceled" führen
– SOMSI-415 (medium)
Notes
Der Zustandsübergang von Sophora-Dokumenten von "publishAt" zu "prePublished" wird nun als "prePublish" statt "publishAtCanceled" behandelt, da in dem Fall die Veröffentlichung nicht abgebrochen, sondern angestoßen wird (auf den Zustand "prePublished" folgt "published")
Version 5.3.0
– 5/29/24
Sophora Client API: 5.3.0.
-
Changed
Client-Skript zur manuellen Anlieferung: Behandlung von Timeouts verbessern
– SOMSI-381 (medium)
-
Improved
Die einzelnen Logmeldungen sollen dem auslösenden SourceDescriptor zugeordnet werden können
– SOMSI-403 (medium)
Notes
Der initiale SourceDescriptor und die Parameter des jeweiligen SMS-Aufrufs werden nun bei jeder zugehörigen Logmeldung mit geloggt. Technisch werden dazu am MDC (Mapped Diagnostic Context) intern die Werte "trigger_source" und "trigger_parameters" gesetzt.
-
Added
Bilder mit Seitenverhältnis 19:4 unterstützen
– SOMSI-411 (medium)
Notes
Der Enum com.subshell.sophora.metadatasupplier.sophora.commons.image.AspectRatio stellt nun auch einen Wert ASPECT_RATIO_19X4 bereit
-
Added
Neues Feld "nonUniqueMatchingBrid" unterstützen
– SOMSI-405 (medium)
Notes
Episoden, Sections, Extras und EventLivestreams verfügen nun über das neue Feld "nonUniqueMatchingBrid".
-
Added
Metriken für Ausführungsdauern hinzufügen
– SOMSI-404 (medium)
Notes
Es gibt nun Metriken für das Alter der Sophora-Events bzw. Supply-Jobs in der Event- bzw. Job-Queue (/actuator/metrics/metadatasupplier.event.ages und /actuator/metrics/metadatasupplier.supplyjob.ages).
Außerdem werden Metriken für die Ausführungsdauern der accept()- und mapToResources()-Methoden der einzelnen IResourceMapper sowie die Dauer zum Senden der erzeugten Resources an den ARD Core bereitgestellt (/actuator/metrics/metadatasupplier.mapper.accept, /actuator/metrics/metadatasupplier.mapper.map, /actuator/metrics/metadatasupplier.ardcore.calls).
Die Dauer zum Lesen/Schreiben der Used-Sources- und Mapped-Resources-Dateien steht nun ebenfalls als Metrik bereit (/actuator/metrics/metadatasupplier.persistence).
Alle diese Daten sind auch unter /actuator/prometheus abrufbar.
-
Added
Ausführungszeit der einzelnen SMS-Mapping-Aufträge im Log ausgeben
– SOMSI-367 (medium)
Notes
Die Ausführungsdauer der SMS-Aufrufe wird nun geloggt und auch im Feedback zurück geliefert ("diagnostic"). Dabei werden die Gesamtdauer des SMS-Aufrufs und Teildauern für einzelne Schritte erfasst (dazu gehören das Ermitteln des richtigen Mappers, das Mapping selbst und das Senden an die ARD Mediathek/Audiothek). Im eigenen Mapping-Code können über die neue Methode IMappingContext .addDurationOf(...) eigene Zeiten erfasst und zum Feedback hinzugefügt werden. Bei Anbindung an Sophora wird zusätzlich das Alter der einzelnen Einträge in der Event- und SupplyJob-Queue ermittelt und geloggt.
Version 5.2.0
– 4/18/24
Sophora Client API: 5.1.0.
-
Improved
Vorhandene Feedback-Haftnotizen sollen nicht verschwinden, wenn kein Mapping durchgeführt wird
– SOMSI-383 (medium)
Notes
Wenn bei einem (erneuten) Mappingdurchlauf für ein Sophora-Dokument keine gemappten Ressourcen entstehen, bleiben zuvor gesetzte SMS-Haftnotizen an dem Dokument erhalten, statt sie zu entfernen.
-
Improved
Erfolgreiche Depublikationen von Inhalten in der Mediathek/Audiothek sollen in Feedback-Haftnotizen mit aufgeführt werden
– SOMSI-377 (medium)
Notes
Es gibt einen neuen Message-Key "sms.stickynote.unpublish.success" mit dem Standardtext "Die zugehörigen Inhalte wurden am ${date} um ${time} Uhr erfolgreich in der ARD Mediathek/Audiothek depubliziert (${resourceDescriptors})". Der Text erscheint (zusätzlich) in der Haftnotiz am Sophora-Dokument, wenn mindestens eine gemappte Ressource erfolgreich in der ARD Mediathek/Audiothek depubliziert wurde.
Die Formulierung der Feedbacktexte mit den Message-Keys "sms.unpublish.error", "sms.unpublish.success", "sms.unpublish.unable", "sms.unpublish.unnecessary" wurden entsprechend angepasst, so dass die Inhalte nicht "aus der Mediathek entfernt", sondern "in der Mediathek depubliziert" wurden.
-
Added
MDP4-Feld "publisherId" auf Item-Ebene und "timestampInParent" in Sections unterstützen
– SOMSI-394 (medium)
Notes
Episodes, EventLivestreams, Extras und Sections verfügen nun über das Feld publisherId.
Sections verfügen zusätzlich über das neue Feld timestampInParent.
Version 5.1.0
– 3/28/24
Sophora Client API: 5.0.0.
-
Added
MDP4-Feld "hasLiveContentEvents" unterstützen
– SOMSI-388 (medium)
Notes
EventLivestreams verfügen nun über das neue Feld "hasLiveContentEvents".
Version 5.0.0
– 3/13/24
Sophora Client API: 5.0.0.
-
Fixed
Während des Aufsynchronisierens von Sophora-Events dürfen neue Events nicht verloren gehen
– SOMSI-341 (high)
Notes
Während der Synchronisierung eingehende Sophora-Events werden nun nachträglich abgearbeitet
-
Fixed
VideoBinary.hasEmbeddedSubtitles() darf nicht immer "false" an die Core API übergeben
– SOMSI-232 (high)
Notes
VideoBinary.isHasEmbeddedSubtitles() wurde entfernt. Es muss IVideoBinary.hasEmbeddedSubtitles() genutzt werden.
Der vollständige Fix ist erst ab Version 3.5.4 bzw. 4.5.4 enthalten.
-
Fixed
Zeilenumbrüche bei Aufzählungen in Haftnotizmeldungen korrigieren
– SOMSI-368 (medium)
Notes
Behebt das Problem, dass URLs am Ende von einzelnen Aufzählungspunkten in den Feedback-Haftnotizen im DeskClient nicht (richtig) als Link erkannt werden
-
Fixed
Benutzerdefinierte Texte zu Fehlermeldungen der Core API werden nicht gefunden
– SOMSI-326 (medium)
Notes
Behebt das Problem, dass die mitgelieferten Übersetzungen zu Fehlermeldungen der Core API oder eigene Übersetzungen in Mapping-Plugins nicht gefunden werden.
-
Fixed
SMS muss im Dashboard richtig angezeigt werden
– SOMSI-299 (medium)
Notes
Mit diesem Bugfix wird der Onlinestatus in der Kachel im Dashboard repariert. Damit die Daten in den Details auf der rechten Seite im Dashboard angezeigt werden, muss das Admin Dashboard in Version >= 3.1.5, 4.2.4, 5.0.0 verwendet werden.
-
Fixed
Publications ohne ImageCollection können nicht von der ARD Core API geladen werden
– SOMSI-197 (medium)
-
Fixed
HTTP Patch muss auch bei Verwendung eines Proxy unterstützt werden
– SOMSI-173 (medium)
Notes
Proxy-Einstellungen zur ARD Mediathek/Audiothek können nicht mehr in der application.yml über "ardmedialibrary.credentials.proxyUrl" und "ardmedialibrary.credentials.proxyPort" gesetzt werden. Stattdessen muss der Proxy über normale Systemproperties konfiguriert werden, z.B. in der Datei metadata-supplier-application-executable.conf.
-
Changed
Banner und weitere Ausgaben des Sophora Metadata Suppliers sollen in der Log-Datei (nicht in einer gesonderten .out-Datei) ausgegeben werden
– SOMSI-150 (high)
-
Changed
Mapper sollen mehrere Entitäten in der ARD-Core-API erzeugen können
– SOMSI-71 (high)
-
Changed
Update auf SpringBoot 2.7: Umstellung der Swagger-UI von Springfox auf Springdoc
– SOMSI-259 (high)
Notes
Die Standard-URL zur Swagger-UI lautet nun http://localhost:8080/swagger-ui.html (statt http://localhost:8080/swagger-ui/index.html). Siehe Dokumentation bzgl. REST-API, Monitoring und Konfiguration des Webservers.
-
Changed
Docker-Image des Sophora Metadata Suppliers erstellen
– SOMSI-120 (medium)
-
Changed
Sophora-Events aufsynchronisieren nachdem der Metadata Supplier gestoppt war
– SOMSI-108 (medium)
-
Changed
Anbindung an Player API schaffen
– SOMSI-65 (medium)
-
Changed
Anlegen von Inhalten in der ARD-Core-API auch bei publishAt-Events unterstützen
– SOMSI-64 (medium)
-
Changed
Metadata Supplier muss auch ohne Sophora-Anbindung ausgeführt werden können
– SOMSI-44 (medium)
-
Changed
Rahmenwerk für kundenspezifische Mappings im Sophora Metadata Supplier schaffen
– SOMSI-17 (medium)
-
Changed
Projekt für Sophora Metadata Supplier anlegen
– SOMSI-16 (medium)
-
Changed
Das Reagieren auf die (inoffizielle) Statusänderung "PUBLISH_AT_CANCELED" ermöglichen
– SOMSI-144 (medium)
-
Changed
Health-Endpunkte und Metriken im Sophora Metadata Supplier anbieten
– SOMSI-135 (medium)
-
Changed
Entwicklung von kundenspezifischen Mappings in IDEs besser unterstützen
– SOMSI-134 (medium)
Notes
Die ausführbare metadata-supplier-application-<version>.jar wurde in metadata-supplier-application-<version>-executable.jar umbenannt. Start-/Stop-Skripte, die diese jar ausführen, müssen dementsprechend angepasst werden. Auch die metadata-supplier-application.conf muss in metadata-supplier-application-executable.conf umbenannt werden, sofern vorhanden. Bei der metadata-supplier-application-<version>.jar handelt es sich jetzt stattdessen nur um das einfache Artefakt der metadata-supplier-application, welche für die Plugin-Entwicklung in einem Launcher-Projekt genutzt werden kann.
-
Changed
Pflichtfelder "alt" und "producerName" für Images nachziehen
– SOMSI-132 (medium)
-
Changed
Versionen für Module vom SMS und SDS im DependencyManagement vorgeben
– SOMSI-258 (medium)
Notes
Mapping-Plugin-Projekte können für einfacheres und konsistentes Dependency Management nun die "pom.xml" von "metadatasupplier-parent" importieren
-
Changed
Standardmäßig die neue Test-Delivery-API-URL statt der einzelnen Core API-Service-URLs nutzen
– SOMSI-253 (medium)
Notes
Die verschiedenen Services der ARD Mediathek/Audiothek (wie Image-Service, Asset-API und Player-API) werden mittlerweile unter einer Delivery-API-URL zusammengefasst und bereitgestellt. Daher lauten die Standard-URL-Konfigurationen im SMS für Image-Service, Asset-API und Player-API nun jeweils https://deliver-test.ard.de/delivery-api statt https://deliver-test.ard.de/image-service, https://deliver-test.ard.de/asset-api und https://deliver-test.ard.de/player-api.
Bei bestehenden SMS-Installationen, die die ARD Mediathek/Audiothek Service-URLs in der application.yml eingetragen haben, müssen diese URLs für jeden der drei Services entsprechend angepasst werden: URL für das Testsystem der ARD Mediathek/Audiothek: https://deliver-test.ard.de/delivery-api bzw. URL für das Live-System der ARD Mediathek/Audiothek: https://deliver.ard.de/delivery-api
-
Changed
NormDbLocation-Ids im CoreId-Format übertragen
– SOMSI-385 (medium)
Notes
Der Builder für NormDbLocations nimmt die Id nun als CoreId-Objekt und als String entgegen. Wenn die Id als String übergeben wird, wird sie ins CoreId-Format umgewandelt, wenn nötig. Z.B. aus dem String "vokabel-1572" wird "urn:ard:location:e4f12d7dba8c438f" und aus dem String "1572" wird ebenfalls "urn:ard:location:e4f12d7dba8c438f". Die Angabe von "urn:ard:location:e4f12d7dba8c438f" bleibt unverändert. Mappings sollten dennoch direkt ein CoreId-Objekt statt einen String übergeben.
-
Changed
Hilfsmethode für Mapping von Genres und Subgenres an geänderte Auswahlwertstruktur anpassen
– SOMSI-330 (medium)
Notes
Die Hilfsmethoden der ArdNormDbUtil- und SdsArdNormDbUtil-Klassen können jetzt auch die Vokabel-IDs aus Genre- und Subgenre-Auswahlwerten auslesen, die der neuen Struktur folgen, welche mit dem ARD Metadatenpaket 2 eingeführt wurde. Genres und Subgenres, die noch der alten Struktur folgen, funktionieren weiterhin mit den Hilfsmethoden.
-
Changed
ArtworkTypes umbenennen
– SOMSI-329 (medium)
Notes
Statt ArtworkType COVER_ARTWORK und STAGE_ARTWORK gibt es nun ArtworkType COVER und BACKDROP.
-
Changed
Version der Spring-Data-Sophora-Commons Dependency vorgeben
– SOMSI-294 (medium)
Notes
Der Metadata Supplier gibt nun die Version von spring-data-sophora-commons vor, so dass Mapper-Projekte diese einfach verwenden können.
-
Changed
Dependencies aktualisiert: Apache Commons Text und Commons Lang 3
– SOMSI-272 (medium)
Notes
Diverse Abhängigkeiten wurden aktualisiert
-
Changed
Anpassungen für Java 17
– SOMSI-269 (medium)
-
Improved
Publications sollen auch ohne ImageCollection angelegt werden können
– SOMSI-225 (high)
Notes
Publications können auch angelegt werden, ohne explizit Images hinzufügen zu müssen. In dem Fall werden in der ARD Mediathek/Audiothek die Bilder aus dem referenzierten Item verwendet.
-
Improved
Metriken für Job-Queue bereitstellen
– SOMSI-336 (high)
Notes
Zum Auslesen der aktuellen Anzahl der aus Sophora getriggerten und noch abzuarbeitenden Mapping-Aufträge wurde die neue Metrik "metadatasupplier.supplyjob.queue.size" hinzugefügt. Die Anzahl der insgesamt aus Sophora getriggerten bzw. abgearbeiteten Mapping-Aufträge seit SMS-Start kann nun über die neuen Metriken "metadatasupplier.supplyjob.queued" bzw. "metadatasupplier.supplyjob.executed" abgefragt werden. Die Gesamtanzahl der Mapping-Aufträge, deren Abarbeitung aufgrund unvorhergesehener Fehler abgebrochen ist, kann über die neue Metrik "metadatasupplier.supplyjob.executionerrors" ausgelesen werden.
-
Improved
Versionsnummer im Logfile ausgeben
– SOMSI-116 (medium)
-
Improved
Unpublish und Republish optimieren
– SOMSI-81 (medium)
Notes
Die Operationen "unpublish" bzw. "republish" an der ARD Core API werden nur noch für veröffentlichbare Entitäten ausgeführt, bei denen der Sichtbarkeitszustand geändert werden muss.
-
Improved
Feedback bei Fehlern während des Mappings geben
– SOMSI-63 (medium)
-
Improved
Zulieferung von Binärdaten in Image-Entität unterstützen
– SOMSI-49 (medium)
-
Improved
Feedback bei Fehlern während des Mappings oder beim Anlegen im ARD-Core ermöglichen
– SOMSI-41 (medium)
-
Improved
CompletionStage/Futures im ArdCoreConnector richtig nutzen
– SOMSI-40 (medium)
-
Improved
ARD-Core-Anteil aus Sophora Metadata Supplier in eigenes Git-Repo umziehen
– SOMSI-38 (medium)
-
Improved
Feld originalClipExternalId in IPublication unterstützen
– SOMSI-206 (medium)
Notes
Bei Publications kann jetzt auch das Feld "originalClipExternalId" gesetzt werden.
-
Improved
Verhindern, dass XML statt JSON zum ARD-Core geschickt wird
– SOMSI-163 (medium)
-
Improved
Im Feedback soll der Begriff "ARD Mediathek/Audiothek" verwendet werden
– SOMSI-161 (medium)
-
Improved
Beispiel-Mapper-Plugin um Spring-Data-Sophora erweitern
– SOMSI-143 (medium)
Notes
Das "metadata-supplier-plugin-example" enthält jetzt zusätzlich einen Beispiel-Mapper, der Spring-Data-Sophora nutzt. Außerdem wir ein "jar-with-dependencies" erstellt. GroupId: "com.subshell.sophora.metadatasupplier", ArtifactId: "metadata-supplier-plugin-example" bzw. "metadata-supplier-plugin-example-launcher".
-
Improved
Feedback bzgl. "unpublish" und "republish" verbessern
– SOMSI-257 (medium)
Notes
Es gibt nun keine "Erfolgreich an die ARD Mediathek/Audiothek gesendet"-Feedbackmeldung mehr für Objekte vom Typ Publishable, da über diese keine Resourcen in der Mediathek angelegt oder inhaltlich aktualisiert werden können. Die Feedbackmeldungen "Erfolgreich in der ARD Mediathek/Audiothek veröffentlicht" bzw. "Erfolgreich aus der ARD Mediathek/Audiothek entfernt" erscheinen weiterhin.
Es gibt neue, zusätzliche Feedbackmeldungen, wenn Resourcen in der ARD Mediathek/Audiothek veröffentlicht/depubliziert werden sollten, die bereits veröffentlicht/depubliziert sind: "Ein (erneutes) Veröffentlichen in der ARD Mediathek/Audiothek war nicht notwendig" und "Ein (erneutes) Entfernen aus der ARD Mediathek/Audiothek war nicht notwendig".
Es gibt neue, zusätzliche Feedbackmeldungen, wenn Resourcen in der ARD Mediathek/Audiothek veröffentlicht/depubliziert werden sollten, die dort gar nicht existieren: "Ein Veröffentlichen in der ARD Mediathek/Audiothek war nicht möglich" bzw. "Ein Entfernen aus der ARD Mediathek/Audiothek war nicht möglich".
-
Improved
Strukturiertes Logging: Image-Data soll nicht geloggt werden, damit Logfiles klein bleiben
– SOMSI-255 (medium)
Notes
Alle Resourcen werden nur noch auf Trace-Level geloggt.
-
Improved
Versionsnummern der Mapping-Klassen loggen
– SOMSI-244 (medium)
Notes
Wenn die <my-mapping>-jar-with-dependencies.jar eine META-INF/MANIFEST.MF mit Eintrag für "Implementation-Version" hat, wird die Versionsnummer der Mapper-Klassen geloggt.
-
Improved
Änderungen aus der Doku der ARD Core API nachziehen
– SOMSI-239 (medium)
Notes
Der JavaDoc an den Interfaces für Resourcen (IShow, ISeason, IEpisode, usw.) wurde aktualisiert.
-
Improved
Der ImageMapper soll auch die Seitenverhältnisse der gemappten Bilder liefern
– SOMSI-227 (medium)
Notes
Der ImageMapper bietet nun zusätzlich die Methode mapImagesToAspectRatioMap(IImageDataProvider imageDataProvider) an, welche Map<IAspectRatio, IImage> zurück liefert.
-
Improved
Inkompatibilitäten zwischen SMS und Mapping sollen geloggt werden und zum Beenden des SMS führen
– SOMSI-223 (medium)
Notes
Beim Auftreten eines LinkageError zwischen SMS und Mapping erscheint dieser nun in der Logdatei und das SMS wird mit Exitcode 192 beendet.
-
Improved
StickyNoteFeedbackHandler soll keinen langen Stack loggen, wenn das Sophora-Dokument nicht existiert
– SOMSI-219 (medium)
-
Improved
Strukturiertes Logging einbauen
– SOMSI-218 (medium)
Notes
Über den VM-Parameter -Dspring.profiles.active=json-logs (oder über die Angabe in der application.yml) kann strukturiertes (Json-)Logging aktiviert werden.
Vorsicht: Fügt eine Abhängigkeit zu "net.logstash.logback" "logstash-logback-encoder" hinzu, die in Mapping-Projekten ggf. zu Abhängigkeitskonflikten mit Jackson führen kann.
-
Improved
Converter für Strings im Format "HH:MM:SS.ss" nach "PTxHxMx.xxxS" anbieten (ISO 8601)
– SOMSI-217 (medium)
Notes
In "metadata-supplier-sophora-commons" gibt es nun einen com.subshell.sophora.metadatasupplier.sophora.commons.Iso8601Converter
-
Improved
Methoden zum Erzeugen der CoreId aus Auswahlwertdokumenten für GenreCategories, SubgenreCategories und ThematicCategories bereitstellen
– SOMSI-215 (medium)
Notes
In com.subshell.sophora.metadatasupplier.sophora.commons.ArdNormDbUtil sind nun entsprechende Methoden enthalten
-
Improved
Hilfsmethoden bereitstellen, um mehrere Enums aus mehreren Strings zu erhalten
– SOMSI-214 (medium)
Notes
Die Enums aus com.subshell.ardcore.model.types haben nun alle eine valuesOf(Collection<String> names)-Methode
-
Improved
Tests für die automatische Erzeugung von ImageCollections hinzufügen
– SOMSI-355 (medium)
Notes
Das bestehende Verhalten bei der Erzeugung von ImageCollections wurde durch weitere Unittests abgesichert
-
Improved
Deutschsprachige Validierungsmeldungen für Felder des ARD Metadatenpakets 2 verbessern
– SOMSI-352 (medium)
Notes
Manche deutsche Übersetzungen der englischsprachigen Validierungsmeldungen von der ARD Mediathek/Audiothek wurden verbessert
-
Improved
AspectRatio um 2:3 erweitern
– SOMSI-337 (medium)
Notes
Bei Bildern sind nun folgende Seitenverhältnisse möglich: 2:3, 3:4, 16:7, 16:9, 32:9, 64:9
-
Improved
Feedback bei Exceptions in der accept()-Methode von Mappern zurückgeben
– SOMSI-284 (medium)
Notes
Exceptions in IResourceMapper.accept(...) werden nun abgefangen und so behandelt, als ob es keinen Mapper für die Source gäbe. Eine entsprechende Feedbackmeldung wird zurückgegeben.
-
Improved
Felder für Core-IDs sollen in Builder-Methoden CoreId-Objekte akzeptieren
– SOMSI-172 (low)
Notes
ACHTUNG: Inkompatible Model-API-Änderung! Die Felder genreCategoryId, subgenreCategoryIds und thematicCategoryIds an Shows, Sections, Seasons usw. sind nun vom Typ CoreId statt String! Die Mapper-Projekte/-Klassen müssen dementsprechend angepasst werden, bevor diese Metadata Supplier Version produktiv eingesetzt wird, ansonsten funktioniert das Mapping nicht!
Dazu `String genreCategoryCoreId = "urn:ard:category-genre:myExternalIdHash";` ändern zu `CoreId genreCategoryCoreId = CoreId.create("urn:ard:category-genre:myExternalIdHash");` oder `CoreId genreCategoryCoreId = CoreId.create(Type.GENRE_CATEGORY.getCoreIdPrefix(), "myExternalIdHash");` bzw. `String genreCategoryId = CoreId.create(Type.GENRE_CATEGORY, "myExternalId").getId();` ändern zu `CoreId genreCategoryCoreId = CoreId.create(Type.GENRE_CATEGORY, "myExternalId");`.
Zum Lesen von List<CoreId> als List<String> (z.B. in Tests) kann CoreId.getStrings() verwendet werden, falls benötigt.
-
Improved
FeedbackHandler für Haftnotizen soll nur greifen, wenn Sophora-Dokumente gemapped wurden
– SOMSI-160 (low)
-
Added
Priorisierungsmöglichkeit für Aufträge aus Sophora im SMS anbieten
– SOMSI-364 (medium)
Notes
Die Behandlung von Sophora-Dokumentänderungen kann nun priorisiert werden ("normal" und "hoch"). Auf diese Weise lassen sich z.B. redaktionelle Dokumentänderungen vor automatischen Dokumentänderungen (bspw. durch den Sophora-Importer) an die ARD Mediathek/Audiothek senden. Abgrenzung: Mappings, die per REST-Schnittstelle oder "Used Sources"-Feature ausgelöst werden, können hiermit nicht priorisiert werden. Weitere Informationen sind dem "Sophora Metadata Supplier for ARD Mediathek/Audiothek Developing Guide" unter dem Stichwort "IPrioritySetter" zu entnehmen.
Monitoring:
Die bisherigen Metriken der SupplyJob-Queue wurden beibehalten und spiegeln den Gesamtzustand der Queue wieder. Zusätzlich sind folgende Metriken neu hinzugekommen, welche sich auf die jeweilige Priorität beziehen (<priority> steht für "normal" bzw. "high"):
- metadatasupplier.supplyjob.<priority>.queue.size
- metadatasupplier.supplyjob.<priority>.queued
- metadatasupplier.supplyjob.<priority>.executed
Die Entgegennahme von Dokumentänderungsevents und deren Abarbeitung wurde in diesem Zuge voneinander getrennt. Dafür wurde eine Event-Queue eingeführt und vor der SupplyJob-Queue angesiedelt. Folgende neue Metriken zeigen den Zustand dieser Event-Queue an:
- metadatasupplier.event.queue.size
- metadatasupplier.event.queued
- metadatasupplier.event.executed
- metadatasupplier.event.executionerrors
-
Added
Zulieferung der Felder des ARD Metadatenpakets 3 per SMS ermöglichen
– SOMSI-350 (medium)
Notes
Die folgenden neuen Felder können nun angeliefert werden:
- "companyCredits" (für Seasons, Shows, EventLivestreams, Episoden, Sections und Extras)
- "creationBrid" (für Seasons, Shows, EventLivestreams, Episoden, Sections, Extras und Permanent-Livestreams)
- "creativeCommonsLicense" (für Episoden, Sections und Extras)
- "isClosedNarration" (für Shows mit Show-Type "INFINITE_SERIES")
- "isSensitiveContent" (für Shows, EventLivestreams, Episoden, Sections und Extras)
- "loginOnlyUntil" (für Publications)
- "permanentLivestreamType" (für PermanentLivestreams)
- "producedForOnDemand" (für Shows (nur Audio))
- "publicationBrid" (für Publications und Permanent-Livestreams)
- "relatedShowIds" (für Shows)
- "showNotes" (für Episoden)
- "videoLanguage" (für VideoBinaries)
Außerdem:
- Die deprecated Felder "isMovie" und "premiereDate" wurden aus Episoden komplett entfernt
- Das Feld "involvedInternalInstitutionsAndFinancialShares" von InternalOwnerships ist nun kein Pflichtfeld mehr und braucht somit nicht mehr explizit gesetzt werden
Folgende Message-Keys wurde korrigiert:
- error.deliveryapi.service.validation.image_binary.undetermineable_mediatype => error.deliveryapi.service.validation.image_binary.indeterminable_mediatype
- error.deliveryapi.service.validation.asset.category_distribution_missmatch_publisher_type => error.deliveryapi.service.validation.asset.category_distribution_mismatch_publisher_type
Folgende Message-Keys sind neu hinzugekommen:
- error.deliveryapi.service.brid.brid_not_unique
- error.deliveryapi.service.validation.must_be_equal_or_greater_than
- error.deliveryapi.service.validation.audio_binary.audiotracks.invalid_audioversion
- error.deliveryapi.service.validation.video_binary.no_embedded_subtitles_or_sign_language_available_for_videoLanguage
- error.deliveryapi.service.validation.video_binary.incorrect_language_type_for_videoLanguage_with_sign_languages
- error.deliveryapi.service.validation.video_binary.incorrect_language_type_for_videoLanguage_with_subtitles
- error.deliveryapi.service.validation.asset.invalid_html_in_shownotes
- error.deliveryapi.service.validation.asset.company_credit.exactly_one_identifier_must_be_set
- error.deliveryapi.service.validation.asset.company_credit.role_description_mandatory_for_role_other
- error.deliveryapi.service.validation.show.produced_for_on_demand_not_supported_for_video_shows
- error.deliveryapi.service.validation.show.is_closed_narration_not_valid_for_show_type
- error.deliveryapi.service.validation.publication.login_only_until_not_after_created
- error.deliveryapi.service.validation.publication.login_only_until_not_after_start_date
- error.deliveryapi.service.validation.publication.login_only_until_with_event_livestream
- error.deliveryapi.service.validation.content_event.content_event_unique_type
- error.deliveryapi.service.validation.content_event.content_events_overlap
- error.deliveryapi.service.validation.content_event.content_events_type_ordering
Die vollständige Liste aller Message-Keys und deren Texte befindet sich im ARD-Developer-Portal.
-
Added
Zulieferung der personCredits-, audioTracks- und contentEvents-Felder des ARD Metadatenpakets 2 per SMS ermöglichen
– SOMSI-318 (medium)
Notes
"personCredits" wird an allen Items und Groupings unterstützt; "audioTracks"-Feld wird an allen Binaries unterstützt; "subtitleTracks" wird an VideoBinaries unterstützt; "contentEvents"-Feld wird an allen OnDemand Inhalten (Episode, Extra, Section) unterstützt; "language" und "subtitleType" werden an Subtitle unterstützt
-
Added
Zulieferung der ersten Felder des ARD Metadatenpakets 2 per SMS ermöglichen
– SOMSI-296 (medium)
Notes
An Groupings (Season und Show), Items (EventLivestream, Episode, Section und Extra) sowie PermanentLivestreams können nun die Felder "contentRatings", "countriesOfOrigin", "embeddingType", "externalContentIds", "geoLocations", "internalOwnership", "normDbLocations", "originalRelease", "originalSpokenLanguages" und "seo" übergeben werden. Außerdem lassen sich an Images die Felder "artworkType" und "isBranded" setzen.
-
Added
Feedback im SMS erweitern: Message-Codes, HTTP-Status und UsedSources
– SOMSI-286 (medium)
Notes
Das Feedback wurde um Message-Codes mit Platzhalter-Argumenten, einer Auflistung der zusätzlich verwendeten Quellen (Used Sources) und den jew. HTTP-Status-Code von der ARD Mediathek/Audiothek erweitert. Die bisher hart codierten Feedbacktexte können somit nun per "messages.properties"-Dateien individualisiert werden. Manche der Texte wurden bereits umformuliert. Achtung: Die Textkonstanten aus FeedbackService, UnpublishOperation und RepublishOperation wurden entfernt.
Damit die Meldungstexte im Feedback und die Haftnotiztexte in den Sophora-Dokumenten weiterhin in deutscher Sprache erscheinen, muss der Metadata Supplier mit deutschem Locale gestartet werden. Diese Haftnotiztexte lassen sich ebenfalls individualisieren.
Die beim Mapping verwendeten Quellen (Used Sources) werden standardmäßig ebenfalls in die Haftnotiz geschrieben. Dies lässt sich per Konfigurationsparameter "metadata-supplier-sophora.attach-used-sources-to-sticky-notes" in der application.yml abschalten.
Weitere Informationen befinden sich in der Dokumentation zum Sophora Metadata Supplier.
-
Added
Der Metadata Supplier soll JMX per HTTP (Jolokia) anbieten und den HTTP-Port in der Konfiguration mitliefern
– SOMSI-266 (medium)
Notes
JMX MBeans können nun per HTTP unter /actuator/jolokia/ verwendet werden. Ab Sophora 4 ist der Sophora Metadata Supplier damit auch im Sophora Admin Dashboard monitorbar.
-
Added
Benutzerdefinierte Texte zu Fehlermeldungen der Core API ermöglichen
– SOMSI-260 (medium)
Notes
Texte zu Fehlermeldungen aus der ARD Core API werden nun je nach Default Locale vom Sophora Metadata Supplier auf deutsch oder englisch (default) als Feedback ausgegeben. Darüber hinaus ist es möglich, eigene Übersetzungen zu verwenden. Dazu müssen entsprechende "messages properties"-Datei(en) im "i18n"-Verzeichnis der Sophora Metadata Supplier Installation abgelegt werden. Weitere Information hierzu sind der Dokumentation zu entnehmen.
-
Added
IdUtils.createId() für mehrere Resources anbieten
– SOMSI-241 (medium)
Notes
Neben "CoreId createId(IResource resource)" gibt es jetzt auch "List<CoreId> createIds(Collection<? extends IResource> resources)"
-
Added
Hilfsmethoden bzgl. Genres, Categories und Tenants zu "metadata-supplier-spring-data-sophora-commons" hinzufügen
– SOMSI-240 (medium)
Notes
Die Klassen com.subshell.sophora.metadatasupplier.sds.commons.SdsArdNormDbUtil und com.subshell.sophora.metadatasupplier.sds.commons.TenantUtil aus dem neuen "metadata-supplier-spring-data-sophora-commons"-Artefakt bieten Methoden an, um aus SDS-MultiSelectValue-Objekten entsprechende CoreIds für (Sub)GenreCategories oder ThematicCategories bzw. die Tenants zu erhalten.
-
Added
Ermöglichen des Anlieferns der "alten" Term-IDs
– SOMSI-238 (medium)
Notes
Bei AudioBinary und VideoBinary kann die TermId nun statt im CoreID-Format (z.B. "urn:ard:termid-video:9bb5a34d66e2ec19") auch im CcAvTermId-Format (z.B. "1.2.3.14.1") angegeben werden, z.B. IVideoBinary videoBinary = VideoBinary.builder().with...(...).withCcAvTermId(CcAvTermId.of("1.2.3.14.1")).build();
-
Added
Methode anbieten, um aus einer ExternalId eine CoreId oder null zu erzeugen
– SOMSI-237 (medium)
Notes
IdUtils.createIdOrNull(Type type, ExternalId externalId) liefert die CoreId zu dem angegebenen Type und ExternalId. Falls keine ExternalId angegeben wurde, liefert die Methode null (im Gegensatz zu IdUtils.createId(Type type, ExternalId externalId), was eine Zufalls-Id liefert).
-
Added
Feedback-Meldungen sollten nicht mehrfach zum Feedback hinzugefügt werden können
– SOMSI-230 (medium)
Notes
Beim Hinzufügen von Feedback-Einträgen zu Feedbacks werden bereits vorhandene Einträge nun ignoriert, so dass der gleiche Feedback-Eintrag nicht mehrfach im Feedback enthalten ist.
-
Added
Metriken für UsedSources und MappedResources hinzufügen
– SOMSI-229 (medium)
Notes
Die Metriken zu Anzahl und Größe der "Used Sources" und "Mapped Resources" sind nun unter http://<host>:<port>/actuator/metrics/ abrufbar.
-
Added
Angabe zusätzlicher Mapping-Parameter ermöglichen
– SOMSI-212 (medium)
Notes
Per IMetadataSupplier.supply(SourceDescriptor, Parameters) und über die REST-Schnittstelle können nun zusätzliche Parameter von außen ins Mapping reingereicht werden.
ACHTUNG: Inkompatible API-Änderung! IResourceMapper.accept(SourceDescriptor) wurde geändert zu IResourceMapper.accept(SourceDescriptor, Parameters), d.h. alle Mapper-Klassen müssen die neue Methodensignatur implementieren bevor diese Metadata Supplier Version produktiv eingesetzt wird, ansonsten funktioniert das Mapping nicht! In Tests kann Parameters.of() für den neuen Methodenparameter übergeben werden.
In IResourceMapper.mapToResources(SourceDescriptor, IMappingContext) kann über den IMappingContext auf die Parameter zugegriffen werden, falls benötigt.
-
Added
Wiederverwendbaren Sophora-Mapping-Code im Sophora Metadata Supplier anbieten
– SOMSI-202 (medium)
Notes
Das Projekt "metadata-supplier-sophora-commons" enthält nun nützliche Hilfsklassen und -methoden, um Sophora-Inhalte zu IResource-Objekten zu mappen. Z.B. ImageMapper, IImageVariantsProvider und IImageDataProvider, um Sophora-Bilddokumente zu mappen, wobei pro Seitenverhältnis aus einer Liste von Bildvarianten die erste Bildvariante des Bilddokumentes mit Binärdaten verwendet wird (Codebeispiel befindet sich im "metadata-supplier-plugin-example"). ArdNormDbUtil, um aus einem Auswahlwertdokument die ARD-Normdatenbank-Werte zu ermitteln. SophoraStringUtils, um z.B. aus dem "sophora:tags"-Property die einzelnen Tag-Einträge als Liste zu erhalten. Außerdem wurde Logging beim Hinzufügen von Feedback-Einträgen eingebaut und die IdUtils um eine Methode zum Erzeugen einer CoreId aus einer ExternalId erweitert.
-
Added
Depublizieren von nicht mehr gemappten Resourcen unterstützen
– SOMSI-196 (medium)
Notes
Per IMappingContext.setUnpublishPreviouslyMappedResources(true/false) können die Resourcen zum Mappingergebnis hinzugefügt werden, welche beim aktuellen Mappingdurchlauf depubliziert werden müssen, weil sie beim vorherigen Durchlauf in der ARD Mediathek/Audiothek erzeugt und publiziert wurden, nun aber z.B. nicht mehr in der Quelle enthalten sind und deswegen in der ARD Mediathek/Audiothek depubliziert sein sollen (sofern sie nicht auch zu einer anderen Source gemappt und veröffentlicht wurden).
Außerdem existiert per IMappingContext.getResourceProvider() Zugriff auf die gespeicherten Informationen zu den zuletzt erfolgreich gemappten Resourcen der gerade zu mappenden Source.
-
Added
Retry-Mechanik für Anfragen an Core API ermöglichen, wenn zuvor angelegte Ressourcen noch nicht gefunden werden konnten
– SOMSI-191 (medium)
Notes
Per "ardmedialibrary.retry.maxAttempts" und "ardmedialibrary.retry.delayInMillis" kann konfiguriert werden, wie häufig und in welchen Abständen versucht werden soll, eine Resource in der ARD Mediathek/Audiothek anzulegen bzw. zu aktualisieren, wenn eine "Resource does not exist"-Fehlermeldung auftritt.
-
Added
Zugriff auf die Verwendungen (UsedSources) in Mappings ermöglichen
– SOMSI-180 (medium)
Notes
Neue Methode hinzugefügt: IMappingContext.getPreviousUsedSources()
-
Added
Unpublish und Republish von Objekten nur anhand der External-ID ermöglichen
– SOMSI-179 (medium)
Notes
Über die neue IResource-Implementation "Publishable" lassen sich Resourcen in der ARD Mediathek/Audiothek (de)publizieren, ohne dass die komplette konkrete Resource (z.B. Show) gemappt werden muss.
Zusätzlich kann per IResource.createIfNotExisting() bestimmt werden, ob eine Resource in der ARD Mediathek/Audiothek erzeugt werden soll, wenn sie dort noch nicht existiert (Standard ist "true").
-
Added
Unpublish- und Republish-Operationen per isPublished-Flag von IPublishable-Resourcen auslösen
– SOMSI-152 (medium)
Notes
Der Metadata-Supplier verfügt nur noch über die Schnittstelle "supply(SourceDescriptor)". Die REST-Schnittstelle befindet sich bei /metadata-supplier/<source-type>/<source-id> ("put" und "get"). Die Mapper müssen bei Shows, Seasons, PermanentLivestreams und Publications nun per Builder.withPublished(true/false) angeben, ob die jeweilige Resource in der ARD Mediathek sichtbar sein soll oder nicht.
-
Added
IPublishable-Interface für veröffentlichbare IResource einführen
– SOMSI-151 (medium)
Notes
Die Mapper können bei Shows, Seasons, PermanentLivestreams und Publications nun per Builder.withPublished(true/false) angeben, ob die jeweilige Resource in der ARD Mediathek sichtbar sein soll oder nicht.
-
Added
Clientskript für die manuelle (Neu-)Anlieferung von Inhalten bereitstellen
– SOMSI-137 (medium)
Notes
Es gibt nun ein DeskClient-Skript "Zur ARD Mediathek/Audiothek senden", um das Senden von Inhalten an die ARD Mediathek/Audiothek zu triggern, ohne Sophora-Dokumente (erneut) veröffentlichen zu müssen. Weitere Informationen dazu sind dem Abschnitt "Client Script to manually trigger the Sophora Metadata Supplier" der Dokumentation "Sophora Metadata Supplier for ARD Mediathek/Audiothek Operation" zu entnehmen.
-
Added
Initiale Aufsynchronisierung abschaltbar machen
– SOMSI-125 (medium)
Notes
Per metadata-supplier-sophora:sync-at-startup:false in der application.yml kann die initiale Synchronisation der Inhalte aus dem Sophora-Server abgeschaltet werden
-
Added
REST-Schnittstelle für die Anlieferung von Inhalten zur ARD-Mediathek schaffen
– SOMSI-97 (medium)
-
Added
Verwendungen persistieren
– SOMSI-96 (medium)
-
Added
Per Konfiguration bestimmen, welche Sophora-Dokumentevents behandelt werden sollen
– SOMSI-80 (medium)
Notes
In der application.yml muss nun angegeben werden, welche Dokumentstatusänderungen bei welchen Dokumenttypen im Metadata Supplier behandelt werden sollen. Siehe Dokumentation für weitere Informationen.
-
Added
Änderungen an verwendeten Dokumenten müssen Aktualisierung von Entitäten in der ARD-Core-API auslösen
– SOMSI-55 (medium)
Version 4.39.1
– 4/2/26
Sophora Client API: 4.37.3.
-
Added
Zulieferung von Jugendmedienschutz-Deskriptoren (descriptorIds) ermöglichen
– SOMSI-549 (high)
Notes
An den ContentRatings bei Groupings (Show und Season), Items (Episode, Section, Extra und EventLivestream) sowie PermanentLivestreams kann nun das Feld "descriptorIds" übergeben werden.
Version 4.39.0
– 2/27/26
Sophora Client API: 4.37.3.
-
Added
Dry-Run-Modus zur Registrierung von Used Sources im SMS ermöglichen
– SOMSI-263 (high)
Notes
Der Sophora Metadata Supplier unterstützt nun Dry-Run-Modi, mit denen das Zuliefern an den ARD Core, das Persistieren von Used Sources und Mapped Resources sowie das Benachrichtigen der FeedbackHandler (z.B. zum Erzeugen der Haftnotizen an den Sophora-Dokumenten) einzeln abgeschaltet werden kann. Um den jeweiligen Modus bestimmen zu können, muss im Mapping-Projekt das Interface IModeSetter implementiert bzw. der Aufruf an der REST-Schnittstelle um den gewünschten Mode-Parameter erweitert werden.
FeedbackHandler können zudem selbst entscheiden, ob/wie sie den verwendeten Modus den Nutzern anzeigen. Standardmäßig wird vor die Meldungen in den Haftnotizen der Prefix "[Dry-Run]" gesetzt, wenn die Inhalte nicht zum ARD Core gesendet werden sollten (Message-Key: "sms.stickynote.mode.dryrun").
Weitere Informationen zum Dry-Run befinden sich in der Dokumentation.
Version 4.38.0
– 2/2/26
Sophora Client API: 4.37.1.
-
Added
Zulieferung von logoType-Feld an Images ermöglichen
– SOMSI-541 (medium)
-
Added
Neue Priorität "LOW" zur Abarbeitung der Job-Queue hinzufügen
– SOMSI-540 (medium)
Notes
IPrioritySetter können nun neben Priority.HIGH und Priority.NORMAL auch eine Priority.LOW zurück geben, um Mapping-Aufträge niedrig zu priorisieren.
Monitoring:
Die bisherigen Metriken der SupplyJob-Queue wurden beibehalten und spiegeln weiterhin den Gesamtzustand der Queue wieder. Analog zu den Metriken für die "HIGH"- und "NORMAL"-Prioritäten sind Metriken für die neue "LOW"-Priorität hinzugekommen (<priority> steht für "high", "normal" und (neu) "low"):
- metadatasupplier.supplyjob.<priority>.queue.size
- metadatasupplier.supplyjob.<priority>.queued
- metadatasupplier.supplyjob.<priority>.executed
-
Added
Zulieferung von isBroadcastEvent-Feld an Shows ermöglichen
– SOMSI-539 (medium)
Version 4.37.0
– 10/24/25
Sophora Client API: 4.36.8.
-
Added
"X-ARD-User-Agent" im Request-Header an die ARD übertragen
– SOMSI-523 (medium)
Notes
In der 'application.yml' muss nun der Name des Zulieferers von Inhalten an die ARD Mediathek/Audiothek angegeben werden, zum Beispiel "ardmedialibrary.supplier.name: WDR". Falls dieser Parameter nicht gesetzt ist, lässt sich der Sophora-Metadata-Supplier nicht starten!
-
Added
SubtitleType um den Wert "FORCED" erweitern
– SOMSI-521 (medium)
Notes
SubtitleType verfügt nun über die Werte DEFAULT, SIMPLE_LANGUAGE, CLOSED_CAPTIONS und FORCED
Version 4.36.0
– 9/24/25
Sophora Client API: 4.36.6.
-
Added
GeoAvailability um den Wert "EU" erweitern
– SOMSI-479 (medium)
Notes
GeoAvailability verfügt nun über die Werte DE, DACH, EU und GLOBAL.
Version 4.35.0
– 9/9/25
Sophora Client API: 4.36.6.
-
Changed
Unterstützung für die Zulieferung von Bildern im Seitenverhältnis 19:4 entfernen
– SOMSI-517 (medium)
Notes
Das Enum 'com.subshell.sophora.metadatasupplier.sophora.commons.image.AspectRatio' enthält nun nicht mehr den Wert ASPECT_RATIO_19X4, da die ARD Mediathek/Audiothek das Seitenverhältnis 19:4 nicht mehr unterstützt. Mappings, die auf diesen Wert zugreifen, müssen entsprechend angepasst werden.
Version 4.34.2
– 8/22/25
Sophora Client API: 4.36.6.
-
Changed
Spring Data Sophora 5.8.6 bzw. 4.11.6 im SMS verwenden
– SOMSI-515 (high)
Notes
Das SMS 5.x verwendet nun Sophora-Core 5.17.0, Spring Data Sophora 5.8.6 und Spring Boot Sophora Commons 5.3.4.
Das SMS 4.x verwendet nun Sophora-Core 4.36.6, Spring Data Sophora 4.11.6 und Spring Boot Sophora Commons 4.3.25.
Version 4.34.1
– 8/22/25
Sophora Client API: 4.36.6.
Maintenance release / Sophora updates.
Version 4.34.0
– 7/4/25
Sophora Client API: 4.36.4.
-
Added
Zulieferung von importOrigin-Feld per SMS ermöglichen
– SOMSI-500 (high)
Notes
Es kann per Konfiguration in der application.yml für alle zulieferbaren Core API Entitäten das importOrigin-Feld angegeben werden.
Bitte beachten: Im Standardfall werden sämtliche Entitäten ohne importOrigin-Feld zugeliefert. Eine explizite Zulieferung des Feldes darf nur nach Absprache mit der ARD Mediathek/Audiothek erfolgen!
Version 4.33.0
– 4/29/25
Sophora Client API: 4.36.3.
-
Changed
SMS: Hochskalieren auf Mindestgröße bei Bildgenerierung
– SOMSI-495 (high)
Notes
Im com.subshell.sophora.metadatasupplier.sophora.commons.image.ImageMapper können die Methoden mapImages(IImageDataProvider imageDataProvider) und mapImagesToAspectRatioMap(IImageDataProvider imageDataProvider) nun zusätzlich mit IMappingContext als Parameter aufgerufen werden. Dieser wird für neue Feedback-Messages benötigt, welche angezeigt werden, wenn bei der Zulieferung ein Bild auf die Mindestgröße hochskaliert werden musste. Die Message-Codes lauten "sms.sophora.image.minimumSizeRequirementsNotSatisfied.height" und "sms.sophora.image.minimumSizeRequirementsNotSatisfied.width" und können auch aus der Konstanten-Klasse com.subshell.sophora.metadatasupplier.sophora.commons.feedback.MessageCodeConstants des neuen Projektes "metadata-supplier-sophora-commons-api" entnommen werden.
Version 4.32.3
– 4/10/25
Sophora Client API: 4.36.3.
-
Changed
Tomcat aktualisieren
– SOMSI-486 (medium)
Notes
Ab SMS 5.7.3 wird nun Tomcat 10.1.39 bzw. ab SMS 4.32.3 wird nun Tomcat 9.0.102 eingebunden
Version 4.32.2
– 2/21/25
Sophora Client API: 4.35.0.
-
Changed
Sophora-Core 4.35.0 bzw. 5.12.2 sowie aktuelle Basepom verwenden
– SOMSI-481 (medium)
Notes
Abhängigkeiten wurden aktualisiert.
Version 4.32.1
– 2/4/25
Sophora Client API: 4.34.12.
-
Changed
Seitenverhältnis-Bildvarianten: Gesperrte Varianten dürfen nicht zum Abbruch durch ImageVariantDisabledException führen
– SOMSI-476 (high)
Notes
Die Implementation der Methode com.subshell.sophora.metadatasupplier.sophora.commons.image.IImageDataProvider.getBinaryData() wirft bei gesperrten Seitenverhältnis-Bildvarianten standardmäßig keine Exception mehr. Stattdessen werden die Bildvarianten ignoriert, sodass der Mappingvorgang und in Folge auch die Zulieferung an die ARD Mediathek/Audiothek weiter durchgeführt werden können.
Version 4.32.0
– 1/27/25
Sophora Client API: 4.34.12.
-
Added
Seitenverhältnis-Bildvarianten unterstützen
– SOMSI-464 (medium)
Notes
Der ImageVariantsProvider verfügt nun über die neuen Methoden 'setImageSizeRequirementsForAspectRatio(IAspectRatio aspectRatio, ImageSizeRequirements imageSizeRequirements)' und 'getImageSizeRequirementsForAspectRatio(IAspectRatio aspectRatio)' für die Angabe einer von der ARD Mediathek/Audiothek gewünschten Bildgröße und einer Mindestgröße (entweder über die Höhe oder über die Breite)
Beispiel-Aufruf für eine gewünschte Breite von 3840px, aber mindestens 1920px bei 16:9-Bildvarianten:
'imageVariantsProvider.setImageSizeRequirementsForAspectRatio(ASPECT_RATIO_16X9, ImageSizeRequirements.createWithWidth(3840, 1920));'
Version 4.31.0
– 1/10/25
Sophora Client API: 4.34.10.
-
Fixed
SMS darf nicht starten, wenn MappedResources/UsedSources korrupt sind
– SOMSI-454 (critical)
Notes
Wenn beim Start der Anwendung eine der Dateien im data-Verzeichnis ("lastHandledEventDate.txt", "mappedResources.json", "usages.json") invalides Datenformat enthält, wird der Start abgebrochen.
Das Datum des zuletzt behandelten Sophora-Events wird nun zusätzlich ins Logfile geschrieben, so dass diese Information auch von dort abgelesen werden kann.
Die Dateien "mappedResources.json" und "usages.json" werden nun zunächst als tmp-Datei im data-Verzeichnis erzeugt und erst anschließend ersetzt, um die Originaldateien zu erhalten, falls die Anwendung während des Schreibens der Dateien beendet wird. Dadurch wird mehr Festplattenspeicherplatz benötigt.
Version 4.30.0
– 8/28/24
Sophora Client API: 4.34.2.
-
Changed
Im Docker-Image soll Java 17 verwendet werden
– SOMSI-409 (medium)
Notes
Das Docker-Image vom SMS enthält nun Java 17 statt Java 11. Das SMS ist weiterhin kompatibel mit Java 11.
-
Added
Komplette Anlieferungen (inkl. "UsedSources") sollen unterbunden werden können
– SOMSI-431 (medium)
Notes
Mapping-Projekte können nun bis zu eine ISourceFilter-Komponente bereitstellen, die entscheidet, ob ein Mapping-Auftrag überhaupt vom MetadataSupplier ausgeführt werden soll. Im Gegensatz zu der accept()-Methode der IResourceMapper-Implementationen wird mit dem ISourceFilter auch verhindert, dass nachfolgende Mappings (aufgrund des "Used Sources"-Mechanismus) ausgelöst werden. Wenn der SourceFilter ein Quellobjekt (Source) ablehnt, wird ein Feedback mit MessageCode "sms.source.denied" zurückgeliefert, ansonsten wird die Source wie gehabt gemappt und in der ARD Mediathek/Audiothek aktualisiert.
Die jeweilige Ausführungsdauer für den SourceFilter wird ebenfalls erfasst und sowohl im Feedback als auch über Prometheus-Metriken bereitgestellt.
Für abgelehnte Mapping-Aufträge wird standardmäßig keine Haftnotiz an Sophora-Dokumenten hinterlegt. Dies lässt sich jedoch in der application.yml mit dem Eintrag metadata-supplier-sophora.create-sticky-notes-for-denied-sources: true/false konfigurieren.
Version 4.29.0
– 8/26/24
Sophora Client API: 4.34.1.
-
Changed
Werte für "catalog"-Felder in ExternalContentId und ExternalPersonId anpassen
– SOMSI-441 (medium)
Notes
Im "Catalog"-Enum (für ExternalContentIds von Episoden, EventLivestreams, Extras, PermanentLivestreams, Seasons, Sections und Shows) wurde der Wert OTHER entfernt und APPLE_TV hinzugefügt.
Im "PersonCatalog"-Enum (für ExternalPersonIds in PersonCredits von Episoden, EventLivestreams, Extras, Seasons, Sections und Shows) wurde der Wert OTHER entfernt.
Version 4.28.2
– 7/30/24
Sophora Client API: 4.34.0.
-
Added
"allowDeprecatedTermIds"-Feld an Video- und AudioBinaries unterstützen
– SOMSI-430 (high)
Notes
AudioBinary und VideoBinary verfügen nun über das neue Feld "allowDeprecatedTermIds".
Version 4.28.1
– 7/9/24
Sophora Client API: 4.34.0.
-
Changed
URLs für Create-Operationen an ARD Core API dürfen nicht mit Slash enden
– SOMSI-423 (medium)
Notes
Create-Requests werden nun ohne Slash am Ende der URL aufgerufen, also z.B. ".../delivery-api/items/event-livestreams" statt ".../delivery-api/items/event-livestreams/"
-
Improved
Aussagekräftigere Validierungsmeldungen liefern
– SOMSI-422 (medium)
Notes
Einige Validierungsmeldungen wurden um die Platzhalter '${resourceFieldName}', '${coreId}' und '${resourceTypeName}' angereichert, um aussagekräftigere Texte zu erhalten. Zum Beispiel "Das Feld '${resourceFieldName}' der Ressource '${coreId}' vom Typ '${resourceTypeName}' muss gesetzt werden, wenn ContentEventType ${type} ist." statt einfach nur "Muss gesetzt werden, wenn ContentEventType ${type} ist."
Version 4.28.0
– 6/14/24
Sophora Client API: 4.32.0.
-
Added
Neue Felder timeInContent, progressbarIconId und participantIconId in ContentEvents unterstützen
– SOMSI-414 (medium)
Notes
ContentEvent verfügt über die neuen Felder timeInContent (String), progressbarIconId (CoreId) und participantIconId (CoreId)
Version 4.27.1
– 6/4/24
Sophora Client API: 4.32.0.
-
Fixed
Der Wechsel des Dokumentstatus von "publishAt" zu "prePublished" darf nicht zu "publishAtCanceled" führen
– SOMSI-415 (medium)
Notes
Der Zustandsübergang von Sophora-Dokumenten von "publishAt" zu "prePublished" wird nun als "prePublish" statt "publishAtCanceled" behandelt, da in dem Fall die Veröffentlichung nicht abgebrochen, sondern angestoßen wird (auf den Zustand "prePublished" folgt "published")
Version 4.27.0
– 5/29/24
Sophora Client API: 4.32.0.
-
Changed
Client-Skript zur manuellen Anlieferung: Behandlung von Timeouts verbessern
– SOMSI-381 (medium)
-
Improved
Die einzelnen Logmeldungen sollen dem auslösenden SourceDescriptor zugeordnet werden können
– SOMSI-403 (medium)
Notes
Der initiale SourceDescriptor und die Parameter des jeweiligen SMS-Aufrufs werden nun bei jeder zugehörigen Logmeldung mit geloggt. Technisch werden dazu am MDC (Mapped Diagnostic Context) intern die Werte "trigger_source" und "trigger_parameters" gesetzt.
-
Added
Bilder mit Seitenverhältnis 19:4 unterstützen
– SOMSI-411 (medium)
Notes
Der Enum com.subshell.sophora.metadatasupplier.sophora.commons.image.AspectRatio stellt nun auch einen Wert ASPECT_RATIO_19X4 bereit
-
Added
Neues Feld "nonUniqueMatchingBrid" unterstützen
– SOMSI-405 (medium)
Notes
Episoden, Sections, Extras und EventLivestreams verfügen nun über das neue Feld "nonUniqueMatchingBrid".
-
Added
Metriken für Ausführungsdauern hinzufügen
– SOMSI-404 (medium)
Notes
Es gibt nun Metriken für das Alter der Sophora-Events bzw. Supply-Jobs in der Event- bzw. Job-Queue (/actuator/metrics/metadatasupplier.event.ages und /actuator/metrics/metadatasupplier.supplyjob.ages).
Außerdem werden Metriken für die Ausführungsdauern der accept()- und mapToResources()-Methoden der einzelnen IResourceMapper sowie die Dauer zum Senden der erzeugten Resources an den ARD Core bereitgestellt (/actuator/metrics/metadatasupplier.mapper.accept, /actuator/metrics/metadatasupplier.mapper.map, /actuator/metrics/metadatasupplier.ardcore.calls).
Die Dauer zum Lesen/Schreiben der Used-Sources- und Mapped-Resources-Dateien steht nun ebenfalls als Metrik bereit (/actuator/metrics/metadatasupplier.persistence).
Alle diese Daten sind auch unter /actuator/prometheus abrufbar.
-
Added
Ausführungszeit der einzelnen SMS-Mapping-Aufträge im Log ausgeben
– SOMSI-367 (medium)
Notes
Die Ausführungsdauer der SMS-Aufrufe wird nun geloggt und auch im Feedback zurück geliefert ("diagnostic"). Dabei werden die Gesamtdauer des SMS-Aufrufs und Teildauern für einzelne Schritte erfasst (dazu gehören das Ermitteln des richtigen Mappers, das Mapping selbst und das Senden an die ARD Mediathek/Audiothek). Im eigenen Mapping-Code können über die neue Methode IMappingContext .addDurationOf(...) eigene Zeiten erfasst und zum Feedback hinzugefügt werden. Bei Anbindung an Sophora wird zusätzlich das Alter der einzelnen Einträge in der Event- und SupplyJob-Queue ermittelt und geloggt.
Version 4.26.0
– 4/18/24
Sophora Client API: 4.29.0.
-
Improved
Vorhandene Feedback-Haftnotizen sollen nicht verschwinden, wenn kein Mapping durchgeführt wird
– SOMSI-383 (medium)
Notes
Wenn bei einem (erneuten) Mappingdurchlauf für ein Sophora-Dokument keine gemappten Ressourcen entstehen, bleiben zuvor gesetzte SMS-Haftnotizen an dem Dokument erhalten, statt sie zu entfernen.
-
Improved
Erfolgreiche Depublikationen von Inhalten in der Mediathek/Audiothek sollen in Feedback-Haftnotizen mit aufgeführt werden
– SOMSI-377 (medium)
Notes
Es gibt einen neuen Message-Key "sms.stickynote.unpublish.success" mit dem Standardtext "Die zugehörigen Inhalte wurden am ${date} um ${time} Uhr erfolgreich in der ARD Mediathek/Audiothek depubliziert (${resourceDescriptors})". Der Text erscheint (zusätzlich) in der Haftnotiz am Sophora-Dokument, wenn mindestens eine gemappte Ressource erfolgreich in der ARD Mediathek/Audiothek depubliziert wurde.
Die Formulierung der Feedbacktexte mit den Message-Keys "sms.unpublish.error", "sms.unpublish.success", "sms.unpublish.unable", "sms.unpublish.unnecessary" wurden entsprechend angepasst, so dass die Inhalte nicht "aus der Mediathek entfernt", sondern "in der Mediathek depubliziert" wurden.
-
Added
MDP4-Feld "publisherId" auf Item-Ebene und "timestampInParent" in Sections unterstützen
– SOMSI-394 (medium)
Notes
Episodes, EventLivestreams, Extras und Sections verfügen nun über das Feld publisherId.
Sections verfügen zusätzlich über das neue Feld timestampInParent.
Version 4.25.0
– 3/28/24
Sophora Client API: 4.28.0.
-
Added
MDP4-Feld "hasLiveContentEvents" unterstützen
– SOMSI-388 (medium)
Notes
EventLivestreams verfügen nun über das neue Feld "hasLiveContentEvents".
Version 4.24.0
– 3/12/24
Sophora Client API: 4.28.0.
-
Changed
NormDbLocation-Ids im CoreId-Format übertragen
– SOMSI-385 (medium)
Notes
Der Builder für NormDbLocations nimmt die Id nun als CoreId-Objekt und als String entgegen. Wenn die Id als String übergeben wird, wird sie ins CoreId-Format umgewandelt, wenn nötig. Z.B. aus dem String "vokabel-1572" wird "urn:ard:location:e4f12d7dba8c438f" und aus dem String "1572" wird ebenfalls "urn:ard:location:e4f12d7dba8c438f". Die Angabe von "urn:ard:location:e4f12d7dba8c438f" bleibt unverändert. Mappings sollten dennoch direkt ein CoreId-Objekt statt einen String übergeben.
Version 4.23.0
– 2/8/24
Sophora Client API: 4.27.2.
-
Fixed
Während des Aufsynchronisierens von Sophora-Events dürfen neue Events nicht verloren gehen
– SOMSI-341 (high)
Notes
Während der Synchronisierung eingehende Sophora-Events werden nun nachträglich abgearbeitet
-
Added
Priorisierungsmöglichkeit für Aufträge aus Sophora im SMS anbieten
– SOMSI-364 (medium)
Notes
Die Behandlung von Sophora-Dokumentänderungen kann nun priorisiert werden ("normal" und "hoch"). Auf diese Weise lassen sich z.B. redaktionelle Dokumentänderungen vor automatischen Dokumentänderungen (bspw. durch den Sophora-Importer) an die ARD Mediathek/Audiothek senden. Abgrenzung: Mappings, die per REST-Schnittstelle oder "Used Sources"-Feature ausgelöst werden, können hiermit nicht priorisiert werden. Weitere Informationen sind dem "Sophora Metadata Supplier for ARD Mediathek/Audiothek Developing Guide" unter dem Stichwort "IPrioritySetter" zu entnehmen.
Monitoring:
Die bisherigen Metriken der SupplyJob-Queue wurden beibehalten und spiegeln den Gesamtzustand der Queue wieder. Zusätzlich sind folgende Metriken neu hinzugekommen, welche sich auf die jeweilige Priorität beziehen (<priority> steht für "normal" bzw. "high"):
- metadatasupplier.supplyjob.<priority>.queue.size
- metadatasupplier.supplyjob.<priority>.queued
- metadatasupplier.supplyjob.<priority>.executed
Die Entgegennahme von Dokumentänderungsevents und deren Abarbeitung wurde in diesem Zuge voneinander getrennt. Dafür wurde eine Event-Queue eingeführt und vor der SupplyJob-Queue angesiedelt. Folgende neue Metriken zeigen den Zustand dieser Event-Queue an:
- metadatasupplier.event.queue.size
- metadatasupplier.event.queued
- metadatasupplier.event.executed
- metadatasupplier.event.executionerrors
Version 4.22.1
– 12/19/23
Sophora Client API: 4.27.0, Spring Data Sophora: 4.8.0, Spring Boot Sophora Commons: 4.3.0
-
Fixed
Zeilenumbrüche bei Aufzählungen in Haftnotizmeldungen korrigieren
– SOMSI-368 (medium)
Notes
Behebt das Problem, dass URLs am Ende von einzelnen Aufzählungspunkten in den Feedback-Haftnotizen im DeskClient nicht (richtig) als Link erkannt werden
Version 4.22.0
– 12/10/23
Sophora Client API: 4.26.0.
-
Improved
Deutschsprachige Validierungsmeldungen für Felder des ARD Metadatenpakets 2 verbessern
– SOMSI-352 (medium)
Notes
Manche deutsche Übersetzungen der englischsprachigen Validierungsmeldungen von der ARD Mediathek/Audiothek wurden verbessert
-
Added
Zulieferung der Felder des ARD Metadatenpakets 3 per SMS ermöglichen
– SOMSI-350 (medium)
Notes
Die folgenden neuen Felder können nun angeliefert werden:
- "companyCredits" (für Seasons, Shows, EventLivestreams, Episoden, Sections und Extras)
- "creationBrid" (für Seasons, Shows, EventLivestreams, Episoden, Sections, Extras und Permanent-Livestreams)
- "creativeCommonsLicense" (für Episoden, Sections und Extras)
- "isClosedNarration" (für Shows mit Show-Type "INFINITE_SERIES")
- "isSensitiveContent" (für Shows, EventLivestreams, Episoden, Sections und Extras)
- "loginOnlyUntil" (für Publications)
- "permanentLivestreamType" (für PermanentLivestreams)
- "producedForOnDemand" (für Shows (nur Audio))
- "publicationBrid" (für Publications und Permanent-Livestreams)
- "relatedShowIds" (für Shows)
- "showNotes" (für Episoden)
- "videoLanguage" (für VideoBinaries)
Außerdem:
- Die deprecated Felder "isMovie" und "premiereDate" wurden aus Episoden komplett entfernt
- Das Feld "involvedInternalInstitutionsAndFinancialShares" von InternalOwnerships ist nun kein Pflichtfeld mehr und braucht somit nicht mehr explizit gesetzt werden
Folgende Message-Keys wurde korrigiert:
- error.deliveryapi.service.validation.image_binary.undetermineable_mediatype => error.deliveryapi.service.validation.image_binary.indeterminable_mediatype
- error.deliveryapi.service.validation.asset.category_distribution_missmatch_publisher_type => error.deliveryapi.service.validation.asset.category_distribution_mismatch_publisher_type
Folgende Message-Keys sind neu hinzugekommen:
- error.deliveryapi.service.brid.brid_not_unique
- error.deliveryapi.service.validation.must_be_equal_or_greater_than
- error.deliveryapi.service.validation.audio_binary.audiotracks.invalid_audioversion
- error.deliveryapi.service.validation.video_binary.no_embedded_subtitles_or_sign_language_available_for_videoLanguage
- error.deliveryapi.service.validation.video_binary.incorrect_language_type_for_videoLanguage_with_sign_languages
- error.deliveryapi.service.validation.video_binary.incorrect_language_type_for_videoLanguage_with_subtitles
- error.deliveryapi.service.validation.asset.invalid_html_in_shownotes
- error.deliveryapi.service.validation.asset.company_credit.exactly_one_identifier_must_be_set
- error.deliveryapi.service.validation.asset.company_credit.role_description_mandatory_for_role_other
- error.deliveryapi.service.validation.show.produced_for_on_demand_not_supported_for_video_shows
- error.deliveryapi.service.validation.show.is_closed_narration_not_valid_for_show_type
- error.deliveryapi.service.validation.publication.login_only_until_not_after_created
- error.deliveryapi.service.validation.publication.login_only_until_not_after_start_date
- error.deliveryapi.service.validation.publication.login_only_until_with_event_livestream
- error.deliveryapi.service.validation.content_event.content_event_unique_type
- error.deliveryapi.service.validation.content_event.content_events_overlap
- error.deliveryapi.service.validation.content_event.content_events_type_ordering
Die vollständige Liste aller Message-Keys und deren Texte befindet sich im ARD-Developer-Portal.
Version 4.21.0
– 11/8/23
Sophora Client API: 4.23.5.
-
Improved
Error-Logging in ImageUtils verbessern
– SOMSI-356 (medium)
Notes
Falls Bildvarianten in einem Bilddokument nicht existieren, wird nun neben dem Bildvariantennamen auch die Sophora-ID des betroffenen Bilddokumentes geloggt.
-
Improved
Tests für die automatische Erzeugung von ImageCollections hinzufügen
– SOMSI-355 (medium)
Notes
Das bestehende Verhalten bei der Erzeugung von ImageCollections wurde durch weitere Unittests abgesichert
-
Added
Clientskript für die manuelle (Neu-)Anlieferung von Inhalten bereitstellen
– SOMSI-137 (medium)
Notes
Es gibt nun ein DeskClient-Skript "Zur ARD Mediathek/Audiothek senden", um das Senden von Inhalten an die ARD Mediathek/Audiothek zu triggern, ohne Sophora-Dokumente (erneut) veröffentlichen zu müssen. Weitere Informationen dazu sind dem Abschnitt "Client Script to manually trigger the Sophora Metadata Supplier" der Dokumentation "Sophora Metadata Supplier for ARD Mediathek/Audiothek Operation" zu entnehmen.
Version 4.20.0
– 10/26/23
Sophora Client API: 4.23.2.
-
Added
Feedback im SMS erweitern: Message-Codes, HTTP-Status und UsedSources
– SOMSI-286 (medium)
Notes
Das Feedback wurde um Message-Codes mit Platzhalter-Argumenten, einer Auflistung der zusätzlich verwendeten Quellen (Used Sources) und den jew. HTTP-Status-Code von der ARD Mediathek/Audiothek erweitert. Die bisher hart codierten Feedbacktexte können somit nun per "messages.properties"-Dateien individualisiert werden. Manche der Texte wurden bereits umformuliert. Achtung: Die Textkonstanten aus FeedbackService, UnpublishOperation und RepublishOperation wurden entfernt.
Damit die Meldungstexte im Feedback und die Haftnotiztexte in den Sophora-Dokumenten weiterhin in deutscher Sprache erscheinen, muss der Metadata Supplier mit deutschem Locale gestartet werden. Diese Haftnotiztexte lassen sich ebenfalls individualisieren.
Die beim Mapping verwendeten Quellen (Used Sources) werden standardmäßig ebenfalls in die Haftnotiz geschrieben. Dies lässt sich per Konfigurationsparameter "metadata-supplier-sophora.attach-used-sources-to-sticky-notes" in der application.yml abschalten.
Weitere Informationen befinden sich in der Dokumentation zum Sophora Metadata Supplier.
Version 4.19.0
– 9/28/23
Sophora Client API: 4.22.0.
-
Improved
Metriken für Job-Queue bereitstellen
– SOMSI-336 (high)
Notes
Zum Auslesen der aktuellen Anzahl der aus Sophora getriggerten und noch abzuarbeitenden Mapping-Aufträge wurde die neue Metrik "metadatasupplier.supplyjob.queue.size" hinzugefügt. Die Anzahl der insgesamt aus Sophora getriggerten bzw. abgearbeiteten Mapping-Aufträge seit SMS-Start kann nun über die neuen Metriken "metadatasupplier.supplyjob.queued" bzw. "metadatasupplier.supplyjob.executed" abgefragt werden. Die Gesamtanzahl der Mapping-Aufträge, deren Abarbeitung aufgrund unvorhergesehener Fehler abgebrochen ist, kann über die neue Metrik "metadatasupplier.supplyjob.executionerrors" ausgelesen werden.
Version 4.18.0
– 8/4/23
Sophora Client API: 4.20.2.
-
Changed
Hilfsmethode für Mapping von Genres und Subgenres an geänderte Auswahlwertstruktur anpassen
– SOMSI-330 (medium)
Notes
Die Hilfsmethoden der ArdNormDbUtil- und SdsArdNormDbUtil-Klassen können jetzt auch die Vokabel-IDs aus Genre- und Subgenre-Auswahlwerten auslesen, die der neuen Struktur folgen, welche mit dem ARD Metadatenpaket 2 eingeführt wurde. Genres und Subgenres, die noch der alten Struktur folgen, funktionieren weiterhin mit den Hilfsmethoden.
Version 4.17.1
– 7/20/23
-
Improved
AspectRatio um 2:3 erweitern
– SOMSI-337 (medium)
Notes
Bei Bildern sind nun folgende Seitenverhältnisse möglich: 2:3, 3:4, 16:7, 16:9, 32:9, 64:9
Version 4.17.0
– 7/17/23
Sophora API: 4.19.2. Sophora Client: 4.19.2.
-
Added
Zulieferung der personCredits-, audioTracks- und contentEvents-Felder des ARD Metadatenpakets 2 per SMS ermöglichen
– SOMSI-318 (medium)
Notes
"personCredits" wird an allen Items und Groupings unterstützt; "audioTracks"-Feld wird an allen Binaries unterstützt; "subtitleTracks" wird an VideoBinaries unterstützt; "contentEvents"-Feld wird an allen OnDemand Inhalten (Episode, Extra, Section) unterstützt; "language" und "subtitleType" werden an Subtitle unterstützt
Version 4.16.1
– 6/8/23
Sophora API: 4.19.1. Sophora Client: 4.19.1.
-
Fixed
Benutzerdefinierte Texte zu Fehlermeldungen der Core API werden nicht gefunden
– SOMSI-326 (medium)
Notes
Behebt das Problem, dass die mitgelieferten Übersetzungen zu Fehlermeldungen der Core API oder eigene Übersetzungen in Mapping-Plugins nicht gefunden werden.
-
Fixed
SMS muss im Dashboard richtig angezeigt werden
– SOMSI-299 (medium)
Notes
Mit diesem Bugfix wird der Onlinestatus in der Kachel im Dashboard repariert. Damit die Daten in den Details auf der rechten Seite im Dashboard angezeigt werden, muss das Admin Dashboard in Version >= 3.1.5, 4.2.4, 5.0.0 verwendet werden.
-
Changed
Update auf Spring Boot 2.7.11 und Spring 5.3.27
– SOMSI-323 (medium)
Notes
Es wird nun Spring Boot 2.7.11 (statt 2.7.10) mit Spring 5.3.27 (statt 5.3.26) eingesetzt. In bestehenden Mapping-Projekten müssen ggf. die Abhängigkeiten angepasst werden.
Version 4.16.0
– 5/11/23
Sophora API: 4.17.2. Sophora Client: 4.17.2.
-
Added
Zulieferung der ersten Felder des ARD Metadatenpakets 2 per SMS ermöglichen
– SOMSI-296 (medium)
Notes
An Groupings (Season und Show), Items (EventLivestream, Episode, Section und Extra) sowie PermanentLivestreams können nun die Felder "contentRatings", "countriesOfOrigin", "embeddingType", "externalContentIds", "geoLocations", "internalOwnership", "normDbLocations", "originalRelease", "originalSpokenLanguages" und "seo" übergeben werden. Außerdem lassen sich an Images die Felder "artworkType" und "isBranded" setzen.
Version 4.15.0
– 4/12/23
Der Sophora Metadata Supplier nutzt nun Spring-Boot 2.7.10 mit Spring 5.3.26 und entsprechenden Abhängigkeiten
-
Changed
Update auf SpringBoot 2.7: Umstellung der Swagger-UI von Springfox auf Springdoc
– SOMSI-259 (high)
Notes
Die Standard-URL zur Swagger-UI lautet nun http://localhost:8080/swagger-ui.html (statt http://localhost:8080/swagger-ui/index.html). Siehe Dokumentation bzgl. REST-API, Monitoring und Konfiguration des Webservers.
-
Changed
Dependency-Upgrade: Auf Spring 5.3.26, Spring-Boot 2.7.10 und Abhängigkeiten aktualisieren
– SOMSI-307 (medium)
Notes
Mapping-Projekte müssen ggf. an die neuen verwendeten Versionen angepasst werden.
Version 4.14.0
– 3/21/23
-
Added
Benutzerdefinierte Texte zu Fehlermeldungen der Core API ermöglichen
– SOMSI-260 (medium)
Notes
Texte zu Fehlermeldungen aus der ARD Core API werden nun je nach Default Locale vom Sophora Metadata Supplier auf deutsch oder englisch (default) als Feedback ausgegeben. Darüber hinaus ist es möglich, eigene Übersetzungen zu verwenden. Dazu müssen entsprechende "messages properties"-Datei(en) im "i18n"-Verzeichnis der Sophora Metadata Supplier Installation abgelegt werden. Weitere Information hierzu sind der Dokumentation zu entnehmen.
Version 4.13.0
– 3/1/23
-
Changed
SpringDataSophora 4.4.0 einbinden
– SOMSI-304 (medium)
Notes
Es wird nun SpringDataSophora 4.4.0 verwendet, u.a. mit der Erweiterung für das IPTC-Add-on an Bilddokumenttypen und korrekter Beachtung im OfflineDateCalculator, wenn "sophora:offlineAfterDays" auf "-" gesetzt ist (= "nie offline stellen").
Version 4.12.1
– 2/2/23
-
Changed
Version der Spring-Data-Sophora-Commons Dependency vorgeben
– SOMSI-294 (medium)
Notes
Der Metadata Supplier gibt nun die Version von spring-data-sophora-commons vor, so dass Mapper-Projekte diese einfach verwenden können.
Version 4.12.0
– 1/30/23
-
Changed
ARD Core API ohne JUnit Compile Dependency nutzen
– SOMSI-293 (medium)
Notes
In Mapping-Projekten müssen JUnit-Abhängigkeiten nun ggf. explizit angegeben werden.
Version 4.11.0
– 12/8/22
-
Fixed
Das SMS muss wieder mit Docker gestartet werden können
– SOMSI-274 (critical)
-
Fixed
RestTemplateBuilder soll die richtige RequestFactory verwenden
– SOMSI-282 (medium)
Notes
In der RestTemplateFactory verwendet der RestTemplateBuilder nun die per RestTemplateFactory.createRequestFactory() erzeugte ClientHttpRequestFactory. Es reicht also, die Methode statt der ganzen Klasse zu überschreiben, wenn eine andere RequestFactory verwendet werden soll.
-
Improved
Feedback bei Exceptions in der accept()-Methode von Mappern zurückgeben
– SOMSI-284 (medium)
Notes
Exceptions in IResourceMapper.accept(...) werden nun abgefangen und so behandelt, als ob es keinen Mapper für die Source gäbe. Eine entsprechende Feedbackmeldung wird zurückgegeben.
Version 4.10.1
– 11/25/22
ACHTUNG: Diese Version lässt sich nicht in Docker starten
-
Changed
Dependencies aktualisiert: Apache Commons Text und Commons Lang 3
– SOMSI-272 (medium)
Notes
Diverse Abhängigkeiten wurden aktualisiert
Version 4.10.0
– 11/9/22
ACHTUNG: Diese Version lässt sich nicht in Docker starten
-
Improved
Feedback bzgl. "unpublish" und "republish" verbessern
– SOMSI-257 (medium)
Notes
Es gibt nun keine "Erfolgreich an die ARD Mediathek/Audiothek gesendet"-Feedbackmeldung mehr für Objekte vom Typ Publishable, da über diese keine Resourcen in der Mediathek angelegt oder inhaltlich aktualisiert werden können. Die Feedbackmeldungen "Erfolgreich in der ARD Mediathek/Audiothek veröffentlicht" bzw. "Erfolgreich aus der ARD Mediathek/Audiothek entfernt" erscheinen weiterhin.
Es gibt neue, zusätzliche Feedbackmeldungen, wenn Resourcen in der ARD Mediathek/Audiothek veröffentlicht/depubliziert werden sollten, die bereits veröffentlicht/depubliziert sind: "Ein (erneutes) Veröffentlichen in der ARD Mediathek/Audiothek war nicht notwendig" und "Ein (erneutes) Entfernen aus der ARD Mediathek/Audiothek war nicht notwendig".
Es gibt neue, zusätzliche Feedbackmeldungen, wenn Resourcen in der ARD Mediathek/Audiothek veröffentlicht/depubliziert werden sollten, die dort gar nicht existieren: "Ein Veröffentlichen in der ARD Mediathek/Audiothek war nicht möglich" bzw. "Ein Entfernen aus der ARD Mediathek/Audiothek war nicht möglich".
-
Added
Der Metadata Supplier soll JMX per HTTP (Jolokia) anbieten und den HTTP-Port in der Konfiguration mitliefern
– SOMSI-266 (medium)
Notes
JMX MBeans können nun per HTTP unter /actuator/jolokia/ verwendet werden. Ab Sophora 4 ist der Sophora Metadata Supplier damit auch im Sophora Admin Dashboard monitorbar.
Version 4.9.2
– 10/12/22
-
Fixed
Spring-Boot-Sophora-Commons 4.1.19 verwenden
– SOMSI-265 (medium)
Notes
Behebt ein Maven-Enforcer-Plugin-Problem für SMS-Mapper-Plugin-Projekte bzgl. der verwendeten Sophora-Core-Version.
Version 4.9.1
– 10/12/22
-
Changed
Standardmäßig die neue Test-Delivery-API-URL statt der einzelnen Core API-Service-URLs nutzen
– SOMSI-253 (medium)
Notes
Die verschiedenen Services der ARD Mediathek/Audiothek (wie Image-Service, Asset-API und Player-API) werden mittlerweile unter einer Delivery-API-URL zusammengefasst und bereitgestellt. Daher lauten die Standard-URL-Konfigurationen im SMS für Image-Service, Asset-API und Player-API nun jeweils https://deliver-test.ard.de/delivery-api statt https://deliver-test.ard.de/image-service, https://deliver-test.ard.de/asset-api und https://deliver-test.ard.de/player-api.
Bei bestehenden SMS-Installationen, die die ARD Mediathek/Audiothek Service-URLs in der application.yml eingetragen haben, müssen diese URLs für jeden der drei Services entsprechend angepasst werden: URL für das Testsystem der ARD Mediathek/Audiothek: https://deliver-test.ard.de/delivery-api bzw. URL für das Live-System der ARD Mediathek/Audiothek: https://deliver.ard.de/delivery-api
Version 4.9.0
– 9/14/22
-
Changed
Versionen für Module vom SMS und SDS im DependencyManagement vorgeben
– SOMSI-258 (medium)
Notes
Mapping-Plugin-Projekte können für einfacheres und konsistentes Dependency Management nun die "pom.xml" von "metadatasupplier-parent" importieren
Version 4.8.1
– 8/5/22
-
Improved
Strukturiertes Logging: Image-Data soll nicht geloggt werden, damit Logfiles klein bleiben
– SOMSI-255 (medium)
Notes
Alle Resourcen werden nur noch auf Trace-Level geloggt.
-
Added
Metriken für UsedSources und MappedResources hinzufügen
– SOMSI-229 (medium)
Notes
Die Metriken zu Anzahl und Größe der "Used Sources" und "Mapped Resources" sind nun unter http://<host>:<port>/actuator/metrics/ abrufbar.
Version 4.8.0
– 7/29/22
-
Improved
Änderungen aus der Doku der ARD Core API nachziehen
– SOMSI-239 (medium)
Notes
Der JavaDoc an den Interfaces für Resourcen (IShow, ISeason, IEpisode, usw.) wurde aktualisiert.
-
Improved
Strukturiertes Logging einbauen
– SOMSI-218 (medium)
Notes
Über den VM-Parameter -Dspring.profiles.active=json-logs (oder über die Angabe in der application.yml) kann strukturiertes (Json-)Logging aktiviert werden.
Vorsicht: Fügt eine Abhängigkeit zu "net.logstash.logback" "logstash-logback-encoder" hinzu, die in Mapping-Projekten ggf. zu Abhängigkeitskonflikten mit Jackson führen kann.
Version 4.7.1
– 7/21/22
-
Fixed
Log zeigt falsche Webserver-Ports an
– SOMSI-222 (medium)
-
Improved
Publications sollen auch ohne ImageCollection angelegt werden können
– SOMSI-225 (high)
Notes
Publications können auch angelegt werden, ohne explizit Images hinzufügen zu müssen. In dem Fall werden in der ARD Mediathek/Audiothek die Bilder aus dem referenzierten Item verwendet.
-
Improved
Versionsnummern der Mapping-Klassen loggen
– SOMSI-244 (medium)
Notes
Wenn die <my-mapping>-jar-with-dependencies.jar eine META-INF/MANIFEST.MF mit Eintrag für "Implementation-Version" hat, wird die Versionsnummer der Mapper-Klassen geloggt.
-
Improved
Metriken um Tag "application" ergänzen, um Filterung zu erleichtern
– SOMSI-245 (low)
Notes
Die Metriken enthalten nun {application="Sophora Metadata Supplier for ARD Mediathek/Audiothek"}
Version 4.7.0
– 7/14/22
-
Added
Ermöglichen des Anlieferns der "alten" Term-IDs
– SOMSI-238 (medium)
Notes
Bei AudioBinary und VideoBinary kann die TermId nun statt im CoreID-Format (z.B. "urn:ard:termid-video:9bb5a34d66e2ec19") auch im CcAvTermId-Format (z.B. "1.2.3.14.1") angegeben werden, z.B. IVideoBinary videoBinary = VideoBinary.builder().with...(...).withCcAvTermId(CcAvTermId.of("1.2.3.14.1")).build();
Version 4.6.0
– 7/13/22
Setzt mindestens Server-Version 4.11.0 voraus. Bringt "spring-data-sophora" und das neue Artefakt "metadata-supplier-spring-data-sophora-commons" mit, welches Hilfsmethoden für die Verwendung von Spring-Data-Sophora in Mapping-Plugins bereit stellt.
-
Fixed
Inkompatibilitätsprobleme mit Sophora-Servern beheben, die nicht Sophora-Core 4.10.0, 4.10.1 oder 4.11.0 verwenden
– SOMSI-228 (high)
-
Added
IdUtils.createId() für mehrere Resources anbieten
– SOMSI-241 (medium)
Notes
Neben "CoreId createId(IResource resource)" gibt es jetzt auch "List<CoreId> createIds(Collection<? extends IResource> resources)"
-
Added
Hilfsmethoden bzgl. Genres, Categories und Tenants zu "metadata-supplier-spring-data-sophora-commons" hinzufügen
– SOMSI-240 (medium)
Notes
Die Klassen com.subshell.sophora.metadatasupplier.sds.commons.SdsArdNormDbUtil und com.subshell.sophora.metadatasupplier.sds.commons.TenantUtil aus dem neuen "metadata-supplier-spring-data-sophora-commons"-Artefakt bieten Methoden an, um aus SDS-MultiSelectValue-Objekten entsprechende CoreIds für (Sub)GenreCategories oder ThematicCategories bzw. die Tenants zu erhalten.
-
Added
Methode anbieten, um aus einer ExternalId eine CoreId oder null zu erzeugen
– SOMSI-237 (medium)
Notes
IdUtils.createIdOrNull(Type type, ExternalId externalId) liefert die CoreId zu dem angegebenen Type und ExternalId. Falls keine ExternalId angegeben wurde, liefert die Methode null (im Gegensatz zu IdUtils.createId(Type type, ExternalId externalId), was eine Zufalls-Id liefert).
-
Added
SophoraSourceDescriptor direkt von Sophora-Dokumenten erzeugen
– SOMSI-236 (medium)
Notes
Es gibt jetzt SophoraSourceDescriptor.create(ISophoraDocument), um den SourceDescriptor zu einem Sophora-Dokument zu erzeugen.
Das neue Artefakt "metadata-supplier-spring-data-sophora-commons" enthält DocumentEntitySourceDescriptor.create(SophoraDocumentEntity), womit SourceDescriptor-Objekte zu SophoraDocumentEntity-Objekten erzeugt werden können.
Zu beachten: Das neue Artefakt bringt die Abhängigkeit zu "metadata-supplier-sophora-commons" und zu "spring-data-sophora" mit.
Version 4.5.4
– 6/17/22
-
Fixed
VideoBinary.hasEmbeddedSubtitles() darf nicht immer "false" an die Core API übergeben
– SOMSI-232 (high)
Notes
VideoBinary.isHasEmbeddedSubtitles() wurde entfernt. Es muss IVideoBinary.hasEmbeddedSubtitles() genutzt werden.
Der vollständige Fix ist erst ab Version 3.5.4 bzw. 4.5.4 enthalten.
Version 4.5.3
– 6/17/22
-
Fixed
VideoBinary.hasEmbeddedSubtitles() darf nicht immer "false" an die Core API übergeben
– SOMSI-232 (high)
Notes
VideoBinary.isHasEmbeddedSubtitles() wurde entfernt. Es muss IVideoBinary.hasEmbeddedSubtitles() genutzt werden.
Der vollständige Fix ist erst ab Version 3.5.4 bzw. 4.5.4 enthalten.
Version 4.5.2
– 6/13/22
-
Added
Feedback-Meldungen sollten nicht mehrfach zum Feedback hinzugefügt werden können
– SOMSI-230 (medium)
Notes
Beim Hinzufügen von Feedback-Einträgen zu Feedbacks werden bereits vorhandene Einträge nun ignoriert, so dass der gleiche Feedback-Eintrag nicht mehrfach im Feedback enthalten ist.
Version 4.5.1
– 6/7/22
-
Improved
Der ImageMapper soll auch die Seitenverhältnisse der gemappten Bilder liefern
– SOMSI-227 (medium)
Notes
Der ImageMapper bietet nun zusätzlich die Methode mapImagesToAspectRatioMap(IImageDataProvider imageDataProvider) an, welche Map<IAspectRatio, IImage> zurück liefert.
Version 4.5.0
– 5/24/22
ACHTUNG: Enthält inkompatible API-Änderungen! Die Mapper-Projekte/-Klassen müssen angepasst und zusammen mit dieser Sophora Metadata Supplier Version installiert werden. Ein altes Mapping mit dieser (oder neueren) SMS-Version bzw. ein angepasstes Mapping mit einer älteren SMS-Version sind nicht kompatibel!
-
Improved
Inkompatibilitäten zwischen SMS und Mapping sollen geloggt werden und zum Beenden des SMS führen
– SOMSI-223 (medium)
Notes
Beim Auftreten eines LinkageError zwischen SMS und Mapping erscheint dieser nun in der Logdatei und das SMS wird mit Exitcode 192 beendet.
-
Improved
Felder für Core-IDs sollen in Builder-Methoden CoreId-Objekte akzeptieren
– SOMSI-172 (low)
Notes
ACHTUNG: Inkompatible Model-API-Änderung! Die Felder genreCategoryId, subgenreCategoryIds und thematicCategoryIds an Shows, Sections, Seasons usw. sind nun vom Typ CoreId statt String! Die Mapper-Projekte/-Klassen müssen dementsprechend angepasst werden, bevor diese Metadata Supplier Version produktiv eingesetzt wird, ansonsten funktioniert das Mapping nicht!
Dazu `String genreCategoryCoreId = "urn:ard:category-genre:myExternalIdHash";` ändern zu `CoreId genreCategoryCoreId = CoreId.create("urn:ard:category-genre:myExternalIdHash");` oder `CoreId genreCategoryCoreId = CoreId.create(Type.GENRE_CATEGORY.getCoreIdPrefix(), "myExternalIdHash");` bzw. `String genreCategoryId = CoreId.create(Type.GENRE_CATEGORY, "myExternalId").getId();` ändern zu `CoreId genreCategoryCoreId = CoreId.create(Type.GENRE_CATEGORY, "myExternalId");`.
Zum Lesen von List<CoreId> als List<String> (z.B. in Tests) kann CoreId.getStrings() verwendet werden, falls benötigt.
-
Added
Angabe zusätzlicher Mapping-Parameter ermöglichen
– SOMSI-212 (medium)
Notes
Per IMetadataSupplier.supply(SourceDescriptor, Parameters) und über die REST-Schnittstelle können nun zusätzliche Parameter von außen ins Mapping reingereicht werden.
ACHTUNG: Inkompatible API-Änderung! IResourceMapper.accept(SourceDescriptor) wurde geändert zu IResourceMapper.accept(SourceDescriptor, Parameters), d.h. alle Mapper-Klassen müssen die neue Methodensignatur implementieren bevor diese Metadata Supplier Version produktiv eingesetzt wird, ansonsten funktioniert das Mapping nicht! In Tests kann Parameters.of() für den neuen Methodenparameter übergeben werden.
In IResourceMapper.mapToResources(SourceDescriptor, IMappingContext) kann über den IMappingContext auf die Parameter zugegriffen werden, falls benötigt.
Version 4.4.4
– 5/6/22
-
Fixed
Release-Build-Prozess korrigieren
– SOMSI-220 (medium)
Version 4.4.3
– 5/6/22
-
Improved
StickyNoteFeedbackHandler soll keinen langen Stack loggen, wenn das Sophora-Dokument nicht existiert
– SOMSI-219 (medium)
-
Improved
Converter für Strings im Format "HH:MM:SS.ss" nach "PTxHxMx.xxxS" anbieten (ISO 8601)
– SOMSI-217 (medium)
Notes
In "metadata-supplier-sophora-commons" gibt es nun einen com.subshell.sophora.metadatasupplier.sophora.commons.Iso8601Converter
-
Improved
Methoden zum Erzeugen der CoreId aus Auswahlwertdokumenten für GenreCategories, SubgenreCategories und ThematicCategories bereitstellen
– SOMSI-215 (medium)
Notes
In com.subshell.sophora.metadatasupplier.sophora.commons.ArdNormDbUtil sind nun entsprechende Methoden enthalten
-
Improved
Hilfsmethoden bereitstellen, um mehrere Enums aus mehreren Strings zu erhalten
– SOMSI-214 (medium)
Notes
Die Enums aus com.subshell.ardcore.model.types haben nun alle eine valuesOf(Collection<String> names)-Methode
-
Improved
Docker Image verbessern
– SOMSI-205 (medium)
Version 4.4.2
– 4/6/22
-
Improved
Auf Spring-Data-Sophora 3.2.8 bzw. 4.0.14 aktualisieren
– SOMSI-211 (medium)
Notes
Der Metadata Supplier verwendet nun Sophora Core 3.9.4 bzw. 4.9.4. Mapper-Projekte mit Metadata Supplier 3.4.2 bzw. 4.4.2 und Spring-Data-Sophora 3.2.8 bzw. 4.0.14 müssen u.U. org.slf4j:slf4j-api:1.7.32 bzw. org.slf4j:jcl-over-slf4j:1.7.32 statt Version 1.7.30 einbinden.
Version 4.4.1
– 3/29/22
-
Improved
Feld originalClipExternalId in IPublication unterstützen
– SOMSI-206 (medium)
Notes
Bei Publications kann jetzt auch das Feld "originalClipExternalId" gesetzt werden.
Version 4.4.0
– 3/14/22
-
Changed
Banner und weitere Ausgaben des Sophora Metadata Suppliers sollen in der Log-Datei (nicht in einer gesonderten .out-Datei) ausgegeben werden
– SOMSI-150 (high)
-
Added
Wiederverwendbaren Sophora-Mapping-Code im Sophora Metadata Supplier anbieten
– SOMSI-202 (medium)
Notes
Das Projekt "metadata-supplier-sophora-commons" enthält nun nützliche Hilfsklassen und -methoden, um Sophora-Inhalte zu IResource-Objekten zu mappen. Z.B. ImageMapper, IImageVariantsProvider und IImageDataProvider, um Sophora-Bilddokumente zu mappen, wobei pro Seitenverhältnis aus einer Liste von Bildvarianten die erste Bildvariante des Bilddokumentes mit Binärdaten verwendet wird (Codebeispiel befindet sich im "metadata-supplier-plugin-example"). ArdNormDbUtil, um aus einem Auswahlwertdokument die ARD-Normdatenbank-Werte zu ermitteln. SophoraStringUtils, um z.B. aus dem "sophora:tags"-Property die einzelnen Tag-Einträge als Liste zu erhalten. Außerdem wurde Logging beim Hinzufügen von Feedback-Einträgen eingebaut und die IdUtils um eine Methode zum Erzeugen einer CoreId aus einer ExternalId erweitert.
-
Added
Depublizieren von nicht mehr gemappten Resourcen unterstützen
– SOMSI-196 (medium)
Notes
Per IMappingContext.setUnpublishPreviouslyMappedResources(true/false) können die Resourcen zum Mappingergebnis hinzugefügt werden, welche beim aktuellen Mappingdurchlauf depubliziert werden müssen, weil sie beim vorherigen Durchlauf in der ARD Mediathek/Audiothek erzeugt und publiziert wurden, nun aber z.B. nicht mehr in der Quelle enthalten sind und deswegen in der ARD Mediathek/Audiothek depubliziert sein sollen (sofern sie nicht auch zu einer anderen Source gemappt und veröffentlicht wurden).
Außerdem existiert per IMappingContext.getResourceProvider() Zugriff auf die gespeicherten Informationen zu den zuletzt erfolgreich gemappten Resourcen der gerade zu mappenden Source.
Version 4.3.1
– 2/22/22
-
Fixed
Publications ohne ImageCollection können nicht von der ARD Core API geladen werden
– SOMSI-197 (medium)
-
Added
Retry-Mechanik für Anfragen an Core API ermöglichen, wenn zuvor angelegte Ressourcen noch nicht gefunden werden konnten
– SOMSI-191 (medium)
Notes
Per "ardmedialibrary.retry.maxAttempts" und "ardmedialibrary.retry.delayInMillis" kann konfiguriert werden, wie häufig und in welchen Abständen versucht werden soll, eine Resource in der ARD Mediathek/Audiothek anzulegen bzw. zu aktualisieren, wenn eine "Resource does not exist"-Fehlermeldung auftritt.
Version 4.3.0
– 2/2/22
-
Added
Zugriff auf die Verwendungen (UsedSources) in Mappings ermöglichen
– SOMSI-180 (medium)
Notes
Neue Methode hinzugefügt: IMappingContext.getPreviousUsedSources()
-
Added
Unpublish und Republish von Objekten nur anhand der External-ID ermöglichen
– SOMSI-179 (medium)
Notes
Über die neue IResource-Implementation "Publishable" lassen sich Resourcen in der ARD Mediathek/Audiothek (de)publizieren, ohne dass die komplette konkrete Resource (z.B. Show) gemappt werden muss.
Zusätzlich kann per IResource.createIfNotExisting() bestimmt werden, ob eine Resource in der ARD Mediathek/Audiothek erzeugt werden soll, wenn sie dort noch nicht existiert (Standard ist "true").
Version 4.2.3
– 1/11/22
-
Fixed
PermanentLivestreams müssen an die ARD Mediathek gesendet werden können
– SOMSI-184 (medium)
Version 4.2.2
– 1/4/22
-
Fixed
HTTP Patch muss auch bei Verwendung eines Proxy unterstützt werden
– SOMSI-173 (medium)
Notes
Proxy-Einstellungen zur ARD Mediathek/Audiothek können nicht mehr in der application.yml über "ardmedialibrary.credentials.proxyUrl" und "ardmedialibrary.credentials.proxyPort" gesetzt werden. Stattdessen muss der Proxy über normale Systemproperties konfiguriert werden, z.B. in der Datei metadata-supplier-application-executable.conf.
-
Improved
Im Feedback soll der Begriff "ARD Mediathek/Audiothek" verwendet werden
– SOMSI-161 (medium)
Version 4.2.1
– 12/1/21
-
Improved
Verhindern, dass XML statt JSON zum ARD-Core geschickt wird
– SOMSI-163 (medium)
-
Improved
FeedbackHandler für Haftnotizen soll nur greifen, wenn Sophora-Dokumente gemapped wurden
– SOMSI-160 (low)
Version 4.2.0
– 11/25/21
-
Changed
Das Reagieren auf die (inoffizielle) Statusänderung "PUBLISH_AT_CANCELED" ermöglichen
– SOMSI-144 (medium)
-
Changed
Health-Endpunkte und Metriken im Sophora Metadata Supplier anbieten
– SOMSI-135 (medium)
-
Improved
Beispiel-Mapper-Plugin um Spring-Data-Sophora erweitern
– SOMSI-143 (medium)
Notes
Das "metadata-supplier-plugin-example" enthält jetzt zusätzlich einen Beispiel-Mapper, der Spring-Data-Sophora nutzt. Außerdem wir ein "jar-with-dependencies" erstellt. GroupId: "com.subshell.sophora.metadatasupplier", ArtifactId: "metadata-supplier-plugin-example" bzw. "metadata-supplier-plugin-example-launcher".
-
Improved
Unpublish und Republish optimieren
– SOMSI-81 (medium)
Notes
Die Operationen "unpublish" bzw. "republish" an der ARD Core API werden nur noch für veröffentlichbare Entitäten ausgeführt, bei denen der Sichtbarkeitszustand geändert werden muss.
-
Added
Unpublish- und Republish-Operationen per isPublished-Flag von IPublishable-Resourcen auslösen
– SOMSI-152 (medium)
Notes
Der Metadata-Supplier verfügt nur noch über die Schnittstelle "supply(SourceDescriptor)". Die REST-Schnittstelle befindet sich bei /metadata-supplier/<source-type>/<source-id> ("put" und "get"). Die Mapper müssen bei Shows, Seasons, PermanentLivestreams und Publications nun per Builder.withPublished(true/false) angeben, ob die jeweilige Resource in der ARD Mediathek sichtbar sein soll oder nicht.
-
Added
IPublishable-Interface für veröffentlichbare IResource einführen
– SOMSI-151 (medium)
Notes
Die Mapper können bei Shows, Seasons, PermanentLivestreams und Publications nun per Builder.withPublished(true/false) angeben, ob die jeweilige Resource in der ARD Mediathek sichtbar sein soll oder nicht.
-
Added
Per Konfiguration bestimmen, welche Sophora-Dokumentevents behandelt werden sollen
– SOMSI-80 (medium)
Notes
In der application.yml muss nun angegeben werden, welche Dokumentstatusänderungen bei welchen Dokumenttypen im Metadata Supplier behandelt werden sollen. Siehe Dokumentation für weitere Informationen.
Version 4.1.0
– 10/26/21
-
Changed
Entwicklung von kundenspezifischen Mappings in IDEs besser unterstützen
– SOMSI-134 (medium)
Notes
Die ausführbare metadata-supplier-application-<version>.jar wurde in metadata-supplier-application-<version>-executable.jar umbenannt. Start-/Stop-Skripte, die diese jar ausführen, müssen dementsprechend angepasst werden. Auch die metadata-supplier-application.conf muss in metadata-supplier-application-executable.conf umbenannt werden, sofern vorhanden. Bei der metadata-supplier-application-<version>.jar handelt es sich jetzt stattdessen nur um das einfache Artefakt der metadata-supplier-application, welche für die Plugin-Entwicklung in einem Launcher-Projekt genutzt werden kann.
-
Changed
Pflichtfelder "alt" und "producerName" für Images nachziehen
– SOMSI-132 (medium)
-
Added
Methoden prepend() und append() zu ExternalId hinzufügen
– SOMSI-126 (medium)
-
Added
Initiale Aufsynchronisierung abschaltbar machen
– SOMSI-125 (medium)
Notes
Per metadata-supplier-sophora:sync-at-startup:false in der application.yml kann die initiale Synchronisation der Inhalte aus dem Sophora-Server abgeschaltet werden
Version 4.0.0
– 10/1/21
-
Fixed
Für alle Ressourcen mit Bildern sollen die Images und ImageCollections vom ArdCoreConnector angelegt werden
– SOMSI-79 (high)
-
Changed
Mapper sollen mehrere Entitäten in der ARD-Core-API erzeugen können
– SOMSI-71 (high)
-
Changed
Docker-Image des Sophora Metadata Suppliers erstellen
– SOMSI-120 (medium)
-
Changed
Sophora-Events aufsynchronisieren nachdem der Metadata Supplier gestoppt war
– SOMSI-108 (medium)
-
Changed
Anbindung an Player API schaffen
– SOMSI-65 (medium)
-
Changed
Anlegen von Inhalten in der ARD-Core-API auch bei publishAt-Events unterstützen
– SOMSI-64 (medium)
-
Changed
Metadata Supplier muss auch ohne Sophora-Anbindung ausgeführt werden können
– SOMSI-44 (medium)
-
Changed
Rahmenwerk für kundenspezifische Mappings im Sophora Metadata Supplier schaffen
– SOMSI-17 (medium)
-
Changed
Projekt für Sophora Metadata Supplier anlegen
– SOMSI-16 (medium)
-
Improved
Versionsnummer im Logfile ausgeben
– SOMSI-116 (medium)
-
Improved
Feedback bei Fehlern während des Mappings geben
– SOMSI-63 (medium)
-
Improved
Zulieferung von Binärdaten in Image-Entität unterstützen
– SOMSI-49 (medium)
-
Improved
Feedback bei Fehlern während des Mappings oder beim Anlegen im ARD-Core ermöglichen
– SOMSI-41 (medium)
-
Improved
CompletionStage/Futures im ArdCoreConnector richtig nutzen
– SOMSI-40 (medium)
-
Improved
ARD-Core-Anteil aus Sophora Metadata Supplier in eigenes Git-Repo umziehen
– SOMSI-38 (medium)
-
Added
REST-Schnittstelle für die Anlieferung von Inhalten zur ARD-Mediathek schaffen
– SOMSI-97 (medium)
-
Added
Verwendungen persistieren
– SOMSI-96 (medium)
-
Added
Änderungen an verwendeten Dokumenten müssen Aktualisierung von Entitäten in der ARD-Core-API auslösen
– SOMSI-55 (medium)