Hinweise zur Migration auf jadice server 5.5

Hinweise zur Migration auf jadice server 5.5


Neue Funktionen und Features

Unterstützung von docker

jadice server 5.5 kann nun innerhalb von docker-Containern betrieben werden. Beispiele, wie solch ein Container aussehen und gebaut werden kann, finden Sie auf github.

Architektonische Trennung zwischen der logischen Kommunikationsschicht und JMS-Implementierung

Zur besseren Modularisierung von jadice server wurde die Kommunikationsschicht zwischen Client und Server in unterschiedliche Module getrennt.

In Ihrer Anwendung müssen Sie das neue Modul jms-transport-shared in den clientseitigen Klassenpfad der Anwendung bzw. als Maven-Dependency aufnehmen. Außerdem hat sich der Namespace der Klasse JMSJobFactory geändert (s.u.).

Auswahl des Threading-Modells

Bisher wurde für jeden Worker, der Teil des Workflow eines Jobs ist, ein eigener Thread gestartet. Ab jadice server 5.5 ist es möglich, verschiedene Ausführungsstrategien zu wählen. In speziellen Szenarien kann es sinnvoll sein, dass alle Worker sequenziell in einem Thread abgearbeitet werden. Diese Option kann in der Konfigurationsdatei server-config/application/conversion-base.xml, Bean execution-strategy-factory gewählt werden.

Implementieren Sie eigene Worker, die über die Klasse SubPipeline dynamisch weitere Worker nachstarten, ist es zukünftig notwendig, dass das StreamBundle bereits alle zu verarbeitenden Datenströme enthält und mit StreamBundle::complete abgeschlossen wurde, bevor es der Methode SubPipeline::startWith übergeben wird. Andernfalls wird eine IllegalStateException geworfen.

Neue Nodes zur Bearbeitung von PDF-Dokumenten

Mit jadice server 5.5 gibt es die neuen Nodes PDFRotationNodePDFAnnotationRemoverNode und EmbedAttachmentsNode. Folgende neue Funktionen sind dadurch möglich:

Weitere Informationen finden Sie in den verlinkten Javadoc-Kommentaren.

Nicht mehr unterstützte Funktionen

LibreOffice 4.4 und älter

LibreOffice 4.4 hat Ende 2015 sein EOL erreicht, siehe https://wiki.documentfoundation.org/ReleasePlan/4.4#End_of_Life. Daher werden diese und ältere Versionen ab jadice server 5.5 nicht mehr unterstützt.

API-Änderungen im Überblick

Änderungen von Klassennamen

Bisheriger Klassenname

Neuer Klassenname

Bisheriger Klassenname

Neuer Klassenname

com.levigo.jadice.server.streamtransport.jms.JMSStreamTransportFactory

com.levigo.jadice.server.streamtransport.DefaultStreamTransportFactory

Änderungen in der Vererbungshierarchie

Klasse

bisher

neu

Klasse

bisher

neu

com.levigo.jadice.server.core.ThreadPoolJobScheduler

(extends) java.util.concurrent.ThreadPoolExecutor

com.levigo.jadice.server.jms.logging.JMSAppender

  • (implements) org.springframework.beans.factory.InitializingBean

  • (implements) org.springframework.beans.factory.DisposableBean

(implements) org.springframework.context.Lifecycle

com.levigo.jadice.server.shared.types.Stream

(implements) java.io.Serializable

(implements) java.io.Closeable

Namespace-Änderungen

Die folgenden Klassen wurden in andere Namespaces / Module verschoben:

Klasse

Bisheriger Namespace

Bisheriges Modul

Neuer Namespace

Neues Modul

Klasse

Bisheriger Namespace

Bisheriges Modul

Neuer Namespace

Neues Modul

JMSAppender

com.levigo.jadice.server.core.util

server-core

com.levigo.jadice.server.jms.logging

jms-transport-core

JMSReplayer

JMSJobFactory

com.levigo.jadice.server.client.jms

server-shared

com.levigo.jadice.server.jms.client

jms-transport-shared

JNDIConnectionFactory

MimicryThrowable

CredentialInjectionConnectionFactoryWrapper

com.levigo.jadice.server.shared.jms

server-shared

com.levigo.jadice.server.jms.shared

jms-transport-shared

CredentialInjectionQueueConnectionFactoryWrapper

CredentialInjectionTopicConnectionFactoryWrapper

JMSTransportSender

MessageInspector

JmsMarshaller

com.levigo.jadice.server.shared.marshalling

server-shared

com.levigo.jadice.server.jms.shared.marshalling

jms-transport-shared

JmsXStreamMarshallerFactory

Entfernte Klassen, Methoden oder Properties

  • Property com.levigo.jadice.server.ws.Property.targetClass und deren JAXB-Mapping auf class

Änderungen in der Spring-Konfiguration

 

Konfigurations-Datei

Neue Elemente

Elemente, die entfallen

Konfigurations-Datei

Neue Elemente

Elemente, die entfallen

conversion-base.xml

  • Bean vom Typ JMSRequestEndpoint

    • refenziert in Bean vom Typ JadiceServer

  • Bean vom Typ DefaultExecutionStrategyFactory

    • referenziert in der Bean vom Typ ThreadPoolJobScheduler

  • Bean JadiceServer

    • Properties connectionFactory, requestQueueName und fileProvider

  • Bean ThreadPoolJobScheduler

    • Property workerThreadReaper

Änderungen, die sich durch Änderungen von Klassennamen oder Namespaces ergeben haben (s.o.), sind in dieser Tabelle nicht aufgeführt