process-automation-component
1.11.2 (2025-10-09)
Fixed
- Fixed diagnostic propagation from TaskResult.errorinside 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.endpointto expose a healthcheck servlet (default endpoint/$app/healthcheck).- It is recommended to use this endpoint in combination with curl -fif you want to define a Docker healthcheck which takes processAutomation into account.
 
- It is recommended to use this endpoint in combination with 
- Added option schedule.maxFetchSizeto limit the number of jobs fetched in a single Schedule call.
- #173 Added option schedule.expression.dynamicto define a dynamic ScheduleExpression at runtime.- If you want to use this in a Feature expander, you can use the #schedule.expression.dynamictag to enable this behavior as well.
 
- If you want to use this in a Feature expander, you can use the 
Changed
- #174 Added timeouts and additional logging to service shutdown. The service shutdownmethod 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 failTransitionandrecoverTransitionon 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 NEVERtransactionAttribute on@Timeoutmethods, 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-stylesdependency fromprocess-automation-core.
1.9.0 (2025-04-22)
Added
- Added @anchor:prepare-execution-contextfeature anchor to the Transitioner to configure context for the entire transition.
Changed
- Removed all custom code referencing the javaxnamespace with expanders:- Moved net.democritus.processautomation.UserTransactionManagerfrom ext to gen.
- Moved net.democritus.processautomation.service.WorkerNodeServiceLocatorfrom ext to gen.
- Moved net.democritus.processautomation.service.WorkflowRecoveryLocatorfrom ext to gen.
 
- Moved 
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.usernot being used for recovery.
- #131 Fixed cruds.(create|modify)WithProjectionoptions not participating in crud events.- Due to the absense of 'details' the resulting triggers will fire regardless of current state.
 
- #132 Fixed StrictConcurrencyfeature to be enabled for dataElement which are not fully using process-automation yet.
1.8.0 (2025-02-28)
Added
- Added process-automation-webstylesmodule to make this dependency explicit.- Added dependency on web-styles-expandersto aid migration to Expanders 8.x.x.
 
- Added dependency on 
- #121 Added schedule.finder.nameoption 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.servicepackage to avoid class path conflicts with JPA.
Fixed
- Fixed TaskJobQueue to fail its fetch query when no jobs are available.
1.7.0 (2025-01-30)
Added
- #99 Added TransitionMonitorto hook into transition progress for monitoring.
- #99 Added @anchor:monitoring-*hooks to Transitioners. Monitor is injected when the#monitoringtag is present.
- #105 Added check to {DataElement}Crudsto prevent modify actions while a task is busy on that element.- Adds the workflow.concurrentModificationErrordiagnostic when the check fails.
 
- Adds the 
- #106 Added ProcessingPolicyto configure queuedProcessor policies.- ErrorRateShutdownPolicyshuts down a service when it exceeds a configured error-rate.
- ErrorRecoveryPolicystarts recovery on error after a specified timeout.
- DailyRecoveryPolicystarts recovery every day at a specified time (including timezone).
 
- #106 Added {queuedProcessor}PolicyManagerSingleton to handle all events configured in the policies.
Changed
- #106 The defaultexecution now shuts down when over 30 errors/minute. Recovery is triggered 10 minutes later.
- #113 Replace uses of TransactionManagerwithTransactionSynchronizationRegistryfor 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.localOnlybreaking 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.ConcurrencyManagementto coordinate redirections.
Changed
- #107 Changed recovery to use a separate transaction for each element.
Fixed
- #107 Fixed ApplicationPersistencequeueDriver crashes due to unreleased EJB locks.
1.6.0 (2024-11-29)
Added
- Added #monitoringroot tag to control additional monitoring hooks.- Added QueuedProcessorMonitorto hook into queue events for monitoring.
- Added WorkerNodeMonitorto hook into workerNode events for monitoring.
- Added asReferencedefault method onTransitionRefinterface.
 
- Added 
- #83 Added transition.timeout.secondsto override the default transaction timeout for a transition.
Changed
- Changed {Workflow}Schedulerto be an interface implemented by{Workflow}SchedulerBean.
1.5.4 (2024-11-14)
Fixed
- #96 Fixed checked exceptions in a Task (EJB) leaking into the Transitioner.
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-metamodelto v1.9.0.
- Upgrade prime-buildersto v2.4.3.
Removed
- (#73) Removed transactions from the schedule trigger.
1.4.0 (2024-08-20)
Added
- (#66) Added (custom) anchors to {Workflow}EngineBeanfor 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.timestampfields.
Fixed
- Fixed crashing a service if an executed task is prematurely cancelled. Logs a warning instead.
Changed
- Updated prime-coreto version2024.4.5
- Updated Expandersto version7.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 SCHEDULEWorkflowProcessingContext to indicate the pre-execution phase.
Changed
- Changed Triggershelper methods frombyCommandandbytobyDataCommand.
- {Transition}Scheduleand- {Workflow}EngineBeanwill now contain the- SCHEDULEWorkflowProcessingContext
1.2.1 (2024-06-25)
Changed
- Updated prime-coreto2024.3.14.
- Updated workflow-metamodelto1.8.3.
Fixed
- Fixed dependency on SNAPSHOT version.
1.2.0 (2024-06-12)
Changed
- Updated prime-coreto2024.3.13.
- Updated workflow-metamodelto1.8.2.
- Started using the metamodels.v3Metamodel expansion.
Removed
- Removed support for the elementsmetamodel representation.
Fixed
- Fixed incorrect error logging when transaction is marked for rollback during a transition.
1.1.5 (2024-05-28)
Added
- Added WorkflowProcessingContextcontext 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}Eventsto be an interface.
Added
- Added {DataElement}EventsBeanto implement{DataElement}Eventsfor 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.processAutomationfor any artifact dependent on processAutomation
 
1.1.0 (2024-04-23)
Added
- Possibility to define WorkScheduleon a queuedProcessor as an alternative to TimeWindow.- Specify a startAtanduntiltime.
- Optionally specify a weekday.
- Optionally specify a timezone.
 
- Specify a 
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-conditionanchors to change startup condition on{Transition}Scheduleand{Workflow}EngineBean
0.4.1 (2024-04-02)
Fixed
- Fixed wrong import when defining blocking ByDataCommand trigger.
- Fixed namefield not available on the ByDataCommand trigger metamodel.
0.4.0 (2024-03-29)
Added
- Added new ByDataCommandTrigger, which will integrate with a dataCommand to trigger a set of Transitions.- By default, transition will execute asynchronously (scheduling).
- DataCommand option workflow.trigger.blockingMsto indicate synchronous (blocking) execution.
- DataCommand option workflow.trigger.buttonto add a button to the knockout UI.
 
- Added option transition.noSelfLoopon theOnTransitiontrigger, 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.disableto 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.implementationto Transition to configure the task implementation used.
- Added option executeTask.context.userto 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.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.maxConcurrentTasksin 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.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.excludeto exclude a workflow/transition from trace logging.
- Introduced TransitionContextfor 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.processAutomationtonet.democritus.processautomationin 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-coremodule intomodelandcorewheremodelonly 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 validationcomponent
0.1.3 (2023-09-28)
Fixed
- Fixed compile error when no batchSize was defined for a FlowEngine.
Changed
- Updated workflow-metamodelto version1.6.2
0.1.0 (2023-09-19)
- Preview release