YAWL Changelog

What's new in YAWL 3.0.1

Apr 29, 2015
  • EDITOR:
  • [Enhancement] [Extended Attributes]: Added 'max-field-width' extended attribute (see also resource service dynamic form enhancement).
  • [Enhancement] [Validation]: Improved validation handling for split predicate expressions defined externally (eg timer, cost, etc).
  • [Enhancement] [Specification]: Added infomation message to delete orphan decompositions action when there are no orphans to delete.
  • [Enhancement] [Data Binding]: Added net-level variable binding reference dialog (via the # button on the data variable dialog).
  • [Enhancement] [Data Binding]: Better filling of values for multiple-instance tasks in Output binding dialog.
  • [Enhancement] [Data Binding]: Better formatting of XQueries when validating.
  • [Enhancement] [Data Binding]: Smarter selection of default net varible to generate binding to in the Output binding dialog.
  • [Enhancement] [Data Binding]: More detailed error messages for binding expressions in data bindings dialogs are now provided, when possible.
  • [Enhancement] [Repository]: Made filtering over names in repository load dialogs case insensitive.
  • [Enhancement] [Repository]: Added warning of missing user-defined data types when loading decompositions from the repository.
  • [Enhancement] [Repository]: Added storage of net layouts with net in repository.
  • [Enhancement] [Upload & Launch]: Added dialog for inputting case-level parameter values when uploading a specification with case-level input parameters.
  • [Enhancement]: Improved responsiveness and graphics when drawing flow between elements.
  • [Bugfix] [Data]: Changing the datatype of a net-level, output-only variable did not also change that of its 'shadow' local variable.
  • [Bugfix] [Data Binding]: Output binding dialog selecting incorrect net-level 'mapped-to' var in some instances.
  • [Bugfix] [Data Binding]: Changing net-level variable from Input & Output to Local makes the variable disappear.
  • [Bugfix] [Data Binding]: Occasional data binding generation errors when decomposition id != task id
  • [Bugfix] [Specification]: Composite task identifier and label reverting to default values when the specification is saved and reloaded.
  • [Bugfix] [Specification]: Rationalising element ids on specification load was leaving old ids in some data mappings.
  • [Bugfix] [Specification]: Removing a decomposition from a task left residual mappings to the decomposition in the task.
  • [Bugfix] [Data Validation]: Generated sample data for xsd:enumerations was returning incorrect values in some cases.
  • [Bugfix] [Repository]: Fixed propagation of net rename to data bindings when importing nets from repository.
  • [Bugfix] [Repository]: Loading a net with subnets from the repository was not loading the subnets.
  • [Bugfix] [Repository]: A ‘textArea’ extended attribute stored in the repository was not added during a load from repository to a data variable.
  • [Bugfix] [Repository]: Loading a decomposition from repository did not attach it to the specification for validation purposes.
  • [Bugfix] [UI]: Mis-sorting of plugin menu items.
  • [Bugfix (issue 541)] [Specification]: Rationalising of identifiers removed random net elements from specifications in some very large, non-complete nets.
  • [Bugfix] [Specification]: Some specifications missing description on reload.
  • [Bugfix (issue 544)] [Specification]: When loading a specification file that contains a task referencing a non-existent decomposition, the load silently fails.
  • [Bugfix]: Editor briefly pausing intermittently on Windows.
  • [Bugfix]: Some dialogs (e.g. resourcing, timer, preferences) had incorrect layouts on some Windows installations.
  • ENGINE:
  • [Enhancement]: Improved handling of validation and processing of externally defined predicate functions.
  • [Enhancement]: Added 'deleteonexit' attributes to build script for better cleanups.
  • [Bugfix (issue 546)]: Where two or more tasks immediately preceded the end condition, a race would occur that caused spurious error meesages passed to client services.
  • [Bugfix]: A task with a timer to start on offer, when in tight loop may cause a persistence exception.
  • [Bugfix]: Cancelling a case after a schema validation error may cause an engine persistence failure in some cases.
  • [Bugfix] Incorrect marshalling of YClient via Interface A.
  • [Bugfix] (issue 534): Order fulfilment example missing some library jars in non-enterprise environments.
  • [Bugfix]: Plugin framework failing to load external jars in non-enterprise environments.
  • [Bugfix]: Document Store Service not adjusting YDocument table field size from 255 bytes in new 3.0 structure for non-enterprise environments.
  • [Bugfix] (issue 533): External data gateway fails to load if the file path to the engine classes contains one or more spaces or any extended UTF characters.
  • [Bugfix]: Cleaned up order fulfilment example.
  • RESOURCE SERVICE:
  • [Enhancement]: Maximum widths for input fields on dynamic forms can now be set via an extended attribute, and in any case are now limited to the width of the browser window.
  • [Enhancement]: A 'Label' extended attribute on a complex type is displayed as a sub-panel heading on a dynamic form.
  • [Enhancement]: Dynamic form builder now defaults to string type for elements where no type is provided.
  • [Enhancement]: Sample date/time values generated from XSDType now show current date/time.
  • [Enhancement]: Removed inbound validation of previously saved data on dynamic forms.
  • [Bugfix]: Backing table for work item cache may become out of sync with service due to race condition when a work item is removed from the cache.
  • [Bugfix]: Attempting to browse to the login page from an already active session will lock the browser window.
  • [Bugfix]: Dynamic forms with only boolean fields (i.e. checkboxes) and text above or below extended attribute values rendered too narrowly.
  • [Bugfix]: In dynamic forms, hidden complex type fields were generating blank space at the bottom of the form.
  • [Bugfix]: Resources marked as unavailable in calendar sub-service not being removed from work item distribution sets.
  • [Bugfix]: Extended attribute values not handling XML 'special' characters correctly.
  • [Bugfix] (issue 535): Org data upload from backup file loses extended character encodings.
  • [Bugfix]: Plugin framework failing to load external jars in non-enterprise environments.
  • [Bugfix] (issue 533): External org data fails to load if the file path to the resource service contains one or more spaces or any extended UTF characters.
  • [Bugfix]: Rare NullPointerException in InterfaceClients#connect when logging on for the first time.
  • [Bugfix]: Resource that completed a previous task used for familiar task and separation of duties allocations lost if the engine is restarted mid-case. CONTROL PANEL:
  • [Enhancement]: Removed engine restart from control panel update process when control panel app is the only update.
  • [Enhancement]: Added feature to change tomcat port (in Preferences).
  • [Enhancement]: Much more robust state handling when starting tomcat.
  • [Bugfix]: Dynamically create JAVA_HOME env variable before starting engine; fix for infinite 'Starting Engine' message.
  • [Bugfix]: Control panel erroneously attempted to register the order fulfilment examples as a service.

New in YAWL 3.0.0 (Mar 19, 2015)

  • [New] Auto-updating functionality.
  • [New] Data binding summary dialog.
  • [New] Support for concurrent editing of common properties of selected elements.
  • [New] Auto-generation of default & initial values for non-string data types.
  • [New] Added plugin toolbar for task decorators.
  • [Enhancement] Made binding dialogs resizeable.
  • [Enhancement] Fixes around the hiding of the bottom panel on startup.
  • [Enhancement] Data bindings are now validated when binding dialogs are created.
  • [Enhancement] Removed various long-standing threading issues.
  • [Enhancement] Moved repository directory to a direct sub-directory of the editor directory.
  • [Enhancement] Complete rewrite of net printing functionality.
  • [Enhancement] Improved XML editing support.
  • [Enhancement] Greatly improved support for extended attributes, including added validation for facet-based attributes.
  • [Enhancement] Made split predicates dialog resizeable.
  • [Enhancement] Added syntax highlighting for log predicates.
  • [Enhancement] Log predicate support for nets and variables.
  • [Enhancement] Auto generation of task data bindings when usage selection changes.
  • [Enhancement] Added default selection for resourcing allocator when no allocator has previously been chosen.
  • [Enhancement] Added 'Check for Update' functionality on startup.
  • [Enhancement] Some improvements to datatype validations within bindings.
  • [Enhancement] Added context menu to close plugin toolbars.
  • [Enhancement] Improved codelet handling to match updates on engine side.
  • [Enhancement] Added links to forum and issues list to about box.
  • [Enhancement] Added ability to toggle property descriptions panel in preferences.
  • [Bugfix] Infinite loop in Analyser in a particular scenario.
  • [Bugfix (issue 532)] Removing flow sporadically leaving remnants in net.
  • [Bugfix] Removed unnecessary character check in NetProperties#setURI.
  • [Bugfix (issue 531)] Setting task timer to 'never' failed to remove it from the task.
  • [Bugfix] XQuery functions not properly displayed in XQuery editors.
  • [Bugfix (issue 530)] Some minor binding representation issues.
  • [Bugfix] Disabled 'onstart' choice for automated task timers.
  • [Bugfix] Problems deleting bindings in View Bindings dialog.
  • [Bugfix] Fixed last file open path being forgotten.
  • [Bugfix] Problems caused by null log predicates.
  • [Bugfix] Task-level default value saved incorrectly in some instances.
  • [Bugfix] some fixes around the renaming of formal parameters of multi-instance tasks.
  • [Bugfix] Changing output-only variable to input-only variable caused exception.
  • [Bugfix] Resourcing (late bound) net-params fail to show in resourcing dialog.
  • [Bugfix] Set a minimum size for the Editor application.
  • [Bugfix (issue 524)] When drag'n'drop of new task variable, then immediately changing Input/Output to Input (Only), left an output binding in the specification XML.
  • [Bugfix] Fixed potential to create invalid spec URI on File->Save-as.
  • [Bugfix} File Save fails occasionally on new installs.
  • [Bugfix] Moving a flow from a condition to a task did not remove previous flow.
  • [Bugfix] Setting an element name via double click didn't save.
  • [Bugfix] Previous tasks sometimes missing from resourcing dialog’s constraints combo-boxes.
  • [Bugfix] Icons missing from split/join properties combo-boxes.
  • [Bugfix] System freeze on first file save when using a machine that has never run any version of the editor before.
  • [Bugfix] Mis-sorted split predicate conditions in dialog.
  • [Bugfix] Exception when a previously selected codelet is unselected.
  • [Bugfix] Selection highlight lost when data definition dialog editor loses focus.
  • [Bugfix] Rolled up categories in property window unroll when new element selected.
  • [Bugfix] Occasional output bindings appearing in input bindings dialog.
  • [Bugfix] Encoding of XML characters in task documentation.
  • [Bugfix] Analyser findingx some false positives.
  • [Bugfix (issue 509)] Problems with spaces in identifiers.
  • [Bugfix (issue 514)] Selection of task within its container allowed when task has no label.
  • [Bugfixes] Multiple fixes for process configuration plugin.
  • [Refactor] Improved multi-instance handling.
  • [Refactor] Some improvements to cutting and pasting graph elements.
  • [Refactor] simplified palette tooltips.
  • [Refactor] Removed superfluous net map palette icon.
  • [Refactor] Some improvements to plugin interface.
  • [Refactor] Some improvements to file save procedures.
  • ENGINE & SERVICES:
  • [New] YAWL Control Panel, featuring updating/installing/uninstalling of YAWL services.
  • [New] Added direct execution of exlet (i.e. bypassing rules evaluation) via Worklet Service’s API.
  • [New] Reimplementation of plugin loader and instantiations, to be more generic & robust.
  • [Enhancement] Specification files now support embedded newline characters in YTask parameter expressions [Enhancement] Improved handling of invalid specification XML.
  • [Enhancement] Added info-level logging to XQuery evaluations.
  • [Enhancement] Added the ability to upload worklet specifications directly via the Worklet Service’s API.
  • [Enhancement] Added method to Engine’s Interface B that will get snapshot of data for pre-enabled work item.
  • [Enhancement] Added the ability to bypass data validation data on dynamic forms when saving updated data. Validation now only occurs on completion.
  • [Enhancement] Added passing of specification xml, when available, via WorkqueueGateway#getSpecData.
  • [Enhancement] Added XML encoding for metadata string fields and YTask documentation field.
  • [Bugfix (issue 529)] Resource Service sometimes blocks logons in Windows environments.
  • [Bugfix] Role comparisons were case sensitive.
  • [Bugfix] Resource Service jsp pages failing to block disabled external org data modifications.
  • [Bugfix] Reges exception in YPluginLoader.
  • [Bugfix] Resource Service losing user privileges when non-default data sources were refreshed.
  • [Bugfix] Some updates of roles, positions & capabilities on user mgt form were lost.
  • [Refactor] Improvements to external org data source handling.
  • [Refactor] Moved cleansing of resource service's work item cache to timed thread.

New in YAWL 3.0.0 Beta (Apr 11, 2014)

  • reworked interface with always available properties window
  • faster loading and saving
  • upload and download specifications directly between engine and editor
  • drag and drop to open a specification
  • faster analysis and validation
  • simplified validation messages
  • new, simpler data perspective
  • easy multiple instance query definitions
  • colour-coded data definition and XQuery editors (with partial auto-completion)
  • new repository that supports storing and reuse of nets, decompositions, data definitions and extended attributes
  • a consolidated preferences dialog
  • new, simpler resource perspective
  • 'retain familiar' task resource pattern now works across net boundaries

New in YAWL 2.3.5 (Jul 12, 2013)

  • [New] YSimulator provides for the automatic running and testing of various resources and cost parameters against a specification over a specified number of instances.
  • [New] Support for pluggable, user-defined classes to handle predicate evaluations at runtime.
  • [Enhancement] The Document Store can now store a file for a case before the case has been created for it.
  • [Enhancement] Resource filter parameters can now handle complex expressions.
  • [Enhancement] Various enhancements and additions to the Cost Service, including: export, remove and clear cost model, better messaging, cleaner XSDs.
  • [Enhancement] Added support for dynamic attribute values in decomposition and variable attributes.
  • [Enhancement] Removed hardcoded Resource Service URL from Worklet Service's jsp files and made the value configurable.
  • [Enhancement] Fixed XESTimestampEvaluator to better handle ties (identical timestamps).
  • [Enhancement] Added a schema for org data backup files.
  • [Enhancement] Created XSDs for Worklet RDR Rule sets and search results.
  • [Enhancement] Added a default HTTP response to the doc store service, to handle when it is called directly and with no parameters.
  • [Enhancement] Small performance improvement in XES log generation.
  • [Bugfix - issue 460] Launching a case with a net-level input parameter of YDocumentType causes a NullPointerException.
  • [Bugfix - issues 457 and 464] User Management form was intermittently creating duplicated org data for last viewed participant
  • [Bugfix - issue 462] When generating random org data, the relations created between entities (roles, positions, org groups, capabilities) were not being persisted.
  • [Bugfix - issue 466] Minor ordering inconsistency in specification XML.
  • [Bugfix - issue 468] Size of H2 database binary type fields defaults to 255 characters, affecting YAWL4Study users only.
  • [Bugfix - issue 481] Intermittent database constraint violation when attempting to delete a work item from the Resource Service's work item cache.
  • [Bugfix] A composite task with a loop directly to itself was leaving a remnant token in the loop's internal condition that was causing the composite task to run again if it had already completed at least once and the server was restarted before the subsequent task was started.
  • [Bugfix] Editor unable to re-connect to Resource Service via Settings dialog.
  • [Bugfix] Editor incorrectly scales specification on File Open in some locales.
  • [Bugfix] Disappearing decomposition-level extended attribute values in Editor.
  • [Bugfix] XES log generation produces a null document.
  • [Bugfix] Incorrect validation of certain complex initial values on specification load. [Bugfix] Skipping a work item ignored any updated data already saved to the work item.
  • [Bugfix] Adding RdrNodes via Worklet Service API may result in incorrect tree structures.
  • [Bugfix] Worklet Service failed to launch cases in some situations.
  • [Bugfix] ClassCastException in Scheduling Service's DataMapper class.
  • [Bugfix] Exception Service throws a NullPointerException when handling timeout exceptions. [Bugfix] Potential NullPointerException in Sessions class.
  • [Bugfix] Potential NullPointerException in YSpecificationID and YSpecVersion classes if a YSpecificationID is created with all null values
  • [Bugfix] Windows batch file to start the Proclet Editor failed with error.
  • [Bugfix] Small miscalculation in dynamic form layout arithmetic.
  • [Bugfix] JSP error in Monitor Service due to stray comments above an XML header. [Bugfix] YNetLocalVarVerifier producing false positive for complex types with 'minOccurs=0' attribute.
  • [Bugfix] YNetLocalVarVerifier and YVerificationHandler classes not sufficiently distinguishing between errors and warnings during verification of specifications.
  • [Bugfix] YNet sorts local variables by name rather than by ordering as expected.
  • [Bugfix] Incorrect parsing of user-task privileges when a privilege is restricted to particular participants or roles.
  • [Refactor] Simplified and unified schema and data document validation frameworks, allowing removal of old, superseded classes.
  • [Refactor] Added default minimum, maximum and threshold values to multiple instance attributes.
  • [Refactor] Split some large Resource Service classes
  • [Refactor] Fixed a couple of typos in build.xml (mainly comments).
  • [Refactor] Fixed a minor typo in YAWL_Schema2.2.xsd.
  • [Refactor] Fixed a typo in Exception Service's wsHead.jsp file.
  • [Refactor] Internal management of timer parameters.
  • [Refactor] Upgraded to JDOM2 library.
  • [Refactor] Upgraded MySQL library.
  • [Refactor] Updated Hibernate libraries.

New in YAWL 2.1 (Jul 30, 2010)

  • ENGINE:
  • Fixed a bug that caused an exception when launching a case that included case-level
  • input parameters, and their outer data tag matched the specification id and the
  • specification id also matched the root net id.
  • Fixed a bug in ordering of output-only task parameters for validation, and added a
  • 'getWorkItemOutputOnlyParameters' method to the resource gateway API for use by
  • custom forms and other services.
  • Updated the examples.
  • RESOURCE SERVICE:
  • Fixed a bug where workitem resource status changes were not always successfully
  • persisted.
  • Fixed bugs on dyn forms where (1) the number of enclosed panels of a cloned panel
  • could not be varied; and (2) there was a rendering issue which caused an overlay of
  • components when a panel contained more than one sub-level of enclosed panel and the inner panels were cloned.
  • Added a host of resource create/update/delete methods, and a few new get___ methods to the Resource Gateway API, so that participants, roles etc. can be maintained via the API.
  • Added a link to the YAWL User Survey.
  • EDITOR:
  • Fixed an issue where the 'Set Label' dialog for tasks and conditions would sometimes
  • show the text entry field truncated to a length of zero.
  • Fixed an incorrect message when analysing or-joins combined with reduction rules.
  • Added horizontal scroll bar to the 'Problems' table at the bottom of the screen.
  • Added a check for valid external connections whenever actions require them.
  • Added the ability to set a background image for a net.
  • Added a link to the YAWL User Survey (via the Help menu).
  • Fixed a couple of typos in messages and dialogs.

New in YAWL 2.1 Beta (Jun 4, 2010)

  • The replacement of the entire process logging framework and its associated interface
  • with a completely new, more efficient and complete one.
  • Case histories are now produced by both the Engine and Resource Service in OpenXES
  • format for direct import into the ProM process mining tool.
  • The Resource Service's logging framework has also been expanded and improved. The
  • Resource Service also produces a case history log in OpenXES format, and can merge its
  • log with the engine's to produce a complete log of each case.
  • New 'log predicate' functionality, which provides for freeform messages to be written
  • to the process logs when cases and/or tasks are started and/or completed. Predicates
  • can embed current state values of the case or task via a simple query language.
  • Audit logs for the Engine and Resource Service have been added that record all
  • session events (logon, logoff, expiry, shutdown, etc).
  • The Engine is now completely 'agnostic' to users. That is, it has no concept of
  • individual users (instead, users are expected to be managed by custom services such as
  • the Resource Service). The Engine will only accept connections from registered
  • services and client applications (such as the Editor).
  • As a consequence, each custom service and external application now requires a valid
  • userid and password as part of the registration with the engine before it can connect.
  • All connection passwords are now hashed on the client side and only hashed values are
  • stored in the database.
  • When a custom service is registered with the engine, the url entered is now checked to
  • make sure its valid.
  • Any service or application registered with the Engine may also connect to the
  • Resource Service (that is, the Resource Service recognises the services and
  • applications registered with the Engine).
  • In previous versions, what signified the completion of a net differed between sub-nets
  • and root nets. A sub-net was considered complete when a token reached the output (end)
  • condition, which is correct in terms of the YAWL language. A root net, on the other
  • hand, would continue after a token reached the output condition if active tokens
  • remained in the net, which indicates an unsound net. In this version, all nets are
  • considered complete when a token reaches the output condition.
  • Session timeout settings are now fully supported across the entire environment.
  • The generic 'admin' user can now have its password changed.
  • The generic 'admin' user can now be configured as disabled (so that the engine will
  • reject connection attempts with the generic 'admin' account).
  • A new monitor service is available that lists information of all current, active
  • cases, each of its workitems and each variable of each workitem, relevant process log
  • information and updating case data for the life of the case.
  • An LDAP translation layer has been added so that org data can be loaded directly from
  • an LDAP server.
  • If an external org data source is enabled, user authentication can now be configured
  • to be passed to the external source (as opposed to loading the user passwords on
  • startup and authenticating within the Resource Service).
  • Data values for net and task level variables can now be read from and written to
  • external data sources via an interface. The interface is called when a case starts,
  • when eack task starts and completes, and finally when the case completes, so that
  • the desired case/task variables can be populated. It is possible to have a subset
  • of variables populated from external source, while others are populated via the
  • usual mappings (net->task or task->net).
  • An implicit net level status for each workitem timer started within a net is now
  • available for use in flow expressions. A timer status is one of: dormant, active,
  • closed or expired, so a particular flow expression might look like this:
  • "timer(myTask) != 'expired'".
  • Much expanded extended attributes, many of which affect the format of dynamic forms.
  • This allows dynamic form display to have much greater flexibility (fonts, colours,
  • images, freeform text etc.).
  • Extended attributes can be further modified at runtime (immediately before a form is
  • displayed) via an interface to hide fields, modify values etc. depending on the
  • current data and state of a case or task.
  • Data schema generation for workitem forms has been improved, resulting in a 3X speed
  • increase.
  • The location of the default worklist (by default the Resource Service) is now a
  • configurable value set in the engine's web.xml, so that a replacement worklist can be
  • easily inserted.
  • Handling of user messages in the Resource Service's default worklist has been improved.
  • The names of resource entities (roles, capabilities, positions, org groups) can now be
  • modified via the 'Org Data Management' form.
  • The participant members of a resource entity are now listed on the 'Org Data
  • Management' form when the entity is selected.
  • A new verification check has been added that warns users, when a specification is
  • loaded, if there are any assignments from an unitialised net-level variable to a task
  • variable.
  • Engine event notification chronology has been refactored so that events are announced
  • after the processing of a 'unit of work' is complete (rather than during the
  • processing).
  • Added support to the default worklist for the 'worklist visualiser' app.
  • Each of the Resource Service's interfaces has been extended with new methods.
  • The deprecated 'YAWLXForms', the services 'worklist' and 'timeService' and several
  • superfluous packages have been removed.
  • The YSpecificationID object has been upgraded and is used across all interfaces to
  • uniquely identify specifications (as opposed to relying on their names alone)
  • Refactored process persistence and removed redundant persistence classes.
  • Parameter ordering improved to ensure the order originally set at design time remains
  • constant throught the life of the case.
  • All services now behave correctly when the engine is restarted independently.
  • A number of 3rd party libraries have been updated.
  • Fixed a bug in the 'Shell Execution' codelet where commands with arguments were not handled correctly.
  • Fixed a bug when validating mandatory date fields that had no value inserted.
  • Fixed a bug in dynamic forms that only displayed the first of multiple values of
  • complex type sub-element in certain scenarios.
  • The Editor now provides support for Process Configuration, as well as support for the
  • new Engine functionalities and several usability improvements.
  • and many, many more smaller fixes, tunings and improvements.

New in YAWL 2.0.1 (Dec 28, 2009)

  • ENGINE:
  • Fixed a bug that caused an exception when launching a case that included case-level
  • input parameters, and their outer data tag matched the specification id and the
  • specification id also matched the root net id.
  • Fixed a bug in ordering of output-only task parameters for validation, and added a
  • 'getWorkItemOutputOnlyParameters' method to the resource gateway API for use by
  • custom forms and other services.
  • Updated the examples.
  • RESOURCE SERVICE:
  • Fixed a bug where workitem resource status changes were not always successfully
  • persisted.
  • Fixed bugs on dyn forms where (1) the number of enclosed panels of a cloned panel
  • could not be varied; and (2) there was a rendering issue which caused an overlay of
  • components when a panel contained more than one sub-level of enclosed panel and the inner panels were cloned.
  • Added a host of resource create/update/delete methods, and a few new get___ methods to the Resource Gateway API, so that participants, roles etc. can be maintained via the API.
  • Added a link to the YAWL User Survey.
  • EDITOR:
  • Fixed an issue where the 'Set Label' dialog for tasks and conditions would sometimes
  • show the text entry field truncated to a length of zero.
  • Fixed an incorrect message when analysing or-joins combined with reduction rules.
  • Added horizontal scroll bar to the 'Problems' table at the bottom of the screen.
  • Added a check for valid external connections whenever actions require them.
  • Added the ability to set a background image for a net.
  • Added a link to the YAWL User Survey (via the Help menu).
  • Fixed a couple of typos in messages and dialogs.

New in YAWL 2.0 RC 1 (Mar 24, 2009)

  • ENTIRE ENVIRONMENT:
  • Unicode (UTF-8) is now fully supported throughout the environment (previously only basic ASCII was fully supported across all services and applications). Any characters from any set can now be used for task names, variable names, values etc. This change also resulted in some efficiency improvements in the HTTP transport methods of the various interfaces.
  • Libraries for jdom, hibernate3, xerces and dom4j have been updated to their latest releases.
  • ENGINE:
  • Changed the way tasks are cancelled internally when they are members of a cancellation set, so that custom services are now notified of their cancellation.
  • A new notification event is generated whenever a workitem's status changes in the engine, so that custom services are notified of changes to workitems made by other custom services.
  • Added monitoring API to Interface B, so that datasets of all running cases, all workitems for a case or all data variables for a workitem can be retrieved from the engine.
  • Added engine method to retrieve net-level data from running sub-nets (needed for resolving deferred resource allocations in sub-net tasks).
  • RESOURCE SERVICE:
  • Improved the algorithm that prepares data descriptors for dynamic forms so that forms are displayed more quickly.
  • Added some log mining methods for the service's process logs.
  • Added a new allocator called 'RoundRobinByExperience', which will allocate a task to the participant who has the most experience performing the task. As a consequence, also, renamed 'RoundRobinByFrequency' to 'RonudRobinByLeastFrequency' (which allocates to the least experienced participant).
  • Added a second parameter that is passed to custom forms, that lists as xml all of a workitem's variables (name, type, etc), whether input, output or both.
  • Refactored support for the 'retain familiar' and 'separation of duties' patterns to fix a timing issue in certain scenarios where the 'familiar' task is immediately followed in control-flow by the referencing task and the familiar task completer was not yet stored.
  • Refactored the application of dynamic form data attributes for complex data types so that elements in complex types would always have their attributes overridden by those of their parent.
  • Added a 'read-only' extended attribute that can be associated with a variable of a task at design time and will cause it to be displayed as read-only at runtime, even if the variable would otherwise be editable. This is a pre-cursor to more comprehensive support for extended attributes in future releases.
  • Fixed a bug where warning messages were sometimes being displayed as errors when uploading a specification.
  • Fixed a bug on dynamic forms where complex types were sometimes not correctly rendered when they had no input or output predicates defined.
  • Fixed a bug where deleting entries from the 'Org Data Mgt' form would sometimes throw an exception (the underlying cause was a database synchronisation issue).
  • Fixed a bug where tabs on the 'Org Data Mgt' form would sometimes need to be clicked twice before navigation to that tab would occur, after an entry had been deleted.
  • Fixed a NullPointerException that occurred on workitem start when all three interactions were set to system-start.
  • Fixed a NullPointerException that occurred when selecting an empty row in the 'Select User' listbox (to reoffer a workitem to).
  • Fixed the 'Select User' form so that now it will not display if there are no participants available to place in the lista explanatory message is shown in such scenarios.
  • Fixed a bug on the 'Admin Queues' form which would sometimes result in an exception, caused by a workitem being restored from persistence without a valid 'status' flag.
  • Fixed a bug on dynamic forms where the expiry value for a timer was not being correctly validated.
  • Fixed a bug when importing org data that contained participant information, where the new participants didn't immediately appear in the dropdown dialog on the 'User Mgt' form.
  • Fixed a bug when completing a custom form, where data validation was missed in some cases.
  • Fixed a bug that sometimes occurred where dropdown lists on a dynamic form were editable even though the variable it was representing was input-only.
  • Fixed a bug on dynamic forms where values input into fields of 'xs:time' data type were not validated correctly.
  • Fixed a bug with dynamic form generation, where if there is a complex type displayed that contained a child complex type with 'maxOccurs=unbounded', and a child simple type, and the complex type had more than one instance shown, the single simple type field would not be displayed.
  • Fixed a bug where, if a participant had workitems in their queue, and then had their privileges changed by an administrator, they would not receive any workitems in subsequent cases (that they would otherwise have been allocated).
  • Fixed bug where references to timed out user sessions were sometimes not fully removed from the service.
  • EDITOR:
  • The build process has been completely restructured, resulting in a size shrinkage of the full editor from around 16Mb to 9.4Mb, faster building and faster runtime loading.
  • Discovered a memory leak when maximising JInternalFrames (the internal 'windows' on the editor's canvas). If a window was maximised 20-30 times an OutOfMemoryError would occur. Fixed via the following point.
  • The editor's canvas has been remodelled from a set of floating frames to a set of tabbed frameseach net within it's own frame.
  • A log file is now created in the same directory as the editor, which captures the details of any runtime errors and messages (that were previously only written to the command line).
  • When running an analysis over a specification, a dialog is now displayed which shows a list of messages as the analysis progresses, to indicate ongoing activity when nets are complex. The dialog can be configured to stay open when analysis completes, via the dialog itself or via the 'Configure Analysis Settings' dialog.
  • There is a new option in the 'Save Options' dialog to create a backup of the last saved version of a specification, before it is overwritten with the newly saved version.
  • There is now two indicators on the left hand side of the status bar which show whether there is currently a valid connection to the engine (on the left) and the resource service (on the right). The editor will attempt a connection to each on startup, and if unsuccessful will not retry until a manual connection is attempted via the 'Engine Connection Settings' and 'Resource Service Connection Settings' dialogs.
  • Added an 'Open Recent' menu item to the 'Specification' menu, which will list as a shortcut the eight most recently opened and/or created files. Hovering over the file item will show the full file path as a tooltip.
  • Added a dialog box with a warning message that will display when a specification is opened that contains resourcing information, but there is not a current connection to the resource service. The dialog advises that the specification be closed, and a resource service connection be established, before editing the specification, to prevent loss of resourcing data.
  • Some efficiency improvements and minor corrections have been added to the reset-net analysis algorithms.
  • The 'Set Label' dialog for a task or condition now includes an option to set the task/condition name to match the new label, and it is checked each time the dialog is opened. So, by default, the task name and the label will match, but with the newly added option of having the task named (internally) differently to its label.
  • The 'Set Timer' menu item is now (correctly) enabled only for tasks with decompositions.
  • A decomposition can no longer be created without a name.
  • Fixed a bug which would sometimes delay by up to three seconds the appearance of the context (popup) memu of a task after a right-click in Windows environments.
  • Fixed a bug that prevented '.yawl' files from being successfully loaded via a command-line argument.
  • Fixed a bug where a custom form, once specified for a task, could not be removed.
  • Fixed a bug where, once a filter had been specified for the resources of a task, it could not be removed.
  • Fixed a bug that caused a file-open to fail if the specification contained a multiple-instance task that had its 'threshold' value set to 'infinity'.
  • Fix a bug where, if a task was allocated to a single participant or role, and that participant or role was removed, another participant or role was randomly selected to take its place.
  • Fixed a bug where, if the default output flow for a task had a predicate other than 'true()', it was being overwritten with 'true()' when the specification was opened. It now retains the specified predicate.
  • Fixed a NullPointerException that occurred when running wofyawl analysis.
  • Fixed a bug where the YTimerType data definition was not being saved with a specification that used it if there were no user-defined data types in the specification.
  • Fixed a bug where the YTimerType data definition was not being saved with a specification that used it if there was exactly one YTimerType variable declared in the spec, and it was at the net level and it was declared with 'local' usage.
  • Fixed a bug where, if a cancellation set was selected and showing when a specification was saved, and the file was reopened, the set would still show as selected, but the corresponding menu item was not 'checked' to indicate the set was selected.
  • Fixed a bug where, if a task was set as an automated task and had a codelet selected to execute, on reopening the specification the fact that the task was automated was lost (i.e. the checkbox was not selected).
  • Fixed a bug where, if a task had several (at least three) variables defined, and one was removed, two would actually be deleted in some cases.
  • Fixed a bug where, if a task variable was removed, the output predicate would also be deleted for similarly named variables in some cases.
  • Fixed a bug where, if a task variable was removed, the list of variables in the task decomposition dialog was not being updated in some cases.
  • Fixed a bug when inserting an auto-generated XPath expression into a flow predicate based on a numeric data type, where the expression was inserted as 'number{...)', instead of 'number(...)'.
  • Fixed a bug where, if a variable of a composite task was deleted, it was not actually removed from the net specification.
  • Fixed a bug that prevented notes for tasks and conditions being saved with the specification.
  • Fixed a bug on the 'Set Timer' dialog, where the selected 'net parameter' would not stick, so that it was always the first listed item that was displayed in the dropdown.
  • Fixed a bug in the 'Services' combobox of the 'Task Decomposition' dialog where, if the first and only item selected was 'Default Worklist', and there were other services listed that preceded it alphabetically, then the selection would not stick the next time the dialog was shown.
  • Fixed a bug in the 'Services' combobox of the 'Task Decomposition' dialog where a previously selected service would not initially be selected when the file was reopened.
  • Fixed a ClassCastException which occurred when analysing a net using reduction rules in certain scenarios.
  • WORKLET SERVICE:
  • Ripple-down rules now also accept XPath/XQuery predicates as conditional expressions.
  • Fixed an JDOM exception thrown when enabling the Exception service.
  • Removed last vestiges of hard-coded URL to serviceit is now dynamically read from the engine's persisted service tables.
  • INSTALLERS:
  • The properties for the Windows shortcut created to the Editor now explicitly starts 'javaw.exe' instead of relying on the existing 'jar' file association.
  • Fixed a bug where the Windows file association for compressed files was changed to be associated the Editor.
  • NEW SERVICES:
  • Digital Signature Service: authenticates the information provided on a form using a digital signature via x509 certificates and private keys.
  • Mail Sender Service: provides a custom form for a workitem, from which an email can be sent.

New in YAWL 2.0 Beta (Nov 3, 2008)

  • ENGINE:
  • The Saxon package has been upgraded from version 7.0 to 9.1.0.1 (also affects all services).
  • The XercesImpl package has been upgraded from version 2.4 to 2.9, to correct a parse bug in the old version that was causing a specification load to lock the engine in certain circumstances.
  • Cleaned and improved the use of saxon classes when handling multi-instanced data.
  • Fixed a persistence exception caused when log4j was placed in debug mode.
  • Fixed a bug that caused an exception when restoring workitems from persistence and the whole workitem family was not available in the restored list of workitems.
  • Finalised the YAWL schema location in generated specification xml files.
  • Fixed a bug that caused deadlocked workitems to be persisted, so that they remained in the persisted table after the case was closed.
  • Fixed a bug where a workitem that had become deadlocked and was immediately preceded by a completing composite task was being logged twice (as deadlocked) in the event logs.
  • Fixed a bug that caused an exception when restoring a YWorkItemTimer on server startup.
  • Fixed a number of cascading bugs that occurred when restarting persisted YWorkItemTimers immediately on server startup.
  • Fixed missing persisted values for several members of YWorkItem that had changed since the workitem was first constructed.
  • Fixed an exception caused by a double cast of a timer expiry value.
  • Fixed an exception when restoring persisted case instances on startup, where the instance has an active sub-net and its specification version number is greater than "0.1".
  • Fixed a data validation problem with non-namespaced data schemas containing complex types.
  • Fixed a bug where a timer associated with a cancelled workitem was not removed from persistence.
  • Refactored support for multiple concurrent specification versions.
  • Added a 'engine initialisation completion' event so that custom services can run initialisation tasks that require a running engine to be available.
  • RESOURCE SERVICE:
  • A much enhanced dynamic forms generation, with an improved look and feel and now supporting restriction, enumeration, choice, union, list, and full validation of all data types.
  • Fixed bug in dynamic forms when validating cloned panels containing textboxes of multi-instance fields.
  • Added an 'Accept & Start' button to the worklist's offered queue so that an offer can be accepted and the workitem started in one action.
  • Added a 'Complete' button to dynamic forms so that workitem data can be saved and the workitem be completed in one action.
  • Added a checkbox to the Admin workqueues called 'Directly to me' that appears when the logged in participant has admin privileges, allowing unoffered and worklisted workitems to be directly (re)offered, (re)allocated or (re)started to the participant, by-passing the user selection screen.
  • Fixed a bug in round robin allocators which was resulting in the workitem not appearing on any workqueue.
  • Fixed a bug in deferred allocation where net-level variable values were incorrectly retrieved resulting in the workitem not appearing on any workqueue.
  • The 'View' button is now enabled on the 'Started' workqueue whenever the selected workitem is associated with a custom form (for workitems not using custom forms, the 'View' button is enabled only when the workitem has data for viewing/editing).
  • Fixed several small bug(s) so that all possible interaction strategy combinations work as expected.
  • Fixed a bug that caused an exception when a workitem had an 'SSS' allocation strategy combination and the participant the workitem was directed to was not currently logged on.
  • Fixed a bug that caused an exception when creating a new participant, and a role, capability or position was added and then removed before the new participant was saved the first time.
  • Updated the schemas of previous YAWL versions, required after the Xerces upgrade.
  • Fixed cyclic dependencies for roles, positions & orggroups, so that, for example, a position could not report to itself either directly or within the reporting hierarchy.
  • Fixed an exception caused when a participant deallocated a workitem.
  • Sorted listbox contents on all 'Org Data Mgt' tabs.
  • Assigning a role to a task now includes the set of all the member participants of that role and all the member participants of all the descendant sub-roles that 'belong to' that role in the hierarchy.
  • Fixed a bug when delegating a task that was causing participants in subordinate positions to be listed more than once in the user selection screen.
  • Fixed a persistence bug with positions caused by a phantom column being created in a persisted table.
  • Added an appropriate message when a workitem completion is attempted directly from a dynamic form and does not succeed.
  • Fixed a bug that caused offered workitems to remain on the 'Offered' queue and also moved to the 'Allocated' queue after an 'Accept Offer', which occurred when there were items on the 'Offered' queue when the server was shutdown and restarted.
  • Added cache checking code after each startup to ensure the service's known workitems match the engine's.
  • Fixed a bug where deallocating a workitem prevented the deallocating participant from being offered the same task in subsequent cases of the same specification (as opposed to just the current case).
  • Fixed a bug where allocated workitems were staying on the 'Allocated' workqueue when the workitem was started after a server restart.
  • Removed the engine id suffix from the task names displayed in worklists.
  • Fixed a bug which was causing the random creation of phantom participant objects.
  • Deallocation of a workitem is now restricted to participants who are subordinate (via position) to the participant performing the deallocation (as per delegation).
  • In the 'Edit Profile' screen, the 'Unchain' and 'Unpile' buttons are now disabled if there are no piled/chained workitems in the respective lists.
  • Fixed bug on the 'Org Data Mgt' screen where description & notes info would remain from the previous role/position/capability/orgGroup when the 'New' button is pressed.
  • Fixed bug when viewing a tab other than 'Roles' on the 'Org Data Mgt' screen, then navigating to another page and back again, the 'Roles' tab would show with the contents of the previously viewed tab.
  • Fixed a bug when filtering by Org Group that would result in an empty distribution set.
  • Fixed an issue where chaining left unwithdrawn offers on other worklists.
  • Fixed a bug that threw an exception in the 'Case Mgt' screen when a specification was loaded into an empty specification list, then immediately unloaded, then the 'Unload' button was clicked again.
  • Added a refresh button to the running cases list on the 'Case Mgt' screen.
  • Fixed a bug where two specification instances with the same file name and specification id, but different version numbers, were listed in the running cases list with the same case number.
  • Fixed a bug where if the 'Accept & Start' button was clicked for a workitem that had a system-initiated start, an attempt was made to start the workitem twice.
  • Added a 'Version' number column to the 'Loaded Specifications' table of the 'Case Mgt' screen.
  • Added the version number of the specification to each running process listed in the 'Case Mgt' screen.
  • Fixed a bug that allowed a blank service to be added in the 'Service Mgt' screen if the 'Clear' button was clicked first.
  • Disabled all superfluous JSF log messages from the standard output logs.
  • Automated tasks are now persisted while checked out of Engine.
  • EDITOR:
  • Upgraded to latest jgraph version - v5.12.1.1
  • Upgraded to saxon 9.1.0.1
  • Fixed a bug when importing a specification from XML that resulted in a missing default predicate for splits.
  • Fixed a bug that messed up arc colours when using the 'Updating Predicate Detail' dialog after importing a specification from XML.
  • Removed the engine id suffix from the task name in the Notes tab at screen bottom.
  • Updated ywl file loading to check, remove & report invalid resource references.
  • Fixed an exception thrown on analysis when a specification failed validation. Validation errors are now shown in a dialog and the analysis won't continue.
  • The data schema for YTimerType complex type is now exported correctly to the specification xml whenever that type is used.
  • Fixed the viewport of the Filters section of the resource wizard - its contents can now be clearly seen.
  • Fixed the auto-generation of XQuerys in the 'Update Parameters' dialog when mapping parameters of type YTimerType.
  • Fixed specification importing from xml so that all resourcing, timer and custom form information is also correctly created.
  • Fixed and enhanced development of Filter functionality for resourcing (Step 3 of the Wizard).
  • Added check to ensure that tasks selected for 'Separation of Duties' and 'Familiar Task' in Resourcing Wizard step 3 are mutually exclusive.
  • Fixed bug in 'Update Flow Detail' dialog which caused the predicates list to resize to an unreadable proportion when there were more than 5 outgoing flows from a split.
  • Fixed bug where sometimes not all flow predicates were displayed in the 'Update Flow Detail' dialog.
  • Fixed a bug with the recreation of resourcing allocation strategy when importing a specification from xml.
  • An appropriate message is now displayed when 'Manage Resourcing' is selected, and there's a live resource service connection, and the org model associated with the resource service has no data.
  • Fixed a bug when dealing with xml 'special' characters in the initial values of net-level local string type variables.
  • Resolved an issue where both parameters of the 'org data' filter required values to be specified, rather than one or the other or both.
  • Fixed a bug where importing a net-level output-only variable was creating a duplicate variable of usage 'Local'.
  • Fixed a bug where the 'Update' button would no longer respond when attempting to update a variable based on a user-defined data type and the reference for the datatype had been deleted from the data definitions dialog.
  • Added functionality that checks all user-defined type declarations at export time; if there are any problems, they are reported and export doesn't proceed (until they are fixed).
  • Fixed a bug when importing a specification from xml that contains a resource (participant or role) reference that no longer exists in the org data sourced from the resource service, which was causing a null resource reference to be stored, which in turn caused an exception when the specification was next exported.
  • Fixed a bug which was leaving the editor in an inconsistent state after loading a specification with a null value stored as a resource.
  • Fixed a bug which prevented the export of a specification that contained a YTimerType.
  • Fixed a bug which was auto-incrementing a specification's version number on export even when the user aborted the export via the file save and/or overwrite file dialogs.
  • Fixed a bug which caused the editor to hang when exporting a specification containing tasks with no decompositions.
  • Fixed a further bug that was displaying a load error when no error had occurred, leaving the editor in an inconsistent state.
  • Fixed a bug that was inserting a simpleType XQuery in the 'Update Parameters' dialog instead of a complexType XQuery for certain complexType constructs.
  • Fixed a bug that was leaving remnants of removed parameters in internal task mappings resulting in half-completed xml mappings in exported specifications, leading to a runtime exception when a specification instance was executed.
  • Fixed a bug that was leaving removed net-level parameters in task mappings in certain circumstances.
  • Fixed a bug that showed a valid YTimerType value as invalid in the 'Initial Value' field of the 'Update Parameters' dialog.
  • Added the filename of specifications loaded from xml to the titlebar (previously only ywl filenames were shown).
  • Added the build date and time to the 'Help...About' dialog.
  • WORKLET SERVICE:
  • A very minor change to prevent an unnecessary warning message when persistence tables are created and/or checked on server startup.