SMS Updates

Changelog

Covered issues for the Metadata Supplier for ARD Mediathek/Audiothek.

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

Sophora Client: 4.20.0.

  • 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)

Last modified on 12/15/23

The content of this page is licensed under the CC BY 4.0 License. Code samples are licensed under the MIT License.

Icon