Taverna 2.5.4 Server Release Notes
==================================

This is the fourth public release of Taverna 2.5 Server. We welcome feedback
on both the things that are there and the things that are not.

Key Features
------------
 * Runs arbitrary Taverna 2 workflows
   * Based on Taverna 2.5 Workflow Engine
   * Includes support for Components and Interaction processors
 * REST and SOAP interfaces
   * All functionality available through both interfaces
 * Manages files for workflows
   * Make files, read files, delete files
   * Create subdirectories, list directory contents
   * Can download a whole directory structure as a ZIP
 * Tidies up when workflow runs expire
   * Expiry time fully configurable
   * Can force immediate deletion of a workflow run
 * Generates Run Bundles
   * Contains formal description of the workflow run, designed for
     sharing, including the inputs, outputs and provenance trace
 * Security
   * Encrypted communication supported
   * Multiple users
     * Users isolated from each other (via sudo)
     * Workflows isolated from server
     * Users may grant access to other users
   * Specify credentials for workflows to access back-end services
 * Notification framework
   * Inform users when workflows terminate
     * Many protocols: Atom feed, email, SMS, Twitter, Jabber
 * Management interface
   * Administrative access to all server's tunable parameters
     * Authenticated web interface, JMX
   * Usage monitoring/accounting
 * General quality improvements
   * Improved speed
   * Improved robustness
     * State can persist over (limited) server restarts
   * Improved installation
     * Self-contained server package
   * Support for transfer of large data files

Significant Changes
-------------------
 * Supports full Taverna 2.5.0 Enterprise execution platform
 * Now requires Java 7

Planned Future Features
-----------------------
 * Support for Cluster Deployment
 * Full WebDAV access to run working directory

Specific Issues Addressed in This Release
-----------------------------------------
See http://www.mygrid.org.uk/dev/issues/browse/TAVSERV

TAVSERV-5 Need to detect interactive localworkers
TAVSERV-76 Support user-supplied functionality
TAVSERV-283	Invocation is spelt as invokation in the admin interface
TAVSERV-293	A HEAD or OPTIONS to the wsdl address returns a 500 error
TAVSERV-301 Interaction feed address is not a full URI
TAVSERV-309 Failure in getRunOutputDescription SOAP operation
TAVSERV-310	Support OPTIONS in main interface
---- 2.5.0 release ----
TAVSERV-219 Some server errors are reported as 403 when 500 is more
            appropriate
TAVSERV-290 Support restricting what URLs to use workflows from
TAVSERV-307 Users created through the admin web interface are not properly
            set up in "insecure" mode
TAVSERV-321 Interaction service internal bug
TAVSERV-322 Atom feed updated timestamp being rounded down
TAVSERV-325 Can't create run with long default name
TAVSERV-326 Log concatenation
TAVSERV-328 An OPTIONS request to any resource produces incorrect headers
---- 2.5.1 release ----
TAVSERV-42 Provenance: Access and Lifetime
TAVSERV-44 Managing Workflow Instances
TAVSERV-69 Provenance: core
TAVSERV-297 Running instance of Taverna Server 2.4.1 hangs after a while;
            submitting a new workflow using REST API results in "HTTP 403
            Permission denied"
---- 2.5.2 release ----
TAVSERV-329 Master feed broken
TAVSERV-332 Massively degraded performance of 2.5.2
---- 2.5.3 release ----
    Updated to use Taverna 2.5.0 Enterprise Execution Core
TAVSERV-103 Generated WSDL interface incorrectly claims that parameters are
            optional
TAVSERV-331 Add an option for the provenance export using the new -provbundle
            command line tool switch
TAVSERV-336 Support splitting inputs 
TAVSERV-337 RMI registry subprocess race condition
SERVINF-395 Fix race condition in XML parsing
---- 2.5.4 release ----