Hinweise zur Migration von jadice document platform 5.5 zu 5.6

Inhalt

Neue Funktionen und Features

XFDF-Annotationsformat

(Warnung) XFDF ist ein proprietäres Dateiformat, welches in der jadice document platform einigen Einschränkungen unterliegt:

  • Kein Editor für Rich-Text
  • Die Folgenden Annotations-Typen sind nicht verfügbar:
    • Stamp
    • File-Attachment
    • Sound
    • Caret
    • Link
    • Redact
    • Projection

OptionalContentGroups

Das Lesen von in PDF enthaltenen OptionalContentGroups wird unterstützt. Entsprechende markierte Inhalte im PDF werden nun standardmäßig eingelesen. Die Gruppen können genutzt werden, um definierte Inhalte auf einer Seite sichtbar oder unsichtbar zu schalten.

Experimental API

Einführung einer Annotation um experimentelle API zu kennzeichnen. Mehr Informationen unter: https://support.levigo.de/products/jadice/documentplatform/current/german/sect.api.public-vs-internal.html#sect.api.experimental


Änderungen in der Modulstruktur / Integration via maven

jadice-core-io

Die IO-Klassen wurden in ein eigenes Maven-Modul ausgelagert. jadice-document hat eine Abhängigkeit auf dieses Modul, dadurch sollte jadice-core-io automatisch geladen werden, sodass nichts weiter unternommen werden muss.

Übersicht der meist genutzten ausgelagerten Klassen

  • com.levigo.jadice.document.io.FileCacheInputStream
  • com.levigo.jadice.document.io.IOUtils
  • com.levigo.jadice.document.io.MemoryInputStream
  • com.levigo.jadice.document.io.RandomAccessFileInputStream
  • com.levigo.jadice.document.io.SeekableInputStream
  • com.levigo.jadice.document.io.StreamSlurper
  • com.levigo.jadice.document.io.SubfileSeekableInputStream
  • com.levigo.jadice.document.io.UncloseableSeekableInputStream
  • com.levigo.jadice.document.io.UncloseableSubfileSeekableInputStream

JAXB-Dependencies

JAXB (Java XML Binding) war in der Java 8 noch Teil der JRE. In Java 11 ist dies nicht mehr der Fall. Die jadice document platform sieht den Betrieb unter Java 11 vor. Daher haben alle Module der jadice document platform, welche JAXB benötigen, eine Abhängigkeit auf JAXB-Dependencies. Für den Betrieb unter Java 8 müssen die JAXB-Dependencies ggf. auf <scope>provided</scope> gesetzt werden.

Log4J

Log4j ist ein beliebtes Logging Framework für Java-Anwendungen. jadice bietet verschiedene Adapter zu Logging Frameworks, auch zu Log4J. In der letzten Zeit sind verschiedene kritische Schwachstellen in dem Log4J Framework bekannt geworden. In diesem Zusammenhang haben wir unsere Log4J Dependencies permantent aktualisert um die angebotenen Sicherheitsupdates zu integrieren. In diesem Zuge wurde die Unterstützung von der alten Log4J 1.x Generation abgekündigt. 


Verbesserungen

AFP/MODCA Rasterfonts

Die Darstellung von AFP/MODCA Rasterfonts wurde verbessert, es gibt einen neuen Fontrendermodus 'FocaRasterShape', der als Standardeinstellung verwendet wird. Der vorherige Standardfontrendermodus 'FocaRaster' ist weiterhin verfügbar und kann via com.levigo.jadice.format.modca.MODCAReaderSettings API konfiguriert werden.

Format Detection

jadice bietet eine breite Unterstützung verschiedener Anzeigeformate. Um dem Integrator den Ladevorgang zu vereinfachen, muss im Reader kein spezifisches Format angegeben werden. In diesem Fall nutzt jadice die Klasse FormatRegistry, um vor dem eigentlichen Ladevorgang eine Formaterkennung auszuführen. In dieser Registry sind alle von jadice unterstützen Formate registriert, dies umfasste bisher alle unterstützten Dokumentformate und Annotionsformate.

Die verschiedenen Annotationsformate überschneiden sich jedoch zum Teil in ihrer Ausprägung oder sie haben keine eindeutige Formatkennung. Daher ist eine automatische Erkennung nicht zuverlässig möglich. Integratoren wird in der Dokumentation empfohlen stets eine formatspezifischen Ladevorgang zu nutzen.

Mit der aktuellen Version wurden die Annotationsformate aus der automatischen Formaterkennung ausgenommen. Die Formaterkennung wird somit effizienter und unnötige (Annotations-)Format Checks entfallen. 

Verschiebungen/Umbenennungen von Klassen

Mit der Anforderung ProcessingControls zukünftig speichern zu können, entstehen neue Klassen rund um das Thema ProcessingControls und ProcessingSettings. Letztere liegen bisher im Package com.levigo.jadice.document. Die neuen Klassen entstehen in com.levigo.jadice.document.controls. Es ist schlüssig, auch die bestehenden Klassen in dieses Package zu verschieben. Für Integratoren wird vorraussichtlich durch diese Verschiebung keine Aufwände entstehen, da in Einbindungen im Allgemeinen spezifische Settings und Controls verwendet werden. 

Im folgenden ist eine Übersicht der betreffenden Klassen.

altneu
com.levigo.jadice.document.ProcessingControlscom.levigo.jadice.document.controls.ProcessingControls
com.levigo.jadice.document.AbstractProcessingControlscom.levigo.jadice.document.controls.AbstractProcessingControls
com.levigo.jadice.document.ProcessingSettingscom.levigo.jadice.document.controls.ProcessingSettings
com.levigo.jadice.document.SerializableProcessingControlscom.levigo.jadice.document.controls.SerializableProcessingControls
com.levigo.jadice.document.SerializableProcessingSettingscom.levigo.jadice.document.controls.SerializableProcessingSettings

In dem gleichen Kontext ist auch die Vererbung der ProcessingSettings von Serializable losgelöst worden. Durch diese Änderung kann zukünftig eine klare Abgrenzung von serialisierbaren und nicht serialsierbaren Settings und Controls ermöglicht werden.


altneuAnmerkungen
com.levigo.jadice.document.MaybeSerializableProcessingControls-Ist nicht mehr benötigt und entfällt.
com.levigo.jadice.document.MaybeSerializableProcessingSettings-Ist nicht mehr benötigt und entfällt.
-interface com.levigo.jadice.document.SerializableProcessingControls<T extends SerializableProcessingSettings> extends ProcessingControls<T>
-interface com.levigo.jadice.document.SerializableProcessingSettings extends Serializable, ProcessingSettings
interface com.levigo.jadice.document.ProcessingSettings extends Serializable, MaybeSerializableProcessingSettingsinterface com.levigo.jadice.document.ProcessingSettings extends Serializable, MaybeSerializableProcessingSettings Keine Erweiterung von Serializable mehr
interface com.levigo.jadice.document.ProcessingControls<T extends ProcessingSettings> extends MaybeSerializableProcessingControls<T>interface com.levigo.jadice.document.ProcessingControls<T extends ProcessingSettings>


Änderungen innerhalb von Klassen

KlasseÄnderungAnmerkungen
com.levigo.jadice.format.modca.MODCAReaderSettingsStandardfontrendermodus von FontMode.FocaRaster zu FontMode.FocaRasterShape geändert.

Änderung in der Jadice.properties Datei: Die Konfiguration des vordefinierten Fontrendermodus von jadice.viewer.afp-font-mode=2 zu jadice.viewer.afp-font-mode=3 geändert.


Nicht mehr unterstützte und entfernte Elemente

HTTPRangeRequestStream

Die Klasse wurde deprecated und wird in der nächsten Major-Version entfernt.

jadice-format-modca-barcode

Das Modul wurde ersatzlos entfernt. Möglicherweise ist eine Anpassung an der pom.xml auf Seiten der Integration notwendig, da nun auch das Avalon-framework (avalon-framework:avalon-framework) aus dem dependency-Management entfernt wurde. Wenn dies benötigt wird, muss selbst eine Version in der eigenen pom.xml hinterlegt werden.

Das Modul wurde wieder eingebaut und um QR-Code Unterstützung ergänzt.

Automatische Formaterkennung von Annotationen

Durch die Entfernung des JadiceAnnotationFormats aus der automatischen Formaterkennung (DOCPV-3573 & DOCPV-3685) ist die Übertragung von Annotationen via Drag & Drop (ausgenommen eigene Export/Import-Handler, die Annotationen auf eine andere Art verarbeiten) nicht mehr möglich. Integratoren müssen dafür ggf. das JadiceAnnotationFormat wieder in Ihrer Integration in die Formaterkennung (Registrierung über META-INF/services) aufnehmen. 



Nicht mehr unterstützte und entfernte Methoden

Klassenname.MethodennameAlternative
com.levigo.jadice.swing.pageview.MouseWheelTool#setSkipPageAtTopAndBottomcom.levigo.jadice.swing.pageview.MouseWheelTool#setBrowsePages
com.levigo.jadice.swing.pageview.MouseWheelTool#isSkipPageAtTopAndBottomcom.levigo.jadice.swing.pageview.MouseWheelTool#isBrowsePages


Nicht mehr unterstützte und entfernte Konstruktoren

Klassenname.KonstruktorAlternative



Systemvoraussetzungen

  • Die unterstützten Versionen der Java Virtual Machine wurden geändert. Vorausgesetzt wird nach wie vor eine Java VM in Version 8 (Java 8) bis inklusive Version 11.
  • Diese Version der jadice document platform wird die letzte Version sein, die Java 8 unterstützt, da mit der nächsten Major Version der language level auf Java 11 angehoben wird