Execution Publishing

The executionPublishing() element determines whether and how an action invocation is published via the registered implementation of ExecutionSubscriber.

A common use case is to notify external "downstream" systems of changes in the state of the Apache Causeway application.

The causeway.applib.annotation.property.execution-publishing configuration property is used to determine the whether the action invocation is published:

  • all

    all action invocations are published

  • ignoreSafe (or ignoreQueryOnly)

    invocations of actions with safe (read-only) semantics are ignored, but actions which may modify data are not ignored

  • none

    no action invocations are published

If there is no configuration property in application.properties then publishing is automatically enabled.

This default can be overridden on an action-by-action basis; if executionPublishing() is set to ENABLED then the action invocation is published irrespective of the configured value; if set to DISABLED then the action invocation is not published, again irrespective of the configured value.

For example:

public class Order {
    @Action(executionPublishing=Publishing.ENABLED)    (1)
    public Invoice generateInvoice(...) {
        // ...
    }
}
1 because set to enabled, will be published irrespective of the configured value.