22 January 2016

1. New features

  • Support for handling asynchronous replies via so called reply handlers has been added.

  • Many new options related to "Transfer Data" destinations has been added.

    For example being able to specify reply-to destinations, better control over correlation id’s, message priorities, message types among others.

    See this page and this page

  • Configurable RESTful web services making it easy to expose ENOVIA information through web services.

  • Added job events types:

    • Start. Triggered before a job starts.

    • Success. Triggered when a job has been successfully executed.

    • Error. Triggered when a job fails. (Exists previously.)

  • TVC Collaboration notifications can be configured to be sent on job events. For example, a notification can be sent to the user starting a job when it completes.

  • IBM MQ settings such as encoding and charactersets can be specified on destination level.

    See this page and this page

  • Selecting type of IBM MQ message

  • Inbound Websphere MQ messages logged in TIF Admin UI

  • Inbound JMS Message Handler supports creating replies if replyTo destination set. See this page.

  • New outbound job type for customers already using/having the TVC File Manager Component: File Package creation.

    This allows you to execute a so called FPD configuration on the TIF server and deliver the generated file package via the TIF destination mechanism.

  • New batch job type for customers using/having the TVC Report Generator/ENOVIA RPT component: Create reports in batch mode

    • This feture will remove the need to using the separate Report Daemons/Agents and let TIF handle that.

  • Support for a static filename in a file destination

  • Inbound integration: Support for RabbitMQ listener.

2. Bugs fixed

  • Jobs without associated business object displayed error in admin pages

  • NullPointerException while converting word file to PDF

3. Changes

  • This version of TIF requires TVC 2015.3.0

  • XML Resources may be used from the referenced web-application now also (start script changes).

    • XML Resources in TIF will have precedence over files from the web-app

  • TIF has internally changed from using the Apache Commons Digester for parsing of XML files to using a StAX based parsing approach.

    In earlier versions of TIF, as long as the XML files contained valid XML, the Digester did not complain about elements that were mis-spelled or was not used by TIF. The new implementation will report errors if there are XML Elements present that are unknown for TIF.

    This change will help you to troubleshoot problems related to configuration mistakes easier.

  • com.technia.tif.enovia.jms.MessageReceiver API changed to support creation of reply message creation.

  • The ENOVIA client JAR file is compiled with Java 6

  • Many of the internal TIF dependencies has been updated to more recent versions.

Upcoming versions of TIF will require Java 8. This only affects the TIF server component.

4. Migration Guide: Job Events (previously OnError)

4.1. Job Configurations (jobcfg)

How to configure errors in job configurations has changed slightly. A new element <Events> has been added as sub-element to <Job>. The <OnError> element has been moved to <Events> and renamed to <Error>.

Example before:

<Job>
    <TransferData>
        ...
        <OnError>
            <SendMail>
                <TO>user@company.com</TO>
                <Subject>...</Subject>
                <Message>...</Message>
            </SendMail>
        </OnError>
    </TransferData>
</Job>

Example after migration:

<Job>
    <TransferData>
        ...
    </TransferData>
    <Events>
        <Error>
            <SendMail>
                <TO>user@company.com</TO>
                <Subject>...</Subject>
                <Message>...</Message>
            </SendMail>
        </Error>
    </Events>
</Job>

4.2. Customer handlers

Custom event handlers (configured with the <Handler> element) now need to implement:

com.technia.tif.enovia.jobevent.JobEventListener

The interface:

public interface JobEventListener {

    /**
     * Invoked when event occurs.
     *
     * @param event Event data
     * @since 2015.3.0
     */
    void onJobEvent(JobEvent event);
}

Example configuration:

<Job>
    ...
    <Events>
        <Start>
            <Handler>com.company.acme.tif.StartHandler</Handler>
        </Start>
    </Events>
</Job>

The onJobEvent() method is invoked once per event. The event parameter contains information about the triggered event, e.g. which type of event is it, what job is executed, which object is it executed on and more. Implement the interface com.technia.tvc.core.xml.stax.XMLReadable in case your handler supports configurations.

4.3. Custom Executors

Custom executors no longer need to implement the getErrorHandler() method.