Migration Guide

Migrating from pre jadice server® 4.3 versions

First of all, clients using the client libraries of previous versions must be updated to the most recent version!

As J2SE 1.4.2 reached the end of its service life (EOSL) in 2008, client side API requires Java 1.5 or above.

As OpenOffice.org 2.x has reached the end of life in december 2009 and hence might contain possible vulnerabilities, jadice server requires OpenOffice.org 3.x for conversion via the OOfficeConversionNode.

General Changes:

  • Interface com.levigo.jadice.server.JobListener has new method subPipelineCreated(Job, Node, Set<? extends Node>) that will be called when a sub-pipeline was dynamically created on behalf of another Node. If you do not wish to implement all the required methods, you can extend the new abstract class com.levigo.jadice.server.JobListenerAdapter that provides an empty default implementation and override the adequate methods.
  • Methods com.levigo.jadice.server.util.Util.deleteAllBelow(File) and deleteRecursively(File) have return value boolean (instead of void) that indicates the success of the call (see java.io.File.delete()).
  • Method com.levigo.jadice.server.util.NodeTraversal.traverse(Node, NodeVisitor<T>) was deprecated. Use traverse(Node, NodeVisitor<T>, boolean) instead where you choose if the traversal shall consider subsidiary nodes that were created dynamically created in a sub-pipeline, too.
  • Deprecated method com.levigo.jadice.server.Node.getNodeClassName() was dropped.
    Methods com.levigo.jadice.server.core.NodeWorker.warn(String), fail(String), fail(String, Throwable) and fail(Throwable) were dropped, use the qualified messages instead at your own implementation of NodeWorkers.
  • Deprecated methods com.levigo.jadice.server.shared.types.StreamDescriptor.setHideFromOutline(boolean) / isHideFromOutline() were dropped, use StreamDescriptor.getProperties().put(com.levigo.jadice.server.pdfmerge.PDFMergeNode.HIDE_FROM_OUTLINE, boolean) instead if a stream shall have no entry in the PDF outline when merging several PDF documents.
  • Changed semantics of Limit handling:
    • Now several limits of the same type can be applied to a job or node.
    • Nodes inherit the limits of their job in the following way: All limits with action WARN will be inherited, but limits with action ABORT will only be inherited if no such limit was applied to the particular Node.
    • The methods Limit#equals(Object) and Limit#hashCode() distinguish on the basis of the given object (so far: the class of given object).
    • Class com.levigo.jadice.server.shared.types.LimitableStreamBundle and Interface com.levigo.jadice.server.shared.types.SizeLimitable were removed
  • Removed nodes:
    Removed Node ClassAlternative Node Class
    com.levigo.jadice.server.fop.FopNodecom.levigo.jadice.server.xml.XSLFOFormatterNode
    com.levigo.jadice.server.nodes.OutputStreamWriterNodecom.levigo.jadice.server.nodes.URLOutputNode
    com.levigo.jadice.server.jadice4x.TIFFPageAggregatorNodecom.levigo.jadice.server.jadice4x.TIFFMergeNode or 
    com.levigo.jadice.server.jadice4x.JadiceShaperNode

Changes in Node classes:

com.levigo.jadice.server.ghostscript.GhostscriptNode
  • Methods isSplitPages() and setSplitPages(boolean) were dropped. Use the enumeration OutputMode instead.
com.levigo.jadice.server.notification.NotificationNode
  • Its NotificationListener does not receive an "OK" anymore but the StreamDescriptor of the stream that passes through.
com.levigo.jadice.server.nodes.URLInputNode
  • Methods setURL(URL) / getURL() were replaced by methods setURLs(Collection<URL>) / getURLs().
  • Method setAllowRelativeResources(boolean) was added in order to (dis)allow the retrieval of relative resources especially when rendering a HTML document.
com.levigo.jadice.server.jadice4x.JadiceDocumentInfoNode
  • New property UnhandledFormatAction to decide the action if the given document format is not supported by the jadice document platform.
  • Methods setIdentifier(String) / getIdentifier() were dropped.
  • In interface IDocumentInfo the method isThumbnailsAvailable() was dropped and the method getUUID() (returning the analyzed stream's uuid) was added.
com.levigo.jadice.server.nodes.URLOutputNode
  • The place holder for enumerating incoming streams is now exposed as public constant SEQUENCE_NUMBER.
  • The new constant STREAMDESCRIPTOR_FILENAME can be used to name the outgoing file equal to the filename provided in the stream descriptor.
  • Now this node supports the FTP protocol, too.
com.levigo.jadice.server.external.ExternalProcessCallNode
  • The place holders for in- and outgoing files are now exposed as public constants INFILE_PLACEHOLDER and OUTFILE_PLACEHOLDER.
  • The setter method setOutputStreamsExist(boolean) was dropped. This property is now automatically determined by the presence of the OUTFILE_PLACEHOLDER or the property InfileEqOutfile.
  • The property WaitForApplication now defaults to true.
com.levigo.jadice.server.mail.MailBodyCreatorNode
  • This node and the class AttachmentDirectory were moved from package com.levigo.jadice.server.mail.worker to package com.levigo.jadice.server.mail.
    Please review your imports especially if you have a tailored implementation derived from the script EMailConversion.groovy.