-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup.go
More file actions
55 lines (51 loc) · 1.74 KB
/
setup.go
File metadata and controls
55 lines (51 loc) · 1.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
// Package setup bridges the root workflow package with the handlers and
// module packages to register default workflow handlers and triggers.
// It exists to break the import cycle that would occur if the root package
// directly imported handlers (which has test files that import the root package).
//
// Typical usage is to blank-import this package so that its init function
// registers the default handler and trigger factories with the workflow
// engine, and then build an engine using the workflow package:
//
// import (
// "github.com/GoCodeAlone/workflow"
// _ "github.com/GoCodeAlone/workflow/setup"
// )
//
// engine, err := workflow.NewEngineBuilder().
// WithAllDefaults().
// Build()
package setup
import (
"github.com/GoCodeAlone/workflow"
"github.com/GoCodeAlone/workflow/handlers"
"github.com/GoCodeAlone/workflow/interfaces"
"github.com/GoCodeAlone/workflow/module"
)
func init() {
workflow.DefaultHandlerFactory = DefaultHandlers
workflow.DefaultTriggerFactory = DefaultTriggers
}
// DefaultHandlers returns all built-in workflow handlers.
func DefaultHandlers() []workflow.WorkflowHandler {
return []workflow.WorkflowHandler{
handlers.NewHTTPWorkflowHandler(),
handlers.NewMessagingWorkflowHandler(),
handlers.NewStateMachineWorkflowHandler(),
handlers.NewSchedulerWorkflowHandler(),
handlers.NewIntegrationWorkflowHandler(),
handlers.NewPipelineWorkflowHandler(),
handlers.NewEventWorkflowHandler(),
handlers.NewPlatformWorkflowHandler(),
}
}
// DefaultTriggers returns all built-in triggers.
func DefaultTriggers() []interfaces.Trigger {
return []interfaces.Trigger{
module.NewHTTPTrigger(),
module.NewEventTrigger(),
module.NewScheduleTrigger(),
module.NewEventBusTrigger(),
module.NewReconciliationTrigger(),
}
}