On this page
process-automation-component
1.12.2 (2025-12-18) Fixed
Fixed application persistence initializing at capacity. Will now only be initialized at service startup to avoid
filling the cache on disabled nodes.
1.12.1 (2025-12-17) Fixed
Fixed services missing a leader when some services are missing on the leader node.
Services will still prioritize the leader node, if none is available it will pick the smallest node by name.
1.12.0 (2025-12-10) Added
Added 'PROCESS_AUTOMATION_SERVICES' environment variable. Comma separated list of available services on the
application if defined. All services are available otherwise.
Changed
Starting of services will now timeout and deactivate on error.
Stopping of services now runs in parallel to avoid interdependencies.
Stopping of services will now not cause the workerNode to fail.
1.11.5 (2025-12-05) Changed
Demoted 'fetched' and 'submitted' logs in QueuedProcessor to DEBUG.
Fixed
Fixed NPE in QueuedProcessor when no timer was created.
Fixed PolicyManager to not clear its timers when shutting down the service.
1.11.4 (2025-11-28) Added
Added additional feature anchors to QueuedProcessor and ApplicationPersistenceQueueDriver.
1.11.3 (2025-11-27) Changed
StrictConcurrency check is now disabled with the jpa.column.disableUpdate option on a status field.
Fixed
Fixed compile issue with InMemoryQueue when monitoring is enabled.
1.11.2 (2025-10-09) Fixed
Fixed diagnostic propagation from TaskResult.error inside Transitioner.
Fixed deserializer of custom targets failing on unknown properties.
1.11.1 (2025-09-17) Fixed
Fixed (de)serialization of customValue when written to the persistent queue.
1.11.0 (2025-09-16) Added
#174 Added option workflow.healthcheck.endpoint to expose a healthcheck servlet
(default endpoint /$app/healthcheck).
It is recommended to use this endpoint in combination with curl -f if you want to define a Docker healthcheck
which takes processAutomation into account.
Added option schedule.maxFetchSize to limit the number of jobs fetched in a single Schedule call.
#173 Added option schedule.expression.dynamic to define a dynamic ScheduleExpression at runtime.
If you want to use this in a Feature expander, you can use the #schedule.expression.dynamic tag to enable this
behavior as well.
Changed
#174 Added timeouts and additional logging to service shutdown. The service shutdown method will no longer
be called on an EJB thread and uses the common ForkJoinPool instead.
Fixed
Fixed invalid access of UserTransaction in the container-managed Schedules by changing them to bean-managed.
Fixed missing TransitionEvent apis when workflow is defined on a different component.
1.10.1 (2025-06-13) Changed
Wrapped failTransition and recoverTransition on the Transitioner in default anchors as well.
1.10.0 (2025-05-21) Added
Added descriptions to most ontology elements.
Changed
Upgrade workflows-metamodel v1.9.0 > v1.11.0.
Upgrade metamodel-stack 2024.5.0 > 2025.7.4.
Fixed
#154 Fixed usage of default TimerConfig to now use non-persistent timers instead.
Fixed usage of NEVER transactionAttribute on @Timeout methods, which is not EE specification compliant.
1.9.1 (2025-04-29) Added
Added SCM configuration to pom.xml.
Changed
Improved WorkerNode concurrency management and cleanup.
Removed
Removed web-styles dependency from process-automation-core.
1.9.0 (2025-04-22) Added
Added @anchor:prepare-execution-context feature anchor to the Transitioner to configure context for the entire transition.
Changed
Removed all custom code referencing the javax namespace with expanders:
Moved net.democritus.processautomation.UserTransactionManager from ext to gen.
Moved net.democritus.processautomation.service.WorkerNodeServiceLocator from ext to gen.
Moved net.democritus.processautomation.service.WorkflowRecoveryLocator from ext to gen.
Fixed
Fixed ApplicationPersistence queue not clearing its cache when the service is recovered.
#141 Fixed dataCommand Trigger not expanding when its name starts with uppercase.
#144 Fix compile errors when policies are defined multiple times.
Picks minimum configuration for policies which cannot be duplicated.
1.8.1 (2025-03-17) Fixed
#129 Fixed executeTask.context.user not being used for recovery.
#131 Fixed cruds.(create|modify)WithProjection options not participating in crud events.
Due to the absense of 'details' the resulting triggers will fire regardless of current state.
#132 Fixed StrictConcurrency feature to be enabled for dataElement which are not fully using process-automation yet.
1.8.0 (2025-02-28) Added
Added process-automation-webstyles module to make this dependency explicit.
Added dependency on web-styles-expanders to aid migration to Expanders 8.x.x.
#121 Added schedule.finder.name option for Transition to customize which finder the schedule trigger will use.
Also provides custom anchors to provide additional information to the finder.
Changed
Moved knockout feature to the new webstyles module.
#128 Relocated internal EJB services to the
net.democritus.processautomation.service package to avoid class path conflicts with JPA.
Fixed
Fixed TaskJobQueue to fail its fetch query when no jobs are available.
1.7.1 (2025-01-31) Fixed
#118 Fixed compiler-error when cruds.modifyWithProjection is used.
1.7.0 (2025-01-30) Added
#99 Added TransitionMonitor to hook into transition progress for monitoring.
#99 Added @anchor:monitoring-* hooks to Transitioners. Monitor is injected when the #monitoring tag is present.
#105 Added check to {DataElement}Cruds to prevent modify actions while a task is busy on that element.
Adds the workflow.concurrentModificationError diagnostic when the check fails.
#106 Added ProcessingPolicy to configure queuedProcessor policies.
ErrorRateShutdownPolicy shuts down a service when it exceeds a configured error-rate.
ErrorRecoveryPolicy starts recovery on error after a specified timeout.
DailyRecoveryPolicy starts recovery every day at a specified time (including timezone).
#106 Added {queuedProcessor}PolicyManager Singleton to handle all events configured in the policies.
Changed
#106 The default execution now shuts down when over 30 errors/minute. Recovery is triggered 10 minutes later.
#113 Replace uses of TransactionManager with TransactionSynchronizationRegistry for better EE8 spec support.
TransactionPostCommitHook::apply(TransactionManager,Runnable) is now deprecated for removal.
ApplicationPersistence queue will now do immediate re-fetching when the cache was filled up by the previous fetch.
This should improve processing speed without lowering the regular fetching interval.
Removed
#106 Removed WorkerNodeServiceError (noDataLayer) element.
#106 Removed some runtime classes which were unused or replaced by policies.
Fixed
#109 Fixed ApplicationPersistent queue to define a cleanupInterval of 60 minutes if none is specified (configure 0 to disable).
#113 Fixed ejb.interfaces.localOnly breaking process-automation internals due to missing methods.
#115 Fixed transaction rollback not setting the failed state leaving items in their interim state.
#116 Fixed locking issue in WorkerNodeProcessor when transitions take long.
1.6.2 (2025-01-17) Fixed
#110 Fixed CompletableFuture being completed before the job is fully executed.
Fixes issues with the ByDataCommand trigger (blocking) which returned too early.
1.6.1 (2025-01-15) Added
Added jakarta.ejb.ConcurrencyManagement to coordinate redirections.
Changed
#107 Changed recovery to use a separate transaction for each element.
Fixed
#107 Fixed ApplicationPersistence queueDriver crashes due to unreleased EJB locks.
1.6.0 (2024-11-29) Added
Added #monitoring root tag to control additional monitoring hooks.
Added QueuedProcessorMonitor to hook into queue events for monitoring.
Added WorkerNodeMonitor to hook into workerNode events for monitoring.
Added asReference default method on TransitionRef interface.
#83 Added transition.timeout.seconds to override the default transaction timeout for a transition.
Changed
Changed {Workflow}Scheduler to be an interface implemented by {Workflow}SchedulerBean.
1.5.5 (2024-12-18) Changed
Changed fieldOperatorPairs to have a specified name.
1.5.4 (2024-11-14) Fixed
#96 Fixed checked exceptions in a Task (EJB) leaking into the Transitioner.
1.5.3 (2024-10-08) Fixed
Fixed spawning too many threads for task locking in the QueuedProcessor.
1.5.2 (2024-09-26) Fixed
#84 Fixed flowEngine crashing the workerNodeService when batch is timed out.
#85 Fixed schedule trigger not picking up all jobs. Added transaction around submitting a page to the queue.
1.5.1 (2024-09-05) Added
Added custom-anchor for adjusting TransitionContext of a ByDataCommand trigger.
1.5.0 (2024-08-30) Added
(workflow#40 ) Add support for granular migration of workflows.
Changed
(#73 ) Changed schedule trigger to fetch elements by pages of size 100.
Upgrade workflow-metamodel to v1.9.0.
Upgrade prime-builders to v2.4.3.
Removed
(#73 ) Removed transactions from the schedule trigger.
1.4.0 (2024-08-20) Added
(#66 ) Added (custom) anchors to {Workflow}EngineBean for adding SortFields.
(#66 ) Added option flowEngine.sortField: (asc|desc) to add elements::Field as sortFields.
(#66 ) Added feature to automatically sort (ascending) on audit.modify.timestamp fields.
Fixed
Fixed crashing a service if an executed task is prematurely cancelled. Logs a warning instead.
Changed
Updated prime-core to version 2024.4.5
Updated Expanders to version 7.7.2
1.3.1 (2024-08-02) Changed
(#65 ) Improved performance of various searches by skipping the (unused) count query.
1.3.0 (2024-07-25) Added
Added SCHEDULE WorkflowProcessingContext to indicate the pre-execution phase.
Changed
Changed Triggers helper methods from byCommand and by to byDataCommand.
{Transition}Schedule and {Workflow}EngineBean will now contain the SCHEDULE WorkflowProcessingContext
1.2.2 (2024-07-22) Added
Added ontologyImport to metamodel.
1.2.1 (2024-06-25) Changed
Updated prime-core to 2024.3.14.
Updated workflow-metamodel to 1.8.3.
Fixed
Fixed dependency on SNAPSHOT version.
1.2.0 (2024-06-12) Changed
Updated prime-core to 2024.3.13.
Updated workflow-metamodel to 1.8.2.
Started using the metamodels.v3 Metamodel expansion.
Removed
Removed support for the elements metamodel representation.
Fixed
Fixed incorrect error logging when transaction is marked for rollback during a transition.
1.1.5 (2024-05-28) Added
Added WorkflowProcessingContext context group to indicate processing status (processing, recovery) of the workflow.
Fixed
Fixed TaskJobQueue to crash when recovery queries encounter issues.
Fixed WorkerNode not stopping when queue driver produces errors.
1.1.4 (2024-05-23) Changed
Changed {DataElement}Events to be an interface.
Added
Added {DataElement}EventsBean to implement {DataElement}Events for EJB.
1.1.3 (2024-05-17) Changed
Changed error reporting to have more readable messages.
Changed @anchor:after-* in Transitioners to only execute on success.
Fixed
Fixed WorkerNodeService not recovered when WorkerNode recovery was triggered.
Fixed FlowEngine not properly cancelling tasks when service is stopped.
1.1.2 (2024-05-08) Added
Added a 'LIKE' finder for TaskJobQueue targets.
Fixed
Fix issue in enrichment causing missing tags/artifacts.
1.1.1 (2024-04-26) Changed
All expanders are now conditional on the presence of processAutomation component.
Migrated all expanders to use tags instead of condition .
Defined tag #workflow.processAutomation for any artifact dependent on processAutomation
1.1.0 (2024-04-23) Added
Possibility to define WorkSchedule on a queuedProcessor as an alternative to TimeWindow .
Specify a startAt and until time.
Optionally specify a weekday.
Optionally specify a timezone.
1.0.1 (2024-04-19) Changed
Integrated changes from v0.4.2.
Replaced jackson library definitions to dependency on nsx-jackson-support.
1.0.0 (2024-04-08) Changed
Added state-machine to WorkerNode for synchronised recovery in multi-node systems.
The mechanism elects a 'leader' responsible for recovery and any scheduled triggers.
Optimized ApplicationPersistent queue to not commit 0 jobs when the local cache is empty.
Removed
Removed unused {Workflow}Task artifact expander.
0.4.2 (2024-04-18) Added
Added @anchor:start-processing-condition anchors to change startup condition
on {Transition}Schedule and {Workflow}EngineBean
0.4.1 (2024-04-02) Fixed
Fixed wrong import when defining blocking ByDataCommand trigger.
Fixed name field not available on the ByDataCommand trigger metamodel.
0.4.0 (2024-03-29) Added
Added new ByDataCommand Trigger, which will integrate with a dataCommand to trigger a set of Transitions.
By default, transition will execute asynchronously (scheduling).
DataCommand option workflow.trigger.blockingMs to indicate synchronous (blocking) execution.
DataCommand option workflow.trigger.button to add a button to the knockout UI.
Added option transition.noSelfLoop on the OnTransition trigger, to avoid self-loops when the end-state is equal.
to the begin-state of a transition.
0.3.2 (2024-02-20) Added
Added error handling for calls to scheduleTransition.
Added option workflow.recovery.disable to opt-out of workflow recovery.
0.3.1 (2024-02-14) Fixed
Fixed incorrect import in EngineBean when targetElement packageName is different.
0.3.0 (2024-02-13) Added
Added option executeTask.implementation to Transition to configure the task implementation used.
Added option executeTask.context.user to Transition (and Workflow/Component cascade) to configure the UserContext for the task execution.
Updated
Update prime-core to version 2024.0.x
Update Expanders to version 6.5.x
0.2.5 (2024-01-26) Changed
Changed batchSize of 0 (default) to be interpreted as unlimited .
0.2.4 (2024-01-22) Fixed
Fixed startup sequence of ApplicationPersistence queues ability to interfere with recovery.
0.2.3 (2024-01-17) Added
Added support for flowEngine.stateTask.maxConcurrentTasks in FlowEngine trigger.
Changed
Changed FlowEngine so no two runs can happen simultaneously. Instead a warning is logged.
0.2.2 (2024-01-03) Fixed
Fixed TaskJobs being committed before fetch was persisted which caused runtime errors.
0.2.1 (2023-11-27) Fixed
Fixed import issues when rollback recovery is configured.
0.2.0 (2023-11-23) Added
Added button to pause and resume the WorkerNode from the knockout UI.
Added WorkerNodeService element to improve observability and state management.
Added button to recover a WorkerNodeService when it reached a failed state.
Added option processAutomation.tracelog.exclude to exclude a workflow/transition from trace logging.
Introduced TransitionContext for a more obvious interface to the {Workflow}Scheduler.
Added cleanup of 'Committed' TaskJobQueue entries. Default is configured to run once every 60 minutes.
Changed
Package name and groupId changed from net.democritus.processAutomation to net.democritus.processautomation in accordance with java convention.
Impact should be low, as these are mostly used internally.
Expanders now mostly use @imports for their import handling.
Event triggers are now scheduled within the transaction, QueueDrivers must ensure the job can only be pulled after commit.
Split the process-automation-core module into model and core where model only contains the component model.
Changed transition error logging to make its origin obvious.
Removed uses of java 9+ api from EngineBean to make it java 8 compatible.
0.1.4 (2023-10-17) Changed
Marked process automation with isBaseComponent
Removed dependency on validation component
0.1.3 (2023-09-28) Fixed
Fixed compile error when no batchSize was defined for a FlowEngine.
Changed
Updated workflow-metamodel to version 1.6.2
0.1.2 (2023-09-22) Fixed
Fixed build issues when a component did not depend on processAutomation.
0.1.1 (2023-09-21) Fixed
TransitionSorter possibly not terminating causing expansion to be stuck.