Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package dev.bpmcrafters.processengineapi

/**
* Command execution mode.
* @since 1.6
*/
enum class ExecutionMode {
/**
* Alias for async.
*/
DEFAULT,

/**
* Default async execution mode.
*/
ASYNC,

/**
* Synchronous execution mode, adapter should use a specific thread pool
* to run the same thread and tx as the caller.
*/
SYNC,

/**
* Special execution mode for preflight checks.
*/
PREFLIGHT_CHECK
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package dev.bpmcrafters.processengineapi

/**
* Interface to retrieve information of execution mode.
* @since 1.6
*/
interface ExecutionModeAware {
/**
* Retrieves execution mode.
* @return Execution mode.
*/
fun executionMode(): ExecutionMode = ExecutionMode.DEFAULT
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package dev.bpmcrafters.processengineapi.correlation

import dev.bpmcrafters.processengineapi.ExecutionModeAware
import dev.bpmcrafters.processengineapi.PayloadSupplier

/**
Expand All @@ -23,7 +24,7 @@ data class CorrelateMessageCmd(
* Restrictions applied for this message.
*/
val restrictions: Map<String, String> = emptyMap()
) : PayloadSupplier by payloadSupplier {
) : PayloadSupplier by payloadSupplier, ExecutionModeAware {
/**
* Constructs a correlation command by message name, payload and correlation.
* @param messageName message name.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package dev.bpmcrafters.processengineapi.correlation

import dev.bpmcrafters.processengineapi.ExecutionModeAware
import dev.bpmcrafters.processengineapi.PayloadSupplier

/**
Expand All @@ -19,7 +20,7 @@ data class SendSignalCmd(
* Restrictions of the signaling.
*/
val restrictions: Map<String, String> = emptyMap()
) : PayloadSupplier by payloadSupplier {
) : PayloadSupplier by payloadSupplier, ExecutionModeAware {
/**
* Constructs a signal command by signal name, restrictions and given payload.
* @param signalName signal name.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package dev.bpmcrafters.processengineapi.decision

import dev.bpmcrafters.processengineapi.ExecutionModeAware
import dev.bpmcrafters.processengineapi.PayloadSupplier
import java.util.function.Supplier

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package dev.bpmcrafters.processengineapi.decision

import dev.bpmcrafters.processengineapi.ExecutionModeAware
import dev.bpmcrafters.processengineapi.PayloadSupplier

/**
* Interface for decision evaluation commands.
* @since 1.4
*/
interface DecisionEvaluationCommand : PayloadSupplier
interface DecisionEvaluationCommand : PayloadSupplier, ExecutionModeAware
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package dev.bpmcrafters.processengineapi.deploy

import dev.bpmcrafters.processengineapi.ExecutionModeAware

/**
* Command to deploy a bundle of resources.
* @since 0.0.1
Expand All @@ -13,4 +15,4 @@ data class DeployBundleCommand(
* Optional tenant id.
*/
val tenantId: String? = null
)
) : ExecutionModeAware
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package dev.bpmcrafters.processengineapi.process

import dev.bpmcrafters.processengineapi.ExecutionModeAware
import dev.bpmcrafters.processengineapi.PayloadSupplier

/**
* Interface for process start commands.
* @since 0.0.1
*/
interface StartProcessCommand : PayloadSupplier
interface StartProcessCommand : PayloadSupplier, ExecutionModeAware
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package dev.bpmcrafters.processengineapi.task

import dev.bpmcrafters.processengineapi.ExecutionModeAware
import dev.bpmcrafters.processengineapi.PayloadSupplier

/**
Expand All @@ -23,7 +24,7 @@ open class CompleteTaskByErrorCmd(
* Payload supplier.
*/
private val payloadSupplier: PayloadSupplier
) : PayloadSupplier by payloadSupplier {
) : PayloadSupplier by payloadSupplier, ExecutionModeAware {
/**
* Creates the complete command for a given task id and payload.
* @param taskId id of the task to complete.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package dev.bpmcrafters.processengineapi.task

import dev.bpmcrafters.processengineapi.ExecutionModeAware
import dev.bpmcrafters.processengineapi.PayloadSupplier

/**
Expand All @@ -15,7 +16,7 @@ open class CompleteTaskCmd(
* Payload supplier.
*/
private val payloadSupplier: PayloadSupplier
) : PayloadSupplier by payloadSupplier {
) : PayloadSupplier by payloadSupplier, ExecutionModeAware {

/**
* Creates the complete command for a given task id and payload.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package dev.bpmcrafters.processengineapi.task

import dev.bpmcrafters.processengineapi.ExecutionModeAware
import java.time.Duration

/**
Expand Down Expand Up @@ -27,7 +28,7 @@ open class FailTaskCmd(
* Optional retry backoff duration.
*/
val retryBackoff: Duration?
) {
) : ExecutionModeAware {
constructor(taskId: String, reason: String, errorDetails: String?)
: this(taskId = taskId, reason = reason, errorDetails = errorDetails, null, null)
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package dev.bpmcrafters.processengineapi.task

import dev.bpmcrafters.processengineapi.ExecutionModeAware

/**
* Captures the intent of task modification.
* @since 1.3
*/
interface ModifyTaskCmd {
interface ModifyTaskCmd : ExecutionModeAware {
val taskId: String
}
Loading