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 KlassennameNeuer Klassenname
com.levigo.jadice.server.streamtransport.jms.JMSStreamTransportFactory
com.levigo.jadice.server.streamtransport.DefaultStreamTransportFactory

Änderungen in der Vererbungshierarchie

Klassebisherneu
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:

KlasseBisheriger NamespaceBisheriges ModulNeuer NamespaceNeues Modul
JMSAppender
com.levigo.jadice.server.core.utilserver-corecom.levigo.jadice.server.jms.loggingjms-transport-core
JMSReplayer
JMSJobFactory
com.levigo.jadice.server.client.jmsserver-sharedcom.levigo.jadice.server.jms.clientjms-transport-shared
JNDIConnectionFactory
MimicryThrowable
CredentialInjectionConnectionFactoryWrapper
com.levigo.jadice.server.shared.jmsserver-sharedcom.levigo.jadice.server.jms.sharedjms-transport-shared
CredentialInjectionQueueConnectionFactoryWrapper
CredentialInjectionTopicConnectionFactoryWrapper
JMSTransportSender
MessageInspector
JmsMarshaller
com.levigo.jadice.server.shared.marshallingserver-sharedcom.levigo.jadice.server.jms.shared.marshallingjms-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-DateiNeue ElementeElemente, 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