Hinweise zur Migration von jadice document platform 5.5 zu 5.6
Inhalt
Neue Funktionen und Features
XFDF-Annotationsformat
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.
alt | neu |
---|---|
com.levigo.jadice.document.ProcessingControls | com.levigo.jadice.document.controls.ProcessingControls |
com.levigo.jadice.document.AbstractProcessingControls | com.levigo.jadice.document.controls.AbstractProcessingControls |
com.levigo.jadice.document.ProcessingSettings | com.levigo.jadice.document.controls.ProcessingSettings |
com.levigo.jadice.document.SerializableProcessingControls | com.levigo.jadice.document.controls.SerializableProcessingControls |
com.levigo.jadice.document.SerializableProcessingSettings | com.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.
alt | neu | Anmerkungen |
---|---|---|
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, MaybeSerializableProcessingSettings | interface com.levigo.jadice.document.ProcessingSettings | 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 | Änderung | Anmerkungen |
---|---|---|
com.levigo.jadice.format.modca.MODCAReaderSettings | Standardfontrendermodus 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.Methodenname | Alternative |
---|---|
com.levigo.jadice.swing.pageview.MouseWheelTool#setSkipPageAtTopAndBottom | com.levigo.jadice.swing.pageview.MouseWheelTool#setBrowsePages |
com.levigo.jadice.swing.pageview.MouseWheelTool#isSkipPageAtTopAndBottom | com.levigo.jadice.swing.pageview.MouseWheelTool#isBrowsePages |
Nicht mehr unterstützte und entfernte Konstruktoren
Klassenname.Konstruktor | Alternative |
---|---|
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.
- Es wird sowohl Oracle JDK als auch Open JDK unterstützt. Beachten Sie hierzu jedoch folgende Hinweise: Unterstützung neuer Oracle-Java-Versionen und OpenJDK
- 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